1:记录历史命令
命令 | 说明 | 备注 |
---|---|---|
!! | 执行上一条命令 | |
!n | 执行历史中的第n调命令 | |
! | 执行命令历史中最近一次以字符串开头的命令 如 !pw 可能会是执行pwd |
2:指令个文件不全命令
单个tab补全,双击显示所有重复开头的文件
3:别名
命令 | 说明 | 备注 |
---|---|---|
alias | 设置别名 | alias up='cd ../' |
unalias | 取消别名 |
4:重定向
命令 | 说明 | 备注 |
---|---|---|
> | 输出重定向 | |
< | 输入重定向 | |
2> | 错误重定向 | |
>> | 追加重定向 | |
> 2>&1 | 正确,错误混合追加 | |
&> | 正确,错误合并追加— | 同> 2>&1 |
5:管道符 |
1)前一个命令的输出作为第二个命令的输入 command1 | command2
操作示例
注:管道连接起来的命令实际上并不会一个一个的顺序执行,系统会同时运行这些命令,将他们连接起来,在第一个命令输出之后,输出会被立刻送往第二个命令
6:特殊字符
命令 | 说明 | 备注 |
---|---|---|
evn | 查看系统变量 | |
set | 查看系统和用户定义的变量 | |
export | 变量的声明 在子shell中可以使用 | |
* | 代表零个和多个任意字符 | ls *.sh |
? | 仅代表一个任意字符 | |
# | 注释说明 | |
#! | 特殊的注释形式 | 告诉系统同一行上紧跟在她后面的那个参数是用来执行本文件的程序 |
\ | 脱意字符,将后面的特殊符号(例如”*” )还原为普通字符 | |
exit | 确保程序能够返回一个有意义的退出码 | exit n命令是脚本程序已退出码n结束运行,0表示成功 |
file filename | 查看文件类型 |
6.1:exit
确保程序能够返回一个有意义的退出码 系统提供了一些可参考状态码;如列表所示:
状态吗 | 说明 | 备注 |
---|---|---|
0 | 命令成功结束 | |
1 | 通用未知错误 | |
2 | 吴用shell命令 | |
126 | 命令不可执行 | |
127 | 没有找到命令 | |
128 | 无效退出参数 | |
130 | 命令通过Ctrl+c结束 | |
255 | 退出状态码越界 |
注:
- 在命令结束执行后,可以使用echo $?命令来查看命令结束的状态码 ,例如 ```
zhangshuisheng:shell zhangshuisheng$ scdscs
-bash: scdscs: command not found
zhangshuisheng:shell zhangshuisheng$ echo $?
127 (即:没有找到命令)
2. 在脚本文件中,exit允许来改变脚本执退出的状态码
####6.2:cut
用来截取某一个字段 cut -d '分隔字符' [-cf] n 这里的n是数字
参数|说明|备注
----|---|----
-d |后面跟分隔字符,分隔字符要用单引号括起来|
-c | 后面接的是第几个字符 |
-f | 后面接的是第几个区块 |
#### 6.3:sort
用来排序 sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2
参数|说明|备注
----|---|----
-t 分隔符 |作用跟cut的-d一个意思|
-n | 使用纯数字排序 |
-r | 反向排序 |
-u | 去重复 |
>注:-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1即对n1字段排序
>(1)如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
>(2)-t 后面跟分隔符,-k后面跟数字,表示对第几个区域的字符串排序,-n 则表示使用纯数字排序
####6.4:wc
用于统计文档的行数、字符数、词数,常用的选项为:
参数|说明|备注
----|---|----
-l |统计行数|
-m |统计字符数|
-w |统计词数|
>注:如三个一起用显示顺序保持行,词,字
zhangshengdeMBP:shellexercis Bruce$ wc -wlm 3.sh
17 43 215 3.sh
zhangshengdeMBP:shellexercis Bruce$ wc -mlw 3.sh
17 43 215 3.sh
####6.5:uniq
去重复的行,最常用的参数选项:-c 使用前提是先使用sort给内容先排序
(1) sort number.txt |uniq
111
333
444
555
666
777
888
999
(2)sort number.txt |uniq -c 去重并显示每一项的重复次数
2 111
2 333
2 444
2 555
1 666
1 777
2 888
1 999
####6.6:tee
类似与重定向 “>”, 但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。
(1)echo "tee is a usable order" |tee tee.txt
tee is a usable order
####6.7:split
切割文档
参数|说明|备注
----|---|----
-b | 依据大小来分割文档,单位为byte| split -b 20 tee.txt
-l | 依据行来分割文档 |split -l 1 number.txt
####6.8:awk
处理文本文件语言
参数|说明|备注
----|---|----
-F fs or --field-separator fs|指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:|
-v var=value or --asign var=value | 赋值一个用户定义变量|
-f scripfile or --file script file | 从脚本文件中读取awk命令|
网友评论