Linux的alias命令,可以给一些命令设置别名,利用它可以不必记太多复杂的选项,只需将这些选项设置成别名就好。
一、设置别名
一般为了别名可以终端启动后永久生效,所以设置在.bashrc中,设置别名示例:
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias l.='ls -d .*'
alias ll='ls -l'
需要注意:
1、等号(=)前后不能有空格,否则就会出现语法错误;
2、如果值中有空格或tab,则值一定要使用引号(单、双引号都行)括起来;
3、如果值是被双引号括起来的,那么值中所有的以$开始的字符串都会被当成环境变量处理,转成环境变量对应的值,如果没找到同名的环境变量,则该以$开始的字符串会被剔除;
4、如果值是被单引号括起来的,那么值中所有的以$开始的字符串不作任何处理,在执行这个别名时,转成环境变量对应的值,如果没找到同名的环境变量,则该以$开始的字符串会被剔除;
二、查看所有别名
alias
三、查看指定别名
alias ll
四、取消别名
unalias ll
五、别名和原始命令的优先级
如果别名和已有的原始命令同名,那么执行这个命令时优先使用的是别名。但有时需要执行原始的命令而非别名,有三种方法:
1、使用命令的绝对路径;
2、切换到命令所在的目录,执行./xxx;
3、在命令前使用反斜线(\);
六、在Shell脚本中使用别名
shell有交互式与非交互式两种工作模式。我们日常使用shell输入命令得到结果的方式是交互式的方式,而shell脚本是非交互式方式。在交互式模式下,alias别名功能默认是打开的;而在非交互式模式下alias别名功能默认是关闭的,并且不会读取/etc/.profile以及.bashrc,所以如果想在shell脚本中使用别名,需要:
1、使用shopt开启别名设置expand_aliases,开启时需要在shell脚本中开启,而不能直接在终端输入命令开启;
2、让shell脚本执行时,读取.profile以及.bashrc配置,有三种方式都可以实现:
①shell脚本第一行的解释器加上参数--login,使其成为login shell,login shell会读取/etc/.profile及.bashrc;
②shell脚本第一行的解释器加上参数-i,使其成为交互式shell;
③shell脚本内容中加入source ~/.bashrc,读取.bashrc(别名定义所在的配置文件);