第四章:更多的bash shell命令
监测程序
ps(其他ps内容见#1)
Unix风格的ps命令参数
参数 |
描述 |
-A |
显示所有进程 |
-N |
显示与指定参数不符的所有进程 |
-a |
显示除控制进程(session leader)和无终端的进程外的所有进程 |
-d |
显示除控制进程外的所有进程 |
-e |
显示所有进程 |
-C cmdlist |
显示包含在cmdlist列表中的进程 |
-G grplist |
显示组ID在grplist列表中的进程 |
-U userlist |
显示属主的用户ID在userlist列表中的进程 |
-g grplist |
显示会话或组(由Linux版本决定)ID在grplist列表中的进程 |
-p pidlist |
显示PID在pidlist列表中的进程 |
-s sesslist |
显示会话ID在sesslist列表中的进程 |
-t ttylist |
显示终端ID在ttylist列表中的进程 |
-u userlist |
显示有效用户ID在userlist列表中的进程 |
-F |
显示更多额外输出(相对-f而言) |
-O format |
显示默认的输出列以及format列表指定的特定列 |
-M |
显示进程的安全信息 |
-c |
显示进程的额外调度器信息 |
-f |
显示完整格式的输出 |
-j |
显示任务信息 |
-l |
显示长列表 |
-o format |
仅显示由format指定的列 |
-y |
不要显示进程标记(process flag) |
-Z |
显示安全标签(security context)信息 |
-H |
用层级格式显示进程(树状) |
-n namelist |
定义了WCHAN列显示的值 |
-w |
采用宽输出模式,不限宽度显示 |
-L |
显示进程中的线程 |
-V |
显示ps命令的版本号 |
UNIX列标题含义
UNIX标题 |
含义 |
ADDR |
进程表中的虚拟地址 |
C |
处理器利用率(废弃率) |
CMD |
正被执行的命令的名称 |
F |
内核分配给进程的系统标记 |
NI |
nice值,用于设置优先级 |
PID |
进程ID |
PPID |
父进程的进程ID |
PRI |
优先级(数字越大优先级越低) |
RSS |
内存驻留空间大小(内存管理) |
S |
状态代码(D、R、S、T、Z) |
STIME |
累积系统时间(进程启动是的系统时间) |
SZ |
物理页的大小(内存管理) |
TIME |
运行进程需要的累积CPU时间 |
TTY |
控制终端的完整名称 |
UID |
用户标识 |
WCHAN |
等待通道(进程休眠的内核函数地址) |
BSD风格的参数
参数 |
描述 |
T |
显示跟当前终端关联的所有进程 |
a |
显示跟任意终端关联的所有进程 |
g |
显示所有的进程,包括控制进程 |
r |
仅显示运行中的进程 |
x |
显示所有的进程,甚至包括未分配任何终端的进程 |
U userlist |
显示归userlist列表中某用户ID所有的进程 |
p pidlist |
显示PID在pidlist列表中的进程 |
t ttylist |
显示所有关联的终端在ttylist列表中的进程 |
O format |
除了默认输出的列之外,还输出由format指定的列 |
X |
按过去的Linux i386寄存器格式显示 |
Z |
将安全信息添加到输出中 |
j |
显示任务信息 |
l |
采用长模式 |
o format |
仅显示由format指定的列 |
s |
采用信号格式显示 |
u |
采用基于用户的格式显示 |
v |
采用虚拟内存格式显示 |
N namelist |
定义在WCHAN列中使用的值 |
O order |
定义显示信息列的顺序 |
S |
将数值信息从子进程加到父进程上,比如CPU和内存使用情况 |
c |
显示真实的命令名称(用以启动进程的程序名称) |
e |
显示命令使用的环境变量 |
f |
用分层格式来显示进程,表明哪些进程启动了哪些进程 |
h |
不显示头信息 |
k sort |
指定用以将输出排序的列 |
n |
和WCHAN信息一起显示出来,用数值来表示用户ID和组ID |
w |
为较宽屏幕显示宽输出 |
H |
将线程按进程来显示 |
m |
在进程后显示线程 |
L |
列出所有格式指定符 |
V |
显示ps命令的版本号 |
BSD列标题和含义
BSD标题 |
含义 |
%CPU |
CPU使用百分比 |
%MEM |
真实内存使用百分比 |
CMD |
正被执行的命令的名称 |
COMMAND |
正被执行的命令的完整名称 |
CPU |
短期CPU使用(调度) |
JOBC |
作业控制统计 |
LIM |
内存使用限额 |
NI |
nice值,用于设置优先级 |
PAGEIN |
总的缺页错误(内存管理) |
PGID |
进程组号 |
PID |
进程ID |
PPID |
父进程的进程ID |
PRI |
调度优先级 |
RE |
内存驻留时间(单位为秒) |
RSS |
内存驻留空间大小(内存管理) |
SESS |
会话指针 |
SL |
睡眠时间(单位为秒) |
STARTED |
定时启动 |
STAT |
状态代码(O、R、S、T、Z) |
TIME |
累积CPU时间 |
TSIZ |
文本大小(单位为KB) |
TT |
控制终端的缩写名称 |
TTY |
控制终端的完整名称 |
UID |
用户标识 |
USER |
用户名 |
VSZ |
虚拟内存(单位KB) |
WCHAN |
等待通道 |
STAT状态代码第二个字符意义:
<:该进程运行在高优先级上
N:该进程运行在低优先级上
L:该进程有页面锁定在内存中
s:该进程是个控制进程
l:该进程是多线程的
+:该进程运行在前端
GNU风格的ps命令参数
参数 |
描述 |
--deselect |
显示所有进程,命令行中列出的进程 |
--Group grplist |
显示组ID在grplist列表中的进程 |
--User userlist |
显示用户ID在userlist列表中的进程 |
--group grplist |
显示有效组ID在grplist列表中的进程 |
--user userlist |
显示有效组用户ID在usrlist列表中的进程 |
--pid pidlist |
显示pid在pid列表中的进程 |
--ppid pidlist |
显示父pid在pidlist列表中的进程 |
--sid sidlist |
显示会话ID在sidlist列表中的进程 |
--tty ttylist |
显示终端设备号在ttylist列表中的进程 |
--fromat format |
仅显示由format指定的列 |
--context |
显示额外的安全信息 |
--cols n |
将屏幕宽度设置为n列 |
--columns n |
将屏幕宽度设置为n列************ |
--cumulative |
包含已停止的子进程的信息 |
--forest |
用层级结构显示出进程和父进程之间的关系 |
--headers |
在每页输出中都显示列的头 |
--no-headers |
不显示列的头 |
--lines n |
将屏幕高度设为n行 |
--rows n |
将屏幕宽度设为n排 |
--sort order |
指定将输出按哪列排序 |
--width n |
将屏幕宽度设为n列 |
--help |
显示帮助信息 |
--info |
显示调试信息 |
--version |
显示ps命令的版本号 |
top(实时监测进程)(其他top内容见#1)
top
top - 09:40:29 up 5 min, 7 users, load average: 0.68, 0.79, 0.38
Tasks: 186 total, 1 running, 184 sleeping, 0 stopped, 1 zombie
Cpu(s): 9.2%us, 5.1%sy, 0.2%ni, 70.8%id, 13.8%wa, 0.0%hi, 1.0%si, 0.0%st
Mem: 3954168k total, 2169936k used, 1784232k free, 136224k buffers
Swap: 2899696k total, 0k used, 2899696k free, 790940k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2332 su1216 20 0 1337m 434m 27m S 16 11.3 0:40.47 java
1035 root 20 0 212m 43m 21m S 4 1.1 0:19.01 Xorg
2158su1216 20 0 409m 56m 25m S 3 1.5 0:13.21 chromium-browse
1499su1216 20 0 291m 35m 9180 S 1 0.9 0:04.76 compiz
1675su1216 20 0 332m 18m 12m S 1 0.5 0:00.37 gnome-terminal
1616su1216 20 0 215m 9.8m 7884 S 0 0.3 0:00.34 multiload-apple
1891su1216 20 0 526m 54m 19m S 0 1.4 0:01.24 pidgin
第一部分:系统概况
第一行:当前时间,系统运行时间,登入的用户数以及系统的平均负载
平均负载的三个值分别为:最近一分钟、最近五分钟、最近十五分钟。值越大,说明系统负载越高。通常,如果系统的负载值超过了2,就说明系统比较繁忙了
第二行:top命令的输出中进程叫做任务(task):多少进程处在运行、休眠、停止或是僵化状态
第三行:CPU信息。top根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出
第四行:系统物理内存。总共有多少,当前用了多少,还剩多少
第五行:同上,针对系统交换空间
第二部分:当前运行中的进程的详细列表
命令 |
描述 |
1 |
切换单CPU状态模式和对称处理器模式 |
B |
打开/关闭表中重要数字的加粗显示 |
I |
切换Irix/Solaris模式 |
Z |
设置表的颜色 |
l |
显示/关闭平均负载信息行 |
t |
显示关闭CPU信息行 |
m |
显示/关闭MEM和SWAP行 |
f |
添加/移除输出中的不同信息列 |
o |
更改信息行的显示顺序 |
F或O |
选择一列将进程排序(默认为%CPU) |
<或> |
将排序的行左移或右移一列 |
R |
切换正常排序还是倒序排序 |
H |
显示/关闭显示线程情况 |
c |
切换显示进程的命令名还是完整的命令行输入(包括参数) |
i |
切换是否显示空闲进程 |
S |
切换显示累计CPU时间还是相对CPU时间 |
x |
打开/关闭高亮显示排序列 |
y |
打开/关闭高亮显示运行中的任务 |
z |
切换彩色模式还是单色模式 |
b |
打开/关闭x和y模式的高亮模式 |
u |
显示某个用户的进程 |
n或# |
设置要显示的进程数 |
k |
结束指定的进程(必须是进程属主或root用户) |
r |
改变指定进程是优先级(必须是进程属主或root用户) |
d或s |
改变更新的间隔(默认是3s) |
W |
把当前设置写到一个配置文件中 |
q |
退出top命令 |
输出列的含义,部分和ps类似
PID:进程ID
USER:进程属主的名字
PR:进程的优先级
NI:进程的谦让度值
VIRT:进程占用的虚拟内存总量
RES:进程占用的物理内存总量
SHR:进程和其他进程共享的内存总量
S:进程的状态
%CPU:进程使用的CPU时间比例
%MEM:进程使用的内存占用内存的比例
TIME+:进程自启动到目前为止的CPU时间总量
COMMAND:进程的命令行名称,也就是启动的程序名
Linux沿用UNIX进行进程间通信的方法(信号)
大多数写的好的程序都能接收和处理标准UNIX进程信号
部分Linux进程信号
信号 |
名称 |
描述 |
1 |
HUP |
挂起 |
2 |
INT |
中断 |
3 |
QUIT |
结束运行 |
9 |
KILL |
无条件终止 |
11 |
SEGV |
段错误 |
15 |
TERM |
尽可能终止 |
17 |
STOP |
无条件停止运行,但不终止 |
18 |
TSTP |
停止或暂停,但继续在后台运行 |
19 |
CONT |
在STOP或TSTP之后恢复执行 |
杀死进程
默认kill发送TERM信号
kill只能指定PID,不支持通配符
killall可以指定进程名,并支持通配符
killall http*
监测磁盘空间
挂在存储媒体
mount
mount提供下面4部分信息
媒体的设备文件名
媒体挂载到虚拟目录的挂载点
文件系统类型
已挂载媒体的访问状态
参数 |
描述 |
-t |
指定了磁盘被格式化的文件系统类型 |
-a |
挂载/etc/fstab文件中指定的所有文件系统 |
-f |
使mount命令模拟挂载设备,但并不真的挂载 |
-F |
和-a参数一起使用,将会并行的挂载所有文件系统 |
-v |
详细模式,将会说明挂载设备的每一步 |
-I |
不启用任何/sbin/mount.filesystem下的文件系统帮助文件 |
-l |
给ext2、ext3或XFS文件系统自动添加文件系统标签 |
-n |
挂载设备,但不注册到/etc/mtab已挂载设备文件中 |
-p num
|
对加密文件进行挂载时,从文件描述符num中获得密码短语 |
-s |
忽略该文件系统不支持的挂载选项 |
-r |
将设备挂载为只读的 |
-w |
将设备挂载为可读写的(默认参数) |
-L label
|
将设备按指定的label挂载 |
-U uuid
|
将设备按指定的uuid挂载 |
-O |
和-a参数一起使用,限制命令只作用到特定的一组文件系统上 |
-o |
给文件系统添加特定的选项 |
-o参数允许在挂载文件系统时添加一些以逗号分隔的额外的选项
ro:按只读的挂载
rw:按允许读写挂载
user:允许普通用户挂载文件系统
check=none:挂载文件系统时不进行完整性校验
loop:挂载一个文件
mount -t vfat /dev/sdb1 /media/disk
将u盘(vfat格式)/dev/sdb1挂载到/media/disk
mount -t iso9660 -o loop test.iso ~/test_iso
将CD镜像文件(iso9660格式)test.iso挂载到~/test_iso
umount(卸载文件系统)
语法:
umount [directory |
device]
当有卸载的设备上有文件被使用时,系统不允许卸载,会给出提示
可以使用lsof获取使用此文件的进程
lsof file
df、du(见#2)
数据处理
sort(排序)(其他sort内容见#3)
单字母 |
全字 |
描述 |
-b |
--ignore-leading-blanks |
排序时忽略起始空白 |
-C |
--check=quiet |
不排序,如果数据无序也不报告 |
-c |
--check |
不排序,但检查输入数据是不是已有序,未排序则报告 |
-d |
--dictionary-order |
仅考虑空白和字母,不考虑特殊字符 |
-f |
--ignore-case |
忽略大小写(默认情况下,会将大写字母排在前面) |
-g |
--general-number-sort |
按通用数值来排序(与-n不同,把值当浮点数来排序,支持科学计数法表示) |
-i |
--ignore-nonprinting |
排序时忽略不可打印字符 |
-k |
--key=POS1[.POS2] |
排序从POS1位置开始,如果指定了POS2,则到POS2位置结束 |
-M |
--month-sort |
用3字符月份按月份排序 |
-m |
--merge |
将两个已排序数据文件合并 |
-n |
--numeric-sort |
按字符串数值来排序(并不转换为浮点数) |
-o |
--output=file |
将排序结果写入到指定文件中 |
-R |
--random-sort |
按随机生成的哈希表的键值排序 |
|
--random-source=FILE |
指定-R参数用到的随机字节的源文件 |
-r |
--reverse |
反序 |
-S |
--buffer-size=SIZE |
指定使用的内存大小 |
-s |
--stable |
禁用最后的重排序比较 |
-T |
--temporary-direction=DIR |
指定一个位置存储临时工作文件 |
-t |
--field-separator=SEP |
指定一个用来区分键位置的字符 |
-u |
--unique |
和-c参数一起使用时,严格检查排序;不与-c参数一起使用时,仅输出第一例相似的两行 |
-z |
--zero-terminated |
用NULL字符来为每一行结尾而不是用换行符 |
grep(搜索数据)
-e:指定多于一个模式
grep -e t -e f file
grep [tf] file
上面两条命令等同(其他grep内容见#3)
数据压缩
工具 |
文件扩展名 |
描述 |
bzip2 |
.bz2 |
采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码 |
compress |
.Z |
原始的Unix文件压缩工具,逐渐消失中 |
gzip |
.gz |
GNU压缩工具,用Lempel-Ziv编码 |
zip |
.zip |
Windows上PKZIP工具的Unix实现 |
1.bzip2工具
包括
bzip2:压缩文件
bzcat:显示压缩文件的文本文件内容
bunzip2:解压压缩后的.bz2文件
bzip2recover:尝试恢复损毁的压缩文件
(只管压缩,不管打包)
默认会用压缩后的文件替换原文件
2.gzip工具
包括
gzip:压缩文件
gzcat:显示压缩文件的文本文件内容
gunzip:解压文件
(只管压缩,不管打包)
3.zip工具
包括
zip:创建压缩文件,包含指定的文件和目录
zipcloak:创建一个加密的压缩文件,包含指定的文件和目录
zipnote:从zip文件中提取批注
zipsplit:将一个现有zip文件分割成多个更小的固定大小的文件
unzip:从压缩过的zip文件中提取文件和目录
(压缩并归档)
tar(归档数据)
语法:
tar function [options]object1 object2...
function参数列表
功能 |
全字名称 |
描述 |
-A |
--concatenate |
将一个已有的tar归档文件追加到另一个已有tar归档文件 |
-c |
--create |
创建一个新的tar归档文件 |
-d |
--diff |
检查归档文件和文件系统的不同之处 |
|
--delete |
从已有tar归档文件中删除 |
-r |
--append |
追加文件到已有tar归档文件末尾 |
-t |
--list |
列出已有tar归档文件的内容 |
-u |
--update |
将比tar归档文件中已有的同名文件新的文件追加到该tar归档文件中 |
-x |
--extract |
从已有tar归档文件中提取文件 |
常用选项
选项 |
描述 |
-C dir
|
切换到指定目录 |
-f file
|
输出结果到文件或设备file
|
-j |
将输出重定向给bzip2命令来压缩内容 |
-p |
保留所有文件权限 |
-v |
在处理文件时显示文件 |
-z |
将输出重定向给gzip命令来压缩内容 |
1.《Unix & Linux 大学教程》 - 第二十六章 进程和作业控制
2.《Unix & Linux 大学教程》 - 第二十四章 目录操作
3.《Unix & Linux 大学教程》 - 第十九章 过滤器:选取、排序、组合及变换
转贴请保留以下链接
本人blog地址
http://su1216.iteye.com/
http://blog.csdn.net/su1216/
分享到:
相关推荐
Linux 命令行和shell脚本编程宝典(清晰绝对完整版).pdf,绝对完整的版本,清晰度比160多M的还要好一些,有完整书签,在CSDN上花8分下载了4个part,结果解压不了,超级郁闷。辛苦找到的这个真正完整的可以分享给大家...
linux脚本+命令总结
Linux命令与shell 脚本大全,内容丰富,包含了shell脚本的技术命令 以及大量的实践内容
最实用的Linux 命令行和shell脚本编程宝典,是最常用的参考手册。
《Linux命令行与Shell脚本编程大全》 学习笔记
Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、Debian(Ubuntu、Deepin)操作系统爬坑.zip Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、...
Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、Debian(Ubuntu、Deepin)操作系统爬坑.zip Linux命令行与shell脚本编程、Linux C库函数及系统调用编程、Linux内核分析即应用、...
Linux命令行与shell脚本编程大全案例
大部分案例均出自《Linux命令行与shell脚本编程大全案例》一书,方便大家学习
一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。(编写shell实用查询宝典)
《Linux命令行与shell脚本编程大全案例》源码下载脚本参考基本命令行编写入门规范入门基础awk、sed、基本输入、控制语句;gawk进阶,mysql数据库,sed进阶,shell脚本编程进阶,初识sed和gawk,处理用户输入,基本...
绝对完整版的《Linux 命令行和shell脚本编程宝典》! 这是第二分卷
shell脚本
绝对完整版《Linux 命令行和shell脚本编程宝典》! 这是分卷1
Linux 命令行和shell脚本编程宝典.part1
绝对完整版的《Linux 命令行和shell脚本编程宝典》! 第5卷
绝对完整版的《Linux 命令行和shell脚本编程宝典》! 这是第三卷
Linux 命令行和shell脚本编程宝典.part4