為什麼 /bin 在路徑中?

為什麼 /bin 在路徑中?

既然幾乎所有現代主流 Linux 和 Unix 都具有 的/bin符號鏈接/usr/bin,為什麼默認情況下PATHcontains/usr/bin後面跟著/bin?如果我PATH透過移除來清理我的東西,會破壞任何東西嗎/bin?我認為它默認存在是出於某種兼容性原因,但我想不出是什麼。

答案1

正如你所提到的。 /bin 資料夾是大多數系統上整個系統使用者可執行檔所在的位置。但隨著時間的推移,/垃圾桶,/sbin和類似的,已移至/usr子資料夾。現在大多數系統都會建立連結 /bin -> /usr/bin 這是以防萬一,如果有人可能運行較舊的 shell 版本、用戶腳本或程式中的簡單硬編碼路徑 - 所有這些都期望能夠正常工作,即使它們已經 10 年或更長時間沒有更新了:)

至於您是否應該將其從 $PATH 中刪除的問題:如果您使用的是普通使用者帳戶(而不是 fe root)並且您是當然你不會運行任何需要的程序/垃圾桶- 你能行的。您面臨的主要問題是,如果您保留它,真的會打擾您嗎?

答案2

在遠古時代,當大的磁碟有幾個 MiB,Unix 系統有自己的執行檔/函式庫,/bin等等/lib。使用者要求額外的設施,這些設施不需要啟動機器,因此被放置在磁碟上供使用者使用,也許是一種便宜、緩慢但較大的設施/usr。後來磁碟達到了 GiB 範圍,機器變得個人化(我自己的計算機,而不是大學/部門的計算機)開始只有一個磁碟,它被細分(分區)為一個小的/和一個(較大的)/usr;如果任何意外損壞了磁碟(或其上的資料),則更有可能/倖存下來(或帶有其內容的小型「救援」磁碟)並可用於修復系統。如今,區分「系統必備」和「最好有」二進位檔案已經沒有什麼意義了(現在您可以將大多數 Linux 發行版的完整安裝儲存在隨身碟上)。如果今天設計檔案系統佈局,可能/usr根本沒有。

相關內容