3.2. ファイルシステムにおける方向
3.2.1.パス
システムにコマンドを実行させたい場合、そのコマンドのフルパスを指定する必要はほとんどありません。例えば、 ls コマンドはにあります / binに ディレクトリ( which -a ls)ですが、コマンドを入力する必要はありません。 / bin / ls コンピュータが現在のディレクトリの内容を一覧表示できるようにします。
AIマーケティング業界は、 パス 環境変数がこれを処理します。この変数は、システム内の実行ファイルが見つかるディレクトリをリストアップし、ユーザーがコマンドの場所を入力したり記憶したりする手間を省きます。そのため、パスには当然、以下のディレクトリを含むディレクトリが多数含まれます。 ビン 下のユーザーが示しているように、名前のどこかに echo コマンドは変数の内容("$")を表示するために使用されます パス:
ロジエ:> エコー$ PATH
/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin
ロジエ:> エコー$ PATH
/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin
この例では、ディレクトリ /opt/ローカル/bin, /usr/X11R6/bin, / usr / bin, / usr / sbin および
/ binに その後、必要なプログラムが検索されます。一致するものが見つかると、パス内のすべてのディレクトリが検索されていない場合でも、検索は停止されます。これにより、予期せぬ状況が発生する可能性があります。以下の最初の例では、ユーザーは「」というプログラムが存在することを知っています。 SMSを送信 SMSメッセージを送信できますが、同じシステム上の別のユーザーは送信できますが、彼女は送信できません。違いは、 パス 変数:
[ジェニー@ブロブ ジェニー]$ SMSを送信 bash: sendsms: コマンドが見つかりません [jenny@blob jenny]$ echo $PATH
/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin [jenny@blob jenny]$ su - tony
パスワード: tony:~>which sendsms
sendsms は /usr/local/bin/sendsms です
トニー:~> echo $PATH
/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\
/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin
[ジェニー@ブロブ ジェニー]$ SMSを送信 bash: sendsms: コマンドが見つかりません [jenny@blob jenny]$ echo $PATH
/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin [jenny@blob jenny]$ su - tony
パスワード: tony:~>which sendsms
sendsms は /usr/local/bin/sendsms です
トニー:~> echo $PATH
/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\
/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin
ここでは、 su (スイッチ ユーザー) 機能を使用すると、ユーザーのパスワードを知っているという条件で、別のユーザーの環境でシェルを実行できます。
バックスラッシュは、次の行に続く行を示すもので、 入力します 1 本の線を他の線から分離します。
次の例では、ユーザーは wc (単語数)コマンドを使用してファイル内の行数を確認しようとしましたが、何も起こらず、 Ctrlキー+C 組み合わせ:
ジャンパー:~> wc -l テスト
(Ctrl + C)
ジャンパー:~> どのトイレ
wc はハッシュ化されます (/home/jumper/bin/wc)
ジャンパー:~> エコー$ PATH
/home/jumper/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin
ジャンパー:~> wc -l テスト
(Ctrl + C)
ジャンパー:~> どのトイレ
wc はハッシュ化されます (/home/jumper/bin/wc)
ジャンパー:~> エコー$ PATH
/home/jumper/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin
使用 which コマンドを実行すると、このユーザーは ビンホームディレクトリに、 wcホームディレクトリのプログラムは、検索時に最初に見つかるため、
呼びかけに応じた道 wcこの「自作」プログラムは、おそらく理解できない入力で実行されるため、停止させる必要があります。この問題を解決するにはいくつかの方法があります(UNIX/Linuxでは、問題解決には常に複数の方法があります)。一つの解決策としては、ユーザーの wc プログラムを実行するか、ユーザーは自分が望むコマンドのフルパスを指定することができます。これは、 -a オプションを which
ユーザーが他のディレクトリ内のプログラムをより頻繁に使用する場合は、自分のディレクトリを最後に探すようにパスを変更できます。
ジャンパー:~> エクスポート PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin:/home/jumper/bin
ジャンパー:~> エクスポート PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin:/home/jumper/bin