[練習]ディレクトリとファイルを操作するコマンドを使ってみましょう
Linuxコマンドの書式
絶対パスと相対パスのイメージはつかめたでしょうか? パスの考え方は多くのコマンドで必要になります。それではこのパスを意識しながら、コマンドの練習を始めたいと思います。ですがその前に、Linuxコマンドの書式を簡単に解説しておきましょう。
Linuxコマンド(以下、単にコマンドといいます)の書式は次のとおりです。
コマンド オプション... 引数...
「オプション」は、コマンドの処理をカスタマイズするために使用します。多くの場合、「-アルファベット
」(ハイフンが1つ)や「--英単語
」(ハイフンが2つ)の形式で指定します。指定できるオプションはコマンドごとに決まっており、1つのコマンドに複数指定できます。
「引数」は、コマンドを実行する対象を指定します。引数はコマンドによって必須の場合もあれば、必須でない場合もあります。「絶対パス」「相対パス」の考え方は、この引数を指定するときに必要になってきます。
練習1.カレントディレクトリを確認しましょう
カレントディレクトリ(=自分がいる位置)を確認するときには、pwd
コマンドを実行します。ターミナルでpwd
コマンドを実行してみましょう。
# pwd /root
表示された結果がカレントディレクトリです。「絶対パス」で表されており、この例の場合「/root」ディレクトリにいるということになります。自分がどこにいるか分からなくなったら、すぐさまpwd
コマンドを実行する「くせ」をつけましょう。
ルートディレクトリの話
練習1.に出てきた「/root」ディレクトリについて解説しておきます。
実は、Linuxには「ルートディレクトリ」という呼び方をするディレクトリが、初期状態(デフォルト)で2つあります。「/」と「/root」です。ただし、普通は「/」ディレクトリのことをいいます。話の最中など、どっちのことか分からなくなることがあるので、この2つの違いはしっかり押さえておきましょう。
「/root」は、rootユーザのホームディレクトリという意味です。ホームディレクトリは、各ユーザが自分の作業を行うためのディレクトリです。ログイン直後は各自のホームディレクトリにいます。ホームディレクトリは基本的に、「/home」ディレクトリ以下に、ユーザ名と同じ名前で作成されます。
ただし、「root」というユーザは特別で、管理者権限を持っています(スーパーユーザなどといいます)。そのため、他のユーザとは異なり、/homeディレクトリ以外の場所にホームディレクトリを持ちます。それが/rootディレクトリです。
今回はrootユーザでログインしているので、/rootディレクトリ配下で操作を行っていきます。
練習2.ディレクトリを移動してみましょう
ディレクトリを移動するときに使用するコマンドはcd
です。 引数に「移動先ディレクトリのパス」を指定します。cd
コマンドを実行してみましょう。
# cd /xxx/yyy bash: cd: /xxx/yyy: No such file or directory
移動先ディレクトリのパスは「絶対パス」「相対パス」いずれでも指定できます。「存在しないパス」を指定すると、この実行例のように「No such file or directory」エラーが発生します。
今度は、存在するディレクトリのパスを指定してみましょう。まずは絶対パスで指定してみます。
# cd /etc # pwd /etc
移動できていますね。相対パスも使ってみましょう。
# cd ../ # pwd /
1つ上のディレクトリに移動できていますね。では「.」を使ったパターンも。
# cd ./etc # pwd /etc
cd
コマンドでディレクトリを移動した後、どこへ移動したのかをpwd
コマンドで確認しています。ここで、「./etc」と「/etc」の違いが分かるでしょうか?
./etcは「今いる/(ルートディレクトリ)の下のetcディレクトリ」という相対パスですが、pwd
コマンドの結果表示されている/etcは絶対パスです。「.」があるかないかで意味が異なるのです。
なお、「今いるディレクトリ(=カレントディレクトリ)の下」を意味する「./」という記号ですが、実は省略可能です。確認してみましょう。/ディレクトリに移動し直してから、
# cd /
先ほどのコマンドを「./」を省略して実行してみましょう。
# cd etc # pwd /etc
「./」がなくても/etcディレクトリに移動できていますね。