※この記事は専門学校の講義用に作成されたものです
前回はLinuxでの基本的なコマンドラインの操作方法、ファイルやディレクトリの扱い方について練習しました。今回はディレクトリ(フォルダ)の「移動方法」について学習します。
これまでのお話
前回からの続きになります。
環境設定や基本的な利用方法など前回のページの内容を理解した上でご覧ください。 blog.katsubemakito.net
ディレクトリを移動する
前回はTerminalを立ち上げていくつかのコマンドを実行しましたが、特定のディレクトリ(フォルダ)内から外のファイルを触りませんでした。今回はLinux内の様々なディレクトリを移動しながらどのような構成になっているか探検してみようと思います。
ディレクトリを移動するにはcd
コマンドに移動したいディレクトリを指定し実行します。cd
は「change directory」の略称です。
ディレクトリの下へ移動する
最初に適当な名前のディレクトリを作成します。また適当なファイルをこの中にコピーしておきます。ここでは前回作成したhello.txt
をコピーしました。
[neec@localhost ~]$ mkdir aisatsu
aisatsuディレクトリの中へ移動するためにはcd
コマンドを利用します。移動できたらls
コマンドでファイルの一覧を確認しておきましょう。先ほどコピーしたファイルがありましたか?
[neec@localhost ~]$ cd aisatsu [neec@localhost aisatsu]$ ls hello.txt
ひとつ上に戻る
では元の場所に戻ります。一つ上の階層に戻るにはcd ..
と入力します。
[neec@localhost aisatsu]$ cd .. [neec@localhost ~]$
..
は特別なディレクトリで、これを指定すると、どこにいても一つ上に戻ることができます。
複数の階層を一度に移動する
では少し応用してみます。「aisatsu」の下に「japan」という名前のディレクトリを作成します。先ほどのhello.txt
をkonnitiha.txt
という名前でjapanの下へコピーしておきます。
[neec@localhost ~]$ cd aisatsu [neec@localhost aisatsu]$ mkdir japan
一度最初のディレクトリへ戻ります。
[neec@localhost aisatsu]$ cd .. [neec@localhost ~]$
この状態からjapanへ一発で移動するためには次のようにディレクトリをスラッシュ(/)で区切って入力します。
[neec@localhost ~]$ cd aisatsu/japan [neec@localhost japan]$
ここでは2階層だけでしたが、これが例え10階層あったとしても同じようにスラッシュで区切って指定します。
[neec@localhost ~]$ cd aisatsu/japan/tokyo/hachiouji/katakura
余談ですがWindowsではこの区切り文字をスラッシュ(/)ではなくバックスラッシュ()で表現します。些細なことですがこういった部分からもOSの文化の違いが見て取れますね。
特別なディレクトリ
Linuxには「ルート」「カレント」「ホーム」という特別な名前を持ったディレクトリが存在します。これもそれぞれ覚えておきましょう。
ルートディレクトリ
一番上の階層であるルートディレクトリへ移動してみます。単に/
とだけ指定した場合は一番上の階層であるルートディレクトリを意味します。
[neec@localhost ~]$ cd /
lsコマンドでどのようなファイルやディレクトリがいるか覗いてみましょう。
[neec@localhost /]$ ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
それぞれのディレクトリの用途は以下のようになります。最初からすべてを覚えなくても大丈夫です。必要に応じて一覧を参照してください。
ディレクトリ | 内容 |
---|---|
bin | コマンドなど実行可能なファイル |
boot | OSの起動に必要なファイル |
dev | デバイス用のファイル |
etc | 設定ファイル |
home | 一般ユーザーのホームディレクトリ |
lib,lib64 | 共有ライブラリ |
mnt,media | 外付けHDDなどの外部機器をマウントした際に利用する。 mntはユーザー、mediaはOSが使う。 |
opt | 追加アプリケーション |
proc | 実行中のCPUやメモリなどの情報を管理 |
root | 管理者(root)用のホームディレクトリ |
run | 実行中のプログラムを管理する |
sbin | 管理者用の実行可能なファイル |
srv | Webサーバやファイル(FTP)サーバのユーザー用のディレクトリなどに利用される |
sys | OSの情報 |
tmp | 一時的なファイル |
usr | 全ユーザーで利用するアプリケーションのインストール先 |
var | ログファイルやデータファイルなど |
ルートディレクトリからこの中のディレクトリへ移動するには同じようにcd
コマンドを利用します。
[neec@localhost /]$ cd bin
再びルートディレクトリへ戻るにはcd ..
でも良いのですが、もう一度cd /
コマンドを入力しても戻ることができます。cd /
を入力すると自分がどこにいたとしても必ずルートディレクトリへ移動することができます。
[neec@localhost bin]$ cd / [neec@localhost /]$
カレントディレクトリ
先ほどは一番上の階層であるルートディレクトリへ移動し、そのあとbinディレクトリへ潜りました。
このようにコマンドラインでは自分が立っている位置をcd
コマンドでどんどん変更することができます。自分が今現在立っているディレクトリのことを「カレントディレクトリ」と呼びます。
カレントディレクトリはpwd
コマンドで確認することができます。
[neec@localhost bin]$ pwd /bin
pwd
は「print name of current/working directory」の各頭文字を取ったものです。正式名称は覚えなくても大丈夫です、会話の中で出てくることはありませんw
ホームディレクトリ
もうひとつ特別なディレクトリ「ホームディレクトリ」があります。
Linuxなどのサーバは複数人で同時に利用することを想定して開発されています。実際に運用していると他の人に見られたくないファイル、もしくは見られても良いが自分しか使わないファイルをこの「ホームディレクトリ」へ保管します。ホームディレクトリはルートディレクトリの真下にいる「home」の下にユーザー毎に作成されます。
[neec@localhost /]$ cd /home [neec@localhost home]$ ls neec
ホームディレクトリはチルダ(~)という記号で表現することもできます。 ルートディレクトリにスラッシュ(/)だけで移動できたように、自分自身のホームディレクトリにもチルダ(~)だけで移動することができます。
[neec@localhost ~]$ cd /bin [neec@localhost bin]$ pwd /bin [neec@localhost bin]$ cd ~ [neec@localhost ~]$ pwd /home/neec
なおホームディレクトリはTerminalを起動した際の最初のカレントディレクトリでもあります。