参考:https://blog.csdn.net/succing/article/details/127355545
&
作用:表示任务在后台执行,即使ssh窗口关闭,服务依然会在后台持续运行。
bin/zookeeper-server-start.sh config/zookeeper.properties &
#docker run -d -p 8000:8080 tomcat 后台阻塞运行(如果没有-d,窗口被关闭,服务也会随之关闭)
注意:默认情况下,进程是前台进程,这时就把Shell给占据了,此时Shell窗口无法进行其他操作。通常情况下,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,此时可以在启动时,参数尾部加一个'&'或者'-d'实现这个目的。
当然,两者也可以混合式使用,比如:./MediaServer -d &
扩展:单独使用-d或&参数启动服务时的区别和联系
- -d参数启动服务时,服务会以守护进程的形式在后台运行,并且会将输出重定向到系统日志或指定的日志文件中,便于后续查看;
- 使用&启动服务时,服务会以后台进程的形式在后台运行,并且会将输出重定向到终端之外的标准输出中,服务进程的输出信息只能在终端关闭前查看,之后无法再次查看;
- -d参数启动服务时,可以使用service命令来查看和管理服务,包括查看服务状态、重启服务等;
- 使用&启动服务时,如果需要查看服务状态或停止服务,需要使用ps命令和kill命令,较为繁琐。
nohup
nohup是no hang up 的缩写,即:不挂断的意思,关闭终端界面后,进程继续后台运行。
[root@centOS7 ~]# nohup ./startup.sh >output 2>&1 &
注意事项:
- 使用nohup命令时,需添加 &( “and”符号)到命令的尾部。
- 使用nohup命令时,如果直接在shell中使用ctrl + c 或ctrl + z时,进程会结束!!!。
- nohup命令默认输出重定向目录,是当前目录的nohup.out文件中;如果当前目录的 nohup.out 是只读的,则自动重定向输出到$HOME/nohup.out 文件中。
&&
作用:表示前一条命令执行成功时,才执行后一条命令;反之,前面的命令执行失败,则&&后面的命令不会被执行
[root@centOS7 ~]# data && echo hello
bash: data: 未找到命令...
[root@centOS7 ~]# date && echo hello
2022年 10月 17日 星期一 00:07:01 CST
hello
|
作用:| 表示管道,上一条命令的输出,作为下一条命令参数,通常用来过滤/汇总数据
示例一:配合grep,完成过滤
#过滤出占用端口9092的程序(kafka)
netstat -nalpt | grep 9092
示例二:配合wc完成统计
echo 'yes' | wc -l
echo 'yes' | wc -m
示例三:连续使用管道
[root@centOS7 ~]# cat /etc/passwd | grep /bin/bash | wc -l
2
[root@centOS7 ~]#
||
作用:表示上一条命令执行失败后,才执行下一条命令。一旦执行到一条成功的命令,后面用||连接的命令,就不会再被执行。
[root@centOS7 ~]# cat nofile || echo "hi,succ"
cat: nofile: 没有那个文件或目录
hi,succ
[root@centOS7 ~]# cat /etc/hostname || echo "hello succ"
centOS7
[root@centOS7 ~]#
;
作用:把多条命令,拼接在一起后执行,可减少(人机)交互次数。
注意:用;号隔开每个命令, 每个命令按照从左到右的顺序执行, 但是彼此之间不关心是否失败, 所有命令都会执行。
[root@centOS7 ~]# data;echo 'hello';date;cat /etc/hostname
bash: data: 未找到命令...
hello
2022年 10月 17日 星期一 00:34:05 CST
centOS7
[root@centOS7 ~]#
()
作用:把多个命令,当做一个整体执行,同时增强了可读性。
通常情况下,多个命令用“;”分隔后,最外层再用“()”包裹一下,通常用在稍微复杂点的shell中。
语法格式:(command1;command2;command3;...)
标签:centOS7,服务,echo,尾部,命令,nohup,linux,root
From: https://www.cnblogs.com/hasome/p/18082134