[TOC]
nc
用于设置路由器,是网络工具中的瑞士军刀
开启一个监听端口
1
nc -l 3003 # 开启一个对3003端口的监听。可以用于测试防火墙
netstat
查看Linux中网络系统状态信息
- 用法
1 | -a或--all:显示所有连线中的Socket; |
例子
1
2
3
4
5
6
7查看 l-> socket , n-> 使用ip地址 , t -> tcp 协议 , p -> 正在使用 sockt 的程序识别码和程序名称
[root@VM_34_137_centos ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:42830 0.0.0.0:* LISTEN 7100/chrome
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1176/sshd
tcp6 0 0 :::3001 :::* LISTEN 26678/node /home/wo
killall
按名字杀死进程
用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14- Terminate a process using the default SIGTERM (terminate) signal:
killall process_name
- List available signal names (to be used without the 'SIG' prefix):
killall --list
- Interactively ask for confirmation before termination:
killall -i process_name
- Terminate a process using the SIGINT (interrupt) signal, which is the same signal sent by pressing Ctrl + C:
killall -INT process_name
- Force kill a process:
killall -KILL process_name常用例子
1
killall -9 java # 结束所有名字为 java 的进程
ps
ps命令用于报告当前系统的进程状态,可以搭配 kill 指令随时中断删除不必要的程序
命令帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62-a: 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a: 显示现行终端机下的所有程序,包括其他用户的程序。
-A: 显示所有程序。
-c: 显示CLS和PRI栏位。
c: 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C <指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d: 显示所有程序,但不包括阶段作业领导者的程序。
-e: 此选项的效果和指定"A"选项相同。
e: 列出程序时,显示每个程序所使用的环境变量。
-f: 显示UID,PPIP,C与STIME栏位。
f: 用ASCII字符显示树状结构,表达程序间的相互关系。
-g <群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g: 显示现行终端机下的所有程序,包括群组领导者的程序。
-G <群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
h: 不显示标题列。
-H: 显示树状结构,表示程序间的相互关系。
-j 或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L: 列出栏位的相关信息。
-m或m:显示所有的执行绪。
n: 以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码>:此选项的效果和指定"p"选项相同。
--cols<每列字符数>:设置每列的最大字符数。
--columns<每列字符数>:此选项的效果和指定"--cols"选项相同。
--cumulative:此选项的效果和指定"S"选项相同。
--deselect:此选项的效果和指定"-N"选项相同。
--forest:此选项的效果和指定"f"选项相同。
--headers:重复显示标题列。
--help:在线帮助。
--info:显示排错信息。
--lines<显示列数>:设置显示画面的列数。
--no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
--group<群组名称>:此选项的效果和指定"-G"选项相同。
--Group<群组识别码>:此选项的效果和指定"-G"选项相同。
--pid<程序识别码>:此选项的效果和指定"-p"选项相同。
--rows<显示列数>:此选项的效果和指定"--lines"选项相同。
--sid<阶段作业>:此选项的效果和指定"-s"选项相同。
--tty<终端机编号>:此选项的效果和指定"-t"选项相同。
--user<用户名称>:此选项的效果和指定"-U"选项相同。
--User<用户识别码>:此选项的效果和指定"-U"选项相同。
--version:此选项的效果和指定"-V"选项相同。
--widty<每列字符数>:此选项的效果和指定"-cols"选项相同。常用用法
1
2
3ps -ef # 显示所有进程,并显示UID,PPIP,C与STIME栏位
#(参考上述 -e -f 详细介绍)
ps aux # 显示所有正在运行的程序字段解释
PID (Process ID)
PID 是程序被操作系统加载到内存成为进程后动态分配的资源。
每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。
PPID (Parent Process ID)
PPID 是程序的父进程号
ps 配合 kill 批量杀进程
1 | ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9 |
命令拆解
ps -ef
显示所有进程,并显示UID,PPIP,C与STIME栏位
grep java
过滤出 “java” 关键字的进程(是以行为单位)
grep -v grep
去除 grep 自身这条过滤命令 , -v 表示反向选择
awk ‘{print $2}’
表示筛选出关注的进程号,$2 表示每行第二个变量。
在这个例子的场景下,$2 代表的每行第二个变量就是进程号。
如果使用的 ps 工具不一样,或者 ps 带的参数不一样,就需要注意修改,那样需要关注的可能就不是 $2 ,可能是 $1
xargs kill -9
xargs 命令表示前面命令的输出结果(也就是一系列的进程号)作为 kill -9 命令的参数,-9 表示强制终止,不是必须的。