【生產實踐】Linux中/usr/bin、/usr/sbin與/usr/local的關系解析(2025年技術規范)

一、核心定位與功能劃分

  1. /usr/bin:用戶級通用命令庫
    ? 定位:存儲系統預裝的用戶級可執行文件,這些命令通常由Linux發行版官方軟件包管理器(如APT、YUM)安裝,屬于系統默認功能的一部分。

    ? 示例命令:lsgrepvimcurl等。

    ? 權限與用途:所有用戶均可執行,涵蓋日常操作工具(如文本處理、網絡工具)。

  2. /usr/sbin:系統管理命令庫
    ? 定位:存放需要管理員權限(root)執行的系統級管理工具,通常與網絡服務、硬件配置相關。

    ? 示例命令:ifconfig(網絡配置)、iptables(防火墻)、useradd(用戶管理)等。

    ? 權限與用途:僅限管理員使用,用于系統維護和服務管理。

  3. /usr/local:用戶自定義軟件區
    ? 定位:獨立于系統包管理器的本地軟件安裝目錄,用于存放用戶手動編譯或第三方安裝的應用程序。

    ? 子目錄結構:

    ? /usr/local/bin:用戶自定義的可執行文件(如自行編譯的Python、Node.js)。

    ? /usr/local/sbin:用戶自定義的系統管理工具(如私有服務的控制腳本)。

    ? /usr/local/lib/usr/local/etc:配套的庫文件和配置文件。

    ? 設計意義:避免系統升級時覆蓋用戶自定義軟件,實現系統與用戶程序的隔離。


二、層級關系與交互邏輯

  1. 層級劃分
    ? 系統核心層:

    ? /bin/sbin:系統啟動和修復必需的基本命令(如shutdownmount),與根文件系統綁定。

    ? 應用擴展層:

    ? /usr/bin/usr/sbin:系統預裝的擴展功能,依賴/usr分區掛載后可用。

    ? 用戶自定義層:

    ? /usr/local:完全獨立于系統包管理,用戶自主管理的軟件生態。

  2. 優先級與路徑解析
    ? 環境變量PATH順序:默認路徑優先級通常為 /usr/local/bin > /usr/bin > /bin,這意味著同名命令優先執行用戶自定義版本(例如用戶安裝的Python 3.12會覆蓋系統自帶的Python 3.9)。

    ? 權限隔離:

    ? /usr/sbin中的命令需sudo權限,而/usr/local/sbin的權限由用戶安裝時決定。


三、典型使用場景對比

目錄適用場景示例操作
/usr/bin用戶日常操作、開發工具、通用軟件(如編輯器、編譯器)執行gcc編譯代碼、使用wget下載文件
/usr/sbin系統級服務管理(如網絡配置、用戶權限控制)配置防火墻規則(iptables)、管理用戶賬戶(useradd
/usr/local安裝非官方倉庫的軟件(如從源碼編譯的Nginx)、企業私有服務部署編譯安裝MySQL 8.0到/usr/local/mysql,并通過/usr/local/bin/mysql啟動服務

四、設計原則與最佳實踐

  1. 隔離性設計
    ? 系統與用戶分離:/usr/bin/usr/sbin由系統維護,用戶應避免直接修改;自定義軟件統一放入/usr/local,確保升級兼容性。

    ? 權限控制:管理員工具集中存放于/usr/sbin,降低誤操作風險。

  2. 維護建議
    ? 避免手動修改系統目錄:修改/usr/bin中的文件可能導致包管理器(如APT)無法追蹤變更。

    ? 使用符號鏈接:若需全局訪問自定義命令,可將/usr/local/bin中的可執行文件鏈接到/usr/bin(需謹慎操作)。

  3. 故障排查
    ? 命令沖突:若自定義命令與系統命令同名,可通過which -a <command>查看所有路徑下的同名文件。

    ? 路徑缺失:若/usr/local/bin未被加入PATH,需在~/.bashrc/etc/profile中添加export PATH="/usr/local/bin:$PATH"


五、Linux系統手動安裝JDK示例

場景:在應用服務器集群中部署JDK 1.8
步驟:

  1. 解壓并標準化路徑:
    sudo tar -xzvf jdk-linux-x64.tar.gz -C `/usr/local  
    
  2. 配置環境變量(/etc/profile):
    export JAVA_HOME=/usr/local/jdk1.8.0_131  
    export PATH=$JAVA_HOME/bin:$PATH  
    
  3. 驗證命令擴展:
    java -version && javac -version  # 雙重驗證編譯與運行環境  
    

注意:此方法適用于老舊系統兼容場景,新項目建議選用JDK 11+。


六、總結
? /usr/bin/usr/sbin:構成系統預裝功能的核心,前者面向普通用戶,后者面向管理員,兩者均受系統包管理器管控。

? /usr/local:作為用戶自定義生態的“安全區”,獨立于系統更新,適合部署私有化服務或非官方軟件版本。

? 協同關系:三者通過路徑優先級和權限隔離,實現系統穩定性與用戶靈活性的平衡,是Linux模塊化設計的典型體現。

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

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

相關文章

智能網聯汽車 “中央計算” 博弈:RTOS 與跨域融合的算力分配挑戰

一、引言 隨著智能駕駛技術的飛速發展&#xff0c;汽車逐漸從傳統的交通工具演變為移動的智能終端。智能網聯汽車的核心競爭力日益體現在其強大的計算能力和高效的算力管理上。汽車電子電氣架構&#xff08;EEA&#xff09;正經歷從分布式架構向 “中央計算 區域控制” 架構的…

【PDF】使用Adobe Acrobat dc添加水印和加密

【PDF】使用Adobe Acrobat dc添加水印和加密 文章目錄 [TOC](文章目錄) 前言一、添加保護加密口令二、添加水印三、實驗四、參考文章總結 實驗工具&#xff1a; 1.Adobe Acrobat dc 前言 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下面案例可供參考 一、添加保護加…

python面試實戰經驗分享

2025/3/28第一面 杭州實在智能 見習python開發工程師 1、Python方法中參數默認值可以是列表或者字典嗎? 在Python中,函數參數的默認值可以是列表或字典,列表或者字典在初始化應在函數體內,如果不正確處理,可能會導致所有調用都共享同一個列表。 2、協程、線性和進程 進程…

MIST:一鍵解鎖 macOS 歷史版本,舊系統安裝不再難!

在 Mac 電腦的使用過程中&#xff0c;你是否遇到過這些困擾&#xff1f;為了運行一款經典設計軟件&#xff0c;新系統卻無法兼容&#xff1b;或是想給老舊 Mac 設備升級&#xff0c;卻找不到適配的系統版本。而 App Store 里&#xff0c;舊版 macOS 安裝包就像 “隱藏副本”&am…

win10 局域網內聊天

在 Windows 10 的局域網 中&#xff0c;如果你想實現 多個用戶之間的聊天功能&#xff0c;可以選擇以下幾種方案&#xff0c;取決于你需要的是&#xff1a; ? ? 命令行純文字聊天&#xff08;如 Linux talk&#xff09; ? ? 圖形界面聊天室 ? ? 局域網廣播消息 ? ? 多人…

Android CountDownTimer重寫

Android 倒計時器重寫&#xff0c;實現可重復使用&#xff0c;動態修改計時時間 CountDownTimerRew 是一個可重寫、動態修改計時時間的 Android 倒計時器類。它允許開發者設置倒計時總時長、間隔時間&#xff0c;并通過 onTick 和 onFinish 方法實現定時回調。該類支持動態修改…

dp自動化登陸之hCaptcha 驗證碼

hCaptcha 是一種常見的驗證碼服務&#xff0c;用于區分人類用戶和自動化程序。由于其基于圖像識別和行為分析&#xff0c;下面介紹如何使用自動化點擊驗證碼完成登陸。 思路&#xff1a;登陸目標網站觸發驗證碼&#xff0c;截圖并發給打碼平臺返回坐標&#xff0c;模擬人工點擊…

【工作記錄】crmeb后端項目打開、運行

1、下載代碼 1&#xff09;安裝git 不再詳述 2&#xff09;git拉代碼 項目地址如下&#xff0c;在vscode-分支中拉代碼 # 克隆項目 git clone https://gitee.com/ZhongBangKeJi/crmeb_java/ 截圖如下是已經成功拉下來 注意安裝對應版本 2、maven配置 安裝配置見&#x…

敏捷軟件開發與Scrum

目錄 一、敏捷軟件開發 敏捷開發原則 敏捷開發特點 二、Scrum (一)Scrum 基礎知識

Three.js模型材質調整與性能優化實戰

一、材質基礎調整 1.1 顏色與透明度控制 通過Material.color屬性可直接修改材質顏色&#xff1a; material.color new THREE.Color(0xff0000); // 紅色結合opacity屬性實現透明效果&#xff1a; material.opacity 0.5; // 50%透明度如需動態調整&#xff0c;可通過Color.…

Flutter速成指南:不懂編程也能10天開發專業級App

Flutter速成指南&#xff1a;不懂編程也能10天開發專業級App &#x1f680; 輕松構建漂亮的跨平臺應用 &#x1f4d1; 目錄 一、Flutter是什么&#xff1f; 為什么選擇Flutter&#xff1f;Flutter工作原理 二、環境搭建與命令行 安裝Flutter SDK常用Flutter命令創建第一個項目…

【面試真題】王者榮耀億級排行榜,如何設計?

目錄 一、數據庫 order by 二、Redis 的zset 三、抗億級數據存在的問題 3.1 熱點 key 問題 3.1.1 多級緩存&#xff08;RedisJVM本地緩存&#xff09; 3.1.2 讀寫分離 從庫負載均衡 3.1.3 分片Key設計 3.2 內存爆炸 3.2.1 縮短鍵名 3.2.2 分片存儲 3.3 數據持久化風…

Java 語法基礎(筆記)

java 的數據類型 基本類型 Java 有八種基本類型&#xff1a; byte&#xff1a;1 字節&#xff0c;-128~127short&#xff1a;2 字節&#xff0c;-32768~32767int&#xff1a;4 字節&#xff0c;-2147483648~2147483647long&#xff1a;8 字節&#xff0c;-92233720368547758…

C# 方法(棧幀)

本章內容: 方法的結構 方法體內部的代碼執行 局部變量 局部常量 控制流 方法調用 返回值 返回語句和void方法 局部函數 參數 值參數 引用參數 引用類型作為值參數和引用參數 輸出參數 參數數組 參數類型總結 方法重載 命名參數 可選參數 棧幀 遞歸 棧幀 至此&#xff0c;我們已…

C# 使用 WinUI 3 項目模板創建桌面應用程序

文章目錄 1. 概述2. 先決條件3. 創建項目步驟4. 項目結構簡介5. 代碼示例5.1. MainWindow.xaml (UI 定義)5.2. MainWindow.xaml.cs (邏輯代碼) 6. 生成和運行應用程序7. 關鍵概念 1. 概述 本示例演示如何使用 Visual Studio 中的 “Blank App, Packaged (WinUI 3 in Desktop)”…

設計模式簡述(十八)享元模式

享元模式 描述基本組件使用 描述 當內存中存在大量類似的對象時&#xff0c;可以考慮使用享元模式減少整體內存占用。 可以將相同的部分和不同的部分進行拆分&#xff0c;以達到多個對象共享相同部分內存的目的。 基本組件 通常享元對象通過共享的屬性映射一個享元對象。 公…

大數據狙擊金融欺詐——技術如何守護交易安全?

大數據狙擊金融欺詐——技術如何守護交易安全? 金融領域一直是欺詐行為的“重災區”,從傳統的信用卡盜刷到精心策劃的網絡詐騙,攻擊者不斷進化手法,使得防御變得越來越復雜。然而,大數據技術的出現,讓金融欺詐檢測從被動防守轉向主動狙擊,通過深度學習、行為分析和實時…

如何通過DNS解析實現負載均衡?

在當今的互聯網時代&#xff0c;隨著網絡應用的飛速發展&#xff0c;網站和各類在線服務面臨著海量的用戶請求。為了保障服務的高可用性和高性能&#xff0c;負載均衡技術應運而生。DNS&#xff08;域名系統&#xff09;負載均衡作為其中一種重要的實現方式&#xff0c;憑借其簡…

MySQL解決主從復制的報錯問題

MySQL 8.4 非 GTID 模式部分數據庫主從復制指南 在進行MySQL 8.4非GTID模式下部分數據庫主從復制時&#xff0c;以下是詳細的操作步驟以及對應的執行位置說明&#xff0c;還有報錯處理方法介紹&#xff1a; 操作步驟 1. 備份主庫指定數據庫&#xff08;db1、db2&#xff09;…

Linux的域名解析服務器

什么是DNS DNS&#xff08;Domain Name System&#xff09;是互聯網上的一項服務&#xff0c;它作為將域名和IP地址相互映射的一個分 布式數據庫&#xff0c;能夠使人更方便的訪問互聯網 DNS使用的是53端口&#xff0c; 通常DNS是以UDP這個較快速的數據傳輸協議來查詢的&…