shell

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
1
2
#blog
nohup mvn spring-boot:run > /dev/null 2>&1 &

Linux下使用shell命令时经常使用类似这样的Shell输出重定向:

1>/dev/null 2>&1

在Shell命令的结尾,我们可以通过>符号来重定向输出。

  1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2

  2. /dev/null 空设备文件,相当于垃圾桶

  3. 重定向符号:>
    逐一解释上面的Shell重定向命令:
    (1) >符号代表输出重定向
    (2) >前面的数字:

  • 0代表标准输入
  • 1代表stdout标准输出,默认值为1,所以”1>/dev/null”可以简写为”>/dev/null
  • 2代表stderr标准错误输出

(3)2>&1代表把stderr标准错误输出 重定向 到stdout标准输出
所以,1>/dev/null 2>&1的解释就是
将stdout标准输出重定向到空设备文件/dev/null ,同时将stderr标准错误输出的重定向跟stdout标准输出重定向一致,也输出到空设备文件/dev/null。
nohup mvn spring-boot:run 1>/dev/null 2>&1 &

shell查找进程并杀死

1
2
3
4
5
6
7
8
9
10
#!/bin/sh

tomcat_id=`ps -ef | grep tomcat | grep -v "grep" | awk '{print $2}'`
echo $tomcat_id

for id in $tomcat_id
do
kill -9 $id
echo "killed $id"
done

注意:tomcat表示要查找的程序进程名,如:tomcat、8081端口、redis等等。

linux查找进程并杀死

1
2
3
4
#####查找tomcat进程
ps -ef | grep tomcat | grep -v grep | awk '{print $2}'
#####查找tomcat进程并杀死
ps -ef | grep tomcat | grep -v grep | awk '{print $2}' | xargs kill -9