ShellshellShell那些事儿

二、更多的bash shell命令

2017-08-10  本文已影响121人  Miridescent

这一部分介绍的是一些系统管理命令,所以可能不是很好琢磨,并且参数较多,对系统不是很熟悉的,有一些东西理解起来可能费劲,这里不会对每个参数进行介绍,只介绍一部分

命令 作用
ps 探查进程
top 实时监测进程
killkillall 结束进程
mount 挂载存储媒体
umount 卸载存储媒体
df 查看磁盘空间
du 查看某个特定磁盘空间
sort 排序数据
grep 搜索数据
bzip2、compress、gzip、zip 压缩数据
tar 归档数据

1.监测程序

探查进程 ps

该命令会显示当前控制台下的属于当前用户的进程
一般会显示四项数据

名称 表示的意思
PID 进程ID
TTY 运行在哪个终端
TIME 进程已用的CPU时间
CMD 进程简介

ps命令后可以跟很多参数,并且由于ps命令的历史原因这些参数还分为三种风格Unix风格、BSD风格和GNU风格,每种风格参数有其共同的特点,但是作用大致是一样的,这里不对参数一一列举,想详细了解的同学可自行搜索,也可用命令man ps查看ps命令的详细参数解释,根据输入的参数不同,会显示进程的不同信息
*注意 这些参数可以组合使用
*注意 百度的关于ps命令的解释 ps参数详解

实时监测进程 top

ps最大的不同就是top是事实监测进程的,输出的格式其实和ps大同小异,这里不做过多的介绍
*注意 进入事实监测状态后,可以通过q键或者control+c退出

结束进程 killkillall

进程之间通过信号来通信,进程如何处理信号是由开发人员决定的,但是大多数进程都能接受标准Unix进程新信号

信号 名称 描述
1 HUP 挂起
2 INT 中断
3 QUIT 结束运行
9 KILL 无条件终止
11 SEGV 段错误
15 TERM 尽可能终止
17 STOP 无条件停止运行,但不终止
18 TSTP 停止或暂停,但继续在后台运行
19 CONT 在STOP和TSTP之后恢复执行

*注意表格中的名称不是语句,只是信号的名称

kill命令可通过进程ID(PID)发送进程信号
例:kill 3940
*注意 实际上kill命令发送的是TERM信号(尽可能终止),所以kill有时不会终止进程
*注意 要发送进程信号,必须是进程的属主或登录为root用户
*注意 kill命令不会有任何输出,要查看运行结果可以用pstop命令

通过-s参数,指定发送的信号
例:kill -s HUP 3940
*注意 -s后面支持信号名和信号值,所以上面的语句等价于kill -s 1 3940

killall命令结束进程
例:killall http* 结束所有以http开头的进程
*注意 killall支持进程名而不是进程ID(PID)来结束进程
*注意 killall支持通配符,用的时候要小心
*注意 killall由于支持通配符,当以root权限进入的时候,有可能误用通配符结束重要的系统进程,可能会破坏文件系统,要小心使用

2.监测磁盘空间

介绍个定义,挂载
Linux文件系统会将所有的磁盘都并入一个虚拟目录下,当接入新的存储媒体(例如U盘)之前,要把媒体放到虚拟目录下,这个过程叫挂载
现在大多数的图形化环境里会对大多数的存储媒体实行自动挂载,只有一些发行版不支持自动挂载和卸载

挂载存储媒体 mount
例:mount 会显示当前系统上挂载的设备列表
一般的输出中会包含媒体的设备文件名媒体挂载到虚拟目录的挂载点文件系统类型已挂载媒体的访问状态等信息

手动挂载存储媒体 mount -t type device directory
例: mount -t vfat /dev/sdb1 /media/disk 将U盘/dev/sdb1挂载到/media/disk目录下
*注意 需以root用户身份登录才能挂载(或以root用户身份运行sudo命令)
*注意 type参数是文件系统类型,现在主流的有一下三种

名称 介绍
vfat Windows长文件系统
ntfs Windows NT、XP、Vista和Windows 7中广泛使用的高级文件系统
iso9660 标准CD-ROM文件系统

*注意 大多数的U盘软盘会被格式化为vfat文件系统
*注意 mount还有一些其他的参数,自行了解mount参数详解

卸载存储媒体 umount
卸载和挂载是相对的,就是从系统上移除一个媒体
例:umount /media/disk 移除/media/disk挂载点的媒体
*注意 umount还支持通过设备文件,上面命令等价于umount /dev/sdb1
*注意 有任何程序在使用设备上的文件,则卸载都会失败

查看磁盘空间 df
例:df 该命令会查看所有挂载的磁盘的使用情况

例:df -h -h会将输出结果显示成用户易读的形式,例如K代替千字节
*注意 df还有其他参数,可自行了解

查看某个特定磁盘空间 du
du命令会列出磁盘中的所有文件,通常这是一个非常庞大的列表,通常du命令会配合参数使用

参数 作用
-c 显示所有已列出文件总的大小
-h 将输出结果显示成用户易读的形式,例如K代替千字节
-s 显示每个输出参数的总计

3.处理数据文件

这里处理数据文件,一般是针对那种大量数据进行处理,例如日志文件

排序数据 sort
例:sort file1 对file1文件按照默认的规格进行排序
*注意 sort有很多参数

例:sort -n file1 对file1中的数字按照数字值排序
*注意 sort默认会将文件中的数字当成字符串,加-n参数可以区分

例:sort -M file1 对file1中数据按月排序
*注意 -M参数识别的是三个字母的月份,例如Jan
*注意 sort还有一些其他参数,自行查阅学习sort用法
*注意 sort中的参数可以组合使用

搜索数据 grep
查找文件中的数据,很有用
例:grep three file1 查找file1文件中包含three字符的行

例:grep -v three file1 从下往上搜索file1文件中包含three字符的行

例:grep -n three file1 显示搜索出的行的行号

例:grep -e three -e four file1 查找file1文件中包含three字符或者包含four字符的行

例:grep [tf] file1 查找file1文件中包含t字符或者包含f字符的行
*注意 grep支持正则表达式
*注意 grep还支持很多参数,自行查阅学习grep用法

grep的衍生品还有egrepfgrep自行学习

压缩数据
介绍下Linux常用的压缩工具

工具 文件扩展名
bzip2 .bz2
compress .Z
gzip .gz
zip .zip

下面简单介绍gzip工具用法,其他都大同小异
例:gzip myfile 将myfile压缩成.gz后缀的文件

例:gzcat myfile 查看压缩过的文本文件内容

例:gunzip myfile.gz 解压压缩文件
*注意 该系列命令也支持通配符

归档数据

上面的命令也可以将文件归档,但是不是Linux中的标准归档,标准归档是tar命令
tar命令参数分为两部分,第一部分,功能命令

功能 长名称 描述
-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命令来压缩内容

下面用结合例子理解上面的内容
例:tar -cvf test.tar test/ test2/ 创建一个名为test.tar的归档文件,包含test/和test2/目录中的内容

例:tar -tf test.tar 列出test.tar文件内容

例:tar -xvf test.tar 列出test.tar文件中提取内容
*注意 tar文件包含test/和test2/目录下的所有文件

*注意 上面的参数详解连接都是百度找的,大家可自行查找更详细资料

上一篇下一篇

猜你喜欢

热点阅读