Linux的基本操作

Linux 系統基礎操作完整指南

一、文件與目錄操作

1. 導航與查看

  • pwd (Print Working Directory)

    • 作用:顯示當前所在目錄的完整路徑
    • 示例:pwd → 輸出 /home/user/documents
    • 使用場景:當你在多層目錄中迷失時快速定位當前位置
  • ls (List)

    • 常用選項:
      • -l:長格式顯示(包含權限、所有者、大小等信息)
      • -a:顯示所有文件(包括隱藏文件)
      • -h:人類可讀的文件大小(如KB、MB)
    • 示例:ls -lah /home → 詳細列出/home目錄下所有文件
  • cd (Change Directory)

    • 特殊路徑:
      • cd ~:返回用戶主目錄
      • cd ..:返回上級目錄
      • cd -:返回上次所在的目錄
    • 示例:cd /var/log/nginx → 進入nginx日志目錄
  • tree

    • 安裝:sudo apt install tree (Debian/Ubuntu)
    • 常用選項:
      • -L:限制顯示層級深度
      • -d:只顯示目錄
    • 示例:tree -L 2 /etc → 顯示/etc目錄下兩層結構

2. 文件操作

  • cp (Copy)

    • 常用選項:
      • -r:遞歸復制目錄
      • -i:覆蓋前提示
      • -v:顯示復制進度
    • 示例:cp -riv source_dir/ dest_dir/ → 安全復制目錄
  • mv (Move)

    • 重命名示例:mv old_filename new_filename
    • 移動示例:mv *.jpg /path/to/images/
  • rm (Remove)

    • 危險操作警告:
      • rm -rf / → 系統毀滅性命令(絕對不要嘗試)
      • 建議使用-i選項進行交互式刪除
    • 安全示例:rm -i important_file.txt
  • 文件查看工具對比

    • cat:快速查看小文件內容
    • less:支持上下翻頁查看大文件(推薦)
    • more:基本分頁查看(功能少于less)
    • head/tail:查看文件開頭/結尾部分

3. 文件查找

  • find 高級用法:

    # 查找7天內修改過的.log文件
    find /var/log -name "*.log" -mtime -7# 查找大于10MB的文件
    find / -size +10M# 查找并刪除舊備份文件
    find /backups -name "*.tar.gz" -mtime +30 -delete
    
  • grep 文本搜索:

    # 遞歸搜索目錄中包含"error"的行
    grep -r "error" /var/log/# 顯示匹配行及前后3行內容
    grep -A 3 -B 3 "critical" system.log# 使用正則表達式搜索
    grep -E "[0-9]{3}-[0-9]{4}" contacts.txt
    
  • locate 使用注意:

    • 需要先更新數據庫:sudo updatedb
    • 查找速度快但不實時(適合查找不變的系統文件)

二、權限與用戶管理

1. 權限控制詳解

  • 權限表示法

    • 字母表示:rwx r-x r-x
    • 數字表示:755(對應rwxr-xr-x)
    • 特殊權限:
      • SUID(4):chmod u+s file
      • SGID(2):chmod g+s dir
      • Sticky(1):chmod +t /tmp
  • chmod 實例:

    # 給腳本添加執行權限
    chmod +x backup.sh# 設置目錄權限(目錄通常需要執行權限才能進入)
    chmod 755 public_dir/# 遞歸修改目錄下所有文件權限
    chmod -R 644 /var/www/html/
    
  • chown 高級用法:

    # 同時修改所有者和組
    chown user:group file.txt# 遞歸修改目錄所有權
    chown -R www-data:www-data /var/www/# 只修改組而不改變所有者
    chown :developers project/
    

2. 用戶管理實踐

  • 用戶創建選項

    # 創建用戶并指定主目錄
    sudo useradd -m -d /home/newuser -s /bin/bash newuser# 創建系統用戶(無登錄權限)
    sudo useradd -r -s /usr/sbin/nologin service_user# 設置用戶密碼策略
    sudo passwd -e newuser  # 強制下次登錄修改密碼
    
  • 用戶組管理

    # 創建新組
    sudo groupadd developers# 將用戶添加到附加組
    sudo usermod -aG sudo,developers newuser# 查看用戶所屬組
    groups username
    
  • sudo配置

    • 配置文件:/etc/sudoers(使用visudo命令編輯)
    • 示例配置:
      # 允許用戶無需密碼執行特定命令
      username ALL=(ALL) NOPASSWD: /usr/bin/apt update
      

三、進程管理

1. 進程監控工具

  • ps 輸出解讀:

    • USER:進程所有者
    • PID:進程ID
    • %CPU:CPU使用率
    • %MEM:內存使用率
    • COMMAND:啟動命令
  • top 使用技巧:

    • 交互命令:
      • M:按內存排序
      • P:按CPU排序
      • k:終止進程
      • q:退出
    • 批處理模式:top -b -n 1 > processes.txt
  • htop 增強功能:

    • 鼠標支持
    • 樹狀視圖(F5)
    • 進程搜索(F3)
    • 自定義顯示列(F2)

2. 信號管理

信號編號信號名作用示例
1SIGHUP重新加載配置kill -1 1234
9SIGKILL強制終止(不可捕獲)kill -9 1234
15SIGTERM優雅終止(默認信號)kill 1234
19SIGSTOP暫停進程(不可捕獲)kill -19 1234

四、網絡操作

1. 網絡診斷工具

  • ping 高級用法:

    # 指定次數和間隔
    ping -c 5 -i 2 google.com# 測試MTU大小
    ping -M do -s 1472 example.com
    
  • traceroute 替代方案:

    • mtr:實時路由跟蹤工具
    • tracepath:不需要root權限
  • ss 現代替代netstat:

    # 查看所有TCP連接
    ss -t# 查看監聽端口和進程
    ss -tulnp# 顯示socket統計
    ss -s
    

2. 安全文件傳輸

  • scp 安全復制:

    # 指定端口復制
    scp -P 2222 file.txt user@remote:/path/# 保留文件屬性
    scp -p backup.tar.gz user@backup-server:/backups/
    
  • rsync 高效同步:

    # 增量備份(排除臨時文件)
    rsync -avz --exclude='tmp/' --delete /data/ user@remote:/backups/# 帶寬限制(100KB/s)
    rsync --bwlimit=100 -avz large_file user@remote:/destination/# 遠程到本地恢復
    rsync -avz user@remote:/backups/ /local/restore/
    

五、系統管理

1. 磁盤管理進階

  • df 實用選項:

    # 顯示inode使用情況
    df -i# 只顯示特定文件系統類型
    df -t ext4
    
  • du 深度分析:

    # 找出最大的10個目錄
    du -h / | sort -rh | head -n 10# 排除特定目錄
    du -h --exclude=".cache" /home/user
    

2. systemd 服務管理

  • 服務狀態檢查

    # 詳細服務狀態
    systemctl status nginx --no-pager# 驗證服務是否啟用
    systemctl is-enabled nginx# 列出所有失敗的服務
    systemctl --failed
    
  • journalctl 日志查詢:

    # 跟蹤最新日志
    journalctl -f -u nginx# 按時間范圍查詢
    journalctl -u mysql --since "2023-01-01" --until "2023-01-02"# 顯示內核日志
    journalctl -k
    

六、實用技巧進階

1. 高效命令行

  • 歷史命令

    # 搜索歷史命令
    history | grep "apt install"# 快速執行歷史命令
    !123        # 執行第123條歷史命令
    !ssh        # 執行最近的ssh開頭的命令
    
  • 命令組合

    # 統計當前目錄文件數
    ls | wc -l# 查找并替換多個文件內容
    grep -rl "oldtext" . | xargs sed -i 's/oldtext/newtext/g'
    

2. 環境變量管理

  • 持久化配置

    • 用戶級:~/.bashrc~/.bash_profile
    • 系統級:/etc/environment/etc/profile.d/
  • PATH管理示例

    # 添加多個路徑
    export PATH=$PATH:/new/path1:/new/path2# 永久添加到bashrc
    echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc
    source ~/.bashrc
    

七、學習路徑建議

1. 漸進式學習

  1. 基礎階段

    • 每天掌握5個常用命令
    • 在虛擬機中練習文件操作
    • 記錄常用命令到備忘單
  2. 中級階段

    • 學習shell腳本基礎
    • 理解管道和重定向
    • 配置簡單的cron任務
  3. 高級階段

    • 編寫復雜shell腳本
    • 學習sed/awk文本處理
    • 理解系統啟動過程

2. 推薦資源

  • 在線學習

    • Linux Journey (https://linuxjourney.com/)
    • OverTheWire Bandit (實戰游戲)
  • 書籍推薦

    • 《Linux命令行與shell腳本編程大全》
    • 《鳥哥的Linux私房菜》
  • 社區支持

    • Stack Overflow
    • Linux中國論壇
    • 官方文檔和man pages

Linux 系統基礎操作完整指南

一、文件與目錄操作

1. 導航與查看

  • pwd (Print Working Directory)

    • 作用:顯示當前所在目錄的完整路徑
    • 示例:pwd → 輸出 /home/user/documents
    • 使用場景:當你在多層目錄中迷失時快速定位當前位置
  • ls (List)

    • 常用選項:
      • -l:長格式顯示(包含權限、所有者、大小等信息)
      • -a:顯示所有文件(包括隱藏文件)
      • -h:人類可讀的文件大小(如KB、MB)
    • 示例:ls -lah /home → 詳細列出/home目錄下所有文件
  • cd (Change Directory)

    • 特殊路徑:
      • cd ~:返回用戶主目錄
      • cd ..:返回上級目錄
      • cd -:返回上次所在的目錄
    • 示例:cd /var/log/nginx → 進入nginx日志目錄
  • tree

    • 安裝:sudo apt install tree (Debian/Ubuntu)
    • 常用選項:
      • -L:限制顯示層級深度
      • -d:只顯示目錄
    • 示例:tree -L 2 /etc → 顯示/etc目錄下兩層結構

2. 文件操作

  • cp (Copy)

    • 常用選項:
      • -r:遞歸復制目錄
      • -i:覆蓋前提示
      • -v:顯示復制進度
    • 示例:cp -riv source_dir/ dest_dir/ → 安全復制目錄
  • mv (Move)

    • 重命名示例:mv old_filename new_filename
    • 移動示例:mv *.jpg /path/to/images/
  • rm (Remove)

    • 危險操作警告:
      • rm -rf / → 系統毀滅性命令(絕對不要嘗試)
      • 建議使用-i選項進行交互式刪除
    • 安全示例:rm -i important_file.txt
  • 文件查看工具對比

    • cat:快速查看小文件內容
    • less:支持上下翻頁查看大文件(推薦)
    • more:基本分頁查看(功能少于less)
    • head/tail:查看文件開頭/結尾部分

3. 文件查找

  • find 高級用法:

    # 查找7天內修改過的.log文件
    find /var/log -name "*.log" -mtime -7# 查找大于10MB的文件
    find / -size +10M# 查找并刪除舊備份文件
    find /backups -name "*.tar.gz" -mtime +30 -delete
    
  • grep 文本搜索:

    # 遞歸搜索目錄中包含"error"的行
    grep -r "error" /var/log/# 顯示匹配行及前后3行內容
    grep -A 3 -B 3 "critical" system.log# 使用正則表達式搜索
    grep -E "[0-9]{3}-[0-9]{4}" contacts.txt
    
  • locate 使用注意:

    • 需要先更新數據庫:sudo updatedb
    • 查找速度快但不實時(適合查找不變的系統文件)

二、權限與用戶管理

1. 權限控制詳解

  • 權限表示法

    • 字母表示:rwx r-x r-x
    • 數字表示:755(對應rwxr-xr-x)
    • 特殊權限:
      • SUID(4):chmod u+s file
      • SGID(2):chmod g+s dir
      • Sticky(1):chmod +t /tmp
  • chmod 實例:

    # 給腳本添加執行權限
    chmod +x backup.sh# 設置目錄權限(目錄通常需要執行權限才能進入)
    chmod 755 public_dir/# 遞歸修改目錄下所有文件權限
    chmod -R 644 /var/www/html/
    
  • chown 高級用法:

    # 同時修改所有者和組
    chown user:group file.txt# 遞歸修改目錄所有權
    chown -R www-data:www-data /var/www/# 只修改組而不改變所有者
    chown :developers project/
    

2. 用戶管理實踐

  • 用戶創建選項

    # 創建用戶并指定主目錄
    sudo useradd -m -d /home/newuser -s /bin/bash newuser# 創建系統用戶(無登錄權限)
    sudo useradd -r -s /usr/sbin/nologin service_user# 設置用戶密碼策略
    sudo passwd -e newuser  # 強制下次登錄修改密碼
    
  • 用戶組管理

    # 創建新組
    sudo groupadd developers# 將用戶添加到附加組
    sudo usermod -aG sudo,developers newuser# 查看用戶所屬組
    groups username
    
  • sudo配置

    • 配置文件:/etc/sudoers(使用visudo命令編輯)
    • 示例配置:
      # 允許用戶無需密碼執行特定命令
      username ALL=(ALL) NOPASSWD: /usr/bin/apt update
      

三、進程管理

1. 進程監控工具

  • ps 輸出解讀:

    • USER:進程所有者
    • PID:進程ID
    • %CPU:CPU使用率
    • %MEM:內存使用率
    • COMMAND:啟動命令
  • top 使用技巧:

    • 交互命令:
      • M:按內存排序
      • P:按CPU排序
      • k:終止進程
      • q:退出
    • 批處理模式:top -b -n 1 > processes.txt
  • htop 增強功能:

    • 鼠標支持
    • 樹狀視圖(F5)
    • 進程搜索(F3)
    • 自定義顯示列(F2)

2. 信號管理

信號編號信號名作用示例
1SIGHUP重新加載配置kill -1 1234
9SIGKILL強制終止(不可捕獲)kill -9 1234
15SIGTERM優雅終止(默認信號)kill 1234
19SIGSTOP暫停進程(不可捕獲)kill -19 1234

四、網絡操作

1. 網絡診斷工具

  • ping 高級用法:

    # 指定次數和間隔
    ping -c 5 -i 2 google.com# 測試MTU大小
    ping -M do -s 1472 example.com
    
  • traceroute 替代方案:

    • mtr:實時路由跟蹤工具
    • tracepath:不需要root權限
  • ss 現代替代netstat:

    # 查看所有TCP連接
    ss -t# 查看監聽端口和進程
    ss -tulnp# 顯示socket統計
    ss -s
    

2. 安全文件傳輸

  • scp 安全復制:

    # 指定端口復制
    scp -P 2222 file.txt user@remote:/path/# 保留文件屬性
    scp -p backup.tar.gz user@backup-server:/backups/
    
  • rsync 高效同步:

    # 增量備份(排除臨時文件)
    rsync -avz --exclude='tmp/' --delete /data/ user@remote:/backups/# 帶寬限制(100KB/s)
    rsync --bwlimit=100 -avz large_file user@remote:/destination/# 遠程到本地恢復
    rsync -avz user@remote:/backups/ /local/restore/
    

五、系統管理

1. 磁盤管理進階

  • df 實用選項:

    # 顯示inode使用情況
    df -i# 只顯示特定文件系統類型
    df -t ext4
    
  • du 深度分析:

    # 找出最大的10個目錄
    du -h / | sort -rh | head -n 10# 排除特定目錄
    du -h --exclude=".cache" /home/user
    

2. systemd 服務管理

  • 服務狀態檢查

    # 詳細服務狀態
    systemctl status nginx --no-pager# 驗證服務是否啟用
    systemctl is-enabled nginx# 列出所有失敗的服務
    systemctl --failed
    

  • journalctl 日志查詢:

    # 跟蹤最新日志
    journalctl -f -u nginx# 按時間范圍查詢
    journalctl -u mysql --since "2023-01-01" --until "2023-01-02"# 顯示內核日志
    journalctl -k
    

六、實用技巧進階

1. 高效命令行

  • 歷史命令

    # 搜索歷史命令
    history | grep "apt install"# 快速執行歷史命令
    !123        # 執行第123條歷史命令
    !ssh        # 執行最近的ssh開頭的命令
    
  • 命令組合

    # 統計當前目錄文件數
    ls | wc -l# 查找并替換多個文件內容
    grep -rl "oldtext" . | xargs sed -i 's/oldtext/newtext/g'
    

2. 環境變量管理

  • 持久化配置

    • 用戶級:~/.bashrc~/.bash_profile
    • 系統級:/etc/environment/etc/profile.d/
  • PATH管理示例

    # 添加多個路徑
    export PATH=$PATH:/new/path1:/new/path2# 永久添加到bashrc
    echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc
    source ~/.bashrc
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93658.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

npm設置了鏡像 pnpm還需要設置鏡像嗎

npm配置鏡像后是否需要為pnpm單獨設置鏡像? 是的,即使您已經為npm設置了鏡像源(如淘寶鏡像),仍然需要單獨為pnpm配置鏡像源。這是因為npm和pnpm是兩個獨立的包管理工具,它們的配置系統和環境變量是分離的&a…

Linux管道

預備知識:進程通信進程需要某種協同,協同的前提條件是通信。有些數據是用來通知就緒的,有些是單純的傳輸數據,還有一些是控制相關信息。進程具有獨立性,所以通信的成本可能稍微高一點;進程間通信前提是讓不…

基于Spring Boot的快遞物流倉庫管理系統 商品庫存管理系統

🔥作者:it畢設實戰小研🔥 💖簡介:java、微信小程序、安卓;定制開發,遠程調試 代碼講解,文檔指導,ppt制作💖 精彩專欄推薦訂閱:在下方專欄&#x1…

腳手架開發-Common封裝基礎通用工具類<基礎工具類>

書接上文 java一個腳手架搭建_redission java腳手架-CSDN博客 以微服務為基礎搭建一套腳手架開始前的介紹-CSDN博客 腳手架開發-準備配置-進行數據初始化-配置文件的準備-CSDN博客 腳手架開發-準備配置-配置文件的準備項目的一些中間件-CSDN博客 腳手架開發-Nacos集成-CSD…

軟件系統運維常見問題

系統部署常見問題 環境配置、兼容性問題。生產與測試環境的操作系統、庫版本、中間件版本不一致,運行環境軟件版本不匹配。新舊版本代碼/依賴不兼容。依賴缺失或沖突問題。后端包啟動失敗,提示類/方法/第三方依賴庫找不到或者版本沖突。配置錯誤。系統啟…

2021 IEEE【論文精讀】用GAN讓音頻隱寫術騙過AI檢測器 - 對抗深度學習的音頻信息隱藏

使用GAN生成音頻隱寫術的隱寫載體 本文為個人閱讀GAN音頻隱寫論文,部分內容注解,由于原文篇幅較長這里就不再一一粘貼,僅對原文部分內容做注解,僅供參考詳情參考原文鏈接 原文鏈接:https://ieeexplore.ieee.org/abstra…

PWA技術》》漸進式Web應用 Push API 和 WebSocket 、webworker 、serviceworker

PWA # 可離線 # 高性能 # 無需安裝 # 原生體驗Manifest {"name": "天氣助手", // 應用全名"short_name": "天氣", // 短名稱(主屏幕顯示)"start_url": "/index.html&…

數據結構——棧和隊列oj練習

225. 用隊列實現棧 - 力扣(LeetCode) 這一題需要我們充分理解隊列和棧的特點。 隊列:隊頭出數據,隊尾入數據。 棧:棧頂出數據和入數據。 我們可以用兩個隊列實現棧,在這過程中,我們總要保持其…

Java基礎 8.19

目錄 1.局部內部類的使用 總結 1.局部內部類的使用 說明:局部內部類是定義在外部類的局部位置,比如方法中,并且有類名可以直接訪問外部類的所有成員,包含私有的不能添加訪問修飾符,因為它的地位就是一個局部變量。局…

從父類到子類:C++ 繼承的奇妙旅程(2)

前言:各位代碼航海家,歡迎回到C繼承宇宙!上回我們解鎖了繼承的「基礎裝備包」,成功馴服了public、protected和花式成員隱藏術。但——??前方高能預警: 繼承世界的暗流涌動遠不止于此!今天我們將勇闖三大神…

【圖像算法 - 16】庖丁解牛:基于YOLO12與OpenCV的車輛部件級實例分割實戰(附完整代碼)

庖丁解牛:基于YOLO12與OpenCV的車輛部件級實例分割實戰(附完整代碼) 摘要: 告別“只見整車不見細節”!本文將帶您深入實戰,利用YOLO12-seg訓練實例分割模型,結合OpenCV的強大圖像處理能力&…

ubuntu22.04配置遠程桌面

文章目錄前言檢查桌面類型xorg遠程桌面(xrdp)安裝xrdpxrdp添加到ssl-certwayland遠程桌面(gnome-remote-desktop)檢查安裝開啟開啟狀況檢查自動登錄奇技淫巧前言 在windows上使用遠程桌面服務,連接ubuntu主機的遠程桌面 檢查桌面類型 查看桌面類型、協議 echo $…

SQL Server 中子查詢、臨時表與 CTE 的選擇與對比

在 SQL Server 的實際開發過程中,我們常常需要將復雜的查詢邏輯分解為多個階段進行處理。實現這一目標的常見手段有 子查詢 (Subquery)、臨時表 (Temporary Table) 和 CTE (Common Table Expression)。這三者在語法、執行效率以及可維護性方面各有優勢與局限。如何選…

肖臻《區塊鏈技術與應用》第20-22講 - 以太坊難度調整、權益證明和智能合約

以太坊的“冰河時代”:詳解難度調整算法與“難度炸彈” 摘要: 為了實現遠快于比特幣的十幾秒出塊速度,以太坊必須設計一套更為靈敏和復雜的挖礦難度調整算法。本文基于北京大學肖臻老師的公開課內容,深入剖析了以太坊獨特的逐塊難度調整機制。文章首先解釋了其維持15秒平均…

C++中內存池(Memory Pool)詳解和完整示例

1. 什么是內存池? 內存池(Memory Pool / Pool Allocator) 是一種內存管理機制,提前向系統申請一大塊內存,再在這塊內存里切分、分配和回收。 它相當于在用戶空間建立了一層 “小型堆管理器”,避免頻繁調用系…

測試 Next.js 應用:工具與策略

1. 引言 Next.js 作為一個基于 React 的全棧框架,在構建復雜 Web 應用時,測試是確保代碼質量、功能穩定性和用戶體驗的關鍵步驟。測試可以分為單元測試、集成測試和端到端測試三種類型,每種類型針對不同的層面:單元測試驗證單個組…

IP 分片和組裝的具體過程

IP 分片和組裝的具體過程 在這里插入圖片描述 ? 16 位標識(id): 唯一的標識主機發送的報文. 如果 IP 報文在數據鏈路層被分片了, 那么每一個片里面的這個 id 都是相同的. ? 3 位標志字段: 第一位保留(保留的意思是現在不用, 但是還沒想好說不定以后要用到). 第二位置為 1 表示…

數據倉庫OLTPOLAP維度講解

?博客主頁: https://blog.csdn.net/m0_63815035?typeblog 💗《博客內容》:大數據、Java、測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 📢博客專欄: https://blog.csdn.net/m0_63815035/…

OpenHarmony之編譯配置白名單機制深度解析:構建系統的安全防線

一、白名單機制概述 在OpenHarmony的構建系統中,compile_standard_whitelist.json是一個關鍵的安全驗證機制,它作為編譯過程中的"守門人",確保只有經過驗證的組件和依賴關系才能被納入最終構建產物。這個機制是OpenHarmony構建系統…

backward怎么計算的是torch.tensor(2.0, requires_grad=True)變量的梯度

import torch import torch.nn as nn import torch.optim as optim# 一個參數 w 2 w torch.tensor(2.0, requires_gradTrue) # 預測值 y_pred w * 3 # 6 # 真實值 y_true torch.tensor(10.0) # 損失 (預測 - 真實)^2 loss (y_pred - y_true) ** 2 # (6-10)^2 16loss.b…