找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2771

积分

0

好友

354

主题
发表于 11 小时前 | 查看: 0| 回复: 0

Linux操作系统吉祥物Tux企鹅

在日常的运维工作中,除了lscdgrep这些“国民级”命令,你是否还知道一些能极大提升效率的小众神器?它们可能不那么出名,但在特定场景下却有着“四两拨千斤”的效果。今天就来盘点一下Linux系统中十个值得一试的实用命令,并附上核心用法与典型场景。

1. jq:JSON数据处理利器

面对API返回或日志文件中的复杂JSON数据,用文本编辑器或grep手动解析往往力不从心。jq就是为此而生的轻量级命令行JSON处理器。

核心用法
最基本的用法是从JSON中提取特定字段的值。假设有一个data.json文件,内容为 {"name": "Alice", "age": 30},要提取name字段:

cat data.json | jq '.name'

输出结果为:"Alice"jq的功能远不止于此,它还支持复杂过滤、数据转换、格式化输出等。

典型场景

  • 解析API返回值:快速从curl命令返回的JSON中提取关键信息。
  • 分析结构化日志:许多现代应用(如Docker、Kubernetes组件)会输出JSON格式日志,用jq可以轻松筛选和统计。

2. htop:增强型系统监控器

如果你觉得top命令的界面不够直观,操作不够方便,那么htop绝对是你的菜。它提供了彩色的界面、可视化的CPU/内存使用条,并且支持鼠标点击和键盘快捷键操作。

核心用法
直接运行即可:

htop

htop界面中,你可以用上下键选择进程,F9发送信号(如终止进程),F5以树状结构查看进程关系,还支持按CPU、内存等指标排序。

典型场景

  • 快速定位资源消耗大户:当服务器CPU或内存使用率异常时,直观地找到问题进程。
  • 交互式进程管理:比kill命令更安全、更直观地管理进程。

3. tree:目录结构可视化

在终端里理清一个陌生项目的目录结构,或者向别人展示你的项目布局,ls -R的输出往往显得杂乱。tree命令能以清晰的树形图展示目录。

核心用法
展示当前目录下2层深度的结构:

tree -L 2

常用选项还有-a(显示隐藏文件)、-d(仅显示目录)。

典型场景

  • 快速了解项目结构:新接手一个项目时,生成目录树能快速建立整体认知。
  • 生成文档配图:在README等文档中嵌入目录树,让结构一目了然。

4. ncdu:交互式磁盘空间分析器

df看挂载点整体使用率,du看具体目录大小,但du -sh *一层层找大文件还是太慢。ncdu(NCurses Disk Usage)提供了交互式界面,让你可以像在文件管理器中一样浏览并分析各目录占用的空间。

核心用法
分析根目录的磁盘使用情况:

sudo ncdu /

分析完成后,会进入一个交互界面,使用方向键导航,按d删除选中的文件/目录(谨慎使用)。

典型场景

  • 快速定位和清理磁盘空间:当磁盘告急时,快速找出是哪个目录下的哪些大文件占据了空间。

5. tmux:终端会话管理器

通过SSH连接到服务器工作,最怕网络波动导致连接断开,正在运行的命令也随之终止。tmux可以将会话(session)与窗口(window)解耦,让任务在后台安全运行。

核心用法

  • 新建一个名为mysession的会话:
    tmux new -s mysession
  • 从当前终端暂时分离这个会话(会话在后台继续运行):
    Ctrl+b,然后按 d
  • 重新连接到mysession会话:
    tmux attach -t mysession

典型场景

  • 持久化远程工作:在服务器上运行一个耗时很长的任务,即使断开SSH连接也不受影响。
  • 多任务并行:在一个终端连接中,通过分割窗口(pane)同时进行多项操作。

6. rsync:高效的远程文件同步工具

虽然scp简单易用,但在同步大量文件或需要增量备份时,rsync才是更专业的选择。它通过差异算法,只传输发生变化的部分,并支持断点续传。

核心用法
将本地目录同步到远程服务器(保持属性,归档模式,启用压缩):

rsync -avz /local/path/ user@remote_host:/remote/path/

注意源路径后的斜杠/含义不同,加斜杠表示同步目录内的内容,不加则表示同步目录本身。

典型场景

  • 定期备份数据:结合cron定时任务,实现增量备份。
  • 部署代码或静态文件:比直接scp传输更高效、更安全。

7. fzf:模糊查找命令

记不住长长的历史命令?想快速从一堆文件中找到目标?fzf是一个通用的命令行模糊查找器,它能与很多其他命令结合,提供交互式的筛选体验。

核心用法

  • 搜索命令历史:按 Ctrl+R,然后输入关键字进行模糊搜索。
  • 交互式查找文件
    find . -type f | fzf

    管道符|find的结果交给fzffzf会提供一个交互界面让你筛选,选中后按回车,文件路径就会输出到命令行。

典型场景

  • 快速执行历史命令:比一直按上箭头高效得多。
  • 从复杂目录中定位文件:无需记住完整路径。

8. duf:更美观的磁盘状态查看工具

df -h的输出格式对于快速获取信息来说还不够友好。duf(Disk Usage/Free Utility)用清晰的表格和彩色高亮,展示了磁盘使用率、挂载点等关键信息,视觉效果和可读性都更佳。

核心用法
直接运行:

duf

它还支持按特定字段排序(如duf --sort size)和只显示特定设备。

典型场景

  • 一眼掌握系统存储状况:快速检查所有磁盘和分区剩余空间,排查存储瓶颈。

9. xargs:参数传递大师

很多命令(如rmcp)不支持直接从标准输入(stdin)接收参数列表。xargs的作用就是将管道|传来的数据流,转换成其后命令所需的命令行参数。

核心用法
安全地批量删除所有.log文件(-print0-0选项用于处理含空格等特殊字符的文件名):

find . -name "*.log" -print0 | xargs -0 rm -f

这个组合中,find找到文件列表,xargs将这些文件名逐一传递给rm -f执行删除。

典型场景

  • 批量处理文件:对findgrep等命令筛选出的文件集进行统一操作(如压缩、删除、更改权限)。
  • 批量操作进程:例如,用ps查找并终止一批进程。

10. tcpdump:命令行网络抓包专家

在服务器上进行网络问题排查时,Wireshark的图形界面往往不可用。tcpdump就是命令行下的抓包王者,功能强大,是分析网络流量的必备工具。

核心用法
抓取eth0网卡上端口为8080的流量,并保存到pack.pcap文件以便后续分析:

sudo tcpdump -i eth0 port 8080 -w pack.pcap

不加-w选项则会直接将抓取到的数据包信息输出到终端。

典型场景

  • 服务器端API调用分析:检查应用是否收到了预期的请求,以及请求的具体内容。
  • 诊断网络连通性与延迟问题:分析TCP握手、丢包、重传等情况。

掌握这些命令,无疑能为你的Linux工具箱增添几件“趁手兵器”。技术的价值在于解决实际问题,如果你在实践中有其他好用的小众工具,也欢迎在云栈社区与大家分享交流。持续探索和分享,正是开发者社区的魅力所在。




上一篇:我见过的职场双标:领导让你谈格局,自己却在年终奖上斤斤计较
下一篇:ESP8266双路压力监测器:用ESPHome实现灌溉系统差压诊断与预警
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-9 20:13 , Processed in 0.400983 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表