按类别整理的常用Linux命令

这里按实际用途、而不是按字母顺序,快速梳理最常用的一批Linux命令。

文件与目录的浏览

`ls`列出目录内容,`cd`切换目录,`pwd`显示当前所在路径,`find`则可以按名称、类型等条件在文件系统中搜索。几乎所有其他操作都要先搞清楚"自己在哪个目录",所以这些通常是最先学的命令。

创建、复制和删除文件

`cp`用于复制文件或目录,`mv`用于移动或重命名,`rm`用于删除(删除目录需加`-r`参数),`mkdir`用于新建目录。`rm`没有撤销功能,因此很多人会给它设置别名,在删除前先弹出确认提示。

权限与所有者管理

`chmod`用于修改文件的读、写、执行权限,可以用符号表示法(如`u+x`)或数字表示法(如`755`);`chown`则用于修改文件的所属用户和用户组。这两者设置错误,是"权限被拒绝"报错的常见原因。

文本搜索与处理

`grep`用于在文本中搜索匹配某个模式的内容,`sed`用于对文本流进行编辑(常用于查找替换),`awk`则按列对结构化文本进行处理。这三个命令经常通过管道组合使用,实时对命令输出进行过滤和转换。

查看与控制进程

`ps`用于列出当前运行的进程,`top`(或`htop`)可以实时显示资源占用情况,`kill`则通过进程ID向进程发送信号使其停止。当普通的`kill`无法生效时,可以用`kill -9`强制终止卡死的进程。

网络与归档压缩

`ssh`用于打开到另一台机器的安全远程shell连接,`curl`或`wget`用于从某个URL下载内容,`tar`则用于把多个文件打包(并可选择压缩)成一个归档文件,最常见的形式就是`.tar.gz`文件。

为什么用管道把命令连接起来很重要

Linux命令行真正的威力,在于用管道符(`|`)把功能单一的小命令组合起来,把前一个命令的输出直接作为后一个命令的输入。比如`ps aux | grep firefox`这条命令,先列出所有进程,再把输出结果过滤成只包含"firefox"相关的部分,而不需要专门找一个同时具备这两种功能的单一命令。

man手册是内置的参考文档

每个标准命令都有对应的手册,在命令名前加上`man`即可查看(例如`man grep`),其中详细记录了该命令所有可用的参数和选项。这份文档始终对应你系统上实际安装的版本,值得在上网搜索之前先查阅一下。

常见问题

这些命令在macOS上也能一样使用吗?

由于macOS也是基于Unix的系统,大部分命令都可以照常使用,但部分命令的行为会有细微差异(例如`sed`、`tar`在Linux使用的GNU版本和macOS使用的BSD版本之间,某些参数并不完全一致)。最保险的方式是直接查看本机的`man`手册来确认具体行为。

有没有不影响自己系统的安全练习方式?

虚拟机、云端的Linux沙盒环境,或者Windows系统自带的WSL(Windows Subsystem for Linux),都能提供一个隔离的练习环境,即便执行了错误的`rm`命令之类的操作,也不会影响到你的主系统。