开发者学堂课程【Linux基本命令:Linux 基本命令—3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/584/detail/8066
Linux基本命令—3
内容介绍
一、字符集和编码
二、命令行扩展、被括起来的集合
三、tab 键
四、命令行历史
五、获取帮助
六、Whatis
七、命令帮助
八、命令 history
九、调用历史参数
linux 默认支持英语显示,默认为UTF-8编码表
查看系统支持的编码、语言:localectl list-locales
变为中文版:localectl set-locale LANG=zh_CN.utf8,修改完成后需注销重新登录。
一、字符集和编码
1. UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,可变长存储。使用1-4个字节表示一个字符,根据字符的不同变换长度。
编码规则如下:
(1)对于单个字节的字符,第一位设为0,后面的7位对应这个字符的 Jnicode 码。因此,对于英文中的0-127号字符,与ASCII码完全相同。这意味着 ASCII 码的文档可用 UTF-8编码打开
(2)对于需要使用 N 个字节来表示的字符(N >1),第一个字节的前位都设 为1第+1位设为0,剩余的 N-1个字节的前两位都设位1 0 剩下的 二进制位则使用这个字符的Unicode 码来填充
2. 编码转换和查询:
https://javawind.net/tools/native2asciijsp?action=transform
http://tool.oschina.net/encode
http://www.chi2ko.com/tool/CJK.htm
3.ASCIl 码:
计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为0。
4. Unicode:
用于表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode 是一个很大的集合,现在的规模可以容内100多万个符号。Unicode 仅仅只是一个字符集,规定了每个字符对应的二进注制代码,至于这个二进制代码如何存储则没有规定。
5. Unicode 编码方案:
UTF-8: 变长,1到4个字节
UTF-16: 变长,2或4个字节
UTF-32: 固定长度,4个字节
二、命令行扩展、被括起来的集合
1. 命令行扩展:$()或``
把一个命令的输出打印给另一个命令的参数
echo "This system's name is $(hostname)"
This system's name is server1.example.com
echo "i am `whoami`"
i am root
2. 括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5}结果为:file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000.20..2}
三、tab 键
1. 命令补全
内部命令: enable
外部命令: bash 根据 PATH 环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令。
用户给定的字符串只有一条惟一对应的命令,直接补全
否则,再次 Tab 会给出列表
2. 路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab给出列表
四、命令行历史
1. 保存你输入的命令历史。可以用它来重复执行命令
2. 登录 shell 时,会读取命令历史文件中记录下的命令~/.bash_ history
3. 登录进 shell 后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
4. 重复前一个命令,有4种方法
(1)重复前一个命令使用上方向键,并回车执行
(2)按!!并回车执行
(3)输入!1并回车执行
(4)按 Ctrl+p 并回车执行
5. !:0执行前一条命令(去参数)
6. Ctrl+n 显示当前历史中的下一条命令,但不执行
7. Ctrl+j 执行当前命令
8. !n 执行 history 命令输出对应序号n的命令
9. !-n 执行 history 历史中倒数第n个命令
10. !string 重复前一个以“string”开头的命令
11. !?string 重复前一个包含 string 的命令
12. !string:p 仅打印命令历史,而不执行
13. !$:p 打印输出!$(上一条命令的最后一个参数)的内容
14. !*:p 打印输出!(上一条命令的所有参数)的内容
15. ^string删除上一条命令中的第一个string
16. ^string1^string2 将上一条命令中的第一个 string1 替换为 string2
17. !:gs/string1/string2 将上一条命令中所有的 string1 都替换为 string2
18. 使用 up (向上)和 down (向下)键来上下浏览从前输入的命令
19. ctrl-r 来在命令历史中搜索命令
(reverse-i-search) `’:
20. Ctrl+g: 从历史搜索模式退出
21. 要重新调用前一个命令中最后一个参数
(1)>!$表示前一个命令中最后一个参数
(2)Esc.(点击Esc键后松开,然后点击. 键)
(3)Alt+.(按住Alt键的同时点击. 键)
五、获取帮助
1. 获取帮助的能力决定了技术的能力!
2. 多层次的帮助
whatis
command--help
man and info
/usr/share/doc/
Red Hat documentation
其它网站和搜索
六、Whatis
1. 显示命令的简短描述
2. 使用数据库
3. 刚安装后不可立即使用
4. makewhatis|mandb 制作数据库
5. 使用示例 :whatis cal 或 man-fcal
七、命令帮助
1. 内部命令: help COMMAND 或 man bash
2. 外部命令:
(1)COMMAND--help
COMMAND-h
(2)使用手册 (manual)
man COMMAND
(3)信息页
info COMMAND
(4)程序自身的帮助文档
README INSTALL ChangeLog
(5)程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
八、命令 history
1. history [-c] [-d offset] [n]
2. history-anrw [filename]
3. history-ps arg [arg...]
-c:清空命令历史
-d offset:删除历史中指定的第 offset 个命令
n:显示最近的n条历史
-a:追加本次会话新执行的命令历史列表至历史文件
-r:读历史文件附加到历史列表
-W:保存历史列表到指定的历史文件
-n:读历史文件中未读过的行到历史列表
-p:展开历史参数成多行,但不存在历史列表中
-S展开历史参数成一行,附加在历史列表后
九、调用历史参数
1. command!利用上一个命令的第一个参数做 cmd 的参数
2. command !$利用上一个命令的最后一个参数 做 cmd 的参数
3. command !* 利用上一个命令的全部参数做 cmd 的参数
4. command!:n 利用上一个命令的第 n 个参数做 cmd 的参数
5. command !n:^调用第 n 条命令的第一个参数
6. command!n:$调用第 n 条命令的最后一个参数
7. command !n:m 调用第 n 条命令的第 m 个参数
8. command!n:*调用第 n 条命令的所有参数