このセクションでは自宅サーバーとしてLinuxを扱ううえで役に立つ基本操作基礎知識テクニックについて初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
LinuxOSの使いこなし術

LinuxOSを使いこなす

クライアントOSとの違い

絶対パスと相対パス

"パスが通っている"とは?

"/"と"."と".."の意味

"."(ドット)ファイルについて

ワイルドカードと正規表現

コマンドの強制終了

コマンド操作の補完機能

コマンド操作の履歴機能

リダイレクトとパイプ

属性とパーミッション〜その1

属性とパーミッション〜その2

アカウント情報ファイルの操作

ランレベルについて

システムが起動しないときは

ハードディスクの増設

アプリケーションの導入法


"パスが通っている"とは

WBEL CentOS 上で実行される様々な コマンド スクリプト は、 "/bin/" "/usr/bin/" などの中に収められた 「実行ファイル」という形で提供されています。

「コマンドを実行する」という行為は、その実行ファイルの名前をタイプすることに他ならないのですが、実行するにあたっては "/bin/" "/usr/bin/" カレント ディレクトリである必要はありません。どのディレクトリからでもコマンド名のみで実行可能です。

これはどういう仕組みになっているかというと、 "/bin/" "/usr/bin/" などのディレクトリに、 「その中の実行ファイルを任意のディレクトリから パス の指定なしに実行できる。」という許可が与えられているからです。

その許可は、 環境変数 "PATH" によって与えられます。

環境変数"PATH"は、 printenv コマンドで調べることができます。

[tanaka@web1 ~]$ printenv PATHEnter
/usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home
/tanaka/bin    ←↑環境変数"PATH"。
[tanaka@web1 ~]$

ここで表示される ":" で区切られた各ディレクトリ内の実行ファイルが、パスの指定なしに実行されることになりますが、このディレクトリが 「パスが通っている。」 と表現される場所になります。

複数のパスが通っていて、それぞれのディレクトリに同じ名前の実行ファイルがある場合には、向かって左側に記述されたディレクトリの中のファイルが優先されます。

"パスが通っていない"場所の実行ファイル

パス が通っていないディレクトリにある実行ファイルは、明示的にパスを指定する必要があります。

パスは、 絶対パス でも 相対パス でもかまいません。

[root@web1 ~]# /etc/init.d/httpd startEnter
httpdを起動中:       [ OK ]
[root@web1 ~]#

ということは、 cd コマンド カレント ディレクトリを"/etc/init.d/"をに移動すれば、パスを指定することなく httpd を実行できそうですが、実はそれはできません。

[root@web1 ~]# cd /etc/init.d/Enter
[root@web1 init.d]# httpd startEnter   これでは実行できません。

パスが通っていないディレクトリにある実行ファイルは、たとえカレントディレクトリにあっても必ずパスを明示しなければならないようになっています。

[root@web1 init.d]# /etc/init.d/httpd startEnter   これで実行できます。

カレントディレクトリの実行ファイルは、"." 自身のディレクトリの表記方法の説明 を利用すれば、簡単な相対パスで実行することもできます。

[root@web1 init.d]# ./httpd startEnter   これでも実行できます。

なぜこのような「まどろっこしい仕組み」になっているのか不思議に思われるかもしれませんが、実はちゃんとした理由があります。

bash では、既存の コマンド スクリプト を利用して、様々な実行ファイルを作成することができます。

それを作成するのが自分一人ならばあまり問題にはならないのですが、例えば他のユーザーが"pwd"という名前でホームディレクトリに独自のスクリプトを作成したとします。

そしてもし、カレントディレクトリの実行ファイルをそのまま実行できるのだとすれば、あなたが"root"で ログイン して、そのユーザーのディレクトリ内でpwdを実行してしまったらどうなるでしょう。 pwd でカレントディレクトリを調べるつもりが、別のユーザーが作った全然別のスクリプトが実行されてしまうことになります。

こういう間違いを防ぐために、パスの通っていないディレクトリでは実行ファイルの直接指定による実行ができないようになっている訳です。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。