shell特性
tab键补全
在输入命令或目录是可以使用tab键自动补全
条件是输入的命令或目录是唯一的,如果不唯一,在需要再输入若干个字符。
连按两下tab键会把相关的命令或目录全部列出来
history
用于显示最近执行过的命令,使用时输入命令后回车
也可以加参数-c,清空历史记录
也可以使用! 序号,执行该序号下的命令
也可以使用! *,执行最近一次以 *开头的命令( *为字符串)
快捷键
Ctrl+c:结束正在运行的程序
Ctrl+l:清屏
Ctrl+a:光标回到这一行的开头
Ctrl+e:光标回到这一行的末尾
Ctrl+u:删除光标前面的内容
Ctrl+k:删除光标后面的内容
命令别名
可以用来给命令起别名,在下次使用命令时可以用别名来代替
使用格式:alias 新名称 ‘命令’
输入输出重定向
标准输入 0:默认从键盘输入,也可以从其他文件或命令中输入
标准输出 1:默认输出到屏幕上
标准错误 2:默认输出到屏幕上
标准输出输出到文件中:
命令 >文件名(清空原有的数据)
命令>>文件名(追加到原有数据的后面)
可以在>和>>前加上1,作用是一样的,也可以不写1
标准错误输出到文件中:
命令 2>文件名(清空原有的数据)
命令 2>>文件名(追加到原有数据的后面)
注意>和>>前面的2不能去掉,去掉之后就变成标准输出了
把标准输出和标准错误输入到同一个文件中:
命令 &>文件名(清空原有的数据)
命令 &>>文件名(追加到原有数据的后面)
命令 >文件名 2>&1(清空原有的数据)
命令 >>文件名 2>>&1(追加到原有数据的后面)
把标准输出和标准错误输入到不同的文件中:
命令 >文件名1 2>文件名2(清空原有的数据)
命令 >>文件名1 2>>文件名2(追加到原有数据的后面)
将文件作为命令的标准输入:
命令 < 文件
例:cat <test.txt 与cat test.txt作用一样
管道符 |
使用格式:命令1 | 命令2
作用是将命令1执行出来的结果作为命令2的标准输入
可以结合grep命令来过滤信息
也可以结合tee命令把结果输入到文件里的同时输出到终端上
例:cat /var/log/messages | tee test1.txt
零设备
/dev/zero:可以提供无限制的0来构建大文件,结合dd命令使用
使用格式:dd if=/dev/zero of=文件名 bs=文件块大小 count=块的个数
例:构建一个500MB的文件,由5块组成
dd if=/dev/zero of=test bs=100MB count=5
空设备
/dev/null:可以理解为一个黑洞,通常用来丢弃一些不必要的输出,在shell脚本编程中用的较多
例:yum install tree -y >/dev/null
命令通配符
*:代表若干字符
?:代表一个字符
[]:代表[ ]中的任意单个字符
[ [ : alpha:] ]:代表任意字母
[ [ : lower:] ]:代表任意小写字母
[ [ : upper:] ]:代表任意大写字母
[ [ : digital:] ]:代表所有数字
[ [ : alnum:] ]:代表任意字母加数字
[ [ : punct:] ]:代表标点符号