查看Linux下都有什么命令是许多新手乃至进阶用户常好奇的问题。Linux没有像Windows那样的“控制面板”图形化列出所有程序,但它的命令行世界有大量规则清晰、功能强大的工具。要系统了解系统里有哪些命令,需要掌握几种高效方法,并理解命令的存储位置与类型。本文将从目录位置、动态列举、类型判定、帮助文档和常用分类等维度,提供一份专业且结构化的指南。

1. 从目录推断命令:Linux中的可执行文件通常存放在/bin、/sbin、/usr/bin、/usr/sbin等目录下。使用ls命令即可查看这些目录中的文件。例如:ls /bin会列出基本用户命令;ls /usr/bin列出大部分系统安装的软件命令;ls /sbin则通常存放需要root权限的管理命令。但这些目录可能包含大量文件,建议配合less或grep来分页或过滤。需要注意的是,并非所有命令都是可执行文件,还包括符号链接和脚本。
2. 使用compgen动态列出所有命令:Bash提供内置的compgen命令,最直接的用法是compgen -c,它会从当前系统的PATH变量中找出所有可用命令。该命令的输出可能很长,可以用管道结合wc -l统计数量,或结合grep按关键词检索。例如:compgen -c | wc -l查看命令总数;compgen -c | grep '^zip'查找所有以zip开头的命令。这是“查看Linux下都有什么命令”最快速、最全面的方法。
3. 区分内部命令与外部命令:命令分为两类:Shell内置命令(如cd、echo、alias)和外部命令(位于文件系统中的可执行程序)。使用type命令可以判断:type cd会提示“cd is a shell builtin”,而type ls则会显示“ls is /usr/bin/ls”。另一个工具是which,但它只查找外部命令,无法识别内置命令。要查看Shell有哪些内置命令,可执行help命令,Bash会列出所有内置命令的简要说明。
4. 查看命令帮助的完整途径:了解某个命令的用法比背命令名更重要。最常用的是--help参数,例如tar --help。更专业的是使用man(手册页),如man ls;而info提供更详细的文档,适合GNU工具,如info coreutils。若要搜索功能相关的命令,可使用apropos或whatis。例如apropos compress会返回所有描述中包含“compress”的命令。
5. 常见命令分类速查表:为了帮助读者快速理解Linux命令生态,下表列出了典型的命令类别和代表性命令。表中< dataclass="table">数据均为常见的核心命令,适用于大部分发行版。
| 类别 | 典型命令 | 用途说明 |
| 文件与目录 | ls, cd, cp, mv, rm, mkdir | 查看、切换、复制、移动、删除文件或目录 |
| 文本处理 | grep, sed, awk, sort, wc, vim | 搜索、替换、分析、编辑文本内容 |
| 系统信息 | uname, top, free, df, du, uptime | 查看内核、进程、内存、磁盘、运行时间 |
| 进程管理 | ps, kill, pstree, nice, renice | 显示、终止、调整进程优先级 |
| 网络工具 | ping, curl, wget, ssh, netstat, ip | 网络诊断、远程连接、传输数据 |
| 用户与权限 | whoami, su, sudo, chmod, chown, useradd | 身份切换、权限修改、用户管理 |
| 打包压缩 | tar, gzip, bzip2, zip, unzip | 归档和压缩文件 |
| 软件包管理 | apt, yum, dnf, pacman, dpkg | 安装、升级、卸载软件包(因发行版而异) |
6. 通过路径与PATH变量探查:执行命令时,Shell根据环境变量PATH搜索可执行文件。可以用echo $PATH查看搜索路径。也可以用find命令在特定目录查找可执行文件,例如find /usr/bin -maxdepth 1 -type f列出所有普通文件。不过更便捷的是使用ls /usr/bin | less分页浏览。若想知道当前系统所有命令的完整列表,还可以直接查看Shell的补全数据库:在Shell中输入一个不完整的命令前缀后双击
7. 查阅Shell内置的“命令字典”:Bash自身提供help命令,输入help即可看到所有内置命令。若信息太多,可输入help | less或help | grep '^cd'查看指定主题。另外,enable命令可以启用或禁用内置函数,这也是理解Shell命令机制的好途径。对于Zsh、Fish等不同Shell,它们也有类似机制,但命令名称略有差异。
8. 利用手册页索引和在线文档:Linux命令的权威说明在man手册中。man手册分为多个章节,例如第1章是用户命令,第2章是系统调用,第5章是配置文件。全站手册页的索引位于/usr/share/man/man1/等目录,可以用ls /usr/share/man/man1查看系统支持的所有命令手册文件名。多数发行版还提供man -k(等价于apropos)进行关键字搜索。如果安装了开发者文档,可用info coreutils等阅读更详细的手册。
9. 实践中的发现策略:查看已有命令记录,输入history可以列出自己执行过的命令行。查看他人或系统组件安装的命令,可搜索相关包的文件清单。例如rpm系用rpm -ql,Debian系用dpkg -L。另外,/usr/local/bin和/opt目录常存放用户自定义或第三方软件的命令,也应予以关注。如果希望了解系统里是否含有特定命令,使用command -v或command -V是内建、稳健的查询方法。
10. 总结:要回答“Linux下都有什么命令”,最佳实践是组合使用compgen -c获得完整列表,用type和which判断类型与路径,用man、info、apropos深入理解功能,借助目录浏览和TAB补全探索未知命令。Linux命令成千上万,但没有必要死记硬背;掌握“查看命令”的方法,就可以指挥这个强大的操作系统完成各类任务。随着使用增多,你会逐渐形成自己的“命令地图”,并不断扩展对系统工具箱的认知。