Linux(Linux Essentials)4-3.Linuxの主なディレクトリとプロセス関連

今回紹介するのは以下
Linuxの主なディレクトリ一覧
Linuxの主なディレクトリ:例題
・プロセスについて
・リソースなどを確認するコマンド






Linuxの主なディレクトリ一覧
・/home:一般ユーザーのホームディレクトリ。


・/etc:システムの設定ファイルなど。


・/usr:ユーザーが共通して利用するプログラムやドキュメント群。
 →/usr/bin:一般ユーザ用のコマンド(※システムの起動には必須ではない)。
 →/usr/sbin:システム管理者用のコマンド(※システムの起動には必須ではない)。
 →/usr/local:ホスト固有で利用するプログラムや設定ファイルやドキュメント等。
 →/usr/lib:「/usr/bin」や「/usr/sbin」のコマンドやプログラムが利用するライブラリ
 →/usr/share:マニュアルやドキュメントなど、アーキテクチャに依存しないファイル。


・/bin:一般ユーザーが使用できるコマンド群。


・/sbin:システム管理者用のコマンド群。


・/lib:「/bin」や「/sbin」のコマンドやプログラムが使用するライブラリ


・/dev:バイスファイル(※デバイスドライバインターフェイスになるファイル)。


・/boot:Linuxカーネルなど起動に必要なファイル。


・/proc:起動中のプロセスや、カーネルが認識しているハードウェアおよびシステムリソースなどの情報(※メモリ上に作成された仮想ファイルシステム)。


・/sys:バイスやドライバの情報(※メモリ上に作成された仮想ファイルシステム)。


・/var:ログファイルやメールなどの可変ファイル群
 →/var/cache:アプリケーションの一時ファイル
 →/var/log:システムやアプリケーションのログファイル


・opt:アドオン(※拡張)アプリケーションなど。





Linuxの主なディレクトリ:例題
例:「/proc」ディレクトリに格納されているプロセス情報のあるディレクトリ構造。
→/proc/<プロセスID>


例:システムやアプリケーションのログファイルやメールなどが配置され、書き込みが頻繁に発生するディレクトリ。
→/var


例:システムやアプリケーションのログファイル「messages」や、認証に関するログファイル「secure」などが配置されているディレクトリ。
→/var/log


例:Linuxカーネルなど、システムの起動に必要なファイルが格納されているディレクトリ。
→/boot


例:プロセスやカーネルが認識しているハードウェア、およびシステムリソースなどの情報が格納されているディレクトリ。
→/proc


例:メモリ上に作成されたファイルシステム
→/sys
→/proc
※「/sys」「/proc」は通常のディレクトリと同様にアクセスできるがメモリ上に作成された仮想ファイルシステムで、ハードディスク上には存在していない。


例:一般ユーザーが使用するコマンド群が格納されているディレクトリ。
→/bin
※lsやpsコマンドなど基本的なコマンドが配置されており、ユーザーの環境変数PATHのデフォルトには必ず含まれている。


例:アプリケーションの一時ファイルが格納されるディレクトリ。
→/var/cache


例:システム管理者が使用するコマンド群が格納されているディレクトリ。
→/sbin
※システムに影響を及ぼすコマンド群が配置されているためシステム管理者の権限がないと実行できない。


例:システムの起動には必須ではない、一般ユーザー用のコマンドが格納されたディレクトリ。
→/usr/bin


例:システムの起動には必須ではない、システム管理者用のコマンドが格納されたディレクトリ。
→/usr/sbin


例:アーキテクチャに依存しないファイルが格納されるディレクトリ。
→/usr/share
※「/usr/share」ディレクトリ配下には以下のような情報が格納されています。
→/usr/share/doc:ソフトウェア説明書などのドキュメント
→/usr/share/man:オンラインマニュアル
→/usr/share/info:infoマニュアル


例:Linuxで動作するサービスやデーモンなどアプリケーションのメッセージが記録されるファイル。
→/var/log/messages
→/var/log/syslog


例:システムのログファイル「/var/log/messages」または「/var/log/syslog」に記録されている情報。
システム内で動作するサービスが出力するメッセージ


■プロセスについて
・プロセスとは何か。
Linuxでは動作しているプログラムを「プロセス」という単位で管理している。
→動作中のプログラムでありメモリやCPU時間などOSの資源が割り当てられる。
→OSはプロセスが動作するためにメモリ(プログラムの作業台としての場所)CPU時間(プログラムの演算を行う)などの資源(リソース)を割り当てる。


・ps[オプション]でプロセスごとの情報を出力。
→a:全ユーザーのプロセスを表示(※「-」を付けないBSDオプション)
→u:ユーザー名を表示(※「-」を付けないBSDオプション)
→x:サーバプロセスなども含めて表示(※「-」を付けないBSDオプション)
→-e:全プロセスを表示(※「-」で始まるUNIXオプション
→-f:完全なフォーマットでプロセスを表示(※「-」で始まるUNIXオプション


・psのみで表示される主な項目。
→USER:ユーザー。
→PID:プロセスID。
→%CPU:CPU使用率。
→%MEM:メモリ使用率。


■リソースなどを確認するコマンド
システム全体の情報とプロセスごとの情報をリアルタイムで表示するコマンド。
→top


プロセスの親子関係をツリー状に表示するコマンド。
→pstree


システム全体のメモリ量と使用中のメモリ量、空いているメモリ量がわかるコマンド。
→free


カーネルが出力したメッセージを確認するコマンド。
→dmesg


例:プロセスごとに使用しているCPUやメモリの使用率を確認できるコマンド。
→ps
→top


例:現在稼働しているプロセスの一覧を得ることができるコマンド。
→ps(プロセスの一覧とプロセスごとのCPUの使用率やメモリ使用率など)
→pstree(プロセス間の親子関係を表示)
※「free」はシステムのメモリに関する情報を出力。


例:システム全体のメモリ量と使用中のメモリ量、空いているメモリ量がわかるコマンドを2つ挙げる。
→free
→top(※ヘッダ部分に出力
※「ps」「pstree」からはプロセスごとの情報は得られるがシステム全体に関する情報は得られない。


例:topコマンドで確認できる情報。。
最もCPU使用率またはメモリ使用率が多いプロセス。
→システムで稼働しているプロセスの数
※topコマンドではプロセスの実行状態をリアルタイムで参照できる。
※CPU使用率やメモリ使用率が高い順に表示できるため、システム異常時に負荷をかけているプロセスを確認できる。


例:ユーザuser01で作成したプログラム「test」のプロセスの親子関係を確認するコマンド。
→pstree


例:コマンド「dmesg」について正しく述べているもの。
カーネルのメッセージはリングバッファと呼ばれるメモリ上に出力。
→dmesgコマンドを用いるとカーネルリングバッファに書き込まれたメッセージを表示。
カーネルリングバッファの上限を超えた場合、古い情報は表示されない