Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

UNIX(Linux)
Beginner

  1. What is UNIX (Linux)? - Japanese Only
  2. What are Distributions? - Japanese Only
  3. About CentOS, macOS, and CUI - Japanese Only
  4. Installing CentOS with Virtualization Software and macOS CUI Environment - Japanese Only
  5. Login, root User, and Shutdown - Japanese Only
  6. Command Structure and Important Notes - Japanese Only
  7. File System and Navigating Directories (cd and pwd) - Japanese Only
  8. Key Directories and Listing Contents (ls) - Japanese Only
  9. Advanced Directory Navigation (cd) and Paths - Japanese Only
  10. Advanced ls Command (Part 1) and Dotfiles - Japanese Only
  11. Advanced ls Command (Part 2) - Japanese Only
  12. Tab Completion for Input - Japanese Only
  13. Creating Directories (mkdir) - Japanese Only
  14. Quick File Creation (touch) and About Files - Japanese Only
  15. Standard I/O, Redirection (> and >>), echo, and cat - Japanese Only
  1. Deleting Files and Directories (rm) - Japanese Only
  2. Copying Files and Directories (cp) - Japanese Only
  3. Moving and Renaming Files and Directories (mv) - Japanese Only
  4. What is the vi Editor? - Japanese Only
  5. Basic vi Usage (Part 1) - Japanese Only
  6. Basic vi Usage (Part 2) - Japanese Only
  7. Remote Operations via Terminal (SSH and Tera Term) - Japanese Only
  8. Installing Software (yum and Package Managers) - Japanese Only
  9. User Overview, Verification, Creation, and Switching (adduser and su) - Japanese Only
  10. User Passwords, Deletion, Modification, and sudo (passwd, userdel, usermod) - Japanese Only
  11. About Groups and the groups Command - Japanese Only
  12. Adding, Deleting, and Modifying Groups (groupadd, groupdel, groupmod) - Japanese Only
  13. About Permissions - Japanese Only
  14. Setting Permissions (chmod and chown) - Japanese Only
  1. Home
  2. UNIX(Linux)Beginner - File System and Navigating Directories (cd and pwd)

File System and Navigating Directories (cd and pwd) - Japanese Only

みなさまどうも。

さて続きまして『ファイルシステム』とか『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』コマンドの使い方とあわせてそれを色々と確認していきましょう。

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

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .