コマンドライン操作で知っておきたい。カレントディレクトリ、ホームディレクトリ、ルートディレクトリの話
カレントディレクトリ、ホームディレクトリ、ルートディレクトリこれらの違いわかりますでしょうか?
わかる方はこちらの記事を読む必要はないかと思うので、安心してブラウザの戻るボタンか閉じるボタンをおしてください。
ちょっとでもわかる、あるいは全くわからないと言う方のために以降の記事でコマンドライン操作におけるディレクトリについて語っていきます。
ディレクトリとは?
仕事でパソコンを使うような人には割と身近ではあると思いますが、ディレクトリはファイルを入れる箱のようなものです。さらにこれらのディレクトリやファイルは木構造としてコンピュータ内部で管理されています。
木構造といわれてもパッとイメージがわかない方も多いと思いますが、木構造とは次のようなものです。
- ホーム - + デスクトップ - + - Screenshot.png
| + - 設計書.xlsx
| + - 新しいフォルダ
- ダウンロード
- 画像
ちょうど、MacのホームやWindowsのホームをFinderなりExplorerなどでみてみるとこのように、ホームディレクトリがあってその下にデスクトップやダウンロード用のフォルダ、画像フォルダなどがありそのそれぞれの下にファイルやディレクトリがあるという構造になっていると思います。
これが木構造です。
LinuxやMac OSなどUnixベースのOSは基本的にこのようなフォルダ構造になっており、これらのフォルダ構造を「/」で区切ってディレクトリを表現します。例えばMacでアカウントをichiroとしている場合、ターミナルを開いた時のディレクトリは次のようになります。
/Users/ichiro
これがディレクトリの表記の方法なのですが、この表記はUsersディレクトリの下のichiroディレクトリを表しています。またこのディレクトリの場所を「パス」と呼ぶことが一般的です。
それぞれのパスの名称
先の項目でパスについて理解できたら次は、パスには場所によって色々な呼び方があるのでそれらを覚えていきましょう。
ルートディレクトリ
ルート(root)とは、根っこのことでさきほど説明した木構造の一番根元のディレクトリを表し、全てのファイルやディレクトリはこのディレクトリの配下にあることになります。これをパスで表すと「/」という形のスラッシュ一文字になります。
カレントディレクトリ
カレントディレクトリはコンソールで操作する時に起点になるディレクトリ、パスになります。cdコマンドでディレクトリ間を移動する場合は今自分がどのディレクトリにいるかで操作が異なるので、コマンドラインを操作する場合は常にこれを意識する必要があります。
多くの場合カレントディレクトリはコンソールのプロンプト(コマンド入力する部分の左側に表示されるやつ)に表示されるので、ここを参照しながら操作を行なっていきます。ちなみにカレントディレクトリはpwdコマンドで確認することができます。
ホームディレクトリ
これはあまり説明不要かと思いますが、ユーザごとの基底ディレクトリのようなものです。Macのターミナルを開いた時に最初に位置するディレクトリがこのホームディレクトリになります。ターミナルを開いてpwdコマンドを叩くとホームディレクトリのパスが確認できます。ちょっと発展的な内容になりますが、.bash_profileなど各種設定ファイルはここのホームディレクトリに置かれるので、ユーザごとの設定ファイルはここに置かれるということを頭の片隅においておきましょう。
ディレクトリ、パスに関連しておぼえておきたいこと
絶対パス、相対パス
絶対パス、相対パスはコマンドライン操作やプログラミングをする上で非常に大事な概念です。絶対パスは先ほど説明したように「/」から始まるパスのことで、ファイルシステム(ディレクトリ構造)の中での絶対的な位置を表し、相対パスは相対的な位置を表します。
例えば
/Users/ichiro/
/Users/ichiro/Desktop
というディレクトリがあり、/Users/ichiro/がカレントディレクトリの場合、相対パスとしての「Desktop/」は絶対パスで言うところの/Users/ichiroを示し、「../」は一階層上のディレクトリ、/Usersをしめします。
これをコンソール上でcdコマンドを使いながら確認すると以下のようになります。
$pwd
/Users/ichiro
$cd Desktop # 相対パスを指定して、移動
$pwd
/Users/ichiro/Desktop
$cd ~ # ~はホームディレクトリの別名(エイリアス)
$pwd
/Users/ichiro
$cd ../ # 相対パスを指定して一階層上のディレクトリに移動
$pwd
/Users
$cd /Users/ichiro/Desktop # 絶対パスを指定して移動
$pwd
/Users/ichiro/Desktop
ここまでできればcdコマンドはほとんど理解したと言っていいと思います。
隠しファイル
隠しファイルというと少し中二っぽい語感がありますが、れっきとした機能の一つです。Linux上では「.(ドット)」から始まるファイルは隠しファイルとしてあつかわれ、lsコマンドで、明示的に-aオプションをつけないと見ることができません。.bash_profileや.git、.babelrcなど様々なシーンで見かけると思うので覚えておきましょう。
まとめ
cdコマンドを使いながらカレントディレクトリ、ホームディレクトリ、絶対パス、相対パスなどを説明してきましたがいかがでしたでしょうか?
ディレクトリの概念やパスの話はここがわかってないとコマンドライン操作はまずできないので最初におさえておきたいです。この記事をもとに実際にコマンドを叩いてみたり、気になったところをさらに調べてみたりするとさらに理解が深まるので色々とためしてみましょう。