在 Linux 中,&
是一个特殊的符号,用于将命令放到后台运行。它的作用是让命令在后台执行,而不阻塞当前终端,用户可以继续输入其他命令。
具体作用
-
后台运行:
-
在命令末尾加上
&
,可以让命令在后台运行,终端不会被阻塞。 -
例如:
sleep 100 &
会让sleep
命令在后台运行,用户可以继续使用终端。
-
-
返回进程 ID:
-
使用
&
后,终端会返回一个进程 ID(PID),用于后续管理该进程(如终止进程)。
-
示例
1. 基本用法
sleep 100 &
-
运行后,终端会显示类似以下内容:
[1] 12345
-
[1]
是作业编号(job ID)。 -
12345
是进程 ID(PID)。
-
-
用户可以继续在终端输入其他命令。
2. 结合输出重定向
python my_script.py > output.log 2>&1 &
-
将
my_script.py
放到后台运行,并将标准输出和错误输出重定向到output.log
文件。
相关命令
-
查看后台任务:
-
使用
jobs
命令查看当前终端启动的后台任务。 -
示例:
jobs
输出示例:
[1] + running sleep 100
-
-
将后台任务调回前台:
-
使用
fg
命令将后台任务调回前台。 -
示例:
fg %1
(
%1
是作业编号,对应jobs
中的[1]
)
-
-
终止后台任务:
-
使用
kill
命令终止后台任务。 -
示例:
kill 12345
(
12345
是进程 ID)
-
注意事项
-
如果终端关闭,后台任务可能会被终止(除非使用
nohup
或disown
来保护任务)。 -
后台任务仍然会占用终端的标准输入和输出,如果需要完全分离,可以结合
nohup
使用。
总结
&
是 Linux 中用于将命令放到后台运行的符号,适合需要同时执行多个任务或长时间运行任务的场景。结合 jobs
、fg
和 kill
等命令,可以方便地管理后台任务。