🌟

Linuxの各ディレクトリの構造

2020/12/27に公開

はじめに

どうやらくーばねてすをやっつけるにはLinuxさんと仲良くしないといけないらしく、Linuxさんの構造を調べることにした。

概要

Linuxの主要なディレクトリの役割、確認方法をまとめた

各ディレクトリの役割

■/bin
ユーザが利用するコマンドのファイルを置くためのディレクトリ。
binは特にLinuxシステムの動作に最低限必要な重要度の高いコマンドが格納されている。
※ビンビンコマンド管理人、と覚えた!
■/dev
デバイスファイルを格納している。
※デバイスファイルはディスクやキーボードなどのハードウェアをファイルとして扱えるようにした特殊ファイル。
※でぶデバイス、と覚えた!
■/etc
設定ファイルを置いているディレクトリ。Linuxで動作するアプリケーションの設定ファイル(configファイル)やLinux自体の設定ファイルが置かれている。Linuxを管理。運用するのに大事な人
※ETC設定管理人、と覚えた!
■/home
ユーザごとに割り当てられるホームディレクトリが配置される。個人用ディレクトリのこと。
例えばユーザがsuidouだったら/home/suidouがsudouのホームディレクトリ。個人はこのホームディレクトリに自由にファイルやディレクトリを入れて楽しむことができる。
■/sbin
/binディレクトリのそっくりさんでコマンド管理をするディレクトリだが、どちらかというと管理者コマンド専門。
※/binの管理者コマンド管理人。
■/user
アプリケーションとそれにまつわるファイルを格納するディレクトリ。追加でアプリケーションをしたときは実行ファイルやドキュメント(資料)やライブラリ(ありがちな処理をプログラムの部品の形でいっぱい詰め込んだサポーターファイル)などが格納される。
/userディレクトリにはその配下としてbin、sbin、etcなどを持ち内部にrootディレクトリとにた構造を持つ。
※ユーザアプリケーション!!!(!?)
■/tmp
一時的なファイルをおくためのディレクトリ。アプリケーションの実行中に作業途中の結果を一時的に保存するときにこのディレクトリに保存しるのが一般的。
でもこのディレクトリは定期的に削除される設定になっているディストリビューション(Linuxの配布形態)が多いのでずっと保存するファイルの保存先にしてはいけない。
■/var
変化する(variable)データを置くためのディレクトリ。アプリケーションを動作するうえで作成されたデータやログ、電子メールなどがこのディレクトリに格納される。/varはたくさん書き込まれて、容量もすぐたくさんになってしまうので管理の上では注意が必要。
※バー変化!!!

Linuxを使いこなすには必要に応じていろんなディレクトリを移動する。自分がいるディレクトリをカレントディレクトリという(ワーキングディレクトリとも言う)。

もし自分がどこにいるのかわからなくなったら

$ pwd
と打つと自分がどこにいるのか教えてくれる。
何か作業する前にpwdでカレントディレクトリを確認する癖をつけると作業ミスが減るらしい。

移動したい時は

$ cd 移動したいディレクトリ名
で移動できる。

絶対パスと相対ス

■絶対パス
/user/bin/perlのようにルートディレクトを起点としてファイルやディレクトリをのパスをを示すことを絶対パス(もしくはフルパス)という。
絶対パスは確実な表記だけど、文字列が長くて不便。絶対パスは打つのが大変なのでTabキーの補完機能(入力の手間を省く機能)を使って早く入力できるようにする。
■相対パス
現在のカレントディレクトリを起点にして表記するパス。
例えば/home/suidou/file1というディレクトリまであってカレントディレクトリが/home/suidouだった時、
〇.
カレントディレクトリを表す。(/home/suidou)
〇..
カレントディレクトリの親ディレクトリを表す。(今いる所のいっこ前のディレクトリ!)(/home)
〇../..
カレントディレクトリの親ディレクトリの親ディレクトリを表す。(2層前のディレクトリってこと!)(/!)
〇file1
絶対パスでいうと/home/suidou/file1ってこと!

あちこちに移動して一気にホームディレクトリに戻りたい時

$ cd ~
でどこにいようと一気にホームディレクトリに戻ってこれる。
~(チルダ)はホームディレクトリを表すので例えば、/home/suidou/file1に移動したい時は、
$ cd ~/file1
で/home/suidou/file1に飛ぶぞ!

ディレクトリの中のディレクトリとファイルを表示したい

■$ ls
でカレントディレクトリの中身が見れる。
■$ ls 見たいディレクトリ 見たいディレクトリ
で複数のディレクトリを表示させる。
■$ ls ba*
でbaで始まるファイル一覧を表示(*は任意の文字列を表す)
■$ ls *.html
で拡張子がhtmlのファイル一覧を表示。
■$ ls ba??
で?を利用してbaから始まる4文字のファイルを表示させる。(?は任意の1文字だけに対応する)
■$ ls -l
でファイル名だけでなく、ファイル属性などの詳細情報を表示させる。
ファイルタイプ、ファイルモード(権限がのってる)、リンク数、所有者、サイズ、タイムスタンプ(その時間に、その内容でファイルが存在したことを表す)、ファイル名、ディレクトリ名がのってる。
■$ ls -a
隠しファイルも他のファイルと合わせて表示させる。(lsコマンドでは.で始まるファイルを隠しファイルとして表記させてくれないのでこれで表示
■$ ls -F
でファイル種類も表示。
・通常ファイル     記号なし
・ディレクトリ     /
・実行可能ファイル   *(プログラムなファイルのこと)
・シンボリックリンク  @(シンボリックリンクはWindowsにおける「ショートカット」みたいなもの)

話はそれるけどコマンドのオプションについて

■オプションは複数指定することもできる。
$ls -a -F
■また合体することもできる。
$ls -aF
■コマンドの引数とオプションを同時に指定することもできる。
$ ls -aF /
先にオプションを指定してから,引数を書くこと!

■また、オプションにはロングオプションってのもあって、通常だと-aのように「ハイフン+英数字1文字」だけど--quote-nameのようにハイフン2つでオプションを指定することもできる。オプションを長い名前で指定するのでロングオプションという。
またロングオプションはほかのオプションと重複せずに特定できる範囲まで文字列を省略できる。
例えば、lsのロングオプションにはquoteで始まるオプションはほかにないので--quote-nameは--quoteに省略できる。
引数をとるロングオプションでは引数の間にスペースを入れるか、=で引数をとる。
ロングオプションは単語で構成されるので長くなるが一目で内容が分かりやすくなる。
$ ls --width 30
$ ls --width=30

まとめ

いっぱいかいたのでとても疲れた。
各ディレクトリの役割を理解して、pwd,cd,lsコマンドを駆使してどんなファイルがあるのか確認できるようになろうと思った。
次はもうちょっと短くして作成途中のモチベーションが下がらないようにしなくては、と思った。(くーばねてす倒すためにも)

Discussion