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)入門編 - ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について

ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について

みなさまどうも。

さて続きまして『ファイルシステム』とか『pwd』コマンドとか『cd』コマンドとかについてやっていきましょう。

まず「『ファイルシステム』ってなーに?」ってお話なんですが、これはデータを保存したり操作したりする際の仕組みとか構造とかそういうものを指す言葉(概念?)になります。

これについてはちょいと『WindowOS』と『MacOS』を思い出してみましょう。『WindowOS』も『MacOS』もディレクトリ(フォルダ)とかファイルとかのデータを管理するソフトウェアって標準で入っていますよね。『WindowsOS』だったら『エクスプローラー』(Windows Explorer)、『MacOS』だったら『ファインダー』(Finder)って呼ばれる以下の子達です。

(´-`).。oO(こちらは少し懐かしい『エクスプローラー』さんでございますね...)

これらを使うとファイルにアクセスしたりディレクトリを作ったりディレクトリに入れてファイルを分けたりと色々な事ができ、恐らく何かしらのPCをお持ちの方ならお馴染みのソフトウェアになるかと思いますがまさしくこれが『ファイルシステム』と呼ばれるものになります。要するにデータを管理しやすいようにカテゴリー分けしたりまとめたりして、更にデータをコピーしたり編集したり削除したりがなるべく簡単に出来るように作られたシステムの事でございます。

ここで「内部的にはどうなってるの?そういうとこ知りたいなー(*´ω`*)」という疑問が生まれたメカニックな才能をお持ちな方もかなりいらっしゃると思うのですがSSDとかHDDとかにデータを記録する際にそのデータの置き場所なんかを同時にこっそり書き込みしているって感じになりますね。なのでディレクトリの中にデータを入れたからって物理的にもそういう風に保存されているというわけではないのでご注意です。物理的な話になると全てのデータはただ適当な場所に0か1かを保存しているに過ぎません。

例えばAというデータがあってそれを保存する際にメタ情報(隠し情報)として
「このデータはsakuramaさんのデータだからsakuramaディレクトリに居るよー(*'ω'*)」
って書き込みをしておきます。そして同じファイルシステムで読み出す時に
「あ!このAってデータはsakuramaディレクトリに居るって書いてある!じゃあエクスプローラー(ファインダー)でそういう風に表示して操作出来るようにしなきゃ!(*'▽'*)」
ってなるようなイメージですかね。

そしてこの『ファイルシステム』ってやつがUNIX系OSにおいて非常に重要なのでございます。

これについては実際に触ってみたほうが分かりやすいと思いますので『CentOS』と『MacOS』を使ってちょいと試してみましょう。『CentOS』にログインすると以下のような出力がされますよね。前に解説した『プロンプト』が出力されて「入力待ちっすよー」な画面になります。

[root@localhost ~]# 

MacOSの『ターミナル』アプリを開いたときの画面は何も設定を変更していない状態だと以下のような感じになるかなと思います。

[@:~]$ 

そんでもってこんな感じで『プロンプト』が出力されている状態は一体どういう状態なのかというと「『ファイルシステム』で構築された世界の中に居る」ような状態になっておりそれと同時に操作ユーザーは必ずどこかのディレクトリの中に居てその中で操作をしているという状態になっています。

「じゃあ今の俺はどこにいるんだぜ?」というお話になるかと思いますので「現在の自分がどこのディレクトリに居るのか」を教えてくれる『pwd』コマンドくんって子を使ってみましょう。これはオプションも引数も何もいらないので『pwd』とだけバシッと打ってみて下さい。以下のような感じですね。上が『CentOS』、下が『MacOS』の画面になります。

[root@localhost ~]# pwd
[@:~]$ pwd

そしてエンターキーを押すと以下のような結果が返ってくると思います。

[root@localhost ~]# pwd
/root
[@:~]$ pwd
/Users/あなたのお名前

出力された内容を見てみると『CentOS』だと『/root』、『MacOS』だと『/Users/あなたのお名前』みたいな感じになっていますね。『MacOS』だった場合の『あなたのお名前』には『MacOS』に登録されているあなたのお名前が出て来るはずです。例えば『hsakurama』だったら『/Users/hsakurama』って感じですね。これがあなたの現在地となります。

しかし「現在地って言われてもなんだかよく分からんお?(´・ω・`)」ってなりますよね。なのでその出力された内容でちょいと注目してほしい点があります。それは『/』(スラッシュ)です。これは何を表しているのかというとズバリ「ディレクトリの区切り」を表しています。

こう『WindowsOS』だと円マーク(¥)でフォルダの区切りを表していましたよね。例えば「userフォルダの中のdocumentフォルダの中のmiku_hatsuneフォルダ」になると「user¥document¥miku_hatsune」ってなるあれです。多分『WindowsOS』を触った事がある方なら一度は見たことあると思いますがそれと同じような感じだなと思ってしまってOKです。

なので現在地が『/Users/hsakurama』だったら一番上の階層の『Users』の中の『hsakurama』の中に居るって感じになりますね。ここまでは大丈夫そうでしょうか。

ちなみに昨今の『MacOS』はUNIX系OSの1つなのでディレクトリの区切りは『CentOS』と同じく『/』を使ってる感じになりますね。それはGUIでもCUIでも同じです。

そしてさっき打った『pwd』コマンドくんはお察しの通り非常によく使われる超基本コマンドの1つとなりますので超絶に暗記して頂きたく存じます。

ちなみに『pwd』は「print working directory」の略になります。結構こういうコマンドって元となった言葉も同時に覚えておくと覚えやすかったりするので新しいコマンドを打つ時はついでに軽くネットあたりで調べてみるのも一興かもしれません。

ディレクトリ(フォルダ)は「userフォルダの中のdocumentフォルダの中のmiku_hatsuneフォルダ」といったように階層構造というか入れ子構造になっておるわけなんですがこの構造に名前がついており『ディレクトリツリー』なんて言われたりする事があります。

んでもって最近の『CentOS』や『MacOS』の初期パッケージには含まれていないのですがUNIX系OSで昔から使われている『tree』コマンドって子がいまして、それを使うと現在のディレクトリ構造を以下のような出力で教えてくれます。

.
├── sample.js
├── test.html

上記の場合ですと現在のディレクトリの中にsample.jsとtest.htmlが居る、って感じですね。

『ディレクトリツリー』はたまに参考書とかで出て来る程度でそこまで重要じゃないのですが『tree』コマンドは中々便利な子なので「そんなコマンドがあるんだなー」くらいの軽い感じでちょいと頭の片隅に置いておくと良いかもです。

んで今回のコーナーで使っている『CentOS6.9』のminimumなパッケージのデフォルトの状態でも『tree』コマンドはインストールされていませんのであとで追加する必要がありますのでご注意です。インストール方法は後ほど紹介します。

そしてこの勢いでもう1つコマンドを紹介しておきます。それは『cd』コマンドくんです。これはディレクトリを移動する為のコマンドになりまして例えば「/home/test」に移動したい気分になったら

[root@localhost ~]# cd /home/test

と打ち込みしちゃえばOKです。構造を日本語で解説するとなると『cd 行きたいディレクトリの場所』って感じになりますね。

んでもって『cd』は「current directory」の略になるんですが『カレントディレクトリ』とは「現在居るディレクトリ」を表す言葉になりまして更にこの「カレントディレクトリ」って単語は現場でもめちゃくちゃ使われますのでこちらも超絶暗記して頂きたく存じます。

パソコンとかの世界でファイル等のカテゴリー分けや階層とかを表す言葉は「ディレクトリ」と「フォルダ」の2つが使われていますがこれは2つとも同じ意味として使ってしまってOKです。

多分著者の体感的にWindows系が「フォルダ」、UNIX系が「ディレクトリ」って言葉を使っている感じになると思いますがその両者の違いはほとんどないかと思いますね。

厳密に言うと多少違うらしいのですがそんな事意識せずとも何も問題は無いのでシカトでOKかなと思います、はい。

というわけでキリが良いのでこの辺で一旦記事を切ります。

UNIX系OSにはちょいと重要なディレクトリがいくつかあったりするので次の記事では『ls』コマンドの使い方とあわせてそれを色々と確認していきましょう。

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

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

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

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

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