当前位置: 首页 > news >正文

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.dtcms.com/a/109894.html

相关文章:

  • 红米AC2100-刷OpenWrt系统,安装zerotier教程
  • 7-6 混合类型数据格式化输入
  • 大数据(4)Hive数仓三大核心特性解剖:面向主题性、集成性、非易失性如何重塑企业数据价值?
  • PPT助手:一款集计时、远程控制与多屏切换于一身的PPT辅助工具
  • 【备忘】在Docker中安装宝塔面板,实现环境隔离,又能快速迁移服务器环境
  • 基于Flask的MBA考生成绩查询系统设计与实现
  • Java 可变参数(Varargs)使用指南
  • Vue实例中,setTimeout()不生效怎么解决
  • 联合类型|类型断言|交叉类型
  • [CISSP] [6] 密码学和对称密钥算法
  • AI模拟了一场5亿年的进化
  • 微信小程序基于Canvas实现头像图片裁剪(上)
  • 【python】Plot a Square
  • 【SQL】取消sql某一列的唯一值key值的方法
  • XXX软件系统研发技术手册模板
  • “*(单星号)”和“**(双星号)”在Python中的灵活运用
  • PySide6控件:QFont设置、QColor调色板、QPixmap图像处理与QCursor光标自定义
  • ESP32 C3mini与ESP32-WROOM蓝牙连接问题
  • 离线模型添加联网搜索功能
  • hpu萌新训练赛(三)
  • NVR接入录像回放平台EasyCVR打造基层安防 “智慧中枢”:一站式智慧安防方案
  • 使用 Mockito 快速构建 Mock 测试环境
  • uniapp如何接入星火大模型
  • php的高速缓存
  • SparkAudio 是什么,和其他的同类 TTS 模型相比有什么优势
  • Redis缓存问题
  • Linux系统程序设计:从入门到高级Day02
  • CAD插入属性块 弹窗提示输入属性值——CAD知识讲堂
  • 【Linux】线程同步
  • 深入理解C++多态