`
su1216
  • 浏览: 670400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71871
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128680
社区版块
存档分类
最新评论

《Linux命令行与shell脚本编程大全》 第四章 学习笔记

阅读更多

 

第一部分: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 内核分配给进程的系统标记
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命令来压缩内容

 

 

1.《Unix & Linux 大学教程》 - 第二十六章 进程和作业控制

2.《Unix & Linux 大学教程》 - 第二十四章 目录操作

3.《Unix & Linux 大学教程》 - 第十九章 过滤器:选取、排序、组合及变换

 

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

1
1
分享到:
评论

相关推荐

    linux运维学习笔记:Shell脚本调试.pdf

    本文档是一份针对Shell脚本调试的学习笔记,详细介绍了几种常见的调试方法和工具,帮助运维人员快速定位并修复脚本中的问题。 首先,需要了解的是Linux与Windows在文本文件行结束标志上的差异。在Linux系统中,文本...

    unix shell编程第三版笔记

    通过深入学习"Unix Shell编程第三版笔记",你将能够编写出高效的自动化脚本,提高工作效率,解决日常的系统管理和开发问题。同时,对Unix Shell的熟练掌握也是成为高级系统管理员或全栈开发者的必备技能之一。

    Linux_shell编程学习笔记

    Linux Shell编程是Linux系统管理与自动化任务中的重要一环,主要通过编写脚本来实现对操作系统进行交互和控制。本文将详细解析Linux Shell编程中的几个关键概念:正则表达式、find命令、grep命令以及sed命令。 1. *...

    韩顺平linux学习笔记,很不错的.pdf

    学习Linux的推荐书籍有《鸟哥的Linux私房菜》、《Linux命令行与shell脚本编程大全》、《Linux系统管理技术手册》等,这些书籍可以帮助读者深入理解Linux系统,并提供丰富的实践指导。 6. Linux视频教程第1讲:基础...

    Linux Shell从入门到精通学习笔记

    Linux Shell是Linux操作系统中的一种命令解释器,它允许用户通过命令行界面与系统进行交互,执行各种系统操作。本文档《Linux Shell从入门到精通》是作者李振良基于个人经验整理的一份全面教程,旨在帮助读者从零...

    学习笔记-基础Shell编程

    ### 学习笔记-基础Shell编程 #### 一、Shell编程概述 Shell编程是指利用Shell命令语言编写脚本来实现特定功能的过程。Shell不仅是Linux操作系统下的命令行解释器,还是一种强大的脚本语言,广泛应用于自动化任务...

    Linux学习笔记.docx

    Linux 学习笔记是 Linux 学习的详细笔记整理,分九章,涵盖了 vim 和 vi 编辑器、实用指令、组管理和权限管理、crond 任务调度、Linux 磁盘分区挂载、网络配置、进程管理、服务管理、shell 编程等内容。 1. vi 和 ...

    总结搜集的shell脚本学习笔记(完结篇).pdf

    ### Shell脚本编程知识点概述 #### 一、预备知识与基本概念 在开始Shell脚本文档的学习之前,首先需要理解Shell脚本的基本概念及其在Linux/Unix环境中的作用。Shell是一种命令行解释器,用于执行用户输入的命令,...

    shell脚本笔记

    Shell脚本是Linux/Unix操作系统中用于自动化任务的编程语言,它基于Bash或其他Shell变体,如Sh、Csh或Ksh。本笔记将深入探讨Shell脚本的基础知识、语法特性、常用命令以及如何编写实用的脚本来提高日常工作效率。 ...

    尚观linux 学习笔记 1

    4. "ule_06.txt" - 可能介绍了第六单元的Shell脚本编程,包括基本的Shell命令,变量、条件语句、循环结构、函数定义以及如何编写自动化任务脚本。 5. "ule_9.txt" - 可能是第九单元,可能讨论了网络配置和管理,...

    Linux学习笔记.pdf,linux详解,LINUX

    八、shell脚本编程 编写shell脚本可以自动化重复任务,例如: - 变量、运算符和条件判断。 - 函数定义。 - 循环结构。 - 输入输出重定向。 九、系统管理 - sysctl:调整系统内核参数。 - logrotate:日志文件轮换。...

    linux知识学习笔记

    ### Linux知识学习笔记 #### 一、Linux操作系统概述 Linux是一种开源、免费的类Unix操作系统,自1991年由芬兰学生Linus Torvalds创建以来,迅速在全球范围内获得了广泛的关注和支持。它不仅具备强大的稳定性,还...

    yzy第一次学习笔记作业

    * Linux 的 Shell 编程:Shell 是 Linux 的命令行接口,提供了交互式的命令行环境 三、Linux 文件系统 * 文件类型:普通文件、目录文件、链接文件、设备文件等 * 文件权限:所有者、群组、其他用户的读写执行权限 ...

    Redhat Enterprise linux5学习笔记

    ### Redhat Enterprise Linux 5 学习笔记知识点总结 #### 一、Linux系统介绍与安装 **1. Linux的历史背景与发展** - **UNIX系统的诞生**:1970年,贝尔实验室的两位科学家发明了UNIX系统,这标志着现代操作系统的...

    linux学习入门笔记

    6. **Shell脚本编程**:Bash Shell是Linux最常用的Shell,学习编写简单的Shell脚本可以帮助自动化日常任务。了解变量、条件语句、循环结构以及函数的使用。 7. **系统服务与初始化系统**:了解Systemd,它是现代...

    Linux学习笔记(强悍总结值得一看)

    这些只是Linux学习笔记的一部分,完整的笔记还包括更多关于文件系统操作、权限管理、进程控制、网络配置、脚本编程等多个方面的内容。掌握这些基础技能是成为Linux运维人员的必备条件,通过不断的实践和学习,可以更...

    shell学习笔记.docx

    Shell编程是Linux操作系统中的一种命令解释器,它允许用户通过命令行与系统进行交互,执行各种操作。在《shell编程从入门到精通》一书中,作者张昊详细讲解了shell编程的基础知识。以下是对该书内容的部分总结: 1....

    Unix-Linux编程实践教程

    1. **shell编程**:讲解Bash shell和其他Unix shell的基本语法,包括命令行参数、环境变量、重定向、管道和脚本编写等。 2. **进程管理**:介绍进程创建(fork和exec)和进程通信(管道、套接字、信号、共享内存、...

    Linux基础.zip

    压缩包中的文档如"鸟哥linux私房菜笔记"和"《鸟哥的Linux私房菜-基础篇》第四版"是经典的学习材料,涵盖了这些基础知识。 3. **Shell脚本**:Linux Shell是用户与操作系统交互的工具,而Shell脚本则是用Shell语言...

Global site tag (gtag.js) - Google Analytics