Bash Shell在运行命令时忽略别名和功能
时间:2020-01-09 10:40:51 来源:igfitidea点击:
我如何在运行命令时忽略bash shell别名或函数,而又不从Linux或类Unix系统上的内存或当前shell会话中删除别名或函数?
别名不过是命令的快捷方式。
alias命令允许用户通过输入单个单词来启动任何命令或命令组(包括选项和文件名)。
别名主要用于缩写系统命令或向默认使用的命令添加默认参数。
要查看定义的别名,可以使用以下命令:
运行:
$ 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 apt-get -y install nginx
忽略bash别名和功能
您也可以使用以下任何一种语法:
\apt-get -y install apache2 "apt-get" -y install htop
" "和""符号都允许您运行真正的apt-get命令(如果定义了别名,则运行apt命令),并在CLI上忽略apt-get/apt别名。
有关命令命令的更多信息
使用忽略shell函数的参数运行COMMAND。
如果您有一个名为ls的shell函数,并且希望调用/bin/ls命令,则可以执行:
command ls
如果给出了-p
选项,那么将为PATH使用一个默认值,该默认值保证可以找到UNIX/Linux下的所有标准实用程序:
command -p ls
给定了-V或-v选项,将打印一个描述COMMAND的字符串。
-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或函数,也可以返回将要执行的磁盘文件的名称:
type -P ls type -P bar
找出每个NAME分别是别名,关键字,函数,内置函数,文件还是找不到:
type -t ls type -t date type -t quote