Linuxのbinディレクトリについて

📢 この記事は gemini-3-flash-preview によって翻訳されました

はじめに

ぶっちゃけ、コマンドファイルをどこに置くかは自分で決められるんだよね。つまり好きな場所に置いていいってこと。これらのディレクトリはただの約束事に過ぎないんだけど、やっぱりルールを守ったほうがいいよ。自分のPC、特に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

一般的にスーパーユーザー(root)向けのコマンドを指すよ。主にシステム管理に必須なプログラムが置いてあるんだ。例えば、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.

Visits Since 2025-02-28

Hugo で構築されています。 | テーマ StackJimmy によって設計されています。