Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

UNIX(Linux)
入門編

  1. UNIX(Linux)とは
  2. ディストリビューションとは
  3. CentOSとMacOSとCUIについて
  4. 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
  5. ログインとrootユーザーとシャットダウン等について
  6. コマンドの構造と注意点について
  7. ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
  8. 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
  9. ちょっと高度なディレクトリの移動(cd)とパスについて
  10. 『ls』コマンドの応用(1)とドットファイルについて
  11. 『ls』コマンドの応用(2)
  12. タブキーを使った入力補完について
  13. ディレクトリの作成方法(mkdir)について
  14. ファイルの簡易作成(touch)とファイルについて
  15. 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
  1. ファイルとディレクトリの削除(rm)について
  2. ファイルとディレクトリのコピー(cp)について
  3. ファイルとディレクトリの移動と名前変更(mv)について
  4. viエディタとは
  5. viの基本的な使い方(1)
  6. viの基本的な使い方(2)
  7. ターミナル(sshとTera Term)を使ったリモート操作について
  8. ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
  9. ユーザーの概要と確認と追加と切り替え(adduserとsu)について
  10. ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
  11. グループの概要と確認方法(groups)について
  12. グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
  13. パーミッション(権限)について
  14. パーミッションの設定方法(chmodとchown)について
  1. トップページ
  2. UNIX(Linux)入門編 - 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について

各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について

みなさまどうも。

さて続きましてUNIX系OSにおいて覚えるべき主要ディレクトリがいくつかあったりするので『ls』コマンドの使い方と合わせて色々と確認していきましょう。

まず最初に確認して頂きたいのが『ルートディレクトリ』っていうやつです。『ルートディレクトリ』とはファイルシステム(ディレクトリツリー)の概念の中で一番最初かつ一番最上位に位置するトップなディレクトリの事です。

んでもって『ルートディレクトリ』に『cd』コマンドを使って移動するにはどうするのかというとこうします。

cd /

移動先は最上位のディレクトリなので『/』とだけ指定する感じですね。移動した後に『pwd』コマンドで現在位置を確認するとこういう出力になります。以下は『CentOS』の画面です。

[root@localhost ~]# cd /
[root@localhost ~]# pwd
/

ぽつんと「/」が出力されていますね。これでOKです、ちゃんと『ルートディレクトリ』に居る感じになります。

さて、せっかく『ルートディレクトリ』に移動できたのでこのまま他の主要ディレクトリを紹介していきたいと思います。UNIX系OSでよく使われる主要ディレクトリは大体『ルートディレクトリ』の直下とか2階層下あたりに居るのでこの辺を出力してみることにしましょう。

ここで「今居るディレクトリの中身を知るにはどうすんだぜ?」って気分になったと思います。そんなあなたはちょっと前の記事でもちょろっと出てきた『ls』コマンドくんを使ってみましょう。このコマンドを使うと現在のディレクトリの中身を出力してくれます。

「シンプルに内容を出力したい」といった場合はオプションと引数なしでOKなので単純に『ls』と書くだけでOKです。以下のような感じですね。

[root@localhost ~]# ls

するとこんな結果が返ってくるはずです。

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var

これら全部ディレクトリなわけなんですが、『ルートディレクトリ』の直下に置かれてるディレクトリっていうのは結構重要な感じのディレクトリになります。なのでこれらのディレクトリをざざざっと紹介しておきますね。基本的に略語になっていて読みづらいと思いますのでついでに読み仮名もふっておきます。

/bin(ビン)超基本的なコマンドのみを保存するディレクトリ。後から追加したコマンドとかはここに入れないのが普通です。
/boot(ブート)ブート時に使用するファイルが置かれています。ブートというのを簡単に説明すると「PCとかの電源を入れたりした時に接続してる装置とかを操作出来る状態する」って感じになります。
/dev(デヴ)主に記憶デバイスとかを入れておくディレクトリ。UNIXでは「デバイスをファイルのような扱いにして操作する」って設計になっているのでデバイスを追加とかするとここにファイルのような扱いでデバイスが置かれます。
/etc(イーティーシー または エトセ)設定用のファイルを入れておくディレクトリ。ほぼ全てのソフトウェアの設定用のファイルがここに入ります。なので基本的に中身がカオスになるディレクトリです。
/home(ホーム)一般ユーザー用のディレクトリ。一般ユーザーごとに内部にディレクトリが作られ、ログインすると最初にこのディレクトリに入る形になります。内部のディレクトリはユーザー名、つまり「hsakurama」というユーザーだと『/home/hsakurama』ってディレクトリがホームディレクトリになります。
/lib(リヴ)/binや/sbinの中に用意されたコマンドで使うファイルを入れておくディレクトリ。基本的に32bitで動かすコマンド用となります。
/lib64(リヴ64)/binや/sbinの中に用意されたコマンドで使うファイルを入れておくディレクトリ。基本的に64bitで動かすコマンド用となります。
/lost+found(ロストファウンド)システムのバックアップ用のファイルが置かれるディレクトリ。
/media(メディア)CDドライブとかDVDドライブとかフロッピードライブとかを入れるディレクトリ。UNIXでは「デバイスをファイルのような扱いにして操作する」って設計なので/devと同じくファイルのような扱いで置かれます。
/mnt(マウント)一時的なマウント用のディレクトリ。マウントとは接続された装置をOSに認識させて使うといった意味になります。このディレクトリは一時的なマウント用なので、例えば「USBメモリを接続した」とかした場合にここにファイルのような扱いでそのデバイスが置かれます。/mediaとの違いは「一時的な」という部分になりますね。
/opt(オプト)パッケージ管理ツールとかを使って入れたプログラムを入れておくディレクトリ。パッケージ管理ツールとはコマンドとかを簡単にインストール出来るように作られたツールの事です。詳しくは先の記事で解説します。
/proc(プロック)プロセス実行時にIDがついているものを置いておくディレクトリ。プロセスを簡単に説明すると「現在実行中のプログラム」みたいな感じになり、UNIXではそこにIDを付けて管理するのですがその際のIDが付いてるプロセスがここに入ります。
/root(ルート)管理者かつ最高権力者な『root』さん専用のホームディレクトリ。ちょっとややこしいのですが『ルートディレクトリ』は『/』を指す言葉ですのでこのディレクトリを呼ぶならば「『root』さん用のホームディレクトリ」なんて言い方になります。んでなーぜ『root』さんのホームディレクトリを『/home/root』としないかというと『/home』は沢山のユーザーさんが触るディレクトリになりそこに『root』さんのホームディレクトリを置くと他のユーザーのホームディレクトリと同じように権限を非常に甘くするしかないがそれは危険過ぎるので別のディレクトリにしたという切ない事情からだったりします。この『/root』はrootさんしか触れないようになっているのでセキュリティ的にとっても安心なのでございます。
/sbin(エスビン)システム的に重要なコマンドを置くディレクトリ。重要なコマンドってことなので基本的にrootさんとか管理者用のコマンドになります。前に紹介した『shutdown』コマンドなんかはここにいらっしゃいますね。この中身をいじくるのはやめたほうがよいやーつになります。
/tmp(テンプ)一時ファイルの置き場。一時的なファイルってことなので再起動したり一定時間が経つと勝手に消されます。ちなみに「tmp」とは「一時的な」っていうような意味になるのでプログラミングするときの一時的な変数に「tmp」なんて名前が付けられる事も多いです。
/usr(ユーザー)一般ユーザーが共通して使うファイルとかコマンドとかを置くディレクトリ。一言で言うと「みんなで使うことの出来るファイルとかコマンド」って感じになります。この『/usr』の中に『/usr/bin』とか『/usr/lib』とかが置かれているのですが、これは『ルートディレクトリ』直下にある各ディレクトリとほぼ同じ使い方をされます。例えば『/bin』は「基本的なコマンドとかの置き場」なので『/usr/bin』になったら「みんなで使える基本的なコマンドの置き場」になるといったような感じです。
/var(ヴァー)一時ファイルの置き場。『/tmp』と何が違うのかというとこちらは再起動したりした時とかに勝手に消去されない感じになります。なのでログファイルや一時的なシステムデータなんかが置かれます。その他には何も設定を変更しないWebサーバーソフトウェアで『/var/www』にHTMLファイル等のデータを置くようになっていたりします。この理由は「HTMLファイルは常に更新されるものなので一時的なファイルとして扱う」からだと思います。違ってたらすんません。

ちょいと数が多かったりで色々とヘビー級な感じしますよね。

これいきなり全部覚えるのはさすがに大変だし最初から覚える必要もそれほど無かったりするのですが「各ディレクトリはどういう意味を持ってどのように使われるのか」という事を知っておくと色々と捗る事が多いので暇な時にでもたまに確認してみると良いかもです。まあ沢山触っていくと自然と覚えていくと思うのでのんびーりやっていきましょう。

んでこれらのディレクトリはOSによって構成が違うため「『CentOS』の構成を覚えれば全てのUNIX系OSに対応できる」ってわけではないのでそこも注意ですね。まあ大体同じような感じになってます。

『CentOS』などで『ls』コマンドを打つと色がついている場合がありますよね。実はこの色には意味があり「これはxxxなデータですよー」って教えてくれていたりします。

この配色については結構色々なパターンが用意されてるのとOSによって多少違うので全て紹介するのはちょっと大変なのですが、よく使う項目としては

  • 白 → 普通のファイル
  • 青 → ディレクトリ
  • 水色 → シンボリックリンク
  • 赤色 → リンク先が存在してないなどの理由でちょいと問題があるシンボリックリンク

あたりになるので上記の配色だけ覚えておくようにしましょう。

上記の『シンボリックリンク』ってやつは『WindowsOS』の『ショートカット』みたいな感じのものになります。

ちなみに元々の『ls』コマンドはこんな風に色を付けて出力してくれないのですが最近のUNIX系OSだとデフォルトで色付きで出力されるように調整されているため単純に「ls」と打つだけで色が付いた状態で出力してくれるようになっています。

本来の『ls』コマンドで色付きで出力したいとなると『--color』オプションを付ける感じになります。以下のような感じですね。まあこれについては覚えなくてもOKです。

[root@localhost /]# ls --color

というわけで各主要ディレクトリの解説と『ls』コマンドの基本的な使い方については以上になりますね。次の記事からはファイル操作とディレクトリ操作について色々と紹介していきます。

ではこの辺で。またお会いしましょう。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。