(最常用)
这是最常见的需求,即把终端里显示的文字、代码、运行结果等保存到一个文件中。

使用重定向符号 > 和 >>
这是最基本、最核心的方法,适用于几乎所有的命令行环境(如 Windows CMD, PowerShell, Linux/macOS Shell)。
>(覆盖写入):将命令的输出保存到文件中,如果文件已存在,将被清空并覆盖。>>(追加写入):将命令的输出追加到文件末尾,如果文件不存在,则会创建新文件;如果文件已存在,会添加在文件末尾,不会覆盖原有内容。
基本语法:
命令 > 文件名.txt 命令 >> 文件名.txt
示例:
-
保存
ls命令的列表(覆盖)
(图片来源网络,侵删)ls -l > file_list.txt
执行后,当前目录的详细列表会被保存到
file_list.txt文件中,如果该文件已存在,其旧内容会丢失。 -
保存
date命令的输出(追加)date >> log.txt
执行后,当前的日期和时间会被添加到
log.txt文件的末尾,你可以多次运行此命令来记录日志。 -
保存
ping命令的结果(覆盖)
(图片来源网络,侵删)ping google.com > ping_result.txt
执行后,ping Google 的所有结果都会被保存到
ping_result.txt。
使用 tee 命令(Linux/macOS 及 Windows WSL/Git Bash)
tee 命令非常强大,它可以将数据同时输出到屏幕(标准输出)和一个文件中,这对于需要实时看到输出并同时保存的场景非常有用。
-a选项:表示追加(append),与>>类似,不覆盖文件。
基本语法:
命令 | tee 文件名.txt 命令 | tee -a 文件名.txt
示例:
-
保存
df命令的输出并同时查看df -h | tee disk_usage.txt
执行后,磁盘使用情况会显示在屏幕上,同时也会被保存到
disk_usage.txt文件中。 -
连续追加日志
echo "System check completed at $(date)" | tee -a system_log.txt
这会将带有时间戳的检查完成信息显示在屏幕上,并追加到日志文件。
保存终端的完整会话记录(包括输入和输出)
有时候你需要保存从打开终端到关闭终端期间的所有操作,包括你输入的每一条命令和它们的输出结果。
使用 script 命令(Linux/macOS 及 Windows WSL/Git Bash)
script 命令是专门为此设计的,它会记录你终端中的所有内容,直到你输入 exit 退出 script 会话为止。
基本语法:
script 文件名.txt
使用步骤:
- 在终端输入
script my_session.log然后回车。 - 从现在开始,你在这个终端窗口里做的所有操作都会被记录到
my_session.log文件中。 - 当你完成所有操作后,输入
exit并回车,结束记录。 - 你可以用
cat my_session.log查看完整的会话记录。
保存当前工作目录
这个需求比较特殊,通常是为了快速切换到之前工作的目录。
使用 pushd 和 popd 命令(Linux/macOS 及 Windows CMD/PowerShell)
这两个命令像一个“目录栈”,可以帮你保存和快速切换目录。
pushd 目录名:进入指定目录,同时将当前目录压入“栈”中保存。popd:从“栈”中弹出之前保存的目录,并直接返回到该目录。
示例:
# 你在 /home/user/documents cd /home/user/downloads # 现在你在 downloads 目录 # 使用 pushd 保存当前目录并进入新目录 pushd /var/log # 现在你在 /var/log 目录 # ... 在 /var/log 目录下工作 # 使用 popd 直接返回到之前保存的目录(即 /home/user/downloads) popd # 现在你又回到了 /home/user/downloads 目录
保存和恢复终端会话(断开会话后重新连接)
这对于长时间运行的任务(如编译代码、下载大文件)非常有用,你可以关闭电脑或断开SSH连接,稍后再回来,任务会从之前的地方继续。
使用 tmux 或 screen(Linux/macOS 及 WSL)
这是专业开发者的利器,可以创建持久的终端会话。
-
tmux(推荐):tmux new -s my_session:创建一个名为my_session的新会话。- 在这个会话里,你可以像在普通终端里一样工作。
- 按
Ctrl+B然后按D可以分离会话(会话在后台继续运行)。 tmux attach -t my_session可以重新连接到my_session会话。
-
screen:screen -S my_session:创建一个新会话。- 按
Ctrl+A然后按D可以分离会话。 screen -r my_session可以重新连接。
特定编辑器中的保存命令
如果你在终端里打开了一个文本编辑器,那么保存命令是该编辑器自身的命令。
vim 或 nvim (Neovim)
- 按
Esc确保进入普通模式。 - 输入
w然后回车:保存(Write)。 - 输入
wq然后回车:保存并退出(Write and Quit)。 - 输入
q!然后回车:不保存强制退出(Quit without saving)。
nano
- 按
Ctrl + O:保存(Write Out)。 - 按回车确认文件名。
- 按
Ctrl + X:退出(Exit),如果文件有修改,它会提示你是否保存。
总结表格
| 场景 | 目标 | 命令/方法 | 说明 |
|---|---|---|---|
| 保存命令输出 | 到新文件 | command > file.txt |
覆盖写入 |
| 到新文件(追加) | command >> file.txt |
追加写入 | |
| 同时显示和保存 | command \| tee file.txt |
实时查看并保存 | |
| 保存完整会话 | 所有输入和输出 | script file.txt |
记录直到 exit |
| 保存当前目录 | 以便快速返回 | pushd / popd |
像一个目录栈 |
| 保存运行任务 | 断开/重连会话 | tmux / screen |
后台持久化运行 |
| 编辑器内保存 | 保存正在编辑的文件 | vim: wnano: Ctrl+O |
编辑器内置命令 |
希望这份详细的总结能帮助你找到最适合你的“保存命令”!
