运算符 | 含义 |
---|---|
| | 管道符,相当Javastream,将上次操作的输出作为下次的输入 |
|| | 逻辑或,a||b,如果a成立,则b不执行,如果a不成立则继续执行b.只要一个条件成立则为true |
& | 后台符,简单说就是打开终端在后台执行。比如java -jar xx.jar &,此命令会启动一个Java的终端程序。如果加上nohup就会关闭终端并在后台运行(守护进程) |
&& | 逻辑与,a&&b ,当a成立时才会继续执行b,当a和b同时成立才为true |
|
)和其他运算符,用户可以组合多个命令,以实现更复杂的任务。这使得用户能够自动化常见的工作流程,从而节省时间和精力。&&
和 ||
运算符允许用户根据前一个命令的成功或失败来执行后一个命令。这在脚本中特别有用,因为它们可以帮助用户根据特定条件执行不同的操作。&
运算符,用户可以在后台运行命令。这对于那些可能需要花费很长时间来完成的长时间运行任务特别有用,因为用户不必等待这些任务完成。cat
, awk
, sed
等,用户可以组合多个文件或数据流,以创建新的数据或提取特定信息。&&
和 ||
,它们允许用户进行逻辑运算,以确定是否执行特定的命令或操作。这在脚本中特别有用,因为它们可以帮助用户根据多个条件执行不同的操作。cat xx.sh | sort |uniq | grep "java"
该段代码将先执行cat
命令将xx.sh
文件数据输出,然后传递给sort进行文本行
排序(具体的排序规则可以根据sort --help
进行查看),将排序好的数据传递给uniq
进行文本行去重,最后交由grep
进行文本行数据筛选,筛选行包含Java的文本行并展示在命令行终端
。这样就实现从文本文件中筛选、排序、去重并将最终结果输出到命令行终端
pid=`ps -ef | grep java | grep xx.jar |awk '{print $2}'`
先通过ps -ef 或者 ps aux
查看服务器所有进程,然后通过grep java
刷选进程行包含Java的进程行数据。继续将grep
的结果传递给grep xx.jar
进行继续筛选,筛选出行数据包含xx.jar
的行数据。最后通过awk '{print $2}'
筛选进程id列
数据,这样就实现了查看某个具体的Java进程id
[ $pid ] && kill -15 $pid | echo $pid killed
[ $pid ]
先判断进程pid是否存在,存在则表明条件成立,继续执行进程关闭,kill -15
或 kill -2
表示优雅的关闭进程。kill -9
命令少用,最后输出被杀死的进程id到终端。
nohup java -jar xx.jar > xx.log &
该命令实现将一个Java程序在后台运行并将日志保持到xx.log
中,如果没有 > xx.log
,默认输出到jar包同目录的nohup.out
。&
表示程序后台运行,但会保留终端,终端关闭后台程序也关闭。nohup
即实现了在关闭终端的情况下依旧保持程序后台运行。