命令行完整的命令列表

ric*_*bax 5 linux unix command-line

有没有办法/命令可以从命令行提示符获取我系统上所有可用命令的列表?

Jos*_*unt 10

通常按tab一次或两次会显示一条消息,例如:

Display all 435 possibilities? (y or n)
Run Code Online (Sandbox Code Playgroud)

Y将显示您可以在默认路径上运行的所有命令。


ave*_*oll 7

如果要显示$PATH 中可用的所有命令,可以使用以下命令:

ls $(echo $PATH | tr ":" " ")
Run Code Online (Sandbox Code Playgroud)

如果要显示文件系统上可用的所有可执行文件,可以使用此命令(请注意,这可能需要一些时间):

find / -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \) 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

此命令列出的文件不一定是命令,它们只是设置为可执行文件。

(如果要搜索,您可能需要以 root 身份运行它,删除2> /dev/null部分以了解find命令未以普通用户身份搜索的位置)

您可能还想列出您的别名,为此,您可以使用以下命令:

alias
Run Code Online (Sandbox Code Playgroud)


Chr*_*sen 6

bash 中,您可以使用compgen -c将所有命令完成生成到标准输出(因此您可以使用grep等,而不仅仅是在列表中分页)。您还可以添加前缀:

$ compgen -c ls
ls
lsbom
lsbom
lsdiff
lsof
lsvfs
lsvfs

$ compgen -c | grep zcat
bzcat
bzcat
bzcat
gzcat
gzcat
lzcat
zcat
zcat

$ compgen -c | sort -u | grep zcat
bzcat
gzcat
lzcat
zcat
Run Code Online (Sandbox Code Playgroud)