zoukankan      html  css  js  c++  java
  • 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 键命令补全功能也能够确定是否有这两个命令。

    既然我们说别名的优先级比命令高,那么命令执行时具体的顺序是什么呢?命令执行时的顺序是这样的:

    1. 第一顺位执行用绝对路径或相对路径执行的命令。
    2. 第二顺位执行别名。
    3. 第三顺位执行 Bash 的内部命令。
    4. 第四顺位执行按照 $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

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

  • 相关阅读:
    重构构建的平凡之路
    andriod CheckBox
    andriod 用户名和密码
    andriod ==和equals
    android布局--Android fill_parent、wrap_content和match_parent的区别
    Android 五大布局
    一个帖子学会Android开发四大组件
    Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
    andriod VideoView
    arcgis andriod 长按获得当前信息
  • 原文地址:https://www.cnblogs.com/fanlong0212/p/10270114.html
Copyright © 2011-2022 走看看