Shell alias给命令设置别名的实现方法

 更新时间:2021年01月25日 16:21:07   投稿:zx  
这篇文章主要介绍了Shell alias给命令设置别名的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

给命令设置别名,你可以把它当作命令的"小名",但是这样做有什么意义呢?

比如笔者刚接触 Linux 时,使用的编辑器是 Vi,但是现在 Vim 的功能明显比 Vi 的功能更加强大,所以现在流行的编辑器变成了 Vim。但是笔者已经习惯了输入 vi 命令,而不习惯输入 vim 命令,别看小小的一个"m"的区别,在执行命令时总觉得别扭,这时别名就可以起作用了。只要定义 vim 命令的别名为 vi,这样以后执行的 vi 命令实际上运行了的是 vim 命令。

命令格式:

[root@localhost ~]# alias
#查询命令别名
[root@1ocalhost ~] # alias 别名='原命令'
#设定命令别名

例如:

[root@localhost ~]# alias
#查询系统中已经定义好的别名
alias cp='cp -i'
alias l='ls -d .* --color=auto'
alias ll='ls -1 --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# alias vi='vim' #定义vim命令的别名是vi
[root@localhost ~]# alias
#重新查询别名
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -1 --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
#别名已经生效
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

大家需要注意一点,命令别名的优先级要高于命令本身。所以,一旦给 vim 命令设置了别名 vi,那么原始的 vi 命令就不能使用了。所以,除非你确定原命令是不需要的,否则别名不能和系统命令重名。再举个例子:

[root@localhost ~]# alias sto='/usr/local/apache2/bin/apachectl stop'
[root@localhost ~]# alias sta='/usr/local/apache2/bin/ apachectl start'

我们在配置和使用 apache 时,需要不断地重启 apache 服务。这时定义"sta"为 apache 启动命令的别名,"sto"为 apache 停止命令的别名,可以有效地加快 apache 服务的重启速度。

当然,前提是已经确定了系统中没有"sta"和"sto"命令,所以这两个别名不会覆盖系统命令。那么如何确定系统中没有"sta"和"sto"命令呢?还记得 whereis 和 which 命令吗?另外,使用 Tab 键命令补全功能也能够确定是否有这两个命令。

既然我们说别名的优先级比命令高,那么命令执行时具体的顺序是什么呢?命令执行时的顺序是这样的:
第一顺位执行用绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行 Bash 的内部命令。
第四顺位执行按照 $PATH 环境变量定义的目录査找的第一条命令。

别名就是这样简单,不过如果我们使用命令定义别名,那么这个别名只是临时生效,一旦注销或重启系统,这个别名就马上消失了。为了让这个别名永久生效,可以把别名写入环境变量配置文件 ~/.bashrc 中。命令如下:

[root@localhost ~】# vi /root/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi='vim'
alias sto='/usr/local/apache2/bin/apachectl stop' alias sta='/usr/local/apache2/bin/apachectl start'
#Source global definitions
if [ -f /etc/bashrc ];then
./etc/bashrc
fi

这样,这些别名就可以永久生效了。那么,环境变量配置文件又是什么呢?所谓环境变量配置文件,顾名思义,就是用来定义我们的操作环境的,别名当然也是操作环境,我们会在后续章节详解介绍这个文件的作用。

设定好的别名可以删除吗?只要执行 unalias命令 就可以方便地删除别名,命令如下:

[root@localhost ~]# unalias vi

当然,如果确定要删除别名,则也要删除环境变量配置文件中的相关项才可以。

到此这篇关于Shell alias给命令设置别名的实现方法的文章就介绍到这了,更多相关Shell alias命令设置别名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • crond构建linux定时任务及日志查看脚本详解

    crond构建linux定时任务及日志查看脚本详解

    这篇文章主要为大家介绍了crond构建linux定时任务及日志查看脚本详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Shell过滤器的具体使用

    Shell过滤器的具体使用

    这篇文章主要介绍了Shell过滤器的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • shell查找符号链接及其指向目标的方法介绍

    shell查找符号链接及其指向目标的方法介绍

    本文为大家介绍一些处理符号链接的实践方法,希望对大家编写shell脚本时带来一些帮助,有需要的朋友不妨参考下
    2013-02-02
  • 解决linux下openoffice word文件转PDF中文乱码的问题

    解决linux下openoffice word文件转PDF中文乱码的问题

    下面小编就为大家带来一篇解决linux下openoffice word文件转PDF中文乱码的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 最快捷登陆ssh 服务器的方法

    最快捷登陆ssh 服务器的方法

    这篇文章主要介绍了如果利用shell 脚本登陆,实现最快速登陆,需要的朋友可以参考下
    2013-11-11
  • Linux 命令expect使用详解

    Linux 命令expect使用详解

    expect是由Don Libes基于Tcl语言开发的,是一种脚本语言,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,本文给大家介绍Linux 命令expect使用详解,感兴趣的朋友一起看看吧
    2023-11-11
  • shell脚本字符串和数组的使用操作方法

    shell脚本字符串和数组的使用操作方法

    这篇文章主要介绍了shell脚本字符串和数组的使用操作方法,在文中给大家提到shell将字符串分隔成数组的方法,需要的朋友可以参考下
    2019-06-06
  • Linux压缩及解压缩命令tar|zip|rar|xz操作方法

    Linux压缩及解压缩命令tar|zip|rar|xz操作方法

    不管Linux还是其他操作系统,数据的压缩和解压缩操作是经常用到的,在windows平台文件的相关操作被傻瓜化了,到了Linux平台让好多小伙伴感觉有点束手无策,本文为大家讲解Linux的常用压缩包操作,格式包含tar.gz, .tgz, .tar.bz2, .zip, .rar, .tar.xz,感兴趣的朋友一起看看吧
    2024-02-02
  • 神奇的shell命令行输入与输出功能介绍

    神奇的shell命令行输入与输出功能介绍

    命令行还是比较常用的,于是我研究了一下shell命令行,在这里拿出来和大家分享一下,希望对大家有用
    2013-02-02
  • Shell $[]对整数进行数学运算实现

    Shell $[]对整数进行数学运算实现

    本文主要介绍了Shell $[]对整数进行数学运算实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论