cdによるディレクトリの変更

 ディレクトリの変更は、自分が今いる場所(現行ディレクトリ)が分かっていて、またそこが行き先とどのように関連しているのかが分かっているかぎり、簡単に行えます。希望するディレクトリは現行ディレクトリよりも上にありますか、それとも下にありますか。

 ディレクトリを変更するには、cdコマンドを使用します。他に何も指定しないでこのコマンドを使用すると、常にホームディレクトリに戻ります。それ以外のディレクトリに移動するためには、パス名を指定する必要があります。

 絶対パス名を使用することも、相対パス名を使用することもできます。絶対パスは、最上部の/(rootと呼ばれます)から始まり、要求されるディレクトリまで降りていきます。相対パスは、ユーザーがどこにいても、現行ディレクトリから降りていきます。下に示すツリーの例は、cdを説明するために示すものです。

/
directory1
directory2
directory3

 現在directory3にいて、directory1に切り替えたい場合には、ディレクトリツリーを上に向かって移動する必要があります。

 directory3にいるときに次のように入力すると、

cd directory1

そのようなディレクトリがないことを示すエラーメッセージが出されます。これは、directory3の下にはdirectory1がないからです。

 directory1まで上に移動するためには、次のように入力します。

cd /directory1

これは絶対パスであり、Linuxに対して、最上部から始めてdirectory1が見つかるまで下に降りるように指示しています。

 絶対パスを使用すると、どのディレクトリからどのディレクトリにも移動することができ、相対パスを使用すると現行ディレクトリよりも下にだけしか移動できないことを覚えておいてください。

Figure 10-3. 絶対パス名ではフルパスを指定します

Tip絶対パスと相対パスの見分け方
 

あるパスの最初の文字が/であれば、そのパスは絶対パスであり、 そうでない場合には、相対パスです。

Figure 10-4. 相対パス名は現在位置を基準にします

 絶対パスと相対パスに関する練習をしておきましょう。ホームディレクトリから、次のように相対パスを入力してください。

cd ../../etc/X11

 cd ..は、現在ユーザーが作業を行っているディレクトリのすぐ上のディレクトリに移動するように、システムに対して指示するものです。もちろん、cd ../..は、ディレクトリを2階層上に移動することを指示しています。

 上の例のコマンドを使用すると、/X11というディレクトリに移動します。これは、X Windowシステムに関連する設定ファイルおよびディレクトリが入っているディレクトリです。

 最後のcdコマンドに注目してください。これは、システムに対して次のように指示することを意味します。

  1. ログインディレクトリの親ディレクトリ(おそらく、/home)まで1レベル上に移動しなさい

  2. さらに、そのディレクトリの親(/ディレクトリ)まで上に移動しなさい

  3. そして、下に向かってetcディレクトリに移動しなさい

  4. 最後に、/X11ディレクトリに移動しなさい

 絶対パスを使用すると、/X11ディレクトリに素早く移動することができます。次のように入力してください。

cd /etc/X11

 これで、目的のディレクトリに移動できます。

Note自分の居場所を知る方法
 

行きたいディレクトリやファイルへの相対パスを記述する前に、自分が現在どの作業ディレクトリにいるかを常に確認してください。ただし、他へのディレクトリやファイルへの絶対パスを記述するときは、ファイルシステムのどこにいるかなどは気に掛ける必要はありません。はっきりしないときには、pwdと入力してください。

Table 10-1. cdのオプション

コマンド機能
cdログインディレクトリに戻ります
cd ~やはり、ログインディレクトリに戻ります
cd /システム全体のルートディレクトリに移動します
cd /rootインストール時に作成されたroot(あるいはスーパーユーザー)アカウントのホームディレクトリに移動します
cd /homeホームディレクトリに移動します(通常はここにユーザーのログインディレクトリが保管されます)
cd ..1つ上のディレクトリに移動します
cd ~otheruserotheruserから許可を得ている場合にはotheruserの ログインディレクトリに移動します
cd /dir1/subdirfooこの絶対パスを指定すると、どのディレクトリにいるのかにかかわらず、dir1のサブディレクトリであるsubdirfooに直接移動します
cd ../../dir3/X11この相対パスを指定すると、ルートに向けて2階層上のディレクトリまで移動してからdir3に移動し、さらにX11ディレクトリに移動します

 これで、ディレクトリの変更方法が分かってきたと思いますので、rootのログインディレクトリ(スーパーユーザーアカウント)に移動したときにどのようなことが起こるのかを見てみましょう。次のように入力してください。

cd /root

rootとしてログインしていないので、そのディレクトリへの「アクセスが拒否」されてしまいます。

 rootや他のユーザーのログインディレクトリへのアクセスを拒否することは、偶発や故意による不正操作からLinuxシステムを保護する1つの方法です。the section called 所有権と権限を参照してください。

 rootログインに変更するためには、suコマンドを使用します。次の一連のコマンドを入力してください。

[newuser@localhost newuser]$ su
Password: your root password
[root@localhost newuser]# cd /root
[root@localhost /root]#

 rootのパスワードを入力するとすぐに、スーパーユーザーを示すコマンドプロンプトに変化したことがわかります。プロンプトの先頭にあるアカウント名がrootになり、プロンプトが「#」になります(Figure 10-5を参照)。

Figure 10-5. rootになる

 これで、rootのログインディレクトリへのcdを入力するとアクセスが許可されるようになります。

 rootとしての作業が終了したら、プロンプトでexitと入力します。

[root@localhost /root]# exit
exit
[newuser@localhost newuser]$