命令别名
在 Linux 中,可能有相当长的时间我们都要跟 bash 打交道,也就是说我们需要在 bash 上键入大量的命令。但是命令加上选项参数可能会变得很长,此时可能就需要将相同的部分合并为一个命令,再加上后方特异性的部分,从而形成一个完整的命令。而合并的命令就被称作命令别名。
命令别名的命令也很简单:
alias new_cmd='old_cmd'
也就是说通过上边的命令就能够将又臭又长的 "old_cmd" 给简写为 “new_cmd”。
比如当前的工作路径中存在一个可执行文件 exe,如果想要在任何地方都能够对该文件进行调用,就可以使用命令:
alias exe="${PWD}/exe"
此时在任何目录下输入 exe 都会调用该文件。
其实平常使用的很多命令都是采用了命令别名的形式:
wood@ubuntu:~$ type -a ll
ll is aliased to `ls -alF'
wood@ubuntu:~$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
上面表示平常使用的 ll 和 ls 命令都是采用了命令别名的形式。
如果需要撤销命令别名的设置,则使用:
unalias cmd
历史命令
在 bash 中,我们通常会使用上下方向键来选择曾经执行过的命令,这就是 bash 中的历史命令功能。
但同时,我们不仅仅能够使用上下方向键来选择命令,还能够使用命令 history,命令形式为:
history [n]
history [-c]
history [-raw] histfiles
参数含义为:
- n:数字,表示列出最近的n条命令
- -c:将目前的 shell 中的所有 history 内容清空
- -a:将目前新增的 history 命令新增到 histfiles 中,如果没有加 histfiles,则默认写入 ~/.bash_history
- -r:将 histfiles 的内容读到目前这个 shell 的 history 记录中
- -w:将目前的 history 内容写入 histfiles中
对于历史命令,通常情况下,当打开 bash 后,系统会自动从 home 目录中的 ~/.bash_history 读取历史命令。其中该文件中记录历史命令条目个数的多少取决于 HISTFILESIZE 值。
在历史命令中,还存在以 ! 卡头的特殊命令:
!number // 执行第几条命令
!command // 从最近的命令开始往上查找开头为 command 的命令,并执行
!! // 执行上一个命令
当同时使用多个 bash 的时候,历史命令的保存则与 bash 的注销也可以说是关闭有关,因为 ~/.bash_history 文件只有当 bash 被注销时才会被更新。