本章命令
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
ip a | ss | ps | uptime | top | lsof | grep | telnet |
1、ip a
作用:查看ip地址(用于centos7系统)
centos6系统用ifconfig
windows运行ipconfig
- ╭─root@localhost.localdomain ~
- ╰─➤ ip a
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 00:0c:29:7f:e5:12 brd ff:ff:ff:ff:ff:ff
- inet 192.168.80.3/24 brd 192.168.80.255 scope global ens33
- valid_lft forever preferred_lft forever
- inet6 fe80::20c:29ff:fe7f:e512/64 scope link
- valid_lft forever preferred_lft forever
-
- # 拓展:修改网卡信息
- 修改配置文件 /etc/sysconfig/network-scripts/ 目录下的网卡同名文件
-
- DEVICE=eth0 #指出设备名称
- NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启
- ONBOOT=yes #设置为yes,开机自动启用网络连接
- IPADDR=192.168.21.129 #IP地址
- BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务
- NETMASK=255.255.255.0 #子网掩码
- DNS1=8.8.8.8 #第一个dns服务器
- TYPE=Ethernet #网络类型为:Ethernet
- GATEWAY=192.168.21.2 #设置网关
- DNS2=8.8.4.4 #第二个dns服务器
- IPV6INIT=no #禁止IPV6
- USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改
- HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址
- PREFIX=24
- NAME=”System eth0″ #定义设备名称
- #实例:
- TYPE=Ethernet
- DEVICE=ens33
- ONBOOT=yes
- BOOTPROTO=static
- IPADDR=192.168.9.129
- NETMASK=255.255.255.0
- GATEWAY=192.168.21.2
- DNS1=8.8.8.8
- DNS2=114.114.114.114
2、ss
作用:查看端口监听状态
option:
-t: 显示tcp链接
-n: 以数字形式显示当前链接的端口
-l: 只显示监听的
-a:显示全部
-p: 显示PID
- #常用组合:ss -tnl
- ╭─root@localhost.localdomain ~
- ╰─➤ ss -tnl
- State Recv-Q Send-Q Local Address:Port Peer Address:Port
- LISTEN 0 128 *:22 *:*
- LISTEN 0 100 127.0.0.1:25 *:*
- LISTEN 0 128 :::22 :::*
- LISTEN 0 100 ::1:25 :::*
3、ps
作用:查看进程的工具
option :
a: 显示跟当前终端关联的所有进程
u: 基于用户的格式显示(U: 显示某用户ID所有的进程)
x: 显示所有进程,不以终端机来区分
- ╭─root@localhost.localdomain ~
- ╰─➤ ps aux
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- root 1 0.0 0.3 125160 3668 ? Ss 16:32 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
- root 2 0.0 0.0 0 0 ? S 16:32 0:00 [kthreadd]
- root 3 0.0 0.0 0 0 ? S 16:32 0:00 [ksoftirqd/0]
- root 9 0.0 0.0 0 0 ? R 16:32 0:01 [rcu_sched]
- root 10 0.0 0.0 0 0 ? S 16:32 0:00 [watchdog/0]
- root 12 0.0 0.0 0 0 ? S< 16:32 0:00 [khelper]
- root 13 0.0 0.0 0 0 ? S 16:32 0:00 [kdevtmpfs]
- root 14 0.0 0.0 0 0 ? S< 16:32 0:00 [netns]
- root 20 0.0 0.0 0 0 ? S< 16:32 0:00 [md]
- root 26 0.0 0.0 0 0 ? S 16:32 0:00 [kswapd0]
- root 27 0.0 0.0 0 0 ? SN 16:32 0:00 [ksmd]
- root 28 0.0 0.0 0 0 ? SN 16:32 0:00 [khugepaged]
- root 29 0.0 0.0 0 0 ? S 16:32 0:00 [fsnotify_mark]
- root 539 0.0 0.0 0 0 ? S 16:32 0:00 [xfsaild/sda1]
- root 601 0.0 0.1 55416 1732 ? S<sl 16:33 0:00 /sbin/auditd -n
- root 620 0.1 0.6 302432 6064 ? Ssl 16:33 0:46 /usr/bin/vmtoolsd
-
- ... #省略了部分进程
-
- postfix 1295 0.0 0.3 89152 3988 ? S 16:33 0:00 qmgr -l -t unix -u
- root 2175 0.0 0.3 140364 3196 tty1 Ss+ 16:33 0:00 -zsh
- root 2289 0.1 0.0 0 0 ? R 16:42 0:39 [kworker/0:1]
- root 2729 0.0 0.0 0 0 ? S< 22:38 0:00 [hci0]
- root 2730 0.0 0.0 0 0 ? S< 22:38 0:00 [kworker/u257:1]
- root 3112 0.0 0.5 145668 5556 ? Ss 22:38 0:00 sshd: root@pts/0
- postfix 3114 0.0 0.3 89084 3960 ? S 22:38 0:00 pickup -l -t unix -u
- root 3115 0.0 0.3 140372 3332 pts/0 Ss 22:38 0:00 -zsh
- root 3225 0.0 0.0 0 0 ? S< 22:51 0:00 [kworker/0:1H]
- root 3255 0.0 0.1 151056 1828 pts/0 R+ 23:10 0:00 ps aux
输出表详解:
表头 | 含义 |
---|---|
USER | 启动这些进程的用户 |
PID | 进程的ID |
%CPU | 进程占用的CPU百分比 |
%MEM | 占用内存的百分比 |
VSZ | 进程占用的虚拟内存大小(单位:KB) |
RSS | 进程占用的物理内存大小(单位:KB) |
STAT | 该程序目前的状态 |
START | 该 process 被触发启动的时间 |
TIME | 该 process 实际使用 CPU 运作的时间 |
COMMAND | 该程序的实际指令 |
STAT:该程序目前的状态(详解)
Linux进程有5种基本状态:
R :该程序目前正在运作,或者是可被运作;
S :该程序目前正在睡眠当中,但可被某些讯号(signal) 唤醒。
T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (僵尸) 程序的状态
D :不可中断状态.
5个基本状态后,还可以加一些字母,它们含意:
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
4、uptime
作用:查看系统负载
- ╭─root@localhost.localdomain ~
- ╰─➤ uptime
- 23:34:30 up 7:01, 2 users, load average: 0.00, 0.01, 0.05
-
- #输出含意如下:
-
- 当前时间 系统运行时间 当前登录用户 系统负载1分钟,5分钟,15分钟的平均负载
- 那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
- 如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
- 如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
5、top
作用:实时显示进程的状态
输出内容:
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等;其中数据均为CPU数据并以百分比格式显示。
第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
第6行:表格
第6行表格含义:
表头 | 含义 |
---|---|
PID | 进程id |
USER | 进程所有者 |
PR | 进程优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 进程名称(命令名/命令行) |
top 运行中的内部命令:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期
- top - 00:03:34 up 7:30, 2 users, load average: 0.00, 0.01, 0.05
- Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
- %Cpu(s): 0.0/0.3 0[ ]
- KiB Mem : 999936 total, 636588 free, 116336 used, 247012 buff/cache
- KiB Swap: 2097148 total, 2097148 free, 0 used. 712752 avail Mem
-
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 674 root 20 0 327200 26704 6400 S 0.0 2.7 0:01.97 firewalld
- 974 root 20 0 553152 16424 5780 S 0.0 1.6 0:04.06 tuned
- 629 polkitd 20 0 528276 12644 4712 S 0.0 1.3 0:00.22 polkitd
- 675 root 20 0 587140 12328 6244 S 0.0 1.2 0:01.65 NetworkManager
- 620 root 20 0 302432 6076 4656 S 0.0 0.6 0:52.63 vmtoolsd
- 3112 root 20 0 145668 5556 4236 S 0.0 0.6 0:00.37 sshd
- 1295 postfix 20 0 89152 3988 2992 S 0.0 0.4 0:00.04 qmgr
- 3114 postfix 20 0 89084 3960 2972 S 0.0 0.4 0:00.02 pickup
- 975 root 20 0 283372 3824 3200 S 0.0 0.4 0:00.12 rsyslogd
- 3115 root 20 0 140372 3336 2148 S 0.0 0.3 0:00.06 zsh
- 2175 root 20 0 140364 3196 2032 S 0.0 0.3 0:00.06 zsh
- 475 root 20 0 34876 2936 2624 S 0.0 0.3 0:00.34 systemd-journal
- 647 root 20 0 94904 2664 1988 S 0.0 0.3 0:00.03 login
- 1288 root 20 0 88980 2152 1120 S 0.0 0.2 0:00.10 master
- 3286 root 20 0 157576 2148 1532 R 0.0 0.2 0:00.91 top
- 632 chrony 20 0 115848 1888 1492 S 0.0 0.2 0:00.25 chronyd
- 497 root 20 0 43520 1816 1272 S 0.0 0.2 0:00.30 systemd-udevd
- 630 dbus 20 0 24532 1792 1328 S 0.0 0.2 0:00.96 dbus-daemon
- 601 root 16 -4 55416 1732 1328 S 0.0 0.2 0:00.29 auditd 628 root 20 0 24256 1728 1408 S 0.0 0.2 0:00.10 systemd-logind
6、lsof
作用:用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)
-i:列出符合条件的进程。(4、6、协议、:端口、 @ip )
- ╭─root@localhost.localdomain ~
- ╰─➤ lsof
- zsh: command not found: lsof
- ╭─root@localhost.localdomain ~
- ╰─➤ yum install lsof -y
- ╭─root@localhost.localdomain ~
- ╰─➤ lsof -i:22
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- sshd 984 root 3u IPv4 18375 0t0 TCP *:ssh (LISTEN)
- sshd 984 root 4u IPv6 18384 0t0 TCP *:ssh (LISTEN)
7、grep
作用:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来;
- ╭─root@www.du1.com ~
- ╰─➤ lsof -i:80 | grep httpd
- httpd 2348 root 4u IPv6 21624 0t0 TCP *:http (LISTEN)
- httpd 2350 daemon 4u IPv6 21624 0t0 TCP *:http (LISTEN)
- httpd 2351 daemon 4u IPv6 21624 0t0 TCP *:http (LISTEN)
- httpd 2352 daemon 4u IPv6 21624 0t0 TCP *:http (LISTEN)
8、telnet
作用:监听端口状态