Bash shell 特点总结
自学Linux的过程中做了一点小总结,因此写出来和大家分享一下,希望能共同进步!
Bash shell的特点:
1、 命令的自动补齐:Tab键
2、 命令的历史记忆功能:上下键;!+数字可以自动找出在history中的相应命令并且执行;!+string可以自动找到最近一个以string开头的命令并且执行;!$指的是上一个命令的最后一个参数;!!指的是上一个命令,因为在脚本中不能进行翻页,所有常作为脚本命令执行,ctrl+R可以搜索历史命令。
3、 别名功能:alias可以查看别名;unalias cp取消别名;~username/.bashrc可以进行永久别名的设置;\cp –rf /etc/hosts表示忽略别名
4、 快捷键:^R搜索历史命令;^D登出系统;^A将光标移到命令开始;^E将光标移到命令结尾;^K将光标移到中间删除后半部命令;^U将光标移到中间删除前部分命令;^Y撤销上个操作
5、 前后台作业控制 :命令之后加一个&表示将工作提交到后台执行;命令前加一个nohup可以让该命令在终端关闭之后还可以执行;^C杀死前台正在运行的任务;^Z,将前台工作扔到后台去执行;bg展示后台正在运行的工作,也可以用jobs;fg表示将后台运行的工作调到前台运行;kill %+数字表示杀死后台某一个作业
6、 输入输出重定向:0表示标准输入;1表示标准输出;2表示标准错误,也就是错误输出;>表示写入某一个文件,>>表示追加写入某一个文件;2>&1:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1,即和1重定向的文件系统上的位置是一样的; cat << EOF > file:EOF是一个从标准输入传递命令给cat的标志,执行结束的命令输出到file文件中保存
7、 Tee管道,相当于一个三通,可以在特定地方截取管道命令的输出信息。
管道文件不同于常用文件,管道文件就跟水一样是一个动态的文件,每个时间点打开管道文件查看都能看到不一样的东西,而常用文件只要不进行更改都是一样的内容,另外管道文件都遵循一个原则:先进先出后进后出,顾名思义就是先被管道接受的东西首先被记录。
另:
关于命名管道与匿名管道的区别:创建命名管道:mkfifo +管道名字
8、 命令排序:
不具备逻辑判断能力:分号
具备逻辑判断能力:&& 和 ||
注意:
Command & 后台执行
Command &>/dev/null 混合重定向
Command1 && Command2 命令排序,具备逻辑判断能力
9、 shell通配符(元字符,即表示的不是本意)
*匹配任意多个字符
?匹配任意一个字符
[]表示匹配括号内的任意一个字符:[abc]表示匹配abc中的任意一个,而[^abc]表示除了abc之外的任意一个字符。
(command)在子shell中执行命令
{}将几个元素括起来表示一个集合,可以用来批量创建和删除文件
\ 转义字符,让元字符回归本意