一、历史命令与命令补全
1、历史命令
- 命令语法:
history [选项][历史命令保存文件]
- 每个用户历史命令分开保存
- 历史命令保存文件,需要每次登陆退出之后才会从内存里写到历史命令保存文件里,不过内存里是可以看到的,不是没存进去,用-w可以不用等退出,直接写入
- 默认保存1000条,可以在配置文件/etc/profile中进行修改
- 选项
选项 |
作用 |
-c |
清空历史命令(连带内存和文件一般不推荐清空 |
-w |
把缓存中的历史命令写入历史命令保存文件~/.bash_history |
2、历史命令的调用
- 使用上下箭头调用以前的历史命令
- 使用“!n”重复执行第n条历史命令 在history里查看
- 使用“!!”重复执行上一条命令
- 使用“!字串”重复执行最后一条以该字串开头的命令
3、Tab键补全
- 按一下如果只有一个会直接显示,如果有多个再按一下,会显示所有的命令/文件
二、命令别名与常用快捷键
1、命令别名
- 给命令起一个小名
- 设定命令别名
- 查询命令别名
- 命令执行时顺序
- 第一顺位执行用绝对路径或相对路径执行的命令
- 第二顺位执行别名
- 第三顺位执行Bash的内部命令
- 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
- 让别名永久生效:写入相应的配置文件:
vi /root/.bashrc
- 删除别名:
unalias 别名
2、快捷键
快捷键 |
作用 |
ctrl+A |
把光标移动到命令行开头。 |
ctrl+E |
把光标移动到命令行结尾 |
ctrl+C |
强制终止当前的命令 |
ctrl+L |
清屏,相当于clear命令 |
ctrl+U |
删除或剪切之前的命令(打了一行很长的错误命令,可以用这个删除 |
ctrl+K |
删除或剪切光标之后的内容 |
ctrl+Y |
粘贴ctrl+U或ctrl+K剪切的内容 |
ctrl+R |
在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索 |
ctrl+D |
退出当前终端 |
ctrl+Z |
暂停,并放入后台。 |
ctrl+S |
暂停屏幕输出 |
ctrl+Q |
恢复屏幕输出 |
三、输入输出重定向
1、标准输入输出
设备 |
设备文件名 |
文件描述符 |
类型 |
键盘 |
/dev/stdin |
0 |
标准输入 |
显示器 |
/dev/sdtout |
1 |
标准输出 |
显示器 |
/dev/sdterr |
2 |
标准错误输出 |
2、输出重定向
类型 |
符号 |
作用 |
标准输出重定向 |
命令>文件 |
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中 |
|
命令>>文件 |
以追加的方式,把命令的正确输出输出到指定的文件或设备当中 |
标准错误输出重定向 |
错误命令 2>文件 |
以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 |
|
错误命令 2>> 文件 |
以追加的方式,把命令的错误输出输出到指定的文件或设备当中 |
正确输出和错误输出同时保存
更常用
命令 |
作用 |
命令 > 文件 2>&1 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
命令 >> 文件 2>&1 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中 |
命令 &>文件 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
命令 &>> 文件 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中 |
命令>>文件1 2>>文件2 |
把正确的输出追加到文件1中,把错误的输出追加到文件2中 |
3、输入重定向(用的很少
- 命令语法:
wc[选项][文件名]
- 用法:
wc < 文件名
查看文件内的统计数
选项 |
作用 |
-c |
统计字节数 |
-w |
统计单词数 |
-l |
统计行数 |
四、多命令顺序执行与管道符
1、多命令顺序执行
多命令执行符 |
格式 |
作用 |
; |
命令1; 命令2 |
多个命令顺序执行,命令之间没有任何逻辑联系 |
&& |
命令1&&命令2 |
逻辑与,当命令1正确执行,命令2才会执行。当命令1执行不正确的时候,命令2不会执行 |
|
|
|
2、;前面命令错了,后面当命令还会执行`
3、管道符
- 命令语法:
命令1 | 命令2
- 命令1的正确输出作为命令2的操作对象
五、通配符与其他特殊符号
1、通配符
通配符 |
作用 |
? |
匹配一个任意字符 |
* |
匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[] |
匹配中括号中任意一个字符( [abc]代表一定匹配一个字符,或者a或者b或者c |
[-] |
匹配中括号中任意一个字符,-代表一个范围,[a-z]代表一个小写字母 |
[ ^ ] |
逻辑非,表示匹配不是中括号中的一个字符,[^0-9 ]代表匹配一个不是数字的字符 |
2、其他特殊符号
符号 |
作用 |
‘ ’ |
单引号。在单引号中所有的特殊符号,都没有特殊含义 |
“ “ |
双引号。 |
`` |
反引号。反引号括起来的内容是系统命令,bash中会限制性它,和$()作用一样 |
$() |
和反引号作用一样,用来引用系统命令 |
# |
在Shell脚本中,#开头的行代表注释 |
$ |
用于调用变量的值,如果需要调用name的值,就符号加name |
\ |
转义符,\后的特殊符号将失去特殊含义、$就是输出后面的字符 |
双引号中的特殊符号都没有特殊含义,但是$:调用变量的值,`引用命令,:转义符,是例外,仍有特殊含义