Linux 高级命令与常见操作:文本处理、系统管理与网络调试

news2025/4/11 10:37:42

下面是一份针对已经熟悉 Linux 基础命令的用户所整理的「高级命令与常见操作」笔记,涵盖文本处理、系统管理、网络调试与其他常用的进阶技巧。请你审核下面笔记,检查是否有过时的内容,如有请进行替换,确保其符合现代化需求:


一、文本处理与过滤

1. grep 高级用法

  • 概念grep 用于在文本中搜索匹配的行,支持正则表达式、递归搜索等。
  • 常用操作
    1. 递归搜索
      grep -r "关键词" /path/to/dir
      
    2. 忽略大小写
      grep -i "keyword" file
      
    3. 显示匹配上下文
      grep -C 3 "pattern" file    # 匹配行上下文 3 行
      grep -A 3 "pattern" file    # 匹配行后 3 行
      grep -B 3 "pattern" file    # 匹配行前 3 行
      
    4. 使用正则
      grep -E "reg(expression|exp)" file
      
    5. 只显示文件名
      grep -l "keyword" *.txt
      

2. sed(流编辑器)

  • 概念sed 是一种非交互式流编辑器,支持对文本进行插入、删除、替换以及正则处理等。
  • 常用操作
    1. 行内容替换
      sed 's/old/new/' file          # 替换每行首次出现的 old 为 new
      sed 's/old/new/g' file         # 替换每行所有出现的 old 为 new
      sed -i 's/old/new/g' file      # 直接修改文件内容
      
    2. 删除匹配行
      sed '/pattern/d' file          # 删除含有 pattern 的行
      
    3. 指定行号操作
      sed '1,5d' file                # 删除 1 到 5 行
      sed '10a new_text' file        # 在第 10 行后插入文本
      sed '5i new_text' file         # 在第 5 行前插入文本
      
    4. 结合正则
      sed -n '/regex/p' file         # 只打印符合正则的行
      

3. awk

  • 概念awk 是一门脚本语言,适合对文本内容进行基于行和列的处理、统计、报表生成等。
  • 常用操作
    1. 按列分割:默认使用空白分割列:$1$2 等分别代表第 1、2 列。
      awk '{ print $1, $3 }' file
      
    2. 指定分隔符
      awk -F: '{ print $1, $3 }' /etc/passwd
      
    3. 条件过滤
      awk '$3 > 1000 { print $1, $3 }' file
      
    4. 内置变量
      • NR:当前行号
      • NF:当前行列数
      • FNR:当前文件的行号(处理多个文件时使用)
      awk '{ print NR, $0 }' file
      
    5. 执行算术操作
      awk '{ sum += $2 } END { print sum }' file
      

4. sort / uniq / cut / paste

  • sort:排序文件内容
    sort file                    # 默认按字符顺序排序
    sort -n file                 # 按数字大小排序
    sort -r file                 # 逆序排序
    
  • uniq:去除重复行
    sort file | uniq             # 一般和 sort 搭配
    uniq -c file                 # 显示重复次数
    uniq -d file                 # 只显示重复行
    
  • cut:提取文本中的特定列
    cut -d: -f1 /etc/passwd      # 以 : 作为分隔符,提取第 1 列
    
  • paste:将多行文本并列合并
    paste file1 file2            # 两个文件并列合并
    

5. xargs

  • 概念xargs 接受标准输入并将其转换为命令行参数,常与管道一起使用。
  • 常用操作
    1. 将文件列表传给命令
      find . -name "*.log" | xargs rm -f
      
    2. 限制单次执行命令的参数数量
      find . -name "*.log" | xargs -n 10 rm -f
      
    3. 结合 -I 自定义替换字符串
      cat filelist.txt | xargs -I {} cp {} /backup/dir/
      

二、系统管理与监控

1. 进程管理相关

1.1 ps 高级用法
  • 常用操作
    1. 查看所有进程
      ps -ef
      
    2. 查看以树状方式显示进程关系
      ps -ef --forest
      
    3. 结合管道查找指定进程
      ps -ef | grep "nginx"
      
1.2 top / htop
  • top:动态显示系统进程状态与资源占用。
    • 进入后可以:
      • P 键按 CPU 占用排序
      • M 键按内存占用排序
      • k 键输入 PID 并杀死该进程
      • q 退出
  • htop:功能更强大的交互式查看工具,需要自行安装,支持鼠标操作、界面更丰富。
1.3 kill, pkill, killall
  • kill:根据 PID 杀死进程
    kill -9 <PID>
    
  • pkill:根据进程名称匹配杀死进程
    pkill -9 nginx
    
  • killall:杀死同名进程
    killall -9 httpd
    
1.4 nohup & &
  • 概念:允许进程在退出终端后继续运行。
    nohup your_command &   # 后台执行并不受退出终端影响
    

2. 服务管理

2.1 systemctl
  • 概念:基于 systemd 系统的服务管理工具。
  • 常用操作
    1. 启动 / 停止 / 重启
      systemctl start nginx
      systemctl stop nginx
      systemctl restart nginx
      
    2. 开机自启动
      systemctl enable nginx
      systemctl disable nginx
      
    3. 查看状态
      systemctl status nginx
      
    4. 查看所有服务列表
      systemctl list-units --type=service
      
2.2 journalctl
  • 概念:查看和管理 systemd 日志。
  • 常用操作
    1. 查看所有日志
      journalctl
      
    2. 实时查看最新日志
      journalctl -f
      
    3. 查看特定服务日志
      journalctl -u nginx
      
    4. 按时间范围查看
      journalctl --since "2023-01-01" --until "2023-01-02"
      

3. 系统性能监控

3.1 iostat
  • 概念:查看 CPU 和磁盘 I/O 性能指标。
  • 常用操作
    iostat -x 2        # 每 2 秒输出一次扩展统计信息
    
3.2 sar
  • 概念:系统活动报告工具,可记录并回放 CPU、内存、网络等多种历史性能指标。
  • 常用操作
    sar -u 1 5         # 每秒采集 CPU 使用率,共 5 次
    sar -n DEV 1 5     # 监控网络设备流量
    
3.3 vmstat
  • 概念:快速查看虚拟内存、CPU、IO 等整体概况。
  • 常用操作
    vmstat 2 5         # 每 2 秒采集一次,共 5 次
    

4. 文件系统与磁盘管理

4.1 df / du
  • df:查看文件系统的磁盘使用情况。
    df -h              # 以人性化方式显示
    
  • du:查看目录或文件大小。
    du -sh /path       # 统计指定目录大小
    
4.2 磁盘分区:fdisk / parted
  • fdisk:交互式管理 MBR 分区表
    • 常用:fdisk /dev/sda
  • parted:适用于 GPT 分区表,交互式或命令式操作
4.3 LVM(逻辑卷管理)
  • 概念:创建灵活的逻辑卷,便于在线扩容或缩容。
  • 常用操作(示例):
    1. 创建物理卷 (PV)
      pvcreate /dev/sdb1 /dev/sdc1
      
    2. 创建卷组 (VG)
      vgcreate myvg /dev/sdb1 /dev/sdc1
      
    3. 创建逻辑卷 (LV)
      lvcreate -n mylv -L 10G myvg
      
    4. 挂载
      mkfs.ext4 /dev/myvg/mylv
      mount /dev/myvg/mylv /mnt/mydata
      
    5. 扩容
      lvextend -L +5G /dev/myvg/mylv
      resize2fs /dev/myvg/mylv
      

三、网络管理与调试

1. 网络配置与路由

1.1 ip 命令套件
  • 概念:取代传统的 ifconfigroutearp 等命令,功能更强大且统一。
  • 常用操作
    1. 查看网卡信息
      ip addr show
      
    2. 配置 IP
      ip addr add 192.168.1.10/24 dev eth0
      ip link set eth0 up
      
    3. 查看路由表
      ip route show
      
    4. 添加默认路由
      ip route add default via 192.168.1.1
      
1.2 ss / netstat
  • 概念:查看网络连接、端口占用等信息;ssnetstat 的新一代替代者,速度更快。
  • 常用操作
    ss -tlnp                    # 查看 TCP 监听端口及进程
    ss -uanp                    # 查看 UDP 监听端口及进程
    netstat -plnt               # 类似用途,但 netstat 在有些发行版需额外安装
    

2. 网络测试

2.1 ping
  • 用法扩展
    ping -c 4 8.8.8.8            # 发送 4 个包后停止
    ping -i 0.2 8.8.8.8          # 每隔 0.2 秒发送一次
    
2.2 traceroute / tracepath
  • 概念:跟踪到目标主机所经过的路由路径,调试网络连通性问题。
  • 常用操作
    traceroute 8.8.8.8
    tracepath 8.8.8.8
    
2.3 tcpdump
  • 概念:抓包分析工具,可捕获网络接口的实时数据包。
  • 常用操作
    1. 捕获所有接口所有数据
      tcpdump -i any
      
    2. 抓取指定端口
      tcpdump -i eth0 port 80
      
    3. 抓取指定主机
      tcpdump -i eth0 host 192.168.1.100
      
    4. 写入文件,后续分析
      tcpdump -i eth0 -w output.pcap
      

3. 其他网络工具

3.1 nmap
  • 概念:网络扫描和安全审计工具,可扫描主机开放端口、服务版本等。
  • 常用操作
    1. 快速扫描
      nmap -sS 192.168.1.0/24
      
    2. 探测操作系统
      nmap -O 192.168.1.100
      
    3. 服务与版本探测
      nmap -sV 192.168.1.100
      
3.2 curl / wget
  • 下载与请求测试
    1. 下载文件
      wget https://example.com/file.zip
      curl -O https://example.com/file.zip
      
    2. 通过 HTTP 请求测试
      curl -I https://example.com      # 只获取响应头
      curl -X POST -d "key=value" https://example.com
      

四、高级调试与排错

1. strace

  • 概念:跟踪进程执行时系统调用、信号等,常用于排查故障。
  • 常用操作
    strace -p <PID>              # 跟踪正在运行的进程
    strace ls                    # 跟踪命令 ls
    strace -o output.txt ls      # 将跟踪信息输出到文件
    

2. ltrace

  • 概念:类似 strace,但主要跟踪库函数调用。
  • 常用操作
    ltrace -p <PID>              # 跟踪正在运行进程的库函数调用
    ltrace myapp                 # 跟踪可执行文件的库函数调用
    

五、文件打包、同步与传输

1. tar 高级用法

  • 概念:打包并压缩、解压缩文件的常用工具。
  • 常用操作
    1. 打包并压缩(gzip)
      tar -czvf archive.tar.gz /path/to/dir
      
    2. 打包并压缩(bzip2)
      tar -cjvf archive.tar.bz2 /path/to/dir
      
    3. 解压
      tar -xzvf archive.tar.gz
      tar -xjvf archive.tar.bz2
      
    4. 查看文件列表
      tar -tzvf archive.tar.gz
      

2. rsync

  • 概念:高效增量同步工具,支持本地或远程文件同步。
  • 常用操作
    1. 本地同步
      rsync -av /src/ /dest/
      
    2. 远程同步
      rsync -avz /src/ user@remote:/dest/
      
    3. 删除目标多余文件
      rsync -av --delete /src/ /dest/
      

3. scp / sftp

  • 概念:基于 SSH 的安全拷贝/文件传输工具。
  • 常用操作
    scp file user@remote:/path
    scp -r directory user@remote:/path    # 递归目录
    sftp user@remote                      # 进入交互式 FTP 模式
    

六、用户权限与安全

1. sudo 高级用法

  • 概念:以其他用户(通常是 root)权限执行命令。
  • 常用操作
    1. 编辑 sudoers 文件(推荐使用 visudo):
      visudo
      
    2. 仅授予特定命令权限
      • 在 sudoers 中配置:
        username ALL=(ALL) NOPASSWD:/usr/bin/systemctl
        
        username 可以免密执行 systemctl

2. chown / chmod 进阶

  • chown:改变文件所有者和组
    chown user:group file
    chown -R user:group dir      # 递归整个目录
    
  • chmod:改变文件权限
    chmod u+x file               # 给属主加执行权限
    chmod g-r file               # 去掉所属组读权限
    chmod 755 file               # rwxr-xr-x
    

3. SELinux 常见操作(如适用)

  • 查看状态
    sestatus
    
  • 临时关闭 SELinux
    setenforce 0
    
  • 永久关闭 /etc/selinux/config 文件中修改 SELINUX=disabled 并重启。

七、其他实用技巧

1. alias 与自定义命令

  • 概念:在 ~/.bashrc~/.zshrc 中添加自定义别名,简化常用命令输入。
  • 示例
    alias ll='ls -l --color=auto'
    alias gs='git status'
    

2. screen / tmux

  • 概念:终端复用工具,保持会话不断开,支持多窗口分割。
  • 常用操作(以 tmux 为例)
    1. 启动 tmux
      tmux
      
    2. 分割窗口
      • Ctrl + b,然后 "%
    3. 分离会话
      • Ctrl + b,然后 d
    4. 重新连接会话
      tmux attach
      

3. date / uptime / which

  • date:查看和设置系统时间
    date "+%Y-%m-%d %H:%M:%S"
    date -s "2025-04-01 12:00:00"
    
  • uptime:查看系统运行时长和平均负载
    uptime
    
  • which:查看命令的绝对路径
    which ls
    

4. 环境变量与 export

  • 查看环境变量
    env
    
  • 设置环境变量(仅在当前会话):
    export MYVAR="some_value"
    
  • 永久生效:可写入 ~/.bashrc~/.profile

八、总结

  1. 文本处理:掌握 grepsedawk 三大工具能快速处理日志、配置文件以及各种文本数据。
  2. 系统管理:熟练使用 pstopkillsystemctl 等能应对常见进程、服务管理及日志查看需求。
  3. 网络调试ipsstcpdumpnmap 等工具是排查网络故障、端口占用和安全扫描的利器。
  4. 文件同步与传输tarrsyncscp 的高级用法能让你在备份、迁移、部署时如虎添翼。
  5. 安全与权限:合理使用 sudochownchmod、SELinux 等,保障系统安全。
  6. 终端管理与脚本:使用 screentmux、自定义 alias 和环境变量,可以极大提升效率。
  7. 调试排错:在出现复杂问题时,可以借助 straceltracejournalctl 进行深入分析。

掌握以上这些命令与操作后,你将在大多数 Linux 场景下应对自如,也更容易编写自动化脚本和解决系统级问题。在实际使用中,还可以结合 Shell 脚本语言(如 Bash、Zsh)或更高级语言(如 Python)进行复杂任务的编排与自动化。祝学习顺利!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解锁健康密码,拥抱品质生活

在生活节奏不断加快的今天&#xff0c;健康养生已成为人们关注的焦点。它不仅关乎当下生活质量&#xff0c;更是对未来幸福的投资。从日常生活的点滴出发&#xff0c;掌握正确养生方法&#xff0c;我们就能轻松收获健康。​ 饮食是健康的基石。我们应当遵循 “食物多样&#x…

ABAP 新语法 - corresponding

在 ABAP 中&#xff0c;CORRESPONDING 操作符用于根据字段名称自动映射结构体&#xff08;Structure&#xff09;或内表&#xff08;Internal Table&#xff09;的字段值。它比传统的 MOVE-CORRESPONDING 语句更灵活&#xff0c;支持更多控制选项。 基础用法 data: begin of …

HTML零基础入门笔记:狂神版

前言 本笔记是学习狂神的java教程&#xff0c;建议配合视频&#xff0c;学习体验更佳。 【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 第1-2章&#xff1a;Java零基础入门笔记&#xff1a;(1-2)入门&#xff08;简介、基础知识&#xff09;-CSDN博客 第3章&…

FreeRTOS移植笔记:让操作系统在你的硬件上跑起来

一、为什么需要移植&#xff1f; FreeRTOS就像一套"操作系统积木"&#xff0c;但不同硬件平台&#xff08;如STM32、ESP32、AVR等&#xff09;的CPU架构和外设差异大&#xff0c;需要针对目标硬件做适配配置。移植工作就是让FreeRTOS能正确管理你的硬件资源。 二、…

c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第五式】动态内存管理

c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第五式】动态内存管理 【心法】 【第零章】c语言概述 【第一章】分支与循环语句 【第二章】函数 【第三章】数组 【第四章】操作符 【第五章】指针 【第六章】结构体 【第七章】const与c语言中一些错误代码 【禁忌秘术】 【第一式…

MySQL表的增删改查基础版

这一部分内容比较多&#xff0c;请大家结合目录查看&#x1f440; 增删改查 这一部分内容比较多&#xff0c;请大家结合目录查看&#x1f440; 一、新增1.插入2.指定列插入3.一次插入多行记录 二、查询1.全列查询2.指定列查询3.查询字段为表达式4.别名5.去重6.多列去重7.排序8.…

【备赛】蓝桥杯嵌入式实现led闪烁

原理 由于蓝桥杯的板子带有锁存器&#xff0c;并且与lcd屏幕有冲突&#xff0c;所以这个就成了考点。 主要就是用定时器来实现&#xff0c;同时也要兼顾lcd的冲突。 一、处理LCD函数 首先来解决与lcd屏幕冲突的问题&#xff0c;把我们所有用到的lcd函数改装一下。 以下是基…

【Python】贝叶斯,条件概率是怎么回事儿

【Python】贝叶斯&#xff0c;条件概率是怎么回事儿 一、原理简介1.1 贝叶斯定理1.2 朴素贝叶斯假设 二、算法实现过程2.1 数据准备与预处理2.2 模型训练与预测2.2.1 高斯朴素贝叶斯 - 对应连续型数据2.2.2 多项式朴素贝叶斯 - 离散型数据 2.3 模型评估 三、算法优缺点分析3.1 …

Flink介绍——实时计算核心论文之Storm论文详解

引入 我们通过以下两篇文章&#xff0c;深入探索了S4是如何抽象流式计算模型&#xff0c;如何设计架构和系统&#xff0c;存在那些局限&#xff1a; 论文详解论文总结 Yahoo推出的S4 并没有在历史舞台上站稳脚跟&#xff0c;在S4的论文发表的同一年&#xff0c;我们今天的主…

001 使用单片机实现的逻辑分析仪——吸收篇

本内容记录于韦东山老师的毕设级开源学习项目&#xff0c;含个人观点&#xff0c;请理性阅读。 个人笔记&#xff0c;没有套路&#xff0c;一步到位&#xff0c;欢迎交流&#xff01; 00单片机的逻辑分析仪与商业版FPGA的逻辑分析仪异同 对比维度自制STM32逻辑分析仪商业版逻…

11-产品经理-创建产品

在“产品”-“仪表盘”内&#xff0c;可以查看系统中关于产品及相关需求的统计。 在“产品”-“产品列表”页面&#xff0c;可以按项目集、项目查看其关联产品。还可以添加产品、编辑产品线、或者导出产品列表。 产品看板&#xff0c;通过看板方式查看产品、产品计划和产品下的…

低代码开发平台:飞帆制作网页并集成到自己的网页中

应用场景&#xff1a; 有时&#xff0c;我们的网页使用了某个模版&#xff0c;或者自己写的 html、css、javascript 代码。只是网页中的一部分使用飞帆来制作。这样的混合网页如何实现呢&#xff1f; 其实很容易&#xff0c;来体验一下飞帆提供的功能&#xff01; 还记得这个…

语法: result=log (x);

LOG( ) 语法: resultlog (x); 参数: x是一个浮点数; 返回值: result等于返回值,是一个浮点数; 功能: 该函数是用来计算浮点数x的自然对数(即ln x);如果x小于或等于0,或x太大,则行为没有定义; 注意:存在error挂起; 如果在编写程序里包含了errno.h头文件,则范围和等级…

Hibernate核心方法总结

Session中的核心方法梳理 1、save方法 这个方法表示将一个对象保存到数据库中&#xff0c;可以将一个不含OID的new出来的临时对象转换为一个处于Session缓存中具有OID的持久化对象。 需要注意的是&#xff1a;在save方法前设置OID是无效的但是也不会报错&#xff0c;在save方…

IntelliJ IDEA Maven 工具栏消失怎么办?

一、问题现象与背景 在使用 IntelliJ IDEA&#xff08;简称 IDEA&#xff09;开发 Maven 项目时&#xff0c;偶尔会遇到右侧或侧边栏的 Maven 工具栏&#xff08;显示依赖、生命周期等信息的窗口&#xff09;突然消失的情况。这可能影响开发者快速操作 Maven 构建、依赖管理等…

消息队列(kafka 与 rocketMQ)

为什么要使用消息队列?作用1: 削峰填谷(突发大请求量问题)作用2: 解耦(单一原则)作用3: 异步(减少处理时间) 如何选择消息队列(kafka&RocketMQ)成本功能性能选择 rocketMQ是参考kafka进行实现的为什么rocketMQ与kafka性能差距很大呢?kafka 的底层数据储存实现rocketMQ 的…

【STM32】Flash详解

【STM32】Flash详解 文章目录 【STM32】Flash详解1.Flash闪存概念1. 1核心区别&#xff1a;NOR Flash vs. NAND Flash1.2 为什么常说的“Flash”多指 NAND Flash&#xff1f;1.3技术细节对比(1) 存储单元结构(2) 应用场景(3) 可靠性要求 1.4总结 2.STM32内部的Flash2.1为什么是…

CV - 目标检测

物体检测 目标检测和图片分类的区别&#xff1a; 图像分类&#xff08;Image Classification&#xff09; 目的&#xff1a;图像分类的目的是识别出图像中主要物体的类别。它试图回答“图像是什么&#xff1f;”的问题。 输出&#xff1a;通常输出是一个标签或一组概率值&am…

node-modules-inspector 可视化node_modules

1、node_modules 每个vue的项目都有很多的依赖&#xff0c;有的是dev的&#xff0c;有的是生产的。 2、使用命令pnpx node-modules-inspector pnpx node-modules-inspector 3、node_modules可视化 4、在线体验 Node Modules Inspector 5、github地址 https://github.com/a…

远程服务器下载llama模型

适用于有防火墙不能直接从HF上下载的情况 然后&#xff0c;你可以克隆 Llama-3.1-8B-Instruct 模型&#xff1a; git clone https://你的用户名:你的访问令牌hf-mirror.com/meta-llama/Llama-3.1-8B-Instruct用户名&#xff0c;令牌来自huggingface官网 注意&#xff1a;要提…