linux 四大王者级运算符你真的懂嘛

2023-12-18 14:30:03

四大王者级运算符

运算符含义
|管道符,相当Javastream,将上次操作的输出作为下次的输入
||逻辑或,a||b,如果a成立,则b不执行,如果a不成立则继续执行b.只要一个条件成立则为true
&后台符,简单说就是打开终端在后台执行。比如java -jar xx.jar &,此命令会启动一个Java的终端程序。如果加上nohup就会关闭终端并在后台运行(守护进程)
&&逻辑与,a&&b ,当a成立时才会继续执行b,当a和b同时成立才为true

运算符的重要性

  1. 自动化工作流程:通过使用管道(|)和其他运算符,用户可以组合多个命令,以实现更复杂的任务。这使得用户能够自动化常见的工作流程,从而节省时间和精力。
  2. 条件执行&&|| 运算符允许用户根据前一个命令的成功或失败来执行后一个命令。这在脚本中特别有用,因为它们可以帮助用户根据特定条件执行不同的操作。
  3. 后台执行:使用 & 运算符,用户可以在后台运行命令。这对于那些可能需要花费很长时间来完成的长时间运行任务特别有用,因为用户不必等待这些任务完成。
  4. 组合数据:通过使用运算符,如 cat, awk, sed 等,用户可以组合多个文件或数据流,以创建新的数据或提取特定信息。
  5. 逻辑运算:例如 &&||,它们允许用户进行逻辑运算,以确定是否执行特定的命令或操作。这在脚本中特别有用,因为它们可以帮助用户根据多个条件执行不同的操作。

实例解析

  • 实例1
cat xx.sh | sort |uniq | grep "java"

该段代码将先执行cat命令将xx.sh文件数据输出,然后传递给sort进行文本行排序(具体的排序规则可以根据sort --help进行查看),将排序好的数据传递给uniq进行文本行去重,最后交由grep进行文本行数据筛选,筛选行包含Java的文本行并展示在命令行终端。这样就实现从文本文件中筛选、排序、去重并将最终结果输出到命令行终端

  • 实例2
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

  • 实例3
[ $pid ] && kill -15 $pid | echo $pid killed

[ $pid ] 先判断进程pid是否存在,存在则表明条件成立,继续执行进程关闭,kill -15kill -2表示优雅的关闭进程。kill -9 命令少用,最后输出被杀死的进程id到终端。

  • 实例4
nohup java -jar xx.jar > xx.log &

该命令实现将一个Java程序在后台运行并将日志保持到xx.log中,如果没有 > xx.log,默认输出到jar包同目录的nohup.out& 表示程序后台运行,但会保留终端,终端关闭后台程序也关闭。nohup即实现了在关闭终端的情况下依旧保持程序后台运行。

文章来源:https://blog.csdn.net/qq_40673786/article/details/135055247
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。