A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash/zsh: type command not found #Debian apt-get install bash #Ubuntu apt-get install bash #Alpine apk add bash #Arch Linux pacman -S bash #Kali Linux apt-get install bash #CentOS yum install bash #Fedora dnf install bash #OS X brew install bash #Raspbian apt-get install bash #Docker docker run cmd.cat/type type
type 命令显示有关命令类型的信息。
对于每个 NAME,如果用作一个名称,将如何解释它命令名称。
type [-afptP] name [name ...] type [OPTIONS] FILE_NAME...
-a:在环境变量PATH中查找并显示所有包含name的可执行文件路径;当'-p'选项没有同时给出时,如果在别名、关键字,函数,内建的信息中存在name,则一并显示。 -f:排除对shell函数的查找。 -p:如果name在执行'type -t name'返回的不是'file',那么什么也不返回;否则会在环境变量PATH中查找并返回可执行文件路径。 -P:即使要查找的name是别名、内建、函数中的一个,仍然会在环境变量PATH中查找并返回可执行文件路径。 -t:根据name的类型返回一个单词(别名,关键字,函数,内建,文件),否则返回空值。
name:要查找的命令,可以为多个。
type -t 描述命令类型,它可以是以下之一:
type 使用命令行工具名称作为输入和 -t 作为命令行选项执行 type
:
$ type -t cp --------- 此命令产生以下输出: file
体会细微差别,直接执行 type:
$ type cp --------- 此命令产生以下输出: cp is /usr/bin/cp
如果工具名称是别名,则 type 命令会清楚地说明这一点。例如,以下命令:
$ type -t ls alias
type 使用 -a 命令行选项,显示包含特定工具的所有位置:
$ type -a ls ls is aliased to `ls --color=auto' ls is /usr/bin/ls ------------------------ 直接 type ls 体验细微差别 ------------------------ $ type ls ls is aliased to `ls --color=auto'
type 加上 -P 强制搜索:
$ type -P ls /usr/bin/ls
type 输出 bash
关键字 keyword:
$ type -t for keyword
type 输出自定义的 bash
为函数 function:
$ type -t mybash function ----------------------- $ type -a mybash # 输出 mybash is a function mybash () { vim ~/.bashrc } ----------------------- 假设 ~/.bashrc 文件定义了以下的内容: alias ls='ls --color=auto' mybash(){ vim ~/.bashrc; } 而且执行环境里没有使用 enable 禁用内建命令。 ----------------------- type -a -f mybash # 输出(因为排除了函数,所以报错) bash: type: mybash: not found type -a -p mybash # 输出为空(因为排除了函数,所以什么也不返回)
type 输出 bash
关键字 keyword:
$ type -t for keyword
type 输出 bash
关键字 builtin:
$ type -t printf # 输出(bash 内建优先级高) builtin