Linux 命令行基础:文件、权限与进程管理

FreeGuideOnline 最新 2026-06-13
## Linux 命令行基础:文件、权限与进程管理

Linux 命令行是你与操作系统直接对话的窗口。掌握文件管理、权限控制和进程操作,是从桌面用户走向高效开发者的第一步。本教程将带你从零开始,用最常用的命令完成日常任务。

### 1. 终端与基础导航

在开始前,你需要一个终端。图形界面下通常按 `Ctrl+Alt+T` 即可打开。

- **我现在在哪?** `pwd` 显示当前工作目录的绝对路径。
- **这里有什么?** `ls` 列出当前目录下的文件和文件夹。常用选项:
    - `ls -l`:以长格式显示详细信息(权限、大小、日期等)。
    - `ls -a`:显示所有文件,包括以 `.` 开头的隐藏文件。
    - `ls -lh`:人类可读的文件大小(如 `1.2K`、`3M`)。
- **我要移动** `cd` 切换目录。
    - `cd /home/user/Documents` 进入指定绝对路径。
    - `cd Documents` 进入当前目录下的 `Documents` 子目录(相对路径)。
    - `cd ..` 返回上一级目录。
    - `cd ~` 或 直接 `cd` 回到当前用户的家目录。

### 2. 文件与目录管理

#### 2.1 创建文件与目录
- **新建空白文件** `touch filename.txt`
- **快速写入内容** `echo "Hello" > file.txt` (`>` 覆盖写入,`>>` 追加写入)
- **创建目录** `mkdir new_folder`,若需创建多层嵌套目录可加 `-p`:`mkdir -p a/b/c`

#### 2.2 查看文件内容
- **浏览全文** `cat file.txt` 适合小文件;`less file.txt` 支持上下翻页,按 `q` 退出。
- **只看头尾** `head -n 20 file.log` 查看前 20 行;`tail -n 20 file.log` 查看末尾 20 行。`tail -f file.log` 可实时跟踪文件新增内容,常用于监控日志。

#### 2.3 复制、移动与重命名
- **复制** `cp source.txt dest.txt``cp source.txt /path/to/dest/`,复制目录需加 `-r`(递归):`cp -r folder1 folder2`
- **移动/重命名** `mv oldname.txt newname.txt``mv file.txt /target/directory/`。Linux 没有独立的“重命名”命令,`mv` 就是全部。

#### 2.4 删除文件与目录
- **删除文件** `rm file.txt`,强制删除(无确认)使用 `rm -f file.txt`
- **删除空目录** `rmdir empty_folder`
- **删除非空目录** `rm -r folder`,强制递归删除用 `rm -rf folder`(**谨慎使用**,不可恢复)

#### 2.5 通配符
- `*` 匹配任意多个字符,例如 `ls *.txt` 列出所有 txt 文件。
- `?` 匹配单个字符,`ls file?.txt` 匹配 `file1.txt`、`filea.txt`。
- `[abc]` 匹配括号内任一字符,`ls file[123].txt` 匹配 `file1.txt`、`file2.txt`、`file3.txt`。

### 3. 权限管理

在 Linux 中,每个文件和目录都属于一个用户和一个用户组,并有三种访问级别:读(r)、写(w)、执行(x)。

#### 3.1 查看权限
使用 `ls -l`,输出如 `-rwxr-xr--`。这一串共 10 个字符:
- 第 1 位:文件类型(`-` 普通文件,`d` 目录,`l` 链接)
- 后 9 位每 3 位一组,分别代表 **所有者(u)**、**所属组(g)**、**其他人(o)** 的权限。
- `rwx` 分别表示读、写、执行,`-` 表示无该权限。

数字权限表示法:`r=4, w=2, x=1`。例如 `rwxr-xr--` 的数字是 `754`(所有者 `rwx`=7,组 `r-x`=5,其他人 `r--`=4)。

#### 3.2 修改权限:`chmod`
- **符号模式** `chmod u+x script.sh` 给所有者增加执行权限;`chmod go-w file.txt` 移除组和其他人的写权限;`chmod a+r file` 所有人可读。
- **数字模式** `chmod 755 script.sh``rwxr-xr-x`;`chmod 600 secret.key` 仅所有者可读写。

#### 3.3 修改所有者和所属组
- `chown user file.txt` 改变文件所有者。
- `chgrp group file.txt` 改变所属组。
- 同时修改:`chown user:group file.txt`
- 递归修改目录下所有内容:`chown -R user:group /path/to/dir` (通常需要 `sudo` 权限)

### 4. 进程管理

程序运行起来就成为进程。学会查看和控制进程,是系统管理的基本功。

#### 4.1 查看进程
- `ps aux` 列出系统中所有进程的详细快照。
- `top` 动态实时显示进程信息,按 `q` 退出。现代替代品 `htop` 更具交互性(可能需要单独安装)。
- 快速查找某个进程:`ps aux | grep process_name`,`grep` 用于过滤文本。

#### 4.2 后台与前台控制
- 在命令末尾加 `&` 可直接在后台运行:`long_running_script &`
- 正在运行的命令按 `Ctrl+Z` 暂停并放入后台,然后:
    - `bg` 让其在后台继续运行。
    - `fg` 将其调回前台。
- `jobs` 查看当前终端会话中的后台任务列表及编号。

#### 4.3 结束进程
- `kill PID` 向进程发送终止信号(PID 可从 `ps``top` 获取)。常用信号:
    - `kill -9 PID` 强制终止(SIGKILL)。
    - `kill -15 PID` 默认终止请求,允许进程清理资源。
- `killall process_name` 根据名称终止所有同名进程。
- `pkill process_name` 类似 killall,支持模式匹配。

#### 4.4 进程优先级
- `nice -n 10 command` 以较低优先级(谦让度 10)启动进程。
- `renice -n 5 -p PID` 调整已有进程的优先级(可能需要 sudo)。

### 5. 实用组合与技巧

- **管道与重定向**  
  使用 `|` 将前一个命令的输出作为后一个命令的输入:`ps aux | grep python`。  
  使用 `>` 将输出保存到文件(覆盖),`>>` 追加到文件。
- **快速查看日志**  
  `tail -f /var/log/syslog | grep error` 实时监控日志中的错误信息。
- **历史命令**  
  使用 `history` 查看历史记录,`!number` 快速执行某条历史命令。
- **命令补全与帮助**  
  输入命令或路径时按 `Tab` 键自动补全。忘记选项时使用 `man command``command --help` 查看手册。

---

### 总结

从基础的目录跳转,到文件增删改查,再到权限控制与进程管理,你已经掌握了 Linux 命令行的核心生存技能。接下来的进阶一步,就是在真实终端中反复练习这些命令。记住,`man` 永远是你最好的朋友。