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.pswp.cn/pingmian/75818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75818.shtml
英文地址,請注明出處:http://en.pswp.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;在項目屬性…