在 Linux 系统中,要显示所有命令,可以使用 compgen -c
命令。这个命令会列出当前 shell 中可用的所有命令。
如果你想要查看更详细的信息,比如命令的路径,可以使用 which
命令结合 compgen
,如下所示:
compgen -c | xargs which
这个命令会列出所有命令及其对应的路径。
另外,如果你想要查看系统中所有可执行文件,不仅仅是 shell 内置命令或者别名,可以使用 find
命令来搜索整个文件系统中的可执行文件。例如:
find / -type f -executable 2>/dev/null | grep -v '/usr/sbin/' | grep -v '/sbin/'
这个命令会从根目录 /
开始搜索,找到所有类型为文件 (-type f
) 且具有可执行权限 (-executable
) 的文件。2>/dev/null
是用来忽略错误信息的,比如没有权限访问的目录。grep -v
用于排除 /usr/sbin/
和 /sbin/
目录下的文件,因为这些通常是系统管理员使用的命令,不是普通用户常用的。
需要注意的是,列出系统中所有的可执行文件可能会产生非常长的列表,因为它包括了系统中的所有二进制文件,不仅仅是命令行工具。
如果你只是想查看当前用户在 PATH 环境变量指定的目录下可以直接执行的命令,可以使用以下命令:
echo $PATH | tr ':' '\n' | xargs -I {} find {} -maxdepth 1 -type f -executable | sort -u
这个命令首先将 PATH 环境变量中的目录分隔符 :
替换为换行符 \n
,然后对每个目录使用 find
命令查找可执行文件,-maxdepth 1
参数确保只在当前目录下搜索,不进入子目录。最后使用 sort -u
对结果进行排序并去重。
这些命令可以帮助你查看 Linux 系统中的命令,但请记住,不是所有的可执行文件都是用来直接执行的命令,有些可能是库文件或者其他类型的二进制文件。
领取专属 10元无门槛券
手把手带您无忧上云