# 终端文件操作：查看、编辑、下载与解压

先查看，再修改；先列出归档内容，再解压。命令行不会替你确认当前目录是否选对，涉及覆盖和删除时尤其要慢一步。

更新日期：2026-09-16

规范地址：https://stock.iftalking.com/guides/text-tools/

## 1. 先知道当前目录和文件路径

命令行区分大小写，也会把空格当作参数分隔。操作前用 `pwd` 确认目录，路径含空格时加引号。以自己的临时目录练习，别用系统配置或唯一备份做第一次实验。

```bash
mkdir -p "$HOME/cli-practice"
cd "$HOME/cli-practice"
pwd
printf 'first line\nsecond line\n' > example.txt
```

`>` 会覆盖目标文件；`>>` 才是追加。上面创建的是练习文件，如果已存在同名内容，应换名字后再执行。

## 2. 查看小文件、大文件和持续变化的日志

```bash
cat example.txt
head -n 10 example.txt
tail -n 20 example.txt
less example.txt
```

cat 适合短文件，head/tail 看开头和结尾，less 可翻页和搜索，按 q 退出。跟踪轮转日志时可使用 `tail -F /实际/日志路径`，按 Ctrl+C 停止查看；这不会停止写日志的服务。

需要定位配置项时，优先使用 `rg -n '关键词' 文件`；没有 rg 可用 `grep -n`。不要把包含密码和令牌的整份配置贴到公开论坛，通常只需要相关几行。

## 3. 使用 Nano 编辑并保留备份

先复制一份带日期的配置备份，再运行 `sudo nano /实际/配置文件`。Nano 底部的 `^` 表示 Ctrl：Ctrl+O 保存，回车确认文件名，Ctrl+X 退出，Ctrl+W 搜索。

保存并不代表配置已生效。按服务自己的方式检查语法，例如 `nginx -t` 或 `sshd -t`，成功后再 reload。看不懂差异时用 `diff -u 备份文件 当前文件` 对照，避免反复整份覆盖。

## 4. 下载文件先保存，再检查来源

```bash
curl --fail --location --output package.tar.gz https://example.com/package.tar.gz
```

地址只是格式示例，实际下载应使用软件官方链接。下载成功后核对官方发布的校验值或签名，再解压或运行。不要把下载结果直接接到 root shell，尤其是来源不明的一键脚本。

对于重要文件，可用 `sha256sum package.tar.gz` 核对完整性；校验值也应来自可信渠道，不能只与同一个不明下载站提供的值互相印证。

## 5. 归档、解压和删除各自检查目标

```bash
tar -czf example-backup.tar.gz example.txt
tar -tzf example-backup.tar.gz
mkdir restored
tar -xzf example-backup.tar.gz -C restored
```

先列出压缩包内容，再解压到独立目录，避免覆盖现有文件。tar 是归档，gzip 是压缩，压缩包存在不代表内容完整或可恢复。

删除练习文件时用 `rm -i example.txt` 确认具体对象。不要在不清楚当前目录时运行 `rm -rf *`，也不要把变量为空的路径拼进删除命令。正式数据清理参见[磁盘空间检查](https://stock.iftalking.com/guides/disk-cleanup/)，传输参见[SFTP 与 SCP](https://stock.iftalking.com/guides/files-transfer/)。


## 完成后检查

配置修改成功的标准是语法检查和服务验证通过，而不是编辑器已经保存。

## 参考资料

- [Ubuntu Server 文档](https://documentation.ubuntu.com/server/)
