Linux命令行与Shell脚本编程大全-更多的bash shell命令

本章内容:
管理进程

获取磁盘统计信息

挂载新的磁盘

排序数据

归档数据

1. 管理进程 

当程序运行在系统上时,我们称之为进程(process) 需要熟悉ps命令的用法来查看运行在系统上的所有程序的许多信息

ps常用参数 ps -ef 来查看所有进程的状态信息,-H 参数能把输出的进程组织成一个层级的格式,简单的说就是一个树状结构

ps命令的局限性在于只能显示某一个特定时间点的信息,这个时候需要另外一个命令top

top命令和ps相似,能够显示进程的信息,但它是实时显示的

输出的第一部分显示的系统的概况:第一行显示了当前的时间、系统的运行时间、登入的用户数以及系统的负载情况

平均负载有3个值:1分钟 5分钟 15分钟 这些值越大代表系统的负载越高,重点关注15分钟的负载情况,如果15分钟的平均负载都很高,说明系统是有问题的

结束进程

kill 命令 可通过PID(进程号)给进程发信号。默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号,要发送进程信号,你必须是进程的属组或者登陆为root用户

1.作用

kill命令用来中止一个进程。

2.格式

kill [ -s signal | -p ] [ -a ] pid …

kill -l [ signal ]

3.参数

-s:指定发送的信号。

-p:模拟发送信号。

-l:指定信号的名称列表。

pid:要中止进程的ID号。

Signal:表示信号。

(1)强行中止(经常使用杀掉)一个进程标识号为324的进程:

#kill -9 324

(2)解除Linux系统的死锁

在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的 PID,然后使用kill命令停止这个程序:

#kill -SIGKILL XXX

其中,XXX是包含有Mozolla浏览器的程序的进程标识号。

(3)使用命令回收内存
我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:
#kill -9 XXX

其中,XXX是无用的进程标识号。

(4)killall命令
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:

# killall -HUP inetd

*杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。

2.获取磁盘统计信息

有时候你需要知道在某个设备上还有多少的磁盘空间。df命令就是用来轻松查看所有已挂载磁盘的使用情况

df -h 常用命令参数 它会把输出挂载中的磁盘空间按人类可读的形式来显示,通常用M来替代兆字节,用G来替代吉字节,还有已用空间所占的比例 设备挂载到了哪个挂载点上

du命令可以显示某个特定目录的磁盘使用情况,这个是用来判断你系统上某个目录下是不是有超大文件的快速方法。

du -sh 常用命令按人类可读的形式来输出文件的大小

3.挂载新的磁盘

mount 命令 用来挂载媒体的命令。默认情况下,mount命令会输出当前系统上挂载的设备列表。

基本命令:

mount -t type device directory

-o 常用选项:

ro:按只读挂载

rw:按读写运行的挂载

user:允许普通用户挂载文件系统

check=none:挂载文件系统是不进行完整性校验

loop:挂载一个文件 (常用挂载CD镜像文件)

举例:

mount -t vfat /dev/sdb1 /media/disk

mount -t iso9660 -o loop MEPIS-KDE-LIVE-DVD_32.iso mnt

umount 命令 用于卸载挂载点 

命令格式:

umount [ directory| device ] #支持通过设备文件或者是挂载点来指定要卸载的设备

如果在卸载设备时,系统提示繁忙,无法卸载设备,通常是有进程还在访问该设备或使用该设备上的文件。这时可以用lsof命令获取它的进程信息,然后在应用中停止使用该设备或者停止进程。lsof 命令的用法很简单: lsof /path/to/device/node 或者lsof /path/to/mount/point

4.排序数据

默认情况下,sort 命令按你为这个会话指定的默认语言的排序规则来对这个文本文件的数据进行排序,sort命令会将数组当作字符而执行标准的字符排序,产生的输出可能不是你想要的结果,所以 通过 -n 参数来把数字识别成数字而不是字符,并且将它们按值排序。

还有其他的参数 -k 指定排序的字段 -t 指定字段分隔符 

举例:对密码文件/etc/passwd根据用户ID进行数值排序

# sort -t’:’ -k 3 -n /etc/passwd 

5.归档数据

Unix 和Linux上最广泛使用的工具是tar命令

格式:

tar function [options] object1 object2 …

常用参数:

-c 创建一个新的tar文件

-C 切换到指定的目录

-f 输出结果到文件或者设备file (位置在最后)

-j 将输出重定向给bzip2命令来压缩内容

-p 保留所有文件权限

-v 在处理文件时显示文件信息

-z 将输出重定向给gzip命令来压缩内容

创建一个新的test.tar 文件并输出文件信息

tar -cvf test.tar test/ test2/

列出test.tar的内容,但并不解压文件

tar -tf test.tar 

解压test.tar文件

tar -xvf test.tar

通过gzip压缩tar文件

tar -zcvf test.tar.gz test/ test2/

    原文作者:JaeGwen
    原文地址: https://www.jianshu.com/p/8f4030c1f697
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞