终端的基本操作
发出命令的载体
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一共有三种模式,我们可以在不同的模式下做不同的操作。下来我们依次来看一下:
命令模式切换到插入模式:
- a //进入到当前光标后开始编辑
- A //进入到当前光标所在行的行末开始编辑
- i //进入当前光标位置开始编辑
- I //进入当前光标所在行的行头开始编辑
- o //进入当前光标下一行开始编辑
- O //进入当前光标上一行开始编辑
命令模式切换到末行模式 - : //对文本的设置或保存工作
- / //对文本进行全文向下搜索字符串 string
- ? //对文本进行全文向上搜索字符串 string
vi/vim 常用命令 - n dd //删除光标开始向下的 n 行
- n yy //拷贝光标开始向下的 n 行
- p //粘贴
- u //撤销上一次操作
- ctrl + r // 恢复上一次撤销操作
- r //替换一个字符
- shift + 6 //光标移动到当前行的行头
- shift + 4 //光标移动到当前行的行尾
- shift + g //光标移动到整个文本的最后一行 G
- gg //光标移动到整个文本的第一行
- n shift + g //光标移动到第 n 行
- d n shift + g //删除光标到 n 行的内容
- y n shift + g //拷贝光标到 n 行的内容
3.4 末行模式下的操作 - :w //保存文本
- :q //退出编辑
- :wq //保存并退出
- :q! //强制退出
- :w newfile //另存为
- :set nu //显示行号
- :set nonu //取消行号
- : set hlsearch //设置高亮搜索
- : set nohlsearch //取消高亮搜索
- : n,m s/oldstring/newstring //替换整个文本每行的第一个 oldstring
- :n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
- /string //向下搜索 string
- ?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中堆积了大量的数据包 ,可以判定是发送数据给目的地址的时候出现了阻塞的问题,导致了包堆积在本地缓存中,不能成功发出去。