which whereis whatis file以及后台执行|作业控制

楔子

学习笔记


which 、 whereis 、 file 与 whatis 命令可以给出文件和目录的相关信息。

which

用来查找某个命令的位置。例如
[root@localhost soft]# which nginx
/usr/sbin/nginx

通常在使用命令时,无需知道可执行文件所在的位置。根据对PATH变量的定义,可以直接使用/bin  /usr/local/bin  目录下的命令

whersis

whereis与which命令类似,它不仅返回了命令的路劲,还能打印出其对应的命名手册以及源代码的路劲。

[root@localhost opt]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
[root@localhost opt]# 

whatis

whatis会输出指定命令的一行简短描述。

file

file - 确定文件类型

后台执行

以后台模式运行脚本

在后台模式中,进程运行时不会和终端会话上的STDIN STDOUT STDERR关联。

后台运行脚本

以后台运行脚本只要在命令后加个&符就可以了。
当&符 放到命令后时,它会将命令和bash shell分离开来,将命令作为系统中的一个独立的后台进程运行。


后台运行显示地第一行是[1] 64687 , 方括号中的数字是shell分配给后台进程的作业号。下一个数字是Linux系统分配给进程的进程ID(PID)。

[root@localhost t]# cat test01.sh 
#!/bin/bash
# Test running in the background
#
count=1
while [ $count -le 10 ]
do
	sleep 1
	count=$[ $count + 1 ]
done

[root@localhost t]# ./test01.sh &
[1] 64687
[root@localhost t]# 

执行完毕后,终端上会显示一条消息如下

[root@localhost t]# 
[1]+  Done                    ./test01.sh

在终端中使用后台进程时,每一个后台进程都和终端会话(pts/0)终端联系在一起,如果终端会话退出的话,那么后台进程也会随之退出

在非控制台下运行脚本

如果想要终端会话中启动运行shell脚本。然后让脚本一直以后台模式运行到结束。即使退出了终端会话。可以使用nohup命令实现

nohup 命令运行了另外一个 命令来阻断所有发送给该进程的SIGHUP信号。这会在退出终端会话是阻止进程退出。

nohup命令的格式如下:
nohup ./test01.sh &

[root@localhost t]# nohup ./test01.sh &
[1] 65029
[root@localhost t]# nohup: ignoring input and appending output to ‘nohup.out’

和普通后台进程一样,shell命令会给命令分配一个作业号,Linux系统会为其分配一个PID号。区别在于,当使用nohup命令时。如果关闭该会话,脚本会忽略终端会话发过来的SIGHUP信号。
由于nohup命令会解除终端与进程的关联,进程也就不再同STDOUT和STDERR联系在一起。为了保存该另的产生的输出,nohup命令会自动将STDOUT和STDERR的消息重定向到一个名为 nohup.out 文件中。

作业控制

启动、终止、停止以及恢复作业的这些功能被称为作业控制 。通过作业控制,就能完全控制shell环境中所有进程的运行方式。

查看作业

作业控制中的关键命令是jobs命令。job命令允许查看shell当前正在处理的作业。

[root@localhost t]# jobs
[1]+  Running                 sh test_job.sh &

jobs命令参数

参数描述
-l只列出进程的PID以及作业号
-n只列出上次shell发出的通知后改变了状态的作业
-p只列出作业的PID
-r只列出运行中的作业
-s只列出以停止的作业

重启停止的作业

Ctrl+Z可以 终止作业
bg命令 加上作业号 可以重启作业
要以前台模式重启作业,可用 带有作业号的fg命令:fg 作业号

[root@localhost t]# sh test_job.sh 
Script Process ID: 65508
Loop #1
^Z
[1]+  Stopped                 sh test_job.sh
[root@localhost t]# bg
[1]+ sh test_job.sh &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值