Linux set命令用于设置shell。
set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。
set [+-abCdefhHklmnpPtuvx]
参数说明:
-a 标示已修改的变量,以供输出至环境变量。
-b 使被中止的后台程序立刻回报执行状态。
-C 转向所产生的文件无法覆盖已存在的文件。
-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
-e 若指令传回值不等于0,则立即退出shell。
-f 取消使用通配符。
-h 自动记录函数的所在位置。
-H Shell 可利用"!"加<指令编号>的方式来执行history中记录的指令。
-k 指令所给的参数都会被视为此指令的环境变量。
-l 记录for循环的变量名称。
-m 使用监视模式。
-n 只读取指令,而不实际执行。
-p 启动优先顺序模式。
-P 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
-t 执行完随后的指令,即退出shell。
-u 当执行时使用到未定义过的变量,则显示错误信息。
-v 显示shell所读取的输入值。
-x 执行指令后,会先显示该指令及所下的参数。
+<参数> 取消某个set曾启动的参数。
实例:
[admin@bcy-new-test-1 aa]$ cat ex.sh
#!/bin/bash
set -x
echo "Hello World !"
admin@bcy-new-test-1 aa]$ sh ex.sh
+ echo 'Hello World !'
Hello World !
获取某个端口是否被占用
netstat -apn | grep 端口号
netstat -tunpl | grep 端口号
lsof -i:端口号 用于查看某一端口的占用情况
ps -ef
字段含义如下:
UID PID PPID C STIME TTY TIME CMD
work 10744 10697 0 15:40 pts/1 00:00:00 grep --color=auto java
UID :程序被该 UID 所拥有
PID :就是这个程序的 ID
PPID :则是其上级父程序的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY :登入者的终端机位置
TIME :使用掉的CPU时间。
CMD :所下达的是什么指令
再重点说明下TIME的含义,不是标识项目启动了多长时间,是cpu使用时间,因为大多数时间可能进程挂起不占用CPU,所以这个time肯定会小于实际运行时间的。
netstat -lnpt,结果如下:
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 23876/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::9100 :::* LISTEN 1363/node_exporter
tcp6 0 0 :::111 :::* LISTEN -
ps aux | grep java:获取java进程