在 shell 中,我们可能经常需要输入一些比较长的命令,如果每次都手动输入不免有点麻烦,特别当这些命令大体相同或者一模一样时,更是不想手动输入。当然我们可以通直接调用或者进行部分修改历史记录的方式来处理这类问题,但是对于这些长命令修改,多少还是有些麻烦的。
这里我们通过给那些较长命令起一个别名的方式来减少键盘的输入或者命令的修改,设置别名有以下两种方式:
方法一: 调用 alias 命令
命令格式为:alias [ alias-name='original-command']。
其中 alias-name 为用户给命令起的别名,original-command 为原来的命令及参数。需要注意的是,由于 Bash 是以空格或者回车来识别原来的命令的,所以如果不使用引号就可能导致 Bash 只截取第一个字,从而出现错误。例如你输入命令:alias ll=ls -l ,执行就会报错。如果 alias 命令后面不使用任何参数,则显示当前正在使用的别名及其被别名化的命令。
案例:比如要经常进入某个目录,而且目录很深,比如 websphere 的日志目录
$ alias waslog='cd /home/admin/WebSphere/AppServer/logs/server1/'
之后只要输入 waslog 就可以进入到 websphere 的日志目录下了,很方便不是嘛。但是这种方式为命令取的别名只在该次登录期间有效,下次登录后别名就不存在了,那如何使得别名在每次登录都可以使用的呢?请看方法二!
方法二:将 alias 命令写到文件中
当我们要从某个文件中查找某个关键字的时候,在我们通常会使用 grep 命令去查询,对于查询的结果,我们可能想让结果中的关键字显色,并且显示其所在的行号,可以使用以下命令实现:
$ dmesg | grep -n --color=auto 'eth'
# dmesg 列出系统核心讯息,-n 显示行号,--color=auto 设置关键字显色。
工作中我们可能遇到以下情况,比如我们每次使用 grep 进行查询的时候,都想让它显示行号,并且让关键字显色,但是如果每次都得要加上 -n --color=auto 又显得很麻烦,使用 alias 命令的话,下次登录又得重新设置,这种情况下我们可以将 [ alias grep='grep -n --color=auto' ] 命令添加到 ~/.bashrc 文件中,再以 [ source ~/.bashrc ] 来使其立即生效,这样以后每次登录使用 grep 命令查询时都会按照配置那样显示了。