Linux常用命令实战与知识框架梳理 (基于Xshell操作)
前言
在Linux系统管理和日常开发中,掌握一系列基础但强大的命令行工具是必不可少的。本文将结合我在Xshell中的实际操作,对ps、top、kill、mount、umount、df、du、sort、grep、tar、gzip等命令进行梳理。特别是top、sort、grep这三个命令,作为本次学习的重点,我会详细演示其用法和参数。
一、 命令实战与功能解析
下面我将逐一介绍这些命令的用途、主要参数,并展示在Xshell中的实际操作效果。
- ps和 top:判断系统的状态
ps(Process Status): 用于查看当前系统的进程状态。它通常只显示当前终端会话的进程。
常用参数:
ps aux: 显示所有用户的全部进程,信息非常全面。
ps -ef: 以完整的格式显示所有进程。
Xshell操作示例:
top(Table of Processes): 这是一个动态实时监控工具,会持续刷新显示系统中各个进程的资源占用情况,是判断系统负载和瓶颈的利器。(重点)
主要交互命令 (在top运行后按):
P: 按CPU使用率排序。
M: 按内存使用率排序。
q: 退出top。
k: 终止一个进程。
Xshell操作示例:
kill:杀死进程
用途: 向指定的进程发送信号,默认是终止信号(SIGTERM)。
常用参数:
kill -9 : 强制杀死进程 (SIGKILL),慎用。
kill -15 : 优雅地终止进程 (SIGTERM),允许进程清理资源。
Xshell操作示例:mount和 umount:挂载与卸载设备
mount: 用于挂载文件系统到指定目录。
常用格式: mount /dev/sdb1 /mnt
umount: 用于卸载已挂载的文件系统。
常用格式: umount /mnt
Xshell操作示例:df和 du:查看磁盘空间
df(Disk Free): 查看文件系统的磁盘空间使用情况 (以块为单位)。
常用参数: df -h(以人类可读的格式显示,如G, M)。
du(Disk Usage): 查看目录或文件的磁盘使用量。
常用参数: du -sh /path/to/dir(查看某个目录的总大小)。
Xshell操作示例:sort:对数据文件进行排序
用途: 对文本文件的行进行排序。
主要参数:
-n: 按数值大小排序。
-r: 反向排序。
-k: 指定排序的列。
-t: 指定分隔符。
练习题1:创建一个文本文件,每行一个数字,然后用sort的各种参数排序。
Xshell操作示例:grep:检索大数据文件特定信息
用途: 强大的文本搜索工具,能在文件中搜索匹配指定模式的行。
主要参数:
-i: 忽略大小写。
-v: 反向选择,即显示不包含匹配模式的行。
-r: 递归搜索目录下的所有文件。
-n: 显示匹配行的行号。
-E: 使用扩展正则表达式。
–color=auto: 高亮显示匹配到的内容。
练习题2:使用grep命令进行不同格式的输出。
Xshell操作示例:tar和 gzip:压缩、解压大型文件
tar: 用于打包和解包文件。
常用参数:
-c: 创建归档。
-x: 解压归档。
-v: 显示过程。
-f: 指定归档文件名。
-z: 通过gzip过滤归档 (用于压缩)。
-j: 通过bzip2过滤归档。
gzip: 用于压缩或解压.gz文件。
常用命令: gzip filename, gunzip filename.gz
Xshell操作示例:
二、 我的知识框架体系
1、进程管理类命令
这类命令的核心作用是监控和控制系统中运行的程序,帮助我们快速判断系统运行状态。
首先是 ps命令,它可以输出某一时刻的系统进程快照。常用 ps -ef组合,-e参数显示系统所有进程,-f参数输出完整格式,包含启动用户 UID、进程 ID(PID)、父进程 ID(PPID)、进程启动时间、启动命令等关键信息。实际使用中常配合 grep过滤特定进程,比如 ps -ef | grep zhang就能查看所有属于 zhang 用户的进程。
其次是 top命令,这是动态实时监控的核心工具,也是本次学习的重点。和 ps不同,top会持续刷新进程信息。运行时可以按 P按 CPU 使用率排序,M按内存使用率排序,N按 PID 排序,u筛选指定用户的进程,k终止指定 PID 的进程,q退出监控。顶部的系统概况尤其重要:load average 的三个值分别代表最近 1、5、15 分钟的系统平均负载,若 15 分钟负载持续过高说明系统存在性能问题;%MEM列可以快速定位内存占用过高的进程;按大写 E还能切换内存单位为 GB,阅读更直观。
最后是 kill命令,用于向进程发送信号控制其生命周期。默认发送 TERM(15)信号,会优雅终止进程,允许进程清理资源;如果遇到进程无响应,才使用 kill -9 PID强制杀死,但要谨慎使用,避免数据丢失。操作时一定要先通过 ps或 top获取正确的 PID,再执行对应命令。
2、磁盘管理类命令
这类命令用于管理存储设备的挂载和磁盘空间查看。
mount命令负责将存储设备挂载到 Linux 虚拟目录下。手动挂载时需要指定文件系统类型(-t参数,比如 vfat、ext4)、设备文件路径和挂载点,例如挂载 U 盘可执行 sudo mount -t vfat /dev/sdb1 /media/usb。-r参数可以实现只读挂载,-o可以添加额外挂载选项。
umount命令用于卸载设备,可以直接指定设备名或挂载点,比如 umount /media/usb。如果卸载时提示“设备繁忙”,说明有进程正在访问该设备,可以用 lsof /media/usb查看占用进程,停止对应进程后再执行卸载。
df命令用来查看已挂载磁盘的整体使用情况,加上 -h参数会以 G、M 等人类易读的单位显示。输出中的 Use%列是重点,超过 80% 就需要考虑清理磁盘空间。
du命令则用于查看指定目录或文件的磁盘占用,-sh参数可以显示目录的总大小,-c参数会显示所有文件的总大小。比如 du -sh /*可以快速查看根目录下各个文件夹的大小,定位占用空间大的目录。
3、文本处理类命令
这类命令是处理日志和数据文件的核心,也是本次作业的重点。
sort命令用于对文本内容排序。默认情况下它会把数字当成字符按字典序排序,要实现数值排序必须加 -n参数;-r参数可以实现降序排列;如果需要按指定列排序,可以用 -k指定列号,-t指定列分隔符。比如我们有一个每行一个数字的 nums.txt文件,执行 sort -n nums.txt会按数字从小到大排序,sort -nr nums.txt则会按从大到小排序。
grep命令用于在文件中检索匹配指定模式的行,是日志分析的利器。-i参数可以忽略大小写;-v参数用于反向匹配,输出不包含匹配模式的行;-n参数会显示匹配行的行号;-c参数统计匹配的行数;-E支持扩展正则表达式,^可以锚定行首,$锚定行尾。比如 grep “Error” log.txt可以找到所有包含 Error 的行,grep -nv “Error” log.txt则会输出所有不包含 Error 的行并显示行号,非常适合排查日志问题。
4、压缩归档类命令
这类命令用于打包和压缩大型文件,节省存储空间,便于文件传输。
gzip命令用于处理 .gz格式的压缩文件,直接执行 gzip 文件名会压缩文件并生成 .gz后缀的压缩包,同时删除原文件;解压时使用 gzip -d 文件名.gz或者 gunzip 文件名.gz即可。
tar命令用于文件打包,常和压缩工具配合使用。-c参数创建归档,-x参数解压归档,-v参数显示过程,-f参数指定归档文件名,-z参数会调用 gzip 进行压缩或解压。最常用的组合是 tar -czvf 压缩包名.tar.gz 目录来打包并压缩,tar -xzvf 压缩包名.tar.gz来解压。如果想查看归档内容而不解压,可以使用 tar -tvf 压缩包名.tar.gz。
三、 总结
通过在Xshell中的实际操作,我对这些Linux命令有了更深刻的理解。top、sort、grep这三个命令因其强大的功能和灵活性,成为了我本次学习的重点。熟练掌握它们,能极大地提高在Linux环境下处理数据和排查问题的效率。