注意:本文所有命令均基于Centos7系统,其他linux发行版可能有所不同
1 命令历史(基础bash本身实现)
history n:显示历史中最近的n条命令
!!:调用上一条执行的命令
!$,ESC, . :调用上一条命令的最后一个参数
控制命令历史的环境变量:$HISTCONTROL
对变量赋值:export HISTCONTROL = new_value,取值如下:
> Ignoredups:忽略重复的命令,连续执行相同的命令才会视为重复
> Ignorespace:忽略命令收尾的空格
> Ignoreboth : 等同于前两个参数同时使用
2 命令补全
在终端中,输入部分命令后,按tab键系统会自动尝试补全该条命令(当命令候选列表中的元素仅有一个),如果有多个候选元素则显示所有以输入部分开头的命令
例如:当输入nan后输入tab后,系统会自动补全为nano,而输入ca后按下tab则会看到系统提示所有可能的命令列表
3 路径补全
类似于命令补全,当输入部分路径按下tab系统会自动补全完整路径
4 命令行展开
~:当前用户的主目录
~USERNAME:指定用户的主目录
{ }:代表一个用逗号分割的列表,并将其展开为多个路径,例如:
> /tmp/{a,b} = /tmp/a,/tmp/b,或者
> /tmp/{a,b}/ss = /tmp/a/ss,/tmp/b/ss,同时{}可以嵌套
> /tmp/{a/{b,c}} = /tmp/a/b, /tmp/a/c
5 命令的执行结果状态
Bash使用特殊变量$?保存最近一条命令的执行结果,其中0表示成功,1-255失败
程序执行有两类结果:
> 程序的返回值
> 程序的执行状态结果
6 命令别名
通过alias命令进行别名相关操作
alias:输出当前存储的所有别名
alias name = value :在当前shell进程中临时定义一个别名(退出后失效,此外在其他的终端中无效)
使自定义的别名永久有效
对于当前用户有效:修改主目录下的 .bashrc 文件,然后输入source .bashrc重载配置或者重新启动shell
对所有用户均有效:修改 /etc/.bashrc,然后仿照上条重载配置
NOTE: source 可以简写为 .
撤销别名:unalias [-a] alias_name,选项a代表删除全部别名
Note:当别名与原命令相同时,使用 \command 表示执行原命令,
例如系统默认cd命令会带有选项 i ,若想不使用别名则需要执行 \cd directory
7 glob——Bash中实现文件名通配
通配符:
> * :任意长度字符
> ? :任意单个非空白字符
> [ ] :表示一个匹配范围,例如:[ace]、[0-9A-Z] ,当使用小写字母时表示不区分大小写,而使用大写字母时表示仅能用大写字母
> ^ :表示与匹配条件相反的,例如 [^0-9] 表示匹配除了数字以外的字符
Note:可以使用专用的字符组合表示某些条件,例如 [:digital:] 表示数字,有兴趣的可以自行查阅
8 常用快捷键
注:^通常代表Ctrl键
> ^L:等同于clear,清除屏幕内容(伪清除)
> ^a:跳至命令开始处,等同于Home键
> ^e:跳至命令结束处,等同于End键
> ^c:取消命令执行
> ^k:删除光标所在处至末尾的所有内容
> &u:删除光标所在处至行首的所有内容