Bash Shell 在运行命令时忽略别名和函数
别名只是命令的快捷方式。别名命令允许用户通过输入单个单词来启动任何命令或命令组(包括选项和文件名)。别名主要用于缩写系统命令或为常用命令添加默认参数。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | Linux shell 脚本 |
先决条件 | 重击 |
操作系统兼容性 | BSD • Linux • macOS • Unix • WSL |
预计阅读时间 | 3 分钟 |
要查看定义的别名,可以使用以下命令:
运行:
$ alias
我的 bash 别名:
alias cp='cp -i' alias l='ls $LS_OPTIONS -lA' alias ll='ls $LS_OPTIONS -l' alias ls='ls $LS_OPTIONS' alias mv='mv -i' alias rm='rm -i' alias apt-get='apt-get update && apt-get upgrade'
Bash shell 在运行命令时忽略别名或函数
只需使用名为 command 的命令即可忽略别名或函数,如下所示。例如,在我的系统上,我设置了以下别名:
$ alias apt-get='apt-get update && apt-get upgrade'
要忽略 apt-get 别名,请键入命令,后跟别名。语法为:
$ command alias_name_here [options]
$ command apt-get -y install nginx
忽略 bash 别名和函数
您也可以使用以下任一种语法:和符号
都允许您运行真正的apt-get 命令(或apt 命令(如果定义了别名)并忽略 CLI 中的 apt-get/apt 别名)。
$ \apt-get -y install apache2
$ "apt-get" -y install htop
\"
有关“命令”命令的更多信息
运行忽略 shell 函数的参数的 COMMAND。如果您有一个名为 ls 的 shell 函数,并且想要调用命令 /bin/ls,您可以输入:
$ command ls
如果-p给出了选项,则将使用 PATH 的默认值,该值保证可以找到 UNIX / Linux 下的所有标准实用程序:给出了或
$ command -p ls
选项,将打印一个描述 COMMAND 的字符串。该选项产生更详细的描述:-V-v-V
$ command -v ls
ls is aliased to `ls $LS_OPTIONS'
类型命令
type 命令会打印有关别名、函数和实际命令的信息。例如:
$ type -a apt-get
apt-get is aliased to `apt-get update && apt-get upgrade' apt-get is /usr/bin/apt-get
想要抑制 shell 函数查找?将-f选项传递给 type 命令:
$ type -f foo
您可以强制对每个 NAME 进行 PATH 搜索,即使它是别名、biltin 或函数,并返回将执行的磁盘文件的名称:
分别查明每个 NAME 是别名、关键字、函数、内置、文件还是未找到:
使用 help 命令或 man 命令查看 type 命令帮助以获取更多信息:
$ type -P ls
$ type -P bar
$ type -t ls
$ type -t date
$ type -t quote
$ help type
$ help command
$ man bash
结论
您学习了如何在 CLI 中忽略 bash 别名并运行而无需暂时删除它们。有关更多信息,请参阅以下资源:
- 创建和使用别名 – 来自 Linux shell 脚本 wiki。
- Bash Shell 暂时禁用别名
- bash 手册页 –