Linuxサーバーを扱うにあたり、パスの動作を把握するのは効率を上げるためにも有効です。Linuxでのパス指定はいくつかのルールを知っていると便利に扱うことができます。

Linuxのパス

3年以内に更新されました。情報が古い可能性があります。
更新日 : 2021年05月12日

Linuxサーバーを扱うにあたり、パスの動作を把握するのは効率を上げるためにも有効です。Linuxでのパス指定はいくつかのルールを知っていると便利に扱うことができます。

パスの基本

絶対パス

まずは絶対パスでの指定方法です。絶対パスは、最上位のルートディレクトリ(/)から指定する方法で、権限さえあれば絶対パスでコンピュータ内のどこでも指定できます。

例えば、ルート直下の/tmp/というディレクトリに移動する場合には

$cd /tmp/

と書き、Enterで実行します。絶対パスでの指定の場合、最初にスラッシュ(/)を書いてルートディレクトリから辿るように指定をします。

相対パス

続いては相対パスです。相対パスは、自分が現在いるディレクトリから相対的に指定するパス指定です。

例を上げるためにまずは絶対パス指定で/usr/に移動しましょう。

$cd /usr/

これで/usr/に移動したことになります。/usr/ディレクトリには必ずlocalという名前のディレクトリが存在します。

相対パス指定でlocalに移動しましょう。

$cd local/

これを実行すると、現在のディレクトリは/usr/local/になります。

このように現時点でのディレクトリから見たディレクトリに移動するのが相対パスでの移動です。

特別なパス

相対パスには特別なものが2つ存在します。

  • ./
    現在いるディレクトリを示します。
  • ../
    現在いるディレクトリから1つ上位のディレクトリを示します。

ドット(.)を1つ書いてあげると現在いるディレクトリを示します。あなたが/usr/にいた場合には./ = /usr/となります。/tmp/にいれば./ = /tmp/です。

ドット(.)を2つ書いてあげると上位のディレクトリを示します。あなたが/usr/local/にいた場合には../ = /usr/となります。

このようにこの2つの相対パス指定は上位のディレクトリと現在のディレクトリを簡単に指定できる方法です。

これは何回も組み合わせることができ、例えばあなたが/usr/local/にいた場合に、../../と指定すると2つ上位のディレクトリを指定したことになり、cd ../../とすると/に移動できます。

さらに、現在ログインしているユーザーに基づき、ホームディレクトリを表す特殊なパスも存在します。

  • ~
    ログインユーザーのホームディレクトリを表します。

これはユーザー名が例えばvagrantであれば、~ = /home/vagrantを示します。ユーザーのホームディレクトリを簡単なパスで表すことができます。

rootユーザーだけはホームディレクトリが異なるので、rootユーザーの場合には~ = /rootを表します。

タブ補完機能

LinuxやUNIX系OSではbash・sh・zshというようなシェル(ターミナルの形式のようなもの)を利用することが多くあります。

これらのシェルはログインすると自動的に起動し、タブ補完機能というものが使えます。

タブ補完機能とは、パスを指定する際にタブキーを押すことにより欲しいパス情報を自動補完あるいは補完する候補を表示してくれる機能です。これはディレクトリでもファイルでも補完してくれます。

cdコマンドでタブ補完を試す

実際にcdコマンドでタブ補完を試してみましょう。

ルートディレクトリにはいくつかのディレクトリがあるのでそこでタブ補完を試してみましょう。

$cd /e ここでストップ

cd /eまで打ったあと、タブキーを一度押してみます。すると…

$cd /etc/

と自動で挿入してくれます。あとはEnterを押すだけで/etc/に移動できますね。

このようにパス指定をする段階で、タブキーを押すと機械的に判別できる部分を補完してくれます。今回は/eと入力した時点で、/etc/しか見当たらないのがわかり、自動補完されます。

次に/だけでタブ補完を試してみましょう。

$cd / ここでストップ

cd /まで入力後、タブを1度押しても何も補完してくれません。ところがさらにタブキーで2回目を押すと…

$cd /
.autorelabel  boot/         etc/          lib/          media/        opt/          root/         sbin/         sys/          usr/          var/
bin/          dev/          home/         lib64/        mnt/          proc/         run/          srv/          tmp/          vagrant/
$cd /

このように候補を表示(この場合ルートディレクトリの中から候補を出す)して再度入力を待機する状態になります。

あとは移動したいディレクトリを途中まで書き、先程のようにタブキーを押して補完してくれます。

このように、パス指定の際にタブキーを1度押せばその中で補完可能なところまでパスを補完してくれます。これ以上補完できない(候補が選べない)場合、2度目のタブキーが押されたときに、入力されたところまでで有力な候補の一覧を表示してくれます。

今回はルートディレクトリから指定してタブ補完をしましたが、相対パスでも有効です。

このようにタブキーを押すことで、候補の表示またはパスの補完をしてくれます。しかもEnterを押さない限り勝手にコマンドを実行されることもありません。なので、任意のタイミングでタブキーを連打しておけば間違いありません。(笑)

このタブ補完機能は余計なことをせず、何度も押しても特に害はないので、どんどん使って大丈夫です。