日期:2014-05-16  浏览次数:20570 次

linux alias 和 unalias 命令

linux alias 和 unalias 命令

假设您要检查 shell 中设置的 ORACLE_SID 环境变量。您必须键入:

echo $ORACLE_HOME

作为 DBA 或开发人员,您需要频繁使用此命令,很快就会对输入这 16 个字符感到厌倦。有没有更简单的方法?

当然有:您可以使用 alias 命令。使用该方法,您可以创建一个简短的别名(如 "os")来代表整条命令:

alias os='echo $ORACLE_HOME'
现在,每次要检查 ORACLE_SID 时,您只需键入 "os"(没有引号),Linux 就会执行别名代表的命令。

然而,如果您注销并重新登录,别名就不见了,您需要再次输入 alias 命令。要取消这个步骤,您只需将该命令置于 shell 的配置文件中。对于 bash,配置文件为主目录中的 .bash_profile(注意文件名前面的句点,它是文件名的一部分)。对于 bourne 和 korn shell,配置文件为 .profile;对于 c-shell,配置文件为 .chsrc。

您可以使用任何名称创建别名。例如,我总是将 rm -i 命令的别名创建为 rm,从而使它成为交互式命令。

alias rm=’rm -i’

我每次执行 rm 命令后,如果不输入 "y",Linux 就会提示我进行确认,而不会删除该文件,因此不会出现意外删除重要文件的情况。另外,我也以相同的方式使用 mv(以一个新名称另存该文件,防止意外覆盖现有的文件)和 cp(复制该文件)。

以下是一些我喜欢定义的非常有用的别名:

alias bdump='cd $ORACLE_BASE/admin/$ORACLE_SID/bdump'
alias l='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias mv='mv -i'
alias oh='cd $ORACLE_HOME'
alias os='echo $ORACLE_SID'
alias rm='rm -i'
alias tns='cd $ORACLE_HOME/network/admin'

要查看 shell 中已定义的别名,使用 alias 即可,无需任何参数。

但这里有一个小问题。我已经定义了一个别名 rm 来执行 rm -i。每次我试图删除一个文件时,该命令都会提示我进行确认。但如果我要删除多个文件并确信无需确认即可删除时,该怎么办?

解决方案很简单:要取消该别名,然后只使用命令,我需要输入两个单引号:

$ ''rm *

注意,rm 命令前面有两个单引号 ('),而不是两个双引号。这将取消别名 rm。另一种方法是使用反斜线 (\):

$ \rm *

要删除一个以前定义的别名,只需使用 unalias 命令:

$ unalias rm