ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ありません。

このブログではサイドバーに広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLatexのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

【Linux】作業対象のディレクトリを移動するcdコマンド

データはファイル単位とディレクトリ構造で管理されている

Linuxでのファイル管理システムは階層構造を持っている。生物の進化を示す分岐図のような、ちょうど木のような構造図として表されることもあるため、木の構造(ツリー構造)と言い表されている。木の構造のそれぞれの枝はディレクトリと名付けられており、すべてのデータはファイルという単位にまとめられて特定のディレクトリに置かれている。ディレクトリの中にはさらにディレクトリを置くことができるため、ディレクトリは階層的になり、全体としては木の枝のような構造をしている。

木のようなディレクトリの構造の根元(ルート)にあたる部分は、その比喩された意味からしてそのままルート(root)ディレクトリと名付けられている。ルート(root)ディレクトリは、あらゆるディレクトリを包括するディレクトリであり、すべてのディレクトリをその配下に置いている根本的なディレクトリである。そして、ファイル管理システムの最高管理権限はルート(root)権限と名付けられ、ルート権限のパスワードを持っている管理者がその全管理権限を持つとともに、その最高責任を負っている。

データの管理作業は特定のディレクトリ上で行われる

Linuxを基本ソフトとして搭載しているコンピュータにおいて、データを管理するファイル操作は特定のディレクトリ上で行われ、そのディレクトリは作業(カレント)ディレクトリと名付けられている。コマンドラインインタプリタを使って、すなわち、コマンド入力によってLinuxに働きかけたりLinux上でファイルを操作するために設計されたアクセス方法を使って、ディレクトリ間を移動するためには、cdというコマンドが一般的に使われている。

Linuxでもっとも標準的に使われているコマンドラインインタプリタ(Linuxではシェルとも呼ばれている)はbashである。bashが起動すると画面上には次のような文字列が一般的に現れる。

aaa@bbb:~$

「aaa」とある部分にはユーザー名を意味する任意の文字列が表示され、「bbb」とある部分にはホスト名を意味する任意の文字列が表示される。「~」の部分は本来なら「/ディレクトリ名」というように作業ディレクトリ名が表示されるが、「~」とあるのはログイン中のこのユーザー自身のホームディレクトリにいることを示している。「$」はプロンプトと言われている記号である。プロンプトが表示されている状態は、コマンドラインインタプリタがユーザーからの入力を待っていることを意味する。Bashの場合「$」は一般ユーザーに対するプロンプト記号であることを意味し、ルートユーザーに対するプロンプト記号には「$」の代わりに「#」が用いられている。

root@bbb:/home/aaa#

「/home/aaa」は作業ディレクトリを絶対パスで表示している。絶対パスとは、ルートディレクトリから作業ディレクトリまでを包含するすべての階層を示している。記号「/」はディレクトリの階層を示しており、「home/aaa」はhomeという名のディレクトリ内のaaaという名のディレクトリを指している。homeという名のディレクトリの左に「/」とだけあるのはそれがルートディレクトリであることを示している。要するに「/home/aaa」は、ルートディレクトリの中のhomeという名のディレクトリの中のaaaという名のディレクトリを意味していることになる。

作業対象のディレクトリ(作業ディレクトリ)を替える

作業の対象にするディレクトリ、つまり、作業(カレント)ディレクトリを切り替え、別のディレクトリに移動するには、cdというコマンドを使って「cd ディレクトリ名」と入力し、Enterキーを押す。「ディレクトリ名」の部分には作業対象となる任意のディレクトリ名が実際には入る。試しに、作業対象のディレクトリを/var/logにしてみる。

aaa@bbb:~$ cd /var/log
aaa@bbb:/var/log$

プロンプト「$」の左隣りの「~」が「/var/log」になったことが分かる。作業ディレクトリがユーザーのホームディレクトリから「/var/log」ディレクトリに替わった証である。

aaa@bbb:/var/log$ cd ..
aaa@bbb:/var$

上のように、「cd 作業ディレクトリ名」の作業ディレクトリ名の代わりに「..」と入力すると、作業ディレクトリだったディレクトリのすぐ左の階層(木構造でいえばすぐ下の階層)に移動する。「/var/log」ディレクトリが作業ディレクトリだった場合は「/var」を「..」は指していることになる。「..」は「../」と入力してもよい。

作業ディレクトリ内、木構造で言えばつまり、作業ディレクトリのすぐ上にあるディレクトリは相対パスで示すことができる。「..」も相対パスの示し方の一種である。

aaa@bbb:/var$ cd log
aaa@bbb:/var/log$

logという名のディレクトリは、varという名のディレクトリのすぐ上(すぐ左)にあるので、相対パスで「log」と入力してやるだけで、コマンドラインインタプリタ(シェル)はlogという名のディレクトリがどこにあるlogという名のディレクトリなのかすぐさま理解し、/var/logへと作業ディレクトリの場所を移動してくれることが分かる。

aaa@bbb:/var$ cd -
aaa@bbb:/var$

「-」を利用すれば直前にいたディレクトリへ戻ることができる。直前には/varにいたので、「cd -」を実行すると作業ディレクトリが/varに替わったことを上の例は示している。

aaa@bbb:/var$ cd /
aaa@bbb:/$

「/」はルートディレクトリを示している。「cd /」を実行するとルートディレクトリへ作業ディレクトリを移動できる。ユーザーのホームディレクトリに戻るには、先ほど説明した「~」を使う。

aaa@bbb:/$ cd ~
aaa@bbb:~$

「:/$」が[:~$]に変わったことを確認できる。

cdコマンドは-Lと-Pというオプションを持っているが、これらはシンボリックリンクの機能と関わっている。このオプションについてはまた別の機会に・・・

コメント

このブログの人気の投稿

LATEXで数式:指数と順列などで使う添数・添字

10の補数と9の補数と2の補数と1の補数

Visual Studio 2019にはC++のためのフォームデザイナーがない件