命令的选项参数太复杂记不住?使用 alias 给命令定义别名
2022-05-06 本文已影响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
-
别设太多,忘了就哭唧唧叭,不过也可以通过直接输入
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'
-
如果只想查看一个单独命令是否设置了别名,那就用
alias
命令加参数;$ alias ls alias ls='ls --color=auto'
-
如何删除一个别名呢?可以使用
unalias
命令;我不想演示这个嘿嘿嘿
-
如果想删除所有别名,直接使用
unalias
命令的-a
选项即可,谨慎使用!我很谨慎,所以我不演示!
-
如何执行命令本身而非别名?
如果定义的别名恰好和某个命令重名了,那就好惨嗷,Shell 中执行的将永远都是别名。那么,如果想执行真正的那个命令而非别名,该怎么办呢?
- 使用命令的绝对路径;
- 切换到命令所在的目录,执行./command;
- 在命令前使用反斜线(\)。
祝我早日脱菜!