Linux Shell:alias命令
 
alias命令是Linux和Unix系统中Shell的内置命令,用于创建命令的简短名称,即别名。这些别名通常用来缩短长命令或为常用命令序列创建便捷的缩写,从而提高工作效率。别名在当前Shell会话中有效,除非它们被添加到Shell的配置文件中,如.bashrc或.zshrc,这样每次启动新的Shell会话时都会自动定义这些别名。

alias命令的基本用法
 
创建别名
要创建一个新的别名,可以使用如下的语法:
alias name='command'
这里,name是新创建的别名,command是别名指向的命令或命令序列。例如,如果你经常使用ls -l来查看目录的详细列表,可以创建一个别名ll:
alias ll='ls -l'
之后,每当你输入ll并按下回车键,Shell就会执行ls -l命令。
当创建一个新的别名时,如果该别名已经存在,新的定义将覆盖旧的定义。这意味着最后一次对某个别名的定义将是有效的,之前的定义会被忽略。这可以用于更新已有别名的命令或修正之前别名的错误。
查看现有的别名
要查看当前Shell会话中定义的所有别名,可以不带任何参数地执行alias命令:
alias
这将列出所有的别名及其对应的命令。
删除别名
要删除已经创建的别名,可以使用unalias命令,其语法如下:
unalias name
这里,name是要删除的别名。例如,要删除上面创建的ll别名,可以执行:
unalias ll
请注意,unalias命令仅在当前Shell会话中删除别名。重新开启一个新的Shell会话后,这个别名又会生效,除非你在配置文件中永久删除它。
在配置文件中设置别名
在Linux系统中,当启动一个Shell时,系统会自动执行一系列配置文件。这些配置文件负责初始化用户环境,包括设置环境变量、别名、函数等。对于Bash Shell,最常见的配置文件包括/etc/profile、~/.bash_profile、~/.bash_login、~/.profile,以及~/.bashrc。
- /etc/profile:这是系统级别的全局配置文件,对所有用户有效。它通常用于设置系统环境变量和启动脚本。
- ~/.bash_profile、- ~/.bash_login和- ~/.profile:这些是用户级别的登录Shell配置文件,当用户登录时执行。这些文件可以用来个性化用户的Shell环境。如果- ~/.bash_profile存在,则- ~/.bash_login和- ~/.profile通常被忽略。
- ~/.bashrc:对于非登录Shell(如打开一个新的终端会话),- ~/.bashrc是最常用的配置文件。它用于配置特定于Shell会话的环境,如别名和函数。
为了在每次打开新的Shell时自动加载别名,通常建议将alias命令添加到~/.bashrc(对于Bash用户)或相应的配置文件中(如.zshrc对于Zsh用户)。这样,每当启动一个新的Shell会话时,这些别名就会自动定义。
要让别名在每次打开新的Shell时自动生效,可以把alias命令添加到用户的Shell配置文件中,如.bashrc(对于Bash用户)或.zshrc(对于Zsh用户)。例如,要让ll别名在每次启动Bash时自动生效,可以在~/.bashrc文件的末尾添加以下行:
alias ll='ls -l'
修改配置文件后,为了让更改立即生效,可以执行以下命令来重新加载配置文件:
source ~/.bashrc
或者,简单地关闭并重新打开终端。
绕过别名
如果你需要临时绕过别名执行原始命令,可以在命令前加上反斜线\。例如,如果ls被定义为别名ls --color=auto,你可以通过输入\ls来绕过这个别名,直接执行原始的ls命令。这是因为反斜线告诉Shell忽略紧随其后的命令的任何别名定义,直接执行该命令。
假设你定义了一个grep的别名来包含一些常用的选项,例如:
alias grep='grep --color=auto'
这个别名让grep命令自动带上--color=auto选项,以彩色高亮显示匹配结果。然而,如果在某个特定情况下,你想要执行原始的grep命令而不使用任何别名定义的额外选项,你可以通过在grep前加上反斜线来绕过别名:
\grep 'pattern' file
这样,Shell会忽略grep的别名定义,直接执行原始的grep命令。这种方法特别有用,当你需要临时取消别名的效果而不想永久更改或删除已有的别名定义。
参考链接
- Bash手册:https://www.gnu.org/software/bash/manual/bash.html
- Linux命令手册:https://man7.org/linux/man-pages/