第四章:更多的bash 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 | 内核分配给进程的系统标记 |
| 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
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进程信号
| 信号 | 名称 | 描述 |
| 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命令来压缩内容 |
第四章:更多的bash shell命令的更多相关文章
- 《Linux命令行与shell脚本编程大全》- 读书笔记2 - 更多的bash shell命令
更多的bash shell命令 想检测进程,需要熟悉ps命令的用法.ps命令好比工具中的瑞士军刀,它能输出运行在系统上的所有程序的许多信息.默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户 ...
- Linux 学习笔记 更多的bash shell命令
一 监测程序 1.ps 输出运行在系统上的所有程序的许多信息 运行ps命令,也会开启一个进程 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户的进程. Unix风格的参数(单破折号) - ...
- 第三章 基本的bash shell命令
1.硬链接:等同于引用了原文件,并未产生新的文件,不同的硬链接共用一个inode 2.符号链接:创建的是一个新文件,新文件指向原文件,因为是不同的文件,所以有不同的inode
- 更多的bash shell命令
1.探查进程:ps 2.实时监控进程:top 3.结束进程:kill.killall 4.查看挂载媒体:mount 5.移除设备:nmount 6.查看已挂载设备的使用情况:df 7.显示特定磁盘的使 ...
- 《Linux命令行与shell脚本编程大全》第十三章 更多的结构化命令
本章讨论bash shell的循环命令for.while和until 13.1 for命令 重复执行一系列命令在编程中很常见. bash shell提供了for命令,允许你创建一个遍历一系列值的循环. ...
- bash shell命令(2)
在上篇<bash shell命令(1)>中,介绍了几种简单的linux shell命令,今天继续介绍bash shell命令 本文地址:http://www.cnblogs.com/arc ...
- 基本bash shell命令
以下列举一些常用的bash shell命令,在使用时方便查找. 访问Linux系统上的手册:man 命令.例:man ps 手册是由分页程序来显示的,可以通过点击 空格,回车,向上和向下箭头 ...
- bash shell命令与监测的那点事(一)
bash shell命令与监测的那点事之ps 学习LInux,不得不谈谈bash shell命令,介绍Linux命令行与Shell脚本的书有很多很多,bash shell命令也有很多,此次我们只谈谈有 ...
- 一、基本的bash shell命令(基于Ubuntu实现)
一.基本的bash shell命令(基于Ubuntu实现) /etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息. man命令 在想要查找的工具的名称前输入man命令,就可以 ...
随机推荐
- java nio2
Buffer的基本用法 使用Buffer读写数据一般遵循以下四个步骤: 写入数据到Buffer 调用flip()方法 从Buffer中读取数据 调用clear()方法或者compact()方法 当向b ...
- 2014-9-17二班----8 web project
http://localhost:8080/rwkj1/indexServlet 地址请求后,,,,浏览器 地址栏没有变化 package cn.rwkj.servlet; import java ...
- mac root用户初始密码设置
具体方法如下: 1)sudo su切换到root,输入的用户密码是当前用户的密码: 2)切换到root后,执行passwd root,设置root用户密码即可.
- TUXEDO错误解决方案
错误1: root@tfjus:/opt/tuxedo/simpapp# buildclient -f simpcl.c -o simpcl simpcl.c: In function 'main': ...
- 转 Android中进入系统设置界面
Android软件时,常常需要打开系统设置或信息界面,来设置相关系统项或查看系统的相关信息,这时我们就可以使用以下语句来实现:(如打开“无线和网络设置”界面) Intent intent = new ...
- C++ STL之vector容器的基本操作
注意事项:特别注意任何时候同时使用两个迭代器产生的将会是一个前闭后开的区间(具体见插入和删除的例子)特别注意begin()指向的是vec中的第0个元素,而end是指向最后一个元素的后面一个位置(不是最 ...
- open_table
/* Open a table. SYNOPSIS open_table() thd Thread context. table_list Open first table in list. acti ...
- Qt之进程间通信(TCP/IP)
简述 可以通过Qt提供的IPC使用TCP/IP,使用QtNetwork模块即可实现,TCP/IP在实现应用程序和进程内部通信或与远程进程间的通信方面非常有用. QtNetwork模块提供的类能够创建基 ...
- PHPnow 升级后 PHP不支持GD、MySQL
来自http://tunps.com/php-unsupport-gd-and-mysql-after-upgrade-phpnow 最近磁盘格式化误操作后,最近两天都在忙于数据恢复,现在才恢复正常. ...
- Jqgrid入门-显示基本的表格(一)
首先对Jqgrid网格插件做个简要的说明.在众多的表格插件中,Jqgrid的特点是非常鲜明的. 特点如下: 完整的表格呈现与运算功能,包含换页.栏位排序.grouping.新增.修改及 ...