type 命令详解

| 选择喜欢的代码风格  

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

type 命令安装:


-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 命令补充说明:


type 命令显示有关命令类型的信息。

对于每个 NAME,如果用作一个名称,将如何解释它命令名称。

  • type 显示要查找的命令的信息。
  • type 控制查找范围和行为。
  • type 显示要查找的命令优先级最高的类型。

type 命令语法:


type [-afptP] name [name ...]

type [OPTIONS] FILE_NAME...

type 命令选项:


-a:在环境变量PATH中查找并显示所有包含name的可执行文件路径;当'-p'选项没有同时给出时,如果在别名、关键字,函数,内建的信息中存在name,则一并显示。
-f:排除对shell函数的查找。
-p:如果name在执行'type -t name'返回的不是'file',那么什么也不返回;否则会在环境变量PATH中查找并返回可执行文件路径。
-P:即使要查找的name是别名、内建、函数中的一个,仍然会在环境变量PATH中查找并返回可执行文件路径。
-t:根据name的类型返回一个单词(别名,关键字,函数,内建,文件),否则返回空值。

type 命令参数:


name:要查找的命令,可以为多个。

type 命令类型:


type -t 描述命令类型,它可以是以下之一:

  • alias (shell alias)
  • function (shell function)
  • builtin (shell builtin)
  • file (disk file)
  • keyword (shell reserved word)

type 命令实例:


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

type 命令扩展阅读:




type 命令评论