/ ルートディレクトリ ├ /bin 基本コマンド ├ /boot 起動に必要なファイル ├ /dev デバイスファイル ├ /etc 設定ファイル ├ /home(オプション) ユーザーのホームディレクトリ ├ /lib 共有ライブラリ ├ /mnt 一時的なマウントポイント ├ /opt 追加アプリケーション ├ /proc(Linux固有) プロセス情報など ├ /root(オプション) root用ホームディレクトリ ├ /sbin システム管理用コマンドなど ├ /tmp 一時ファイル ├ /usr 各種プログラムなど └ /var 変更されるデータ
/bin
基本コマンド格納フォルダ
catやlsなどの、基本的なコマンドのバイナリファイルが配置されます。
このディレクトリにあるコマンドは、一般ユーザーでも実行可能です。
このパスはデフォルトで/etc/init.d/functions
内部で定義されており、ここに追加されていないプログラムは直接パスを指定しなければいけない。
# Set up a default search path. PATH="/sbin:/usr/sbin:/bin:/usr/bin" export PATH
ちなみに、cat
やls
などのおおもとコードは以下のリポジトリに格納されています。
https://github.com/coreutils/coreutils/tree/master/src
例えば、head
コマンドのメイン関数は以下の通りです。
https://github.com/coreutils/coreutils/blob/def6b33bf6d481289ae188f3ee403ed392cff29a/src/head.c#L919
これらのソースコードを直接インストールすることも一応可能です。
wget https://ftp.jaist.ac.jp/pub/GNU/coreutils/coreutils-8.32.tar.xz tar xfJ coreutils-8.32.tar.xz cd coreutils-8.32/ ./configure --prefix=/opt/coreutils-8.32 make sudo mkdir /opt/coreutils-8.32 sudo make install
そのほか参考 : https://note.com/yamblue/n/n62acf1d0bc47
/sbin
システム管理に必須のコマンドが配置されます。
このパスにあるコマンドはrootユーザーのみ実行可能です。
shutdown
,mkfs
,mkswap
コマンドなどが配置されてます。
/boot
ブートフォルダ
/boot
フォルダーにはlinuxシステムの起動のために必要なプログラムが格納されています。
例えば、linuxの核であるlinux kernel
のプログラムはこちらに格納されています。
/boot
フォルダーは基本触らないこと。
dev
デバイスフォルダ
ハードウェア機器を表すファイルが保存される場所。
マウス、キーボード、プリンター、記憶装置、ディスプレイなど、あらゆるデバイスが接続される。
また、必ずしも物理デバイスに対応したファイルだけが格納されるわけではない。
仮想のデバイスファイルに対応することがあり、これらを擬似デバイスと呼ぶ。
擬似デバイスファイルには以下のようなものがある。
/dev/stdin
、/dev/stdout
、/dev/stderr
– プロセスの標準ストリームにアクセスします。/dev/null
– 書き込まれたすべての入力を受け入れて破棄します。コマンドの実行結果を、画面に表示せず、ファイルにも保存したくない時、この擬似デバイスファイルにパイプすることで内容を棄却できます。/dev/random
– カーネルの暗号的に安全な擬似乱数ジェネレーターによって生成されたバイトを生成します。その正確な動作は実装によって異なり、 /dev/urandomや/dev/arandomなどのバリアントも提供される場合があります。/dev/full
- 書き込みを行おうとした時に、常に「容量が上限」というエラーを出力します。このデバイスを使用する場合の一般的な用途は、ファイルの書き込みエラーをテストすることです。echo "Hello, World!" > /dev/full
- この操作は、ファイルシステムのエラーハンドリングやアプリケーションの信頼性をテストするのに役に立ちます。
/dev/fd/0
- 標準入力(/dev/stdin
)と繋がっています。/dev/fd/1
- 標準出力(/dev/stdout
)と繋がっています。
opt
拡張アプリケーション
個人で作成するアプリケーションなどは、このフォルダーにまとめることで管理が簡単になります。
etc
フォルダー
システムの設定情報が記述されたファイルが配置されています。
lib
共有ライブラリ
bin
やsbin
から呼び出されるライブラリが格納されます。
そのほかは共有ライブラリやカーネルモジュールなどもここにインストールされます。
proc
プロセスを管理するためのフォルダー。
このフォルダーはcpuのメモリにマウントされており、このファイルに変更を加えることでプロセスの動作を変えることもできます。
root
スーパーユーザーrootのホームディレクトリ
スーパーユーザーrootのホームディレクトリです。
/home
がマウントできなくなった場合でも、システムのメンテナンスが可能であるように通常のユーザーとは異なり、/home
配下には存在しません。
var
頻繁に書き換えられるファイルが配置
var
頻繁に書き換えられるファイルが配置されています。
ログファイルやメール、プリンタのスプール(処理情報の一時保管先)などが該当します。
/var
配下はさらに細分化されており、次のようなディレクトリが存在します。
/var/cache
: 一時的なキャッシュファイル。man
コマンドで表示するために成形したデータなどが格納されたりする。/var/lock
: アプリケーションが排他制御に使うためのロックファイルが配置されます。/var/log
: ログファイルが書き込まれます。nginxのログや、メールシステムのログファイルなどが格納されます。/var/run
: システムの状態を示すファイルが配置されます。特に、PIDが格納されたフォルダーを見ると、PIDを調べることができます。/var/spool
: 印刷町のデータや、予約されたジョブなど処理待ちのデータが配置されます。
usr
コマンドやユーティリティが配置
コマンドやユーティリティツールが配置されます。
usr
はuser service and routinesの略称です。
/usr/bin
: ユーザーが一般的に使うコマンドで、緊急時のシステム保守には必須でないコマンドはここに配置されます。/usr/sbin
: システム管理コマンドですが、こちらも緊急時の保守には必須でないコマンドが配置されます。/usr/lib
: プログラムに必要な共有ライブラリが配置されます。/usr
:/usr
:
from https://en.wikipedia.org/wiki/Device_file
page:https://minegishirei.hatenablog.com/entry/2024/05/05/210432