Linux常用命令总结

终端的基本操作

发出命令的载体
windows 终端打开方式: windows win+R
Linux 终端打开ctrl +alt+t、右键打开终端
放大 :ctrl shift + 放小:ctrl -
命令清屏 :clear ctrl + l

命令手册

如何查看命令使用
man + 命令
帮助手册,用来查看命令、系统调用,库函数等帮助信息

开机与重启

shutdown -h now 立刻关机
halt 关机
init 0 关机
halt 需要切换位管理员模式,并且关闭之后需要手动关闭虚拟机。
shutdown -r now 立刻重启
reboot 重启
init 6 重启

runlevel

runlevel 查看系统运行级别 可以用 init 动态切换 0-6 共 7 个级别
◼ 0 关机
◼ 1 单用户模式
◼ 2 多用户无网络服务
◼ 3 完全的多用户 文本界面
◼ 4 未定义或 自定义
◼ 5 图形化界面
◼ 6 关机并重启

路径切换

cd 后面添加相对路径或者绝对路径。除此之外还有以下:
路径的地址 (可以添加绝对路径或者相对路径) 跳到指定目录
… 退回到上级目录 一个点表示的是当前目录 两个点表示的是:上一级目录
– 跳到之前所在的目录
~ 跳到自己的 home 目录 。

查看目录下的文件

ls 查看当前目录下的文件
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出

用户管理

添加新用户

useradd newname 添加一个新的用户 newname
创建新用户需要管理员身份,创建新用户成功后,会在/home 下生成该用户的家目录。
-u 指定用户的uid 0 : root 用户 uid Linux上 唯一确定用户的标识 尽量不要用。
-g 执行新用户的主组(初始组)
默认就是本身。test
-G 设置附加组 如果指定多个附加组可以用逗号隔开 。
A组 root
-d :设置家目录 (一般不用)
-c 备注
-s 指定命令解释器
-m 自动传创建家目录
一般使用:useradd -c " " -G -m 用户名
初始组:产生就存在的一个组。这个组以用户名来命名。
附加组:user1
user1 -->root
用户权限 组权限 其它
在这里插入图片描述

切换用户

从user用户切换到root用户:sudo su 然后输入root的密码就进入了root用户权限
切换到普通用户: su username 切换用户

修改用户密码

在这里插入图片描述

删除用户

userdel 删除用户时,首先确保该用户没有登录。userdel 默认仅删除用户,不会删除家目录
及家目录中的文件,若想删除用户的同时移除家目录, 那么使用 userdel -r username。

修改用户信息

修改用户说明,修改用户副组。

修改用户的说明:usermod -c “test user” lamp
把lamp用户加入root组:usermod -G root lamp
锁定用户:usermod -L lamp
解锁用户:usermod -U lamp

修改用户状态

chage[选项]用户名
选项:
-l: 列出用户的详细密码状态
-d日期: 修改密码最后一次更改日期(shadow3字段)
-m天数:两次密码修改间隔(4字段)
-M天数: 密码有效期(5字段)
-W天数: 密码过期前警告天数(6字段)
-I天数: 密码过后宽限天数(7字段)
-E 日期: 账号失效时间(8字段)

修改文件权限

文字设定法

chmod + u 表属主 g 同组人 o 其他人 a 所有人 + 增加权限 -去掉权限 文件路径/文件名

数字设定法

在这里插入图片描述

修改文件的属组

chgrp 属组 文件名

修改文件属主

chown 属主 文件名

文件操作

查看文件

ls 查看当前目录下的文件
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出

创建文件

touch + 文件路径/文件名 创建普通文件 文件路径:可以是相对路径也可以是绝对路径
mkdir + 目录路径/目录名 创建目录文件

删除文件

删除普通文件

rm + 文件路径/文件名 删除普通文件

删除目录文件

-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 输出版本信息并退出
删除空目录
rmdir + 目录路径/目录名
rm -r +目录路径/ 目录名 -r 是rm的参数
删除非空目录
rm -r +目录路径/ 目录名
注意:rm -rf * 禁用 rm -rf /*

文件复制与重命名

复制粘贴使用cp
语法: cp [options] source… directory
• -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
• -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
• -f:覆盖已经存在的目标文件而不给出提示。
• -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
• -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
• -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
• -l:不复制文件,只是生成链接文件。
移动文件或者重命名使用mv
语法:mv [options] source… directory
• -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
• -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示

编辑文件

通过vi演示只读只写:

压缩、打包

我们使用tar进行打包或者解包。使用gizp进行文件压缩。

打包

将文件打包或者解包
◼ c 创建包文件
◼ f 指定目标为文件而不是设备
◼ v 显示详细过程
◼ t 显示包中的内容而不释放
◼ x 释放包中的内容
◼ z GNU 版本新加的,使得 tar 有压缩和解压的功能
在这里插入图片描述

解包

在这里插入图片描述

压缩

在这里插入图片描述

解压

在这里插入图片描述

文件查看命令

文本查看

cat

查看文件内容
在这里插入图片描述
合并文件
在这里插入图片描述
往文件中写入数据, Ctrl+d 是结束输入。

more

当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。
使用方式: more filename

less

文本内容查看器,查看文件内容,但是文件内容不会显示到界面上。

head

显示文件前 n 行的内容
在这里插入图片描述

tail

显示文件后 n 行的内容
在这里插入图片描述

数据统计

wc

统计文件中单词个数(-w)、字符个数(-c)、行数(-l)
在这里插入图片描述

文件编辑命令

VIM命令

安装vim命令:sudo apt-get install vim-gtk

三种模式介绍

vim一共有三种模式,我们可以在不同的模式下做不同的操作。下来我们依次来看一下:
在这里插入图片描述
命令模式切换到插入模式:

  1. a //进入到当前光标后开始编辑
  2. A //进入到当前光标所在行的行末开始编辑
  3. i //进入当前光标位置开始编辑
  4. I //进入当前光标所在行的行头开始编辑
  5. o //进入当前光标下一行开始编辑
  6. O //进入当前光标上一行开始编辑
    命令模式切换到末行模式
  7. : //对文本的设置或保存工作
  8. / //对文本进行全文向下搜索字符串 string
  9. ? //对文本进行全文向上搜索字符串 string
    vi/vim 常用命令
  10. n dd //删除光标开始向下的 n 行
  11. n yy //拷贝光标开始向下的 n 行
  12. p //粘贴
  13. u //撤销上一次操作
  14. ctrl + r // 恢复上一次撤销操作
  15. r //替换一个字符
  16. shift + 6 //光标移动到当前行的行头
  17. shift + 4 //光标移动到当前行的行尾
  18. shift + g //光标移动到整个文本的最后一行 G
  19. gg //光标移动到整个文本的第一行
  20. n shift + g //光标移动到第 n 行
  21. d n shift + g //删除光标到 n 行的内容
  22. y n shift + g //拷贝光标到 n 行的内容
    3.4 末行模式下的操作
  23. :w //保存文本
  24. :q //退出编辑
  25. :wq //保存并退出
  26. :q! //强制退出
  27. :w newfile //另存为
  28. :set nu //显示行号
  29. :set nonu //取消行号
  30. : set hlsearch //设置高亮搜索
  31. : set nohlsearch //取消高亮搜索
  32. : n,m s/oldstring/newstring //替换整个文本每行的第一个 oldstring
  33. :n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
  34. /string //向下搜索 string
  35. ?string //向上搜索 string

vim小技巧

定位命令
在这里插入图片描述
删除命令
在这里插入图片描述
复制粘贴命令
在这里插入图片描述
替换和取消命令
在这里插入图片描述
保存或退出命令
在这里插入图片描述
查找与替换
在这里插入图片描述
最后+g 替换的时候不询问 +c 替换的时候询问
恢复上一次撤销操作:
ctrl + r
导入另外一个文件的内容:
esc :r 文件名
导入另外一个命令的执行结果:
esc :r 命令名

vim中的快捷操作

在这里插入图片描述

vim配置文件

在用户家目录输入:vim .vimrc
输入一些编辑模式的命令:比如设置行号,设置快捷键
在这里插入图片描述

基础命令

find 在那个路径下查找文件 -以哪种方式查找文件 test

在目录树中搜索指定的文件,也可以指定开始的搜索位置
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
在这里插入图片描述
在这里插入图片描述

grep

在文件中过滤出包含指定字符串的行
-a 或 --text : 不要忽略二进制的数据。

-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。

-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。

-c 或 --count : 计算符合样式的列数。

-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。

-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。

-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

-F 或 --fixed-regexp : 将样式视为固定字符串的列表。

-G 或 --basic-regexp : 将样式视为普通的表示法来使用。

-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。

-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。

-i 或 --ignore-case : 忽略字符大小写的差别。

-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。

-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。

-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。

-o 或 --only-matching : 只显示匹配PATTERN 部分。

-q 或 --quiet或–silent : 不显示任何信息。

-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。

-s 或 --no-messages : 不显示错误信息。

-v 或 --revert-match : 显示不包含匹配文本的所有行。

-V 或 --version : 显示版本信息。

-w 或 --word-regexp : 只显示全字符合的列。

-x --line-regexp : 只显示全列符合的列。

-y : 此参数的效果和指定"-i"参数相同。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管道 |
A进程将执行的结果输出到管道中,B进程再将其从管道中读出来。
将前一个命令的输出结果作为后一个命令的输入。进程间通讯的一种方式。

进程管理命令

ps

只显示当前终端的进程。
默认显示与当前终端有关的进程信息

参数描述
-A列出所有的进程
-e等于“-A”
-a显示现行终端机下的所有进程,包括其他用户的进程;
-u以用户为主的进程状态 ;
x通常与 a 这个参数一起使用,可列出较完整信息。
-w显示加宽可以显示较多的资讯
-au显示较详细的资讯
-aux显示所有包含其他使用者的行程
-f做一个更为完整的输出。
-L显示进程中的线程 ID

这个PID的取值范围从1开始到整数的最大值。

在这里插入图片描述

ps -a 与 -A
在这里插入图片描述
打印指定用户的信息
在这里插入图片描述
ps与grep组合法。打印指定进程信息
在这里插入图片描述
显示所有进程信息,连带命令行
在这里插入图片描述
最常用的命令:
ps -aux
在这里插入图片描述
USER表示哪个用户启动了这个进程;
PID表示进程的ID;
%CPU表示cpu的占用率;占用越高,进程越消耗资源。
%MEM表示内存的使用率;占用越高,进程越消耗资源。
VSZ如果一个程序完全驻留在内存中一共需要会用多少内存;(该进程所占的虚拟内存大小,单位kb)
RSS表示进程当前实际上占用了多少内存,注意不要跟VSZ混淆,VSZ的前提是进程完全驻留在内存中;该进程所占的物理内存大小,单位kb)
TTY表示tty终端;tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符结面终端,tty是图形终端。ps/0-256代表虚拟终端。
STAT表示当前进程的状态,(S表示处于休眠状态,D表示不可中断的状态,Z表示僵尸进程,X表示死掉的进程);
START启动这个命令的时间点;
TIME 进程执行起到现在总的CPU占用时间;
COMMAND表示启动这个进程的命令。
在这里插入图片描述
UID: 说明该程序被谁拥有(用户ID)
PID:就是指该程序的 ID(进程ID)
PPID: 就是指该程序父级程序的 ID(父进程号)
C: 指的是 CPU 占用率
STIME: 程序的启动时间
TTY: 指的是登录终端
TIME : 表示进程执行起到现在总的CPU占用时间
CMD: 启动这个进程的命令,它其实就是一个启动进程的命令
在这里插入图片描述

pstree

pstree命令以树状图显示进程间的关系(display a tree of processes)。ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰。在Linux系统中,系统调用fork可以创建子进程,通过子shell也可以创建子进程,Linux系统中进程之间的关系天生就是一棵树,树的根就是进程PID为1的init进程。
以树状图形式显示进程之间的关系。
在这里插入图片描述
pstree -p
在这里插入图片描述
pstree [-p]
在这里插入图片描述

jobs

显示当前终端的任务
在这里插入图片描述

sleep

睡眠 n 秒。

&

后台运行程序

默认程序执行是在前台,终端会等待当前进程结束。
在这里插入图片描述

fg bg

fg %任务号 将后台运行的或挂起的进程挪到前台执行
bg %任务号 将挂起的进程唤醒到后台执行
在这里插入图片描述

kill

在这里插入图片描述
在这里插入图片描述
结束或者挂起一个进程
-9 强制结束进程
-stop 挂起进程
在这里插入图片描述

pkill

结束一组同名的进程
pkill [选项][信号]进程名
-t 按照终端号提出用户。

在这里插入图片描述

killAll

顾名思义杀死所有。加信号和kill通用;
killall [选项][信号]进程名
-i 交互式,询问是否要杀死某个进程。
-I 忽略进程名的大小写。

top

查看系统资源使用情况以及进程信息
在这里插入图片描述
在这里插入图片描述
前五行信息:
统计信息区
第一行:任务队列信息,与uptime命令执行结果相同。
• 12:08:13:系统当前时间
• up 51min:主机已运行时间
• 1 users:用户连接数(不是用户数,who命令)
• load average: 0.04, 0.05, 0.04:系统平均负载,统计最近1,5,15分钟的系统平均负载
三个值相加 /3 * 100% 判断结果和 60%
补充:uptime -V可查询版本

第二行:进程信息
• Tasks:210 total:进程总数
• 1 running:正在运行的进程数
• 147 sleeping:睡眠的进程数
• 0 stopped:停止的进程数
• 0 zombie:僵尸进程数

第三行:CPU信息(当有多个CPU时,这些内容可能会超过两行)
• 100.0 us:用户空间所占CPU百分比
• 0.0sy:内核空间占用CPU百分比
• 0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
• 0.0 id:空闲CPU百分比
• 0.0 wa:等待输入输出的CPU时间百分比
• 0.0 hi:硬件CPU中断占用百分比
• 0.0 si:软中断占用百分比
• 0.0 st:虚拟机占用百分比

第四行:内存信息(与第五行的信息类似与free命令)
• 1020988 total:物理内存总量
• 457760 used:已使用的内存总量
• 136116 free:空闲的内存总量(free+used=total)
• 427112 buffers:用作内核缓存的内存量

第五行:swap信息
•0 total:交换分区总量
• 0 free:空闲交换区总量
• 0 used:已使用的交换分区总量
• 395360 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。

PID:进程ID,进程的唯一标识符

USER:进程所有者的实际用户名。

PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。

NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR:SHR是进程使用的共享内存。共享内存大小,单位kb

S:这个是进程的状态。它有以下不同的值:
• D - 不可中断的睡眠态。
• R – 运行态
• S – 睡眠态
• T – 被跟踪或已停止
• Z – 僵尸态

%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM:进程使用的可用物理内存百分比。

TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。

如果查看进程cpu的使用相关信息也可以使用pidstat -u

在Debian/Ubuntu系统中可以使用下面的命令来安装:
apt-get install sysstat

CentOS/Fedora/RHEL版本的linux中则使用下面的命令:yum install sysstat
在这里插入图片描述

详细说明

PID:进程ID
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令

pidstat 的用法:

pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]

常用的参数:

-u:默认的参数,显示各个进程的cpu使用统计

-r:显示各个进程的内存使用统计

-d:显示各个进程的IO使用情况

-p:指定进程号

-w:显示每个进程的上下文切换情况

-t:显示选择任务的线程的统计信息外的额外信息

-T { TASK | CHILD | ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。

-V:版本号

-h:在一行上显示了所有活动,这样其他程序可以容易解析。

-I:在SMP环境,表示任务的CPU使用率/内核数量

-l:显示命令名和所有参数

实例:显示每个进程的上下文切换情况(-w)

在这里插入图片描述
PID:进程id
Cswch/s:每秒主动任务上下文切换数量
Nvcswch/s:每秒被动任务上下文切换数量
Command:命令名

内存管理相关命令

内存:free

常见用法

 free -h      //以更友好的方式显示,会以K、M、G为单位来显示
 free -m           //以M单位打印结果

在这里插入图片描述

释义:

Mem:内存使用情况。
Swap:交换空间(虚拟内存)使用情况。
total:系统总共可用物理内存、交换空间大小。
used:已经被使用的物理内存、交换空间大小。
free:剩余可用物理内存、交换空间大小。
shared:被共享使用的物理内存大小。
buff/cache:被 buffer 和 cache 使用的物理内存大小。

buffers:用于存放要输出到disk(块存储)的数据,在这里buff是指被OS buffer住的内存(written to disk);

cached:存放从disk上读出的数据;buffer和cache是为了提高IO性能并由OS管理。
  
available:还可以被应用程序使用的物理内存大小。

注意:

1)应用程序可用内存/系统物理内存 > 70% 内存充足。

2)应用程序可用内存/系统物理内存 < 20% 内存不足,需要增加内存。

3)20% < 应用程序可用内存/系统物理内存 < 70%,表示内存基本够用。

vmstat命令

vmstat 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控,是对系统的整体情况进行的统计。
在这里插入图片描述
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是残阳的时间间隔数(单位秒),第二个参数是采样的次数。

memory列

swpd:使用的虚拟内存大小。
free:空闲物理内存大小。
buff:buffer cache内存大小。
cache:page cache的内存大小。

swap列

si:每秒从交换区读入到内存的大小,由磁盘调入内存(单位:kb/s)

so:每秒从内存写出到交换区的大小,由内存调入磁盘(单位:kb/s)

以上是与内存相关的两列。

procs

r:运行和等待的CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不超过总核数的2倍,否则代表系统压力过大。

b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等

cpu

us:用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序。

sy:内核进程消耗的CPU时间百分比。

pidstat -r

可以使用pidstat -r来查看内存使用情况
在这里插入图片描述

PID: 进程标识符

minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数

majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生

VSZ: 该进程使用的虚拟内存(以kB为单位)

RSS: 该进程使用的物理内存(以kB为单位)

%MEM: 该进程使用内存的百分比

Command:task命令名

查看磁盘信息

在这里插入图片描述

查看硬盘磁盘IO

在这里插入图片描述

每两秒取样一次,一共取样三次

磁盘块设备分布:

rkB /s:每秒读取数据量kB;

wkB/s:每秒写入数据量kB;

svctm I/O:请求的平均服务时间,单位毫秒

await I/O:请求的平均等待时间,单位毫秒,值越小,性能越好

util一秒钟有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘;

rkB/s,wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。

svctm的值与await的值很接近,表示几乎没有I/O等待,磁盘性能好,如果await的值远高于svctm的值,则表示I/O队列等待太长,需要优化程序或更换更快磁盘。

通过pidstat -d 也可以查看磁盘IO信息

在这里插入图片描述
PID:进程id

kB_rd/s:每秒从磁盘读取的KB

kB_wr/s:每秒写入磁盘KB

kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。

iodelay:任务的I/O阻塞延迟,以时钟周期为单位,包括等待同步块 I/O 和换入块 I/O 结束的时间

COMMAND:task的命令名

ping

ping 命令是用来测试TCP/IP 网络是否畅通或者测试网络连接速度的命令,对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。

ping命令的原理是根据计算机唯一标示的IP 地址,当用户给目的地址发送一个数据包时,对方就会返回一个同样大小的数据包,根据返回的数据包用户可以确定目的主机的存在,并初步判断目的主机的操作系统。

ifconfig

ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
用法
1)命令格式
• ifconfig(参数)
(2)实例
在这里插入图片描述
eth0表示第一块网卡,可以看到这个网卡的信息

• HWaddr表示网卡的物理地址即MAC地址,可以看到目前这个网卡的MAC地址是:00:0c:29:6b:31:bd

• inet addr用来表示网卡的IP地址,此网卡的IP地址是:192.168.15.255

• 广播地址Bcast:192.168.15.255

• 掩码地址Mask:255.255.255.0

lo是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。

netstat

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
-t : TCP协议
-u: UDP协议
-r : 路由
-l: 监听
-n: 显示IP地址和端口号
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
在这里插入图片描述
在这里插入图片描述
Proto:协议名(tcp协议还是udp协议)

recv-Q:网络接收队列

表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()

如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。
send-Q:网路发送队列
对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。
从步骤一的结果中可以看到22端口对应的链路的 send-Q中堆积了大量的数据包 ,可以判定是发送数据给目的地址的时候出现了阻塞的问题,导致了包堆积在本地缓存中,不能成功发出去。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值