Contents

bug永存重點小記 - 為什麼/usr會有bin資料夾

Contents

回想當初,對/usr資料夾不太熟悉
有發現有些/usr/bin跟/bin
但不知道兩者差異
今天讀了bug 永存
備份圖
裡面考古了一堆東西
有解除我心中的疑惑

  1. window不能用aux,com命名,就算有副檔名也不行
    程序員大型考古活動。明白了原來CON, PRN, AUX, NUL, COM1~9, LPT1~9。這些文件名windows都不能命名
    突然想到之前MySQL在window也不能設定table大小寫
    看來應該是系統的缺陷

  2. 為什麼 Linux 會有 /usr 這個文件夾?
    如果有新手問你為什麼,你要很裝逼的告訴他:/usr 下面放的都是不會影響系統正常運行的,而根目錄下面的都是最重要的。當你做緊急維護的時候,可以沒有 /usr,但不能沒有根目錄。

神說:要有區別。所以第一個盤就用來放根目錄,作為開發系統用,而第二個硬盤就用來放用戶的東西,然後掛載到 /usr下面。用戶目錄下面就放的都是小東西,所以那可是 2.5 MB 近乎無限的空間啊(大霧)

神說:我x!第一塊盤滿了!作為一個積極開發的系統, 肯定會生成大量的二進制文件,而各種 debug 的工具更是龐大無比。再買一塊 RK05 是可以的,就是沒錢而已。而似乎用戶目錄 /usr 不是很滿……

神說:複製黏貼是神聖的。所以他們就把整個系統文件架構都複製了一份,黏貼到 /usr 下面, 所以就有了 /usr/bin, /usr/lib。但是哪些文件要移過來呢?肯定是那些不會影響系統啟動的啊,因為首先要啟動系統,然後再把 /usr 掛載到根目錄下面。

神說:就這麼定了。於是直到 Ubuntu(一個流行的Linux)的最新版本 18.10,你系統裡面會有 /bin 和 /usr/bin,就是因為 45 年前兩個極客買不起 2.5 MB 硬盤做出的決定

這個太有趣啦XDD

  1. 下面 撒旦的報復
    神說: /usr 不重要。撒旦說:呵!
    隨著 Linux 的發展,大部分的軟件都放在 /usr 下面了。當然,都是一些不會影響系統啟動的程序;但是對於用戶來說,/usr的程序更好玩,更重要,例如 firefox (瀏覽器),utorrent(下載器),mpv (播放器), firefox(賢者模式煎蛋器)……
    2014 年 bumblebee 作為一個 Linux 支持 Nvidia 顯卡的一個牛逼模式的軟件,向世人展示了什麼就「不重要」。在他們的安裝腳本中,不小心多寫一個空格,從
    rm -rf /usr/lib/nvidia-current/xorg/xorg 「
    變成了
    rm -rf /usr /lib/nvidia-current/xorg/xorg 「
    是不是你也沒看出來是什麼問題?就是在/usr 後多了一個空格,所以從刪除 /usr/lib/nvidia-current/xorg/xorg 變成了 刪除 /usr 和/lib/nvidia-current/xorg/xorg 兩個文件夾。
    整個/usr被刪除了,哀鴻遍野…… rm 作為 Linux 的殺器,是無法恢復的。煎蛋器就這麼不見了……

這個也很有趣,但我相信發生在自己身上一定是悲劇orz