alias

    主要用途

    • 简化较长的命令。
    • 定义一个或多个别名。
    • 修改一个或多个已定义别名的值。
    • 显示全部已定义的别名。
    1. name(可选):指定要(定义、修改、显示)的别名。
    2. value(可选):别名的值。

    alias 返回 true 除非您要显示的别名未定义。

    例子

    直接在shell里设定的命令别名,在终端关闭或者系统重新启动后都会失效,如何才能永久有效呢?

    使用编辑器打开~/.bashrc,在文件中加入别名设置,如:alias rm=’rm -i’,保存后执行source ~/.bashrc,这样就可以永久保存命令的别名了。

    错误用法

    • 要显示的别名未定义。
    • 当您定义(修改)别名的值的时候,由于值的字符串有空格但您没有用单引号扩起,那么会导致严重的问题:
    1. # 更具有迷惑性的例子
    2. # 为方便演示,删除全部别名
    3. unalias -a
    4. # 仍然没有用单引号括起
    5. # 执行命令后看起来没有报错
    6. # 使用alias查看全部别名会发现运行结果如下:
    7. # alias --color=never
    8. # alias处理时将它们看成了两组

    A:正常执行就是了,alias不会因为有一个未定义的别名就结束对剩余参数的执行。

    Q:如果我这么定义alias cd='ls' ls='cd',会有什么后果?

    A:运行cd依然会切换目录,运行ls依然会列出文件夹的内容;不要这样定义。

    1. 执行脚本时请注意:
      • 使用 source 命令执行的bash脚本如果执行了 aliasunalias 命令,那么有可能会对终端环境的别名设置产生影响;终端环境的别名设置也可能改变运行结果;
      • 通过 sh 方式调用的 bash 脚本或直接运行当前用户有执行权限的脚本不受终端环境的别名影响。
    2. 删除别名,请查看unalias命令。
    3. 建议您不要对 mv cp rm 等命令的别名设置危险的 -f 选项,比如 alias rm='rm -f'
    4. 需要注意别名是否和其他命令有冲突的情况。
    5. 该命令是 bash 内建命令,相关的帮助信息请查看 命令。