美文网首页
命令的选项参数太复杂记不住?使用 alias 给命令定义别名

命令的选项参数太复杂记不住?使用 alias 给命令定义别名

作者: 一只小蛮要 | 来源:发表于2022-05-06 13:28 被阅读0次

    俺在之前发了tree的平替,它不是超级长嘛,这不有位超级无敌帅气的大善人告诉我用alias设置个别名就好啦,这不来交作业了!

    首先alias是什么呢?

    alias命令用于设置命令的别名,也可以是命令带选项参数,利用它我们就可以不必记住太多复杂的选项参数,只需将它们设置成别名就好啦!

    若仅输入alias,则可列出目前所有的别名设置。

    语法:alias [别名]=[指令名称]

    理论存在,实践开始!

    首先,
    准备好定义别名的命令,咱这里就以tree为例,详见这里

    alias treee="find . -print | sed -e 's;[^/]*/;|**;g;s;**|; |;g'"
    

    要注意的是:

    • alias的效力仅及于该次登入的操作。若要每次登入即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定命令的别名。
    • 等号(=)前后不能有空格,否则就会出现语法错误了。
    • 如果 value 中有空格或 Tab,那 value 一定要用引号(单、双引号都行)括起来。

    输入这行你会发现,


    赏心悦目!

    爽耶!

    不过现在这样只是暂时的,就像是一盘散沙,风一吹就散了。
    如果系统重启,那我们刚刚设置的别名就失效啦!
    所以我们为了方便使用,让它永久有效,就需要把它写到.bashrc文件里面。
    然后就 always and forever 啦!

    小tips

    1. 别设太多,忘了就哭唧唧叭,不过也可以通过直接输入alias命令,不加任何选项和参数,查看所有已设置的别名

      $ alias 
      alias egrep='egrep --color=auto'
      alias fgrep='fgrep --color=auto'
      alias grep='grep --color=auto'
      alias l.='ls -d .* --color=auto'
      alias ll='ls -l --color=auto'
      alias ls='ls --color=auto'
      alias perlll='eval `perl -Mlocal::lib`'
      alias treee='find . -print | sed -e '\''s;[^/]*/;|;g;s;|; |;g'\'''
      alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
      
    2. 如果只想查看一个单独命令是否设置了别名,那就用alias命令加参数;

      $ alias ls
      alias ls='ls --color=auto'
      
    3. 如何删除一个别名呢?可以使用unalias命令;

      我不想演示这个嘿嘿嘿
      
    4. 如果想删除所有别名,直接使用unalias命令的-a选项即可,谨慎使用!

      我很谨慎,所以我不演示!
      
    5. 如何执行命令本身而非别名?

      如果定义的别名恰好和某个命令重名了,那就好惨嗷,Shell 中执行的将永远都是别名。那么,如果想执行真正的那个命令而非别名,该怎么办呢?

      1. 使用命令的绝对路径;
      2. 切换到命令所在的目录,执行./command;
      3. 在命令前使用反斜线(\)。

    祝我早日脱菜!

    相关文章

      网友评论

          本文标题:命令的选项参数太复杂记不住?使用 alias 给命令定义别名

          本文链接:https://www.haomeiwen.com/subject/jyjzyrtx.html