Linux 下 bin 目錄

📢 本文由 gemini-3-flash-preview 翻譯

引言

事實上指令檔案放在哪裡都可以自行決定,也就是自己想放哪就放哪,這些目錄不過是約定,但遵守約定會更好,畢竟沒有人會想要自己的電腦一團糟吧,尤其是 Linux。

優先級

Linux 下的這些 bin 目錄都是存放指令的,如果不同的目錄下有相同名稱的可執行程式,將透過優先級決定先執行哪個目錄的二進位檔案,可以透過使用指令 echo $PATH 查看環境變數以確定指令執行的優先級,例如我的系統輸出如下:

1
2
[yexca@yexca-PC ~]$ echo $PATH
/home/yexca/.local/bin:/home/yexca/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin

從前到後以 : 分隔,越靠前優先級越高。

/bin

系統的一些指令。bin 為 binary 的縮寫,主要放置一些系統的必備執行檔,例如:cat、cp、chmod、df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar 等。

/usr/bin

系統預裝的可執行程式,會隨著系統升級而改變。

後續安裝的一些軟體的執行腳本。主要放置一些應用軟體工具的必備執行檔,例如:c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、newaliases、nslookup、passwd、quota、smb*、wget 等。

/usr/local/bin

提供給使用者放置自訂可執行程式的地方,推薦放在這裡,不會因為系統升級而覆蓋同名檔案。

/sbin

一般是指超級使用者 (Superuser) 指令。主要放置一些系統管理的必備程式,例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、runlevel、shutdown 等。

/usr/sbin

放置一些使用者安裝的系統管理的必備程式,例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump 等。

參考文章

Linux /usr/bin與/usr/local/bin区别_学亮编程手记的博客-CSDN博客

/bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别_IT农夫的博客-CSDN博客

This post is licensed under CC BY-NC-SA 4.0 by the author.