linux命令别名
我们知道在早期的 DOS 年代,清除屏幕上的信息可以使用 cls 来清除,但是在 Linux 里面, 我们
则是使用 clear 来清除画面的。那么可否让 cls 等于 clear 呢?可以啊!用啥方法? link file 还是
什么的?别急!底下我们介绍不用 link file 的命令别名来达成。
alias显示和设置命令别名。
我们通过type ls发现,ls是一条命令别名,真正的命令其实是'ls --color=auto',也即是说执行ls就相当于执行'ls --color=auto'命令。
可通过alias命令查看系统中所有的命令别名:
unalias取消命令别名。
使用unalias NAME可以取消已定义的命令别名:
另外,命令别名的设定还可以取代既有的命令喔!举例来说,我们知道 root 可以移除 (rm) 任何数 据!所以当你以 root 的身份在进行工作时,需要特别小心, 但是总有失手的时候,那么 rm 提供 了一个选项来让我们确认是否要移除该文件,那就是 -i 这个选项!所以,你可以这样做:
例题:
DOS 年代,列出目录与文件就是 dir ,而清除屏幕就是 cls ,那么如果我想要在 linux 里面也使用相同的 命令呢?
答:
很简单,透过 clear 与 ls 来进行命令别名的建置:
1.alias命令
回到顶部root@peter-VirtualBox:~# alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto'alias命令不仅可以显示系统中已经定义的命令别名,也可以通过alias定义命令别名,例如下面是命令将'rm -i'命令的别名定义为rm。 这样我们在运行rm命令的时候,实际上是在运行rm -i:
alias rm='rm -i'使用unalias NAME可以取消已定义的命令别名:
unalias rm
alias命令可以用来打印和设置命令别名,直接在命令行输入alias或者alias -p即可列出系统中所有已定义的命令别名。
initroot@initroot:~$ alias alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto'
alias NAME='VALUE'
给VALUE设置别名NAME,alias命令用来设置指令的别名。我们可以使用该命令将一些较长的命令进行简化。
使用alias时,用户必须使用单引号'将原来的命令引起来,防止特殊字符导致错误。
例如在用rm命令删除文件的时候,希望rm可以给我们提示确认是否要删除文件,以防止误删除。
可以用alias给rm定义命令别名,这样我们在运行rm命令的时候,实际上是在运行rm -i:
alias rm='rm -i'
unalias命令
回到顶部unalias rm
alias命令的作用只局限于该次登录的操作。若要每次登录都能够使用这些命令别名,则需要将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
Usage:命令别名是一个很有趣的东西,特别是你的惯用命令特别长的时候!还有, 增设默认的选项在一些 惯用的命令上面,可以预防一些不小心误杀文件的情况发生的时候! 举个例子来说,如果你要查询 隐藏档,并且需要长的列出与一页一页翻看,那么需要下达 ls -al | more 这个命令,是觉得 很烦啦! 要输入好几个单字!那可不可以使用 lm 来简化呢?当然可以,你可以在命令行下面下达:
alias [-p] [name[=value] ... ]
定义或显示命令别名
如果不加任何参数,alias以'alias NAME=VALUE'的形式在标准输出打印别名列表, 否则,alias就会给VALUE定义一个别名NAME,VALUE的别名就是NAME
一条alias命令可以定义多个命令别名,每个命令别名定义之间用空格隔开
Options:
-p
-p参数用来打印所有已定义的命令别名,和不加任何参数的alias执行结果一样
Exit Status:
alias returns true unless a NAME is supplied for which no alias has been defined.
[peter@study ~]$ alias lm='ls -al | more'立刻多出了一个可以执行的命令喔!这个命令名称为 lm ,且其实他是执行 ls -al | more 啊!真是方 便。不过, 要注意的是:alias 的定义规则与变量定义规则几乎相同, 所以你只要在 alias 后 面加上你的 {别名='命令 选项...' }, 以后你只要输入 lm 就相当于输入了 ls -al|more 这一串指 令!很方便吧!
另外,命令别名的设定还可以取代既有的命令喔!举例来说,我们知道 root 可以移除 (rm) 任何数 据!所以当你以 root 的身份在进行工作时,需要特别小心, 但是总有失手的时候,那么 rm 提供 了一个选项来让我们确认是否要移除该文件,那就是 -i 这个选项!所以,你可以这样做:
[peter@study ~]$ alias rm='rm -i'那么以后使用 rm 的时候,就不用太担心会有错误删除的情况了!这也是命令别名的优点啰! 那么 如何知道目前有哪些的命令别名呢?就使用 alias 呀!
[peter@study ~]$ 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 lm='ls -al | more' alias ls='ls --color=auto' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'由上面的资料当中,你也会发现一件事情啊,我们在第九章的 vim 程序编辑器里面提到 vi 与 vim 是不太一样的,vim 可以多作一些额外的语法检验与颜色显示。一般用户会有 vi=vim 的命令别名, 但是 root 则是单纯使用 vi 而已。 如果你想要使用 vi 就直接以 vim 来开启文件的话,使用 alias vi='vim' 这个设定即可。 至于如果要取消命令别名的话,那么就使用 unalias 吧!例如要将刚刚的 lm 命令别名拿掉,就使用:
[peter@study ~]$ unalias lm那么命令别名与变量有什么不同呢?命令别名是新创一个新的命令, 你可以直接下达该命令的, 至于变量则需要使用类似 echo 命令才能够呼叫出变量的内容! 这两者当然不一样!很多初学 者在这里老是搞不清楚!要注意啊! ^_^
例题:
DOS 年代,列出目录与文件就是 dir ,而清除屏幕就是 cls ,那么如果我想要在 linux 里面也使用相同的 命令呢?
答:
很简单,透过 clear 与 ls 来进行命令别名的建置:
alias cls='clear' alias dir='ls -l'
相关阅读:
linux基础入门
什么是linux
initroot编辑整理,转载请注明www.initroot.com
100次点赞
100次阅读