nohup
简介 :nohup 是 “no hang up” 的缩写,用于确保命令在终端关闭后仍能继续运行。
基本用法 :
1 | nohup python train.py > output.log 2>&1 & |
nohup:使命令忽略终端挂起信号。python train.py:待执行的程序。> output.log:将标准输出重定向到output.log。2>&1:将标准错误重定向到标准输出。&:将命令置于后台运行。
查看进程 :使用 ps 或 jobs 查看运行中的进程。
注意事项 :nohup 适合简单任务,终止进程时需手动查找 PID。
tmux
简介 :tmux 是终端复用工具,允许用户在一个终端窗口中运行多个会话、窗口和窗格。
启动与连接
1 | tmux new -s mysession # 创建新会话 自己用:prompt |
基本操作
带tmux的都在tmux外输入,快捷键都在tmux内按。
- 分离会话 :按
Ctrl + b后输入d,会话将继续在后台运行。 - 查看会话 :
tmux ls列出所有活动会话。 - 关闭会话 :
tmux kill-session -t mysession彻底关闭会话及其内部命令。 - 查看历史会话:按
Ctrl + b后输入[,按方向键查看历史记录,想不看了按q。在tmux内,输入指令时无法看历史记录,看历史记录时不能输入指令。
窗口与窗格管理
- 列出所有窗口:
tmux list-windows或tmux ls-w。 - 创建新窗口 :按
Ctrl + b后输入c。 - 查看当前会话所有窗口:
Ctrl + b然后 按w。有10个以上窗口则用这个切换,按方向键选择,然后回车进入对应窗口。 - 切换窗口 :切换到窗口2
tmux select-window -t 2,或Ctrl + b然后 按 窗口编号 (0~9)。
优势 :适合复杂实验环境,支持多任务并行处理,可随时恢复会话。
screen
简介 :screen 是终端复用工具,可在一个终端窗口里开多个虚拟终端。
基本用法
1 | screen -S session_name # 创建会话 |
- 分离会话 :按
Ctrl + a后输入d。 - 关闭会话 :输入
exit。
优势场景
- 远程工作不断线 :断网后可重新连接,任务继续运行。
- 多任务并行管理 :一个窗口开多个会话,轻松切换。
- 后台运行任务 :关闭终端后任务仍继续执行。
三者对比
| 工具 | 优势 | 劣势 |
|---|---|---|
| nohup | 简单易用,适合短期任务 | 无法实时查看输出,终止进程需查找 PID |
| tmux | 支持多会话、多窗口、多窗格,可实时查看 | 学习曲线较陡 |
| screen | 功能类似 tmux,兼容性好 | 使用场景相对 tmux 较少 |
总结
- 短期任务 :使用
nohup快速启动并后台运行。 - 复杂多任务 :使用
tmux创建多会话、多窗口进行管理。 - 兼容性需求 :
screen是不错的选择。
根据具体需求选择合适的工具,可有效提升远程实验的效率与便捷性。


