linux同时执行多个命令
linux同时执行多个命令详细介绍
在 Linux 中同时执行多个命令有多种方式,具体取决于你是想并行执行(不等待前一个完成)还是顺序执行(按顺序执行)。以下是常用方法及示例:
一、顺序执行(按顺序执行,前一个完成后再执行下一个)
语法:命令1; 命令2; 命令3
示例:先更新软件包,再升级系统,最后清理缓存
bash
update upgrade -y autoremove
二、并行执行(后台运行,多个命令同时执行)
1. 使用
& 后台运行
语法:命令1 & 命令2 & 命令3
示例:同时解压两个压缩包(后台并行)
bash
file1.tar.gz file2.tar.gz
- 终端会立即返回提示符,可通过
jobs查看后台任务,用fg %1切回第一个任务。
2. 使用
nohup 后台持久运行(终端关闭后仍执行)
语法:nohup 命令1 & nohup 命令2 &
示例:在后台持续运行两个脚本,终端关闭不影响
bash
./script1.sh ./script2.sh
三、组合执行(根据前一个命令的成功 / 失败决定是否执行下一个)
1. 仅前一个成功时执行:
&&
语法:命令1 && 命令2
示例:如果目录存在,进入并列出文件
bash
/data /data
2. 前一个失败时执行:
||
语法:命令1 || 命令2
示例:如果文件不存在,创建它
bash
data.txt data.txt
四、终端复用工具(同时查看多个命令的输出)
使用 tmux 或 screen 分屏执行多个命令:
- 安装:
sudo apt install tmux(Debian/Ubuntu) - 用法:
- 新建会话:
tmux - 垂直分屏:
Ctrl+B + % - 水平分屏:
Ctrl+B + " - 在每个分屏中运行不同命令(如
top和htop)。
- 新建会话:
五、批量执行(通过脚本或
xargs 并行处理)
示例:并行复制多个文件(需
parallel 工具)
bash
parallel*.txt parallel /backup/
总结对比
| 场景 | 推荐方法 | 特点 | ||
|---|---|---|---|---|
| 简单顺序执行 | ; |
按顺序,无需等待结果 | ||
| 后台并行执行 | & |
终端关闭后终止 | ||
| 终端关闭后仍运行 | nohup + & |
持久化后台任务 | ||
| 依赖前一个命令结果 | &&/` |
` | 条件执行 | |
| 同时查看多任务输出 | tmux/screen |
分屏交互 |
根据需求选择合适的方式,注意并行任务可能消耗更多系统资源。