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

下面是一份针对已经熟悉 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.mzph.cn/pingmian/75818.shtml

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

相关文章

使用MFC ActiveX开发KingScada控件(OCX)

最近有个需求&#xff0c;要在KingScada上面开发一个控件。 原来是用的WinCC&#xff0c;WinCC本身是支持调用.net控件&#xff0c;就是winform控件的&#xff0c;winform控件开发简单&#xff0c;相对功能也更丰富。奈何WinCC不是国产的。 话说KingScada&#xff0c;国产组态软…

QScrollArea 内部滚动条 QSS 样式失效问题及解决方案

在使用 Qt 进行 UI 开发时,我们经常希望通过 QSS(Qt Style Sheets)自定义控件的外观,比如为 QScrollArea 的内部滚动条设置特定的样式。然而,有开发者遇到了这样的问题:在 UI 设计器中预览 QSS 显示效果正常,但程序运行时却显示为系统默认样式。经过反复测试和调试,最终…

使用OpenSceneGraph生成3D数据格式文件

OpenSceneGraph (OSG) 提供了多种方式来生成和导出3D数据格式文件。以下是详细的生成方法和示例代码&#xff1a; 一、基本文件生成方法 1. 使用osgDB::writeNodeFile函数 这是最直接的生成方式&#xff0c;支持多种格式&#xff1a; #include <osgDB/WriteFile>osg:…

JMeter接口性能测试从入门到精通

前言&#xff1a; 本文主要介绍了如何利用jmter进行接口的性能测试 1.在测试计划中添加线程组 1.1.线程组界面中元素含义 如果点击循环次数为永远&#xff1a; 2.添加HTTP取样器 2.1.填写登录接口的各个参数 2.2.在线程组下面增加查看结果树 请求成功的情况&#xff1a; 请求…

C++抽卡模拟器

近日在学校无聊&#xff0c;写了个抽卡模拟器供大家娱乐。 代码实现以下功能&#xff1a;抽卡界面&#xff0c;抽卡判定、动画播放、存档。 1.抽卡界面及判定 技术有限&#xff0c;不可能做的和原神一样精致。代码如下&#xff08;注&#xff1a;这不是完整代码&#xff0c;…

详解相机的内参和外参,以及内外参的标定方法

1 四个坐标系 要想深入搞清楚相机的内参和外参含义&#xff0c; 首先得清楚以下4个坐标系的定义&#xff1a; 世界坐标系&#xff1a; 名字看着很唬人&#xff0c; 其实没什么大不了的&#xff0c; 这个就是你自己定义的某一个坐标系。 比如&#xff0c; 你把房间的某一个点定…

学透Spring Boot — 011. 一篇文章学会Spring Test

系列文章目录 这是学透Spring Boot的第11篇文章。更多系列文章请关注 CSDN postnull 用户的专栏 文章目录 系列文章目录Spring Test的依赖Spring Test的核心功能SpringBootTest 加载Spring上下文依赖注入有问题时Spring配置有问题时 WebMvcTest 测试Web层&#xff08;Controll…

Mysql 数据库编程技术01

一、数据库基础 1.1 认识数据库 为什么学习数据库 瞬时数据&#xff1a;比如内存中的数据&#xff0c;是不能永久保存的。持久化数据&#xff1a;比如持久化至数据库中或者文档中&#xff0c;能够长久保存。 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长…

新一代AI架构实践:数字大脑AI+智能调度MCP+领域执行APP的黄金金字塔体系

新一代AI架构实践&#xff1a;数字大脑智能调度领域执行的黄金金字塔体系 一、架构本质的三层穿透性认知 1.1 核心范式转变&#xff08;CPS理论升级&#xff09; 传统算法架构&#xff1a;数据驱动 → 特征工程 → 模型训练 → 业务应用 新一代AI架构&#xff1a;物理规律建…

macOS可视化桌面配置docker加速器

macOS可视化桌面配置docker加速器 在镜像settings->docker Engine改为国内镜像修改为国内镜像重启docker(可视化界面启动或者使用命令行)使用命令重启可视化界面重启 在镜像settings->docker Engine改为国内镜像 修改为国内镜像 {"registry-mirrors": ["…

Nginx 基础使用(2025)

一、Nginx目录结构 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暂存目录 ├── conf # Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相…

用spring-webmvc包实现AI(Deepseek)事件流(SSE)推送

前后端&#xff1a; Spring Boot Angular spring-webmvc-5.2.2包 代码片段如下&#xff1a; 控制层&#xff1a; GetMapping(value "/realtime/page/ai/sse", produces MediaType.TEXT_EVENT_STREAM_VALUE)ApiOperation(value "获取告警记录进行AI分析…

基于Python的招聘推荐数据可视化分析系统

【Python】基于Python的招聘推荐数据可视化分析系统&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 &#x1f680;&#x1f31f; 基于Python的招聘推荐数据可视化分析系统&#xff01;&#x1…

使用注解开发springMVC

引言 在学习过第一个springMVC项目建造过后&#xff0c;让我们直接进入真实开发中所必需的注解开发&#xff0c; 是何等的简洁高效&#xff01;&#xff01; 注&#xff1a;由于Maven可能存在资源过滤的问题&#xff0c;在maven依赖中加入 <build><resources>&l…

linux专题3-----禁止SSH的密码登录

要在linux系统中禁止密码登录&#xff0c;您可以通过修改 SSH 配置来实现。请按照以下步骤操作(此处以 Ubuntu为例)&#xff1a; 1、SSH 登录到您的服务器&#xff08;或直接在命令行模式下&#xff09;。 2、备份 SSH 配置文件&#xff1a; 在终端中运行以下命令以备份现有的…

基于LangChain和通义(Tongyi)实现NL2SQL的智能检索(无需训练)

在数据驱动的时代,如何高效地从数据库中获取信息成为了一个重要的挑战。自然语言到SQL(NL2SQL)技术提供了一种便捷的解决方案,使用户能够用自然语言查询数据库,而无需深入了解SQL语法。本文将探讨如何利用LangChain和通义(Tongyi)实现NL2SQL的智能检索,具体步骤如下: …

深度学习处理文本(10)

保存自定义层 在编写自定义层时&#xff0c;一定要实现get_config()方法&#xff1a;这样我们可以利用config字典将该层重新实例化&#xff0c;这对保存和加载模型很有用。该方法返回一个Python字典&#xff0c;其中包含用于创建该层的构造函数的参数值。所有Keras层都可以被序…

机器视觉3D中激光偏镜的优点

机器视觉的3D应用中,激光偏镜(如偏振片、波片、偏振分束器等)通过其独特的偏振控制能力,显著提升了系统的测量精度、抗干扰能力和适应性。以下是其核心优点: 1. 提升3D成像精度 抑制环境光干扰:偏振片可滤除非偏振的环境杂光(如日光、室内照明),仅保留激光偏振信号,大…

线程同步的学习与应用

1.多线程并发 1).多线程并发引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } i…

写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?

VB.NET 写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码? 分享 1. 在 VB.NET 中指定运行 Sub Main 在 VB.NET 里&#xff0c;你能够指定 Sub Main 作为程序的入口点。下面为你介绍两种实现方式&#xff1a; 方式一&#xff1a;在项目属性…