了解如何创建别名:您可以将太长或难以记住的命令打包成您自己构造的命令。Linuxshell中的命令别名Alias是指将多个太长或太难记的命令组合起来成为用户自己构造的命令。可以使用alias命令创建命令别名。alias后跟要创建的别名、等号(=)和要使用该别名执行的命令,这样就创建了一个命令别名。例如,ls命令默认不对输出进行着色,这使用户无法一眼区分目录、文件和连接。对此,可以在输出目录内容时创建这样一个命令别名,为输出内容着色:aliaslc='ls--color=auto'其中lc是自定义命令别名,意思是“带颜色的列表”。创建命令别名时,需要确认使用的别名是否已有对应的命令。如果是这样,原始命令将被覆盖。注意,在定义命令别名时,=两端不能有空格。运行lc时,相当于执行了ls--color命令。之后执行lc列出目录内容时,会输出带颜色的内容。您可能会发现,当您执行ls时,输出是彩色的。这是因为大多数Linux发行版已经将ls设置为带颜色的命令别名。可以直接使用的命令别名其实执行alias命令就可以看到当前设置的所有命令别名,没有任何内容。对于不同的发行版,包含的命令别名不尽相同,但一般有以下命令别名:aliasls='ls--color=auto':这个命令别名前面已经讲过了。--color=auto参数会导致ls命令在通过标准输出在终端中显示内容时着色,但不会在其他情况下(例如将输出管道输出到文件时)。--color这个参数也可以设置为always或者never。aliascp='cp-i':-i参数代表“交互式”。使用cp命令复制文件时,可能会无意中覆盖现有文件。使用-i参数后,cp命令会在一些按键操作前询问用户。aliasfree='free-m':在free命令后加上-m参数,输出的内存信息可以以MiB为单位输出,这是一个更易读和计算的单位,而不是默认的Byte单位。您的发行版附带的命令别名可能与上述有所不同。但是您可以在命令前加上\修饰符以使用命令的最基本形式(而不是别名)。例如:\free是直接执行free,不是free-m。另外:\ls在没有--color=auto参数的情况下执行ls。如果你想持久保存命令别名,你可以在.bashrc文件中修改它,该文件来自我们的/etc/skel目录。使用命令别名纠正错误各种发行版的设计者都尝试设置用户可能需要使用的命令别名。但是不同的用户有不同的习惯。有些用户可能刚从其他操作系统迁移到Linux,不同操作系统的基本命令因shell而异。因此,对于刚刚从Windows/MS-DOS系统迁移到Linux系统的用户,不妨使用命令aliasaliasdir='ls'来列出目录的内容。同样,aliascopy='cp'aliasmove='mv'在你还没有完全熟悉linux的时候也可以顺利使用。另一种情况是在经常出现输入错误的场合做容错。例如,我很难快速正确地输入Administration一词,因此很多用户会设置这样的别名:aliassl='ls'andaliasgerp='echo"Youdidit*again*!";grep'grep命令最基本的用途是在文件中查找字符串。熟悉了这个命令之后,它一定是最常用的命令之一。因此,输入错误和不得不重新输入命令可能会让人抓狂。在上面的gerp示例中,不只涉及一个命令,而是两个。第一个命令回显“你又做了一次*!”输出一条消息提醒用户输入错误,然后用分号(;)分隔两个命令,然后grep就是正确的命令。在我的系统上使用gerp在/etc/skel/.bashrc中搜索包含单词“alias”的行会产生以下输出:$gerp-Ralias/etc/skel/.bashrc你*又做了一次*!别名ls='ls--colour=auto'别名grep='grep--colour=auto'别名egrep='egrep--colour=auto'别名fgrep='fgrep--colour=auto'别名cp="cp-i"aliasdf='df-h'aliasfree='free-m'aliasnp='nano-wPKGBUILD'aliasmore=lessshopt-sexpand_aliases在命令别名中按固定顺序执行多个命令,更进一步,多个命令串联起来,使得后面的命令可以使用前面命令的执行结果。这种方法非常接近bash脚本。本文即将结束,我们将在下一篇文章中详细介绍。如果要删除终端中临时设置的别名,可以使用unalias命令。unaliasgerp如果想持久保存命令别名,可以将命令别名放在用户主目录的.bashrc文件中。具体方法在之前的文章中已经介绍过了。
