linux系统命令(调试命令)(nmtui,ip a、ss、ps、uptime、top、lsof、grep,iotop、iftop)
本章命令
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
nmtui | ip a | ss | ps | uptime | top | lsof | grep | iotop | iftop | tsar |
nmtui
- 图形化管理网卡命令
- 依靠于NetworkManager服务
- NetworkManager服务影响网络
示例:
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: 表示进程是多线程的
+: 表示当前进程运行在前台
实例 ps -ef
$ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Sep18 ? 00:01:19 init [3]
root 78 1 0 Sep18 ? 00:00:02 /usr/sbin/sshd
root 93 1 0 Sep18 ? 00:00:56 crond -m/dev/null
root 104 1 0 Sep18 ? 00:00:01 /usr/sbin/atd
root 120 1 0 Sep18 ? 00:00:00 /bin/sh /usr/local/bin/svscanboot
root 122 120 0 Sep18 ? 00:01:13 svscan /service
root 123 120 0 Sep18 ? 00:00:00 readproctitle service errors: ..........................................
root 124 122 0 Sep18 ? 00:00:00 supervise tops-gemclient
root 125 122 0 Sep18 ? 00:00:00 supervise log
root 126 124 0 Sep18 ? 00:00:00 /usr/bin/perl -w ./run
nobody 127 125 0 Sep18 ? 00:00:00 multilog t I s200000 n5 ./main
root 1910 1 3 Sep18 ? 1-17:18:02 ./service_manager -TjApiHttpTimeout=30s
- UID: 用户ID(User ID)
- PID: 进程ID(Process ID)
- PPID: 父进程的进程ID(Parent Process id)
- STIME: 启动时间
- TTY: 与进程关联的终端(tty)
- TIME: 进程使用的总cpu时间
- CMD: 正在执行的命令行命令
实例
# 查看进程的启动时间:
ps -eo lstart 启动时间
# 查看进程的运行时间
ps -eo etime 运行多长时间.
# 查看进程的pid、启动时间、运行时间
ps -eo pid,lstart,etime | grep [ pid ]
# 查看进程的实际使用内存
ps -eo 'pid,comm,rsz' | grep [oss_server]
4、uptime
作用:查看系统负载
╭─root@localhost.localdomain ~
╰─➤ uptime
23:34:30 up 7:01, 2 users, load average: 0.00, 0.01, 0.05
#输出含意如下:
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 – 改变画面更新周期
# 查看进程状态
cat /proc/17944/status ; echo -e "\n"; cat /proc/17944/stack
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、iotop
作用:iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。
下载
yum install iotop -y
使用
╭─root@localhost.localdomain ~
╰─➤ iotop
##其中:
r :反向排序
o :只显示有IO输出的进程
q :是退出
9、iftop
官网:http://www.ex-parrot.com/~pdw/iftop/
安装
yum install epel-release
yum install iftop -y
常用的参数
-i 设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n 使host信息默认直接都显示IP,如:# iftop -n
-N 使端口信息默认直接都显示端口号,如: # iftop -N
-F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24
-h(display this message),帮助,显示参数信息
-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b 使流量图形条默认就显示;
-f 过滤计算包用的;
-P 使host信息及端口信息默认就都显示;
-m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
进入iftop画面后的一些操作命令(注意大小写)
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。
摘自:https://www.vpser.net/manage/iftop.html
10、监控命令tsar
- tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。
- 收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。
- tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带--live参数可以输出秒级的实时信息。
- tsar可以通过编写模块轻松扩展,这使得它成为一个功能强大且多功能的报告工具。
- 官方网址:http://tsar.taobao.org
- github地址:https://github.com/alibaba/tsar
- 参考:https://www.cnblogs.com/clsn/p/9135820.html
常用命令
tsar -il 1 #查看负载
linux系统命令(调试命令)(nmtui,ip a、ss、ps、uptime、top、lsof、grep,iotop、iftop)的更多相关文章
- Linux网卡高级命令、IP别名及多网卡绑定 转
http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100065.html 本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名 ...
- 部分linux系统命令(shell 命令)和hadoop命令
linux系统命令(shell 命令): ls : 只列出文件/目录 ls -l : 会显示文件的详情,如大小等 ls -lh : 会显示文件的详情,但大小以k或者M为单位 ls ../ : ...
- Linux运维平台工具:pstree、ps、top、htop、free、vmstat、dstat、kill、killall
1.pstree命令 查看进程树,centos7下统一由systemd进行管理 [root@ELK-chaofeng systemd]# pstree systemd─┬─AliYunDun───*[ ...
- linux程序调试命令addr2line之入门简单介绍(本文先不聊gdb调试)
addr2line有什么作用呢? 可别小瞧它, 它能够定位到代码出错的位置. 以下, 我们来看看这个简单的代码: #include <stdio.h> int main() { int * ...
- linux程序调试命令strace
strace命令用法详解: strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须 ...
- linux下使用命令修改IP地址
使用root用户登录进入Linux,打开进去终端 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 (最后的eth0是网卡名,我的是Auto_et ...
- Linux高级调试与优化——gdb调试命令
番外 2019年7月26日至27日,公司邀请<软件调试>和<格蠹汇编——软件调试案例集锦>两本书的作者张银奎老师进行<Linux高级调试与优化>培训,有幸聆听张老师 ...
- linux(Ubuntu/Centos) iproute 路由IP地址等命令集合,查看端口链接
原 linux(Ubuntu/Centos) iproute 路由IP地址等命令集合,查看端口链接 2017年03月20日 16:55:57 风来了- 阅读数:2291 标签: centoslinux ...
- Linux namespace技术应用实践--调用宿主机命令(tcpdump/ip/ps/top)检查docker容器网络、进程状态
背景 最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣,结合课程+网络搜索+实践操作,也 ...
随机推荐
- 杭电OJ2010---水仙花数(c++)(方法:输出几个数之间用空格隔开,最后一个数没有空格)
水仙花数 Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方 ...
- 在md里画流程图
可以使用名为mermaid的代码块,即 ```mermaid``` 需要md解析器能解析mermaid mermaid使用详情参见
- WPF 关于拖拽打开文件的注意事项
由于开发需求,需要开发一个类似Win图片浏览的工具 当然也涉及到了拖拽打开的需求 按照固有思路: <Grid x:Name="grid1" AllowDrop="T ...
- FastApi 进阶
前言 终于有了第一个使用 FastApi 编写的线上服务, 在开发的过程中还是遇到了些问题, 这里记录一下 正文 目录结构 我们知道, FastApi 的启动方式推荐使用 uvicorn, 其启动方式 ...
- 010_MySQL
目录 初识MySQL 为什么学习数据库 什么是数据库 数据库分类 MySQL简介 Windows安装MySQL 安装建议 软件下载 安装步骤 安装SQLyog 下载安装 连接数据库 简单操作 命令行连 ...
- scaffoldingTools
脚手架工具 脚手架工具概要(前端工程化的发起者) 脚手架的本质作用:创建项目基础架构.提供项目规范和约定 相同的组织结构 相同的开发规范 相同的模块依赖 相同的工具配置 相同的基础代码 举例:IDE创 ...
- python面向对象基础-属性/方法
- java8 stream api流式编程
java8自带常用的函数式接口 Predicate boolean test(T t) 传入一个参数返回boolean值 Consumer void accept(T t) 传入一个参数,无返回值 F ...
- Java 安全之Weblogic 2018-2628&2018-2893分析
Java 安全之Weblogic 2018-2628&2018-2893分析 0x00 前言 续上一个weblogic T3协议的反序列化漏洞接着分析该补丁的绕过方式,根据weblogic的补 ...
- disfunc绕过
绕过DisFunc的常见小技巧 解析webshell命令不能执行时的三大情况 一是 php.ini 中用 disable_functions 指示器禁用了 system().exec() 等等这类命令 ...