所以我在某个地方研究了该type
命令,并了解到该type
命令可以提供与其一起使用的命令的位置,更具体地说是与该命令关联的可执行文件的位置,所以我尝试使用一些基本命令(如、等)来执行该type
命令得到了他们的位置,但是当我使用with时,我得到了不同的东西ps
wc
date
type
ls
ls is aliased to `ls --color=auto'
但我期待一个位置。
答案1
该type
命令的作用不仅仅是为您提供可执行文件的位置。让我引用以下的输出help type
:
显示有关命令类型的信息。
对于每个名称,请指出如果用作命令名称,将如何解释它。
也就是说,该type
命令告诉您,对于给定的参数,如果用作命令,shell 将如何解释它。对于路径中的可执行文件,它会为您提供它们的位置。但还有其他类型的命令不可执行。其中包括 bash 内置函数。例如,该命令cd
是 bash 内置命令:
$ type cd
cd is a shell builtin
换句话说,没有名为 的可执行文件cd
。相反,它是由 shell 直接解释的命令;它是 shell 语言的一部分。同样,该命令type
是 bash 内置命令:
$ type type
type is a shell builtin
另一种类型的命令是别名。别名可以用作方便的用户自定义命令快捷方式,否则键入的命令会很长。您可以键入命令alias
来查看 shell 中当前设置的别名。对我来说,它给出了:
$ alias
alias ll='ls -la'
alias ls='ls --color=auto'
(还有一些我自己配置的,但为了简单起见我跳过了它们)
因此,如果我输入type ls
,我会得到别名信息ls
,就像您的情况一样:
$ type ls
ls is aliased to `ls --color=auto'
这只是因为您的发行版在用户的 shell 配置中的某个位置设置了此别名(例如,如果.bashrc
您使用的是 bash)。原因是这样,ls
命令的输出总是带有颜色的(默认情况下不是)。如果您想了解ls
如果此别名不存在的话意味着什么,您可以简单地ls
在当前 shell 会话中取消别名,然后使用type ls
:
$ unalias ls
$ type ls
ls is hashed (/bin/ls)
答案2
许多命令 shell 都有 ls set 的别名。您可以将您的主目录签入您使用的 shell 的 rc 文件中。 (对于 csh,这将是 .cshrc)。别名可能就在那里。如果删除该条目,请注销并重新登录。然后键入应该为您提供所需的信息。
答案3
“可以提供与其一起使用的命令的位置,更具体地说是与该命令关联的可执行文件的位置”
如果对您有帮助,您还可以使用which
和whereis
命令来查找可执行文件的位置。
robert@pip2:/tmp$ which ls
/bin/ls
robert@pip2:/tmp$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz