10. bash 命令别名


命令别名是一个文本替换另一个文本的简单字符串,可用作简化命令的一个单词。

可以使用以下语法在命令行、.bash_profile.bashrc中定义别名:

alias name='unix command with options'

  • alias - shell 内建命令。
  • name – 任何用户定义的别名名称。
  • 'unix command with options' 代表任何 unix 命令,其中可能包括参数选项。

这意味着name将是该命令的别名。 每当输入name时,bash 都会用其替换相应带选项的命令。

等号两边不需要空格。 如果替换的字符串包含多个单词,则需要在命令周围加引号。

从命令行执行alias命令会创建一个临时别名,也就是说,它在退出 shell 之前一直可用。 可以将别名存储在 bash 启动文件中使其成为永久别名。

下面显示了一些有用的 bash 别名示例,您可以在 bash 启动文件中使用它们。

vim 中打开最后修改的文件:

alias Vim="vim `ls -t | head -1`"

查找前 5 个大文件:

alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"

过滤 bash 进程

alias psg="ps -aux | grep bash"

用带有指示符(*/=>@|)和颜色的ls列出隐藏文件:

alias ls='ls -aF --color=always'

长格式列表:

alias ll='ls -l'

清除所有历史记录和屏幕:

alias hcl='history -c; clear'

使一些基本命令产生交互且详细:

alias cp="cp -iv"
alias rm="rm -i"
alias mv="mv -iv"
alias grep="grep -i"

退出此命令 shell:

alias x="exit"

清屏并列出文件:

alias cls='clear;ls'

文件系统磁盘空间使用情况:

alias dus='df -h'

导航到不同的目录:

alias ..='cd ..'
alias 2..='cd ../..'

执行不带参数的alias以查看 shell 中设置的别名列表。

$ alias
alias ..='cd ..'
alias ll='ls -l'
..

要查看特定别名,请输入命令格式alias <aliasname>,如下所示。

$ alias ll
alias ll='ls -l'

可以使用alias来重新定义命令; 这对于在执行破坏性复制操作之前需要确认等情况很有用:

$ alias cp="cp -iv"

注意:shell函数更快。 别名是在函数之后查找的,因此解析速度较慢。 虽然别名更容易理解,但几乎在所有用途上,shell 函数都优于别名。用别名或函数替换标准命令时应该非常小心。

如果您想调用本机命令而不是别名,则必须在其前面键入\进行 转义

\cp * /backup/files/

unalias是一个内置的 shell 命令,用于删除别名。 要删除特定别名,请将其名称指定为unalias命令的参数。

删除hcl的别名(如果您之前定义过)

$ hcl [history and screen are cleared]

$ unalias hcl
$ hcl
-bash: hcl: command not found

unalias-a选项一起删除所有别名。

$ unalias -a
$ alias