输入 ls 命令

输入 ls 命令

所以我在某个地方研究了该type命令,并了解到该type命令可以提供与其一起使用的命令的位置,更具体地说是与该命令关联的可执行文件的位置,所以我尝试使用一些基本命令(如、等)来执行该type命令得到了他们的位置,但是当我使用with时,我得到了不同的东西pswcdatetypels

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

“可以提供与其一起使用的命令的位置,更具体地说是与该命令关联的可执行文件的位置”

如果对您有帮助,您还可以使用whichwhereis命令来查找可执行文件的位置。

robert@pip2:/tmp$ which ls
/bin/ls

robert@pip2:/tmp$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

相关内容