Linux ディレクトリ構成

/

ルートディレクトリのこと。ルートディレクトリとは、コンピュータファイルシステムにおいて、ファイル階層における最初または最上位のディレクトリのことである。ルートディレクトリは、全ての枝の開始点である木の幹に例えることができる。ルートファイルシステムは、ルートディレクトリが位置しているのと同じディスクパーティションに含まれるファイルシステムである。ルートファイルシステムは、システムのブート時にマウントされる他の全てのファイルシステムの頂点にあるファイルシステムである。

/bin

Linuxの基本的なコマンド群が格納されているディレクト

$ ls /bin
[		chmod		date		domainname	expr		ksh		ln		mv		pwd		sh		sync		unlink
bash		cp		dd		echo		hostname	launchctl	ls		pax		rm		sleep		tcsh		wait4path
cat		csh		df		ed		kill		link		mkdir		ps		rmdir		stty		test		zsh


/home

一般ユーザーのホームディレクトリ。ホームディレクトリとは、UNIX系のOS(LinuxとかMacとか)においてログイン直後にいる場所のことである。利用者は自分に割り当てられたホームディレクトリ内には自由にファイルやサブディレクトリを作成することができる。ログインするとカレントディレクトリ(ファイルシステム内での現在地)が自分のホームディレクトリに設定されることが多い。多くのシェルでは「~」(チルダ)という記号が自分のホームディレクトリを表している。

/etc

/etcは,Linuxディストリビューションを構成する各種プログラムの設定ファイルを格納したディレクトリである。

afpovertcp.cfg				emond.d					manpaths				periodic				security
aliases					find.codes				manpaths.d				pf.anchors				services
aliases.db				fstab.hd				master.passwd				pf.conf					shells
apache2					ftpusers				my.conf					pf.os					snmp
asl					gettytab				nanorc					php-fpm.conf.default			ssh
asl.conf				group					networks				php-fpm.d				ssl
auto_home				hosts					newsyslog.conf				php.ini.default				sudo_lecture
auto_master				hosts.equiv				newsyslog.d				postfix					sudoers
autofs.conf				irbrc					nfs.conf				ppp					sudoers.d
bashrc					kern_loader.conf			notify.conf				profile					syslog.conf
bashrc_Apple_Terminal			krb5.keytab				ntp-restrict.conf			protocols				ttys
com.apple.screensharing.agent.launchd	localtime				ntp.conf				racoon					wfs
csh.cshrc				locate.rc				ntp_opendirectory.conf			rc.common				xtab
csh.login				mach_init.d				openldap				rc.netboot				zprofile
csh.logout				mach_init_per_login_session.d		pam.d					resolv.conf				zshrc
cups					mach_init_per_user.d			passwd					rmtab
defaults				mail.rc					paths					rpc
dnsextd.conf				man.conf				paths.d					rtadvd.conf

/etcに格納されている設定ファイルは,大きく6種類に分類できる。(1)Linuxシステムの起動に関するもの(2)システム設定全般に関連するもの(3)ネットワーク設定(4)サーバー・ソフトウエアに関する設定(5)X Window Systemの設定(6)シェルやアプリケーション・ソフトウエアに関する設定である。

/usr

ユーザーサービスやリソースが格納されるディレクトリ。その用途は多様であり、さまざまなものがここに格納される。共有可能なファイルは基本的にここに置かれる。各ユーザーが共通して利用するプログラム・ライブラリのデータであり、ソースからコンパイルしたソフトなどはこちらにインストールされる。通常パッケージの追加するこのディレクトリにインストールされることが多い。また、etcに保存されている設定ファイルのシンボルリンクもこちらに貼られることも多い。

X11		X11R6		bin		include		lib		libexec		local		sbin		share		standalone


/sbin

再起動やファイルシステムの操作などシステム管理者用のコマンドが配置されている。/bin同様、新しいコマンドの追加や変更は推奨されない。shutdown、rebootなど。

apfs_hfs_convert	fsck_apfs		fstyp_msdos		md5			mount_devfs		mount_smbfs		newfs_udf		reboot
autodiskmount		fsck_cs			fstyp_ntfs		mknod			mount_exfat		mount_udf		nfsd			route
disklabel		fsck_exfat		fstyp_udf		mount			mount_fdesc		mount_webdav		nfsiod			rtsol
dmesg			fsck_hfs		halt			mount_acfs		mount_ftp		mpioutil		nologin			shutdown
dynamic_pager		fsck_msdos		ifconfig		mount_afp		mount_hfs		newfs_apfs		pfctl			umount
emond			fsck_udf		kextload		mount_apfs		mount_msdos		newfs_exfat		ping
fibreconfig		fstyp			kextunload		mount_cd9660		mount_nfs		newfs_hfs		ping6
fsck			fstyp_hfs		launchd			mount_cddafs		mount_ntfs		newfs_msdos		quotacheck


/tmp

テンポラリデータの保存場所でメモリ上の一時ファイルを保存する。ダウンロードフォルダとして利用することもある。再起動時に消去される。また通常はcronで定期的に消去される。

/var

ログやキャッシュなど、可変的システムデータ(動的ファイル)が格納されるディレクトリである。一時的なデータとしては/tmpと同じだが、こちらは再起動しても消去されずに残る。

agentx		audit		db		folders		jabberd		log		mail		netboot		root		run		spool		vm
at		backups		empty		install		lib		ma		msgs		networkd	rpc		rwho		tmp		yp


/opt

ディレクトリ内にはユーザーがインストールした静的データ、主にプログラムが格納される。ただしGNUビルドシステムやパッケージ管理システムを利用したインストールの場合、/usr/localもしくは/usrディレクトリにインストールされるので、専らソフトウェア・ベンダーが提供するアプリケーションであることが多い。

/dev

コンピューターに接続されたデバイス(マウスやキーボード、ディスク等)を扱うファイルが置かれている。

/lib

/binや/sbinのコマンドを実行するのに必要なファイルが配置されてる。基本的にユーザーが変更を加えることはない。64bit用の共用ファイルは別途「lib64」というディレクトリにある。32bitと間違えないように注意。libc、libsslなど。

/boot

ブートに必要なファイルが格納されるディレクトリ。ブートログやカーネルイメージ(Linuxカーネルを格納して圧縮したファイル)が保存されている。vmlinuzなど。ブートとは、コンピュータシステムの電源投入時、あるいはシステムのリセット後、モニタやOSなどなんらかの基本的なシステムソフトウェアを主記憶に展開し、ユーザプログラムを実行できるようにするまでの処理の流れのことである。

/lost+found

システムのバックアップや復元用のファイルが格納されるディレクトリである。意図しない再起動やシャットダウン時に使われる。通常ユーザーが操作することは無い。

/proc

/procは,プロセスやメモリーなどのLinuxシステム上のリソース関連情報を、あたかもファイルであるかのように配置した仮想的なファイル・システムである。仮想的とはいえ、通常のファイルと同じようにアクセスできる。/procディレクトリにあるサブディレクトリの名前(数字)は,プロセスIDを意味する。

/procにあるcpuinfo(CPUの情報)や、partitions(パーティション情報)、uptime(システムの駆動情報)、version(Linuxカーネルのバージョン情報)などのファイルの値は、他のコマンドが情報を出力する際に直接参照されている。これらの値の実態は,稼働中のLinuxカーネルの内部情報である。例えば、/proc/sys以下には,システムの動作速度に関する情報がファイルとして配置されている。これらのファイルの内容を書き換えることで,カーネル内部の変数を変更できる。

/sys

動作しているプロセスやドライバを/procで管理すると膨大になるため、/sysにドライバ関連のプロセスをまとめているディレクトリ。しかし完全に分離されているわけではない。