
前言本文是《更多的bash shell命令》课程的实践总结通过在Xshell中连接虚拟机亲手操作了Linux中进程管理、磁盘管理、数据排序、搜索和归档等常用命令。本文将按照PPT的顺序逐一演示每个命令的用法并附上操作截图和常见参数说明帮助正在学习Linux的你快速上手。一、实验环境操作系统UbuntuVMware虚拟机远程连接工具XshellShell环境GNU Bash二、监测程序——ps命令ps命令用于查看系统上运行的所有程序的信息。当程序运行在系统上时我们称之为进程process。基本用法直接输入ps查看当前终端下的进程ps输出示例PID TTY TIME CMD2938 pts/1 00:00:00 bash3810 pts/1 00:00:00 ps目前只运行了bash shell以及ps命令本身。基本输出显示了程序的进程IDPID、它们运行在哪个终端TTY以及进程已用的CPU时间。查看所有进程使用ps -ef参数组合查看系统上运行的所有进程ps -ef-e参数指定显示所有运行在系统上的进程-f参数则扩展了输出。输出依次包含以下信息UID启动这些进程的用户PID进程的进程IDPPID父进程的进程号C进程生命周期中的CPU利用率STIME进程启动时的系统时间TTY进程启动时的终端设备TIME运行进程需要的累计CPU时间CMD启动的程序名称操作截图三、实时监控——top命令ps命令只能显示某个特定时间点的信息而top命令是实时显示的。启动toptoptop输出的第一部分显示系统的概况第一行当前时间、系统的运行时间、登录的用户数以及系统的平均负载。平均负载有3个值最近1分钟、最近5分钟和最近15分钟的平均负载。值越大说明系统的负载越高。第二行进程概要信息有多少进程处在运行、休眠、停止或是僵化状态。第三行CPU的概要信息包括用户空间占用CPU百分比us、内核空间占用CPU百分比sy、空闲CPU百分比id等。最后两行系统内存的状态包括物理内存总量、空闲内存、已用内存和交换空间的信息。top常用交互命令在top界面中可以输入以下按键执行相应功能? 显示在top当中可以输入的命令P 以CPU的使用资源排序显示M 以内存的使用资源排序显示N 以pid排序显示T 由进程使用的时间累计排序显示k 给某一个pid一个信号可以用来杀死进程r 给某个pid重新定制一个nice值即优先级u 显示指定用户下的所有进程q 退出top操作截图四、结束进程——kill命令作为系统管理员很重要的一个技能就是知道何时以及如何结束一个进程。有时进程挂起了需要让进程重新运行或结束。常用信号1 HUP 挂起2 INT 中断9 KILL 无条件终止15 TERM 尽可能终止18 TSTP 停止或暂停但继续在后台运行19 CONT 在STOP或TSTP之后恢复执行使用kill命令用法kill [option] [PID号]默认情况下kill命令会向命令行中列出的全部PID发送一个TERM信号告诉进程可能的话就停止运行。正常终止进程kill PID号强制终止进程慎用kill -9 PID号操作截图五、磁盘挂载——mount和umount命令Linux文件系统将所有的磁盘都并入一个虚拟目录下。在使用新的存储媒体之前需要把它放到虚拟目录下这项工作称为挂载mounting。查看已挂载设备mountmount命令提供如下四部分信息媒体的设备文件名媒体挂载到虚拟目录的挂载点文件系统类型已挂载媒体的访问状态手动挂载设备mount -t type device directory常用参数-r 将设备挂载为只读的-w 将设备挂载为可读写的默认参数-t 指定文件系统类型卸载设备从Linux系统上移除一个可移动设备时不能直接从系统上移除而应该先卸载。umount [directory|device]操作截图六、查看磁盘空间——df和du命令df命令df命令可以很方便地查看所有已挂载磁盘的使用情况。查看磁盘使用情况df以易读格式显示MB、GBdf -hdf命令输出依次为设备的设备文件位置、能容纳多少个1024字节大小的块、已用了多少个、还有多少个可用、已用空间所占比例、设备挂载到了哪个挂载点上。du命令du命令可以显示某个特定目录的磁盘使用情况用来快速判断系统上某个目录下是不是有超大文件。查看当前目录磁盘使用情况du以易读格式显示du -h只显示总大小du -sh查看指定目录du -sh /home操作截图七、排序数据——sort命令sort命令是对数据内容进行排序。注意sort只是将数据显示的时候进行了排序实际上文件内部的数据没有变。基本用法创建测试文件echo -e “5\n3\n15\n8\n1\n20\n10” numbers.txtcat numbers.txt默认排序按字符排序sort numbers.txt按数值排序sort -n numbers.txt降序排序sort -nr numbers.txt常用参数-n 把数字识别成数字而不是字符按值排序-r 将结果按降序输出-t 指定分隔符-k 指定排序的列操作截图八、搜索数据——grep命令grep命令会在输入或指定的文件中查找包含匹配指定模式的字符的行。基本用法创建测试文件echo -e “apple\nbanana\ngrape\napple pie\npineapple\nAPPLE” fruits.txt基本搜索grep “apple” fruits.txt反向搜索不包含apple的行grep -v “apple” fruits.txt显示行号grep -n “apple” fruits.txt统计匹配行数grep -c “apple” fruits.txt忽略大小写grep -i “apple” fruits.txt多个匹配模式grep -e “apple” -e “grape” fruits.txt使用正则表达式以a开头grep “^a” fruits.txt在系统进程中使用grepps -ef | grep bash操作截图九、压缩和解压——gzip和tar命令gzip命令gzip命令会压缩你在命令行指定的文件。压缩文件gzip filename解压文件gzip -d filename.gztar命令tar命令最开始是用来将文件写到磁带设备上归档的现在普遍用来归档数据。常用功能-c 创建一个新的tar归档文件-x 从已有tar归档文件中提取文件-t 列出已有tar归档文件的内容-r 追加文件到已有tar归档文件末尾常用选项-f file 输出结果到文件或设备file-z 将输出重定向给gzip命令来压缩内容-j 将输出重定向给bzip2命令来压缩内容-v 在处理文件时显示文件-C dir 切换到指定目录tar命令使用案例创建测试目录和文件mkdir test_archivetouch test_archive/file1.txt test_archive/file2.txt test_archive/file3.txt创建tar归档文件tar -cvf archive.tar test_archive/查看tar归档文件内容tar -tvf archive.tar创建tar.gz压缩文件tar -czvf archive.tar.gz test_archive/解压tar.gz文件tar -xzvf archive.tar.gz解压到指定目录mkdir extract_dirtar -xzvf archive.tar.gz -C extract_dir/操作截图十、知识框架总结1.进程管理类ps 查看进程信息 常用参数-eftop 实时监控进程 常用交互P、M、N、T、u、k、qkill 结束进程 常用参数-92.磁盘管理类mount 挂载设备 常用参数-tumount 卸载设备 无df 查看磁盘空间 常用参数-hdu 查看目录占用空间 常用参数-h、-s3.数据处理类sort 排序数据 常用参数-n、-r、-t、-kgrep 搜索数据 常用参数-v、-n、-c、-i、-e4.压缩归档类gzip 压缩文件 常用参数-dtar 归档文件 常用参数-c、-x、-t、-v、-f、-z