如何使用 Linux type 命令

查看命令是否解析为别名、磁盘文件、shell 函数、内置命令或保留字。使用 type
来发现您的 Linux 命令是如何执行的,并更好地了解您的系统。
听从我的吩咐
当我们打开一个终端窗口并开始向我们的 Linux 计算机发出命令时,我们很少停下来思考操作系统中的哪些软件组件正在对我们的命令做出反应并为我们执行它们。我们键入命令,获取结果,然后继续我们的工作。
了解这些命令是如何执行的可以让我们更好地理解我们的 Linux 或其他类 Unix 操作系统的构建方式。深入了解引擎盖可以使我们成为更明智的驾驶员。
我们向命令行发出的指令属于以下类别之一:
- 别名:用户(或系统)定义的命令会导致其他(通常是冗长或复杂的)命令序列发生。
- 磁盘文件:二进制可执行文件,例如
/usr/bin/top
。 - Shell 函数:用户(或系统)定义的函数,可以在命令行上使用或包含在脚本中。
- 内置 命令:由shell本身执行的命令,例如
pwd
。 - Reserved word:由 shell 保留的词,例如
if
和elif
。它们也称为关键字。
type
命令告诉我们任何 Linux 命令属于哪个类别。这是了解命令输出的快速教程。
命令类型
让我们针对每个命令类别快速浏览一些示例。
type date

date
命令是一个可执行的磁盘文件。
type ls

ls
命令是一个别名,包装底层 ls
命令以默认使用 --color=auto
选项。
type lowdown

lowdown
命令是在用于研究本文的通勤者上设置的用户定义函数。它提供了一些系统资源的快速快照。它是 whoami
、 w
、 free
和 df
的组合。
type pwd

pwd
命令是 Bash shell 的内置命令。
type elif

elif
命令是 Bash shell 保留字。
使用多个命令
您可以给 type
多个命令来一次识别。
type date top ls

-t 选项
type
将接受的选项都没有名称。所以我们可以拿出我们的名册,自己为他们命名。如果您认为 -t
选项代表“简洁”,那么您就不会错了。它将响应从 type
减少为单个单词的答案。
type -t date
type -t pwd
type -t lowdown

-a 选项
我们将此称为“全部”选项。它列出了该命令所在的所有位置。请注意,如果您还使用了 -p
选项,则此选项将不 起作用。
例如,如果您有一个与底层命令同名的别名,您可以获得有关别名和命令的信息。
type -a ls

-f 选项
-f
选项强制 type
不搜索用户或系统定义的函数。将此选项视为“功能搜索关闭”。请注意,如果命令是函数,type
将报告找不到该命令。
type -f top
type -f lowdown

-P 选项
如果您使用 -P
选项,type
将只搜索 PATH 中的目录。所以我们可以称这个选项为“路径”。请注意,此选项使用大写字母“P”。
type -P date chmod adduser

-p 选项
如果您使用 -p
选项,type
只会在命令是硬盘文件时响应。请注意,此选项使用小写字母“p”。
type -p mount
type -p ls
type -p -a ls

type
不会对 ls
给出任何响应,因为 ls
是别名,而不是磁盘文件。
但是,如果我们包含 -a
选项,以便 type
查找 ls
命令的所有实例,它会列出 ls
别名使用。
概括
那很好很简单,但照亮了一切。
我们倾向于将我们在终端窗口中键入的任何内容都视为“命令”,而我们将其留在那儿。但实际上,命令在 Linux 系统中的实现方式多种多样。 type
可以让您找出它是哪一个。
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts