《Linux命令行与shell脚本编程大全》 第四章 学习笔记
来源:互联网 发布:氢弹 知乎 编辑:程序博客网 时间:2024/05/18 03:32
第一部分:Linux命令行
《Linux命令行与shell脚本编程大全》 第一章:初识Linux shell
《Linux命令行与shell脚本编程大全》 第二章:走进shell
《Linux命令行与shell脚本编程大全》 第三章:基本的bash shell命令
《Linux命令行与shell脚本编程大全》 第四章:更多的bash shell命令
《Linux命令行与shell脚本编程大全》 第五章:使用Linux环境变量
《Linux命令行与shell脚本编程大全》 第六章:理解Linux文件权限
《Linux命令行与shell脚本编程大全》 第七章:管理文件系统
《Linux命令行与shell脚本编程大全》 第八章:安装软件程序
《Linux命令行与shell脚本编程大全》 第九章:使用编辑器
第二部分:shell脚本编程基础
《Linux命令行与shell脚本编程大全》 第十章:构建基本脚本
《Linux命令行与shell脚本编程大全》 第十一章:使用结构化命令
《Linux命令行与shell脚本编程大全》 第十二章:更多的结构化命令
《Linux命令行与shell脚本编程大全》 第十三章:处理用户输入
《Linux命令行与shell脚本编程大全》 第十四章:呈现数据
《Linux命令行与shell脚本编程大全》 第十五章:控制脚本
第三部分:高级shell编程
《Linux命令行与shell脚本编程大全》 第十六章:创建函数
《Linux命令行与shell脚本编程大全》 第十七章:图形化桌面上的脚本编程
《Linux命令行与shell脚本编程大全》 第十八章:初识sed和gawk
《Linux命令行与shell脚本编程大全》 第十九章:正则表达式
《Linux命令行与shell脚本编程大全》 第二十章:sed进阶
《Linux命令行与shell脚本编程大全》 第二十一章:gawk进阶
《Linux命令行与shell脚本编程大全》 第二十二章:使用其他shell
第四部分:高级shell脚本编程主题
《Linux命令行与shell脚本编程大全》 第二十三章:使用数据库
《Linux命令行与shell脚本编程大全》 第二十四章:使用Web
《Linux命令行与shell脚本编程大全》 第二十五章:使用E-mail
《Linux命令行与shell脚本编程大全》 第二十六章:编写脚本实用工具
《Linux命令行与shell脚本编程大全》 第二十七章:shell脚本编程进阶
第四章:更多的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内核分配给进程的系统标记NInice值,用于设置优先级PID进程IDPPID父进程的进程IDPRI优先级(数字越大优先级越低)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和组IDw为较宽屏幕显示宽输出H将线程按进程来显示m在进程后显示线程L列出所有格式指定符V显示ps命令的版本号BSD列标题和含义
BSD标题含义%CPUCPU使用百分比%MEM真实内存使用百分比CMD正被执行的命令的名称COMMAND正被执行的命令的完整名称CPU短期CPU使用(调度)JOBC作业控制统计LIM内存使用限额NInice值,用于设置优先级PAGEIN总的缺页错误(内存管理)PGID进程组号PID进程IDPPID父进程的进程IDPRI调度优先级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
2158 su1216 20 0 409m 56m 25m S 3 1.5 0:13.21 chromium-browse
1499 su1216 20 0 291m 35m 9180 S 1 0.9 0:04.76 compiz
1675 su1216 20 0 332m 18m 12m S 1 0.5 0:00.37 gnome-terminal
1616 su1216 20 0 215m 9.8m 7884 S 0 0.3 0:00.34 multiload-apple
1891 su1216 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进程信号
信号名称描述1HUP挂起2INT中断3QUIT结束运行9KILL无条件终止11SEGV段错误15TERM尽可能终止17STOP无条件停止运行,但不终止18TSTP停止或暂停,但继续在后台运行19CONT在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.gzGNU压缩工具,用Lempel-Ziv编码zip.zipWindows上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脚本编程大全》 第四章 学习笔记
- 《Linux命令行与Shell脚本编程大全》学习笔记1
- 《Linux命令行与Shell脚本编程大全》学习笔记2
- 《Linux命令行与Shell脚本编程大全》学习笔记3
- 《Linux命令行与Shell脚本编程大全》学习笔记4
- linux命令行与shell脚本编程大全学习笔记之—shell脚本for命令学习
- 《Linux命令行与shell脚本编程大全》 第一、二章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第三章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第五章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第六章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第七章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第八章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第九章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第十章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第十一章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第十二章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第十三章 学习笔记
- 《Linux命令行与shell脚本编程大全》 第十四章 学习笔记
- #define #ifndef #endif
- 解决长串不能自动换行的问题和td中汉字自动换行 && CSS强制不换行
- VS2010直接加载GDI+的编译不通过的问题
- CodeBlocks 10.05 配置DxLib v3.09
- How to cook your own Android ROM 如何制作自己的刷机包
- 《Linux命令行与shell脚本编程大全》 第四章 学习笔记
- Silverlight中在DataGrid 表头添加图片
- 用GMP库实现大数运算的引子
- SharePoint 2013使用Exchange2013 配置传入电子邮件
- android Bitmap用法总结
- 文件流高级-压缩文件和解压缩
- oracle索引的认识
- FGMap学习之--加载百度地图
- 文件格式解析:快捷方式 (LNK文件)