访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

Linux 后台执行命令

时间:2019-07-24

linux格式化命令_linux命令_linux命令

下面的示例统一使用这个每秒打印一次时间的简单脚本:

[root@VM_139_74_centos shell]# cat 10s.sh
#!/bin/bash

for ((i = 0; i < 10; i++)); do
    echo $(date)
    sleep 1
done

正常执行命令时linux命令,会阻塞终端,同时将所有输出信息打印到终端:

[root@VM_139_74_centos shell]# ./10s.sh
Wed May 30 11:32:13 CST 2018
Wed May 30 11:32:14 CST 2018
Wed May 30 11:32:15 CST 2018
Wed May 30 11:32:16 CST 2018
Wed May 30 11:32:17 CST 2018
Wed May 30 11:32:18 CST 2018
Wed May 30 11:32:19 CST 2018
Wed May 30 11:32:20 CST 2018
Wed May 30 11:32:21 CST 2018
Wed May 30 11:32:22 CST 2018
[root@VM_139_74_centos shell]#

注意,Linux 终端中执行的命令的输出是可以有缓存的。有时候命令执行完了,但是输出的信息并不完整,这时候再需要敲其他命令(例如 Ctrl + c)清空缓存。

linux格式化命令_linux命令_linux命令

命令后面有 & 时,这个命令将会在后台运行。但是输出信息仍会打印到终端,但是此时可以接受其他命令:

[root@VM_139_74_centos shell]# ./10s.sh &
[1] 17257
[root@VM_139_74_centos shell]# Wed May 30 11:32:30 CST 2018
Wed May 30 11:32:31 CST 2018
Wed May 30 11:32:32 CST 2018
Wed May 30 11:32:33 CST 2018
Wed May 30 11:32:34 CST 2018
Wed May 30 11:32:35 CST 2018
Wed May 30 11:32:36 CST 2018
Wed May 30 11:32:37 CST 2018
Wed May 30 11:32:38 CST 2018
Wed May 30 11:32:39 CST 2018
nohup ./10s.sh &
[2] 17290
[1]   Done                    ./10s.sh
[root@VM_139_74_centos shell]# nohup: ignoring input and appending output to ‘nohup.out’

& 特点如下:

对于第一个问题,可以在命令前添加 nohup(no hang up)解决:

nohup your-command &

linux命令_linux命令_linux格式化命令

第二个问题可以使用输出重定向将输出重定向到文件:

your-command > out.file 2>&1  & 

2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。如果不重新定向 cron 作业的输出为标准输出或标准错误,cron 守护进程就会通过电子邮件告知您任何命令输出或错误。如果不重新定向cron作业的输出为标准输出或标准错误,cron守护程序就会通过电子邮件告知您任何命令输出或错误。

 上一个教程:Linux命令基础7.18