linux基础
用户登陆
-
root 用户 一个特殊的管理帐户 也被称为超级用户 root已接近完整的系统控制 对系统损害几乎有无限的能力 除非必要,不要登录为 root 2.普通( 非特权 )用户 权限有限 造成损害的能力比较有限
什么是shell
- Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令并把它送入内核去执行
- shell也被称为LINUX的命令解释器(command interpreter)
-
shell是一种高级程序设计语言
 bash shell
- GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也
是 Linux标准的shell,与sh兼容。
- CentOS默认使用
- 显示当前使用的shell
echo ${SHELL}
- 显示当前系统使用的所有shell
cat /etc/shells 执行命令
- 输入命令后回车
?? 提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后 提交给内核分配资源将其运行起来
- 在shell中可执行的命令有两类
内部命令:由shell自带的,而且通过某命令形式提供 ???? ?? ?? help 内部命令列表 ????????enable cmd 启用内部命令 ????????enable –n cmd 禁用内部命令 ????????enable –n 查看所有禁用的内部命令 外部命令:在文件系统路径下有对应的可执行程序文件 ?????? 查看路径:which -a |--skip-alias ; whereis 执行外部命令
- Hash缓存表
??系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命 令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解 释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找, 利用hash缓存表可大大提高命令的调用速率
- hash常见用法
??hash 显示hash缓存 ??hash –l 显示hash缓存,可作为输入使用 ??hash –p path name 将命令全路径path起别名为name ??hash –t name 打印缓存中name的路径 ??hash –d name 清除name缓存 ??hash –r 清除缓存 日期和时间
- Linux的两种时钟
??系统时钟:由Linux内核通过CPU的工作频率进行的 ??硬件时钟:主板
- 相关命令
??date 显示和设置系统时间 ????date +%s ????date -d @1509536033 ??hwclock,clock: 显示硬件时钟 ???? -s,--hctosys 以硬件时钟为准,校正系统时钟 ???? -w,--systohc 以系统时钟为准,校正硬件时钟
- 时区:/etc/localtime
- 显示日历:cal –y
简单命令
- 关机:halt,poweroff
- 重启:reboot
?? -f: 强制,不调用shutdown ?? -p: 切断电源
- 关机或重启:shutdown
??shutdown [OPTION]... [TIME] [MESSAGE] ??-r: reboot ??-h: halt ??-c:cancel 简单命令
- 用户登录信息查看命令:
??whoami: 显示当前登录有效用户 ??who: 系统当前所有的登录会话 ??w: 系统当前所有的登录会话及所做的操作
- nano 文本编辑
简单命令
- screen命令:
??创建新screen会话 ????screen –S [SESSION] ??加入screen会话 ????screen –x [SESSION] ??退出并关闭screen会话 ????exit ??剥离当前screen会话 ????Ctrl+a,d ??显示所有已经打开的screen会话 ????screen -ls ??恢复某screen会话 ????screen -r [SESSION] 简单命令
- echo命令
- 功能:显示字符
- 语法:echo [-neE][字符串]
- 说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,
并在最后加上换行号
- 选项:
?? -E (默认)不支持 解释功能 ?? -n 不自动换行 ?? -e 启用 字符的解释功能
- 显示变量
?? echo "$VAR_NAME” 变量会替换,弱引用 ?? echo ‘$VAR_NAME’ 变量不会替换,强引用 字符集和编码
- ASCII码:计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美
国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。 ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的 一位统一规定为0
- Unicode:用于表示世界上所有语言中的所有字符。每一个符号都给予一个独
一无二的编码数字,Unicode 是一个很大的集合,现在的规模可以容纳100多 万个符号。Unicode 仅仅只是一个字符集,规定了每个字符对应的二进制代码, 至于这个二进制代码如何存储则没有规定
- Unicode编码方案:
UTF-8:变长,1到4个字节 UTF-16:变长,2或4个字节 UTF-32:固定长度,4个字节
- UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,可变长存储。使
用 1 - 4 个字节表示一个字符,根据字符的不同变换长度。编码规则如下: ?∴对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode ??码。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着 ??ASCII 码的文档可用 UTF-8 编码打开。 ?∴对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设 为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的 二进制位则使用这个字符的 Unicode 码来填充
- 编码转换和查询:
http://www.chi2ko.com/tool/CJK.htm https://javawind.net/tools/native2ascii.jsp?action=transform http://tool.oschina.net/encode Unicode和UTF-8 
示例: “汉”的 Unicode 码 0x6C49(110 110001 001001),需要三个字节存储,格式为: 1110xxxx 10xxxxxx 10xxxxxx,从后向前依次填充对应格式中的 x,多出的 x 用 0 补,得出UTF-8 编码为 11100110 10110001 10001001 “马”的 Unicode 码 0x9A6C(1001 101001 101100),需要三个字节存储,格式为: 1110xxxx 10xxxxxx 10xxxxxx,从后向前依次填充对应格式中的 x,多出的 x 用 0 补,得出UTF-8 编码为11101001 10101001 10101100 命令行扩展、被括起来的集合
- 命令行扩展:$( ) 或 ``
?把一个命令的输出打印给另一个命令的参数 ?echo "This system‘s name is $(hostname) " ?This system‘s name is server1.example.com ?echo "i am whoami " ?i am root
- 括号扩展:{ }
打印重复字符串的简化形式 echo file{1,3,5} 结果为:file1 file3 file5 rm -f file{1,5} echo {1..10} echo {a..z} echo {000..20..2} tab键
- 命令补全
??内部命令: ??外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻 以给定命令名命名的文件,第一次找到的命令即为要执行的命令 ??用户给定的字符串只有一条惟一对应的命令,直接补全 ??否则,再次Tab会给出列表
- 路径补全
?? 把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字 符串开头的文件名 ??如果惟一:则直接补全 ??否则:再次Tab给出列表 命令history
- history [-c] [-d offset] [n]
- history -anrw [filename]
- history -ps arg [arg...]
-c: 清空命令历史 -d offset: 删除历史中指定的第offset个命令 n: 显示最近的n条历史 -a: 追加本次会话新执行的命令历史列表至历史文件 -r: 读历史文件附加到历史列表 -w: 保存历史列表到指定的历史文件 -n: 读历史文件中未读过的行到历史列表 -p: 展开历史参数成多行,但不存在历史列表中 -s: 展开历史参数成一行,附加在历史列表后 bash的快捷键
- Ctrl + l 清屏,相当于clear命令
- Ctrl + o 执行当前命令,并重新显示本命令
- Ctrl + s 阻止屏幕输出,锁定
- Ctrl + q 允许屏幕输出
- Ctrl + c 终止命令
- Ctrl + z 挂起命令
- Ctrl + a 光标移到命令行首,相当于Home
- Ctrl + e 光标移到命令行尾,相当于End
- Ctrl + f 光标向右移动一个字符
- Ctrl + b 光标向左移动一个字符
- Alt + f 光标向右移动一个单词尾
- Alt + b 光标向左移动一个单词首
- Ctrl + xx 光标在命令行首和光标之间移动
- Ctrl + u 从光标处删除至命令行首
- Ctrl + k 从光标处删除至命令行尾
- Alt + r 删除当前整行
- Ctrl + w 从光标处向左删除至单词首
- Alt + d 从光标处向右删除至单词尾
- Ctrl + d 删除光标处的一个字符
-
- Ctrl + y 将删除的字符粘贴至光标后
- Alt + c 从光标处开始向右更改为首字母大写的单词
- Alt + u 从光标处开始,将右边一个单词更改为大写
- Alt + l 从光标处开始,将右边一个单词更改为小写
- Ctrl + t 交换光标处和之前的字符位置
- Alt + t 交换光标处和之前的单词位置
- Alt + N 提示输入指定字符后,重复显示该字符N次
- 注意:Alt组合快捷键经常和其它软件冲突
获得帮助
- 获取帮助的能力决定了技术的能力!
- 多层次的帮助
?whatis ?command --help ?man and info ?/usr/share/doc/ ?Red Hat documentation ?其它网站和搜索 whatis
- 显示命令的简短描述
- 使用数据库
- 刚安装后不可立即使用
- makewhatis | mandb制作数据库
- 使用示例:
??whatis cal 或 man –f cal man命令
- 提供命令帮助的文件
- 手册页存放在/usr/share/man
- 几乎每个命令都有man的“页面”
- man页面分组为不同的“章节”
- 统称为Linux手册
- man命令的配置文件:/etc/man.config | man_db.conf
??MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
- man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索OMMAND命令的手册页并显示
- 中文man需安装包man-pages-zh-CN
man 帮助
- 查看man手册页
? man [章节] keyword
- 列出所有帮助
? man –a keyword
- 搜索man手册
? man -k keyword 列出所有匹配的页面 ?使用 whatis 数据库
- 相当于whatis
? man –f keyword
- 打印man帮助文件的路径
? man –w [章节] keyword man命令
- man命令的操作方法:使用less命令实现
?space,^v,^f,^F: 向文件尾翻屏 ?b,^b: 向文件首部翻屏 ?d,^d: 向文件尾部翻半屏 ?u,^u: 向文件首部翻半屏 ?RETURN,^N,e,^E or j or ^J: 向文件尾部翻一行 ?y or ^Y or ^P or k or ^K:向文件首部翻一行 ?q: 退出 ?#:跳转至第#行 ?1G: 回到文件首部 ?G:翻至文件尾部 man搜索
- /KEYWORD:
??以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区 分字符大小写; ??n: 下一个 ??N:上一个
- ?KEYWORD:
??以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区 分字符大小写; ?? n: 跟搜索命令同方向,下一个 ?? N:跟搜索命令反方向,上一个 通过在线文档获取帮助
- 第三方应用官方文档
?http://httpd.apache.org ? http://www.nginx.org ? https://mariadb.com/kb/en ? https://dev.mysql.com/doc/ ? http://tomcat.apache.org ? http://www.python.org
- 通过发行版官方的文档光盘或网站可以获得
安装指南、部署指南、虚拟化指南等 红帽知识库和官方在线文档 ? http://kbase.redhat.com ? http://www.redhat.com/docs ? http://access.redhat.com ? https://help.ubuntu.com/lts/serverguide/index.html
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|