更多的bash shell命令
想检测进程,需要熟悉ps命令的用法。ps命令好比工具中的瑞士军刀,它能输出运行在系统上的所有程序的许多信息。默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户的进程。
$ps -ef
如果想查看系统上运行的所有进程,可用-ef参数组合。(-e:显示所有进程,-f:显示完整格式的输出)
top命令能够实时显示进程的信息。
在Linux中,进程通过信号来通信。进程的信号就是预定义好的一个消息,进程能识别它并决定忽略还是做出反应。进程如何处理信号是由开发人员通过编程来决定的。大多数编写完善的程序都能接收和处理标准Unix进程信号。
kill命令可通过进程ID给进程发送信号。默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号。
killall命令非常强大,它支持通过进程名而不是PID来结束进程。killall命令也支持通配符。$killall http*
结束所有以http开头的进程。
在使用新的存储媒体之前,需要把它放到虚拟目录下。这项工作成为挂载。如果使用的发行版不支持自动挂载和卸载可移动存储媒体,就必须手动完成。
Linux上用来挂载媒体的命令叫做mount。默认情况下,mount命令会输出当前系统上挂载的设备列表。
$mount -t type device directory
这是手动挂载媒体设备的基本命令,需要以root用户执行。type参数指定了磁盘被格式化的文件系统类型。通常有vfat,ntfs,iso9660。device指定存储设备的设备文件的位置,directory指定挂载点在虚拟目录中的位置。比如手动将U盘/dev/sdb1挂载到/media/disk,可用:$mount -t vfat /dev/sdb1 /media/disk
从Linux系统上移除一个可移动设备时,不能直接从系统上移除,而应该先卸载。卸载设备的命令是umount,$umount [direcotry|device]
支持通过设备文件或者是挂载点来指定要卸载的设备。
如果在卸载设备时,系统提示设备繁忙,无法卸载设备,通常是有进程还在访问该设备或使用该设备上的文件。这事,可用lsof命令获得使用它的进程信息,用法如下:$isof /path/device/node
或者$isof /path/mount/point
df命令可以让你很方便地查看所有已挂载磁盘的使用情况。$df -h
一个常用的参数-h,它会把输出中的磁盘空间按照用户易读的形式显示。
du命令可以显示某个特定目录(默认是当前目录)的磁盘使用情况。$du * -hs
显示当前目录下每个子目录的磁盘占用。-h参数以用户易读的形式显示,-s参数显示每个输出参数的总计。
sort命令对数据进行排序,默认情况下,sort命令按照会话指定的默认语言的排序规则对文本文件中的数据行进行排序。$sort -n
把数字识别成数字而不是字符,并且按值排序。这在排序数值的时候很有用,比如$du -hs * | sort -nr
。-r参数表示降序排序。$sort -M
按月排序,sort命令能够识别三字符的月份名。-k和-t参数在对按字段分隔的数据进行排序时非常有用,比如/etc/passwd文件。
$grep [options] pattern file
grep会在输入或指定的文件中查找包含匹配指定模式的字符的行。grep的输出就是包含了匹配模式的行。如果要进行反向搜索,可加-v参数。如果想显示行号,可加-n参数。如果只想知道有多少行匹配模式,可用-c参数。如果要指定多个匹配模式,可用-e参数来指定每个模式。
gzip是Linux上最流行的压缩工具。Unix和Linux上最广泛使用的归档工具是tar。tar工具能将整个目录都归档到单个文件中,方便把数据迁移到另外一个系统上。
tar命令的-c参数表示创建一个归档文件,-x参数表示从归档文件中提取文件,-f参数表示输出结果到文件或设备file,-v参数表示在处理文件时显示文件。这些参数经常合并到一起使用,比如创建一个归档文件 $tar -cvf test.tar test1/ test2/
,列出归档文件内容(但并不提取文件) $tar -tf test.tar
,提取tar文件内容 $tar -xvf test.tar
,如果tar文件是从一个目录结构创建的,那整个目录结构都会在当前目录下重新创建。
下载了开源软件之后,你会经常看见文件名以.tgz结尾,这些是gzip压缩过的tar文件可以用命令$tar -zxvf filename.tar
来解压。