Bash、常に$ PWDをパスの一部としてチェックしますか?

Bash、常に$ PWDをパスの一部としてチェックしますか?

背景:Linuxの背景知識のない私の同僚は、./いくつかのコマンドの前に使用し、他のコマンドは使用しないことについて尋ねました。だから私は彼にどのPATHように機能し、実行するバイナリを選択するかを説明しました。彼の反応は愚かだった。彼は./コマンドの前にそれを入力する必要がないことを望んでいました。

$PWD質問:シェルが常に最初の項目になるようにシェルの動作を簡単に変更する方法はありますかPATH

答え1

本当に必要な場合は、.パスの前に以下を追加することでこれを行うことができます。

export PATH=".:$PATH"

しかし、これはシェルが現在のディレクトリにあるすべてのコマンドを好むという意味なので、悪い考えです。誰か(またはプログラム)がlsよく使うディレクトリに悪意のあるコマンドを入れておくと、問題が発生します。

答え2

あなたの質問に対する直接的な答えではありませんが、最良の方法はbin次のようにホームディレクトリにディレクトリを作成することです/home/user/bin

mkdir -p "$HOME/bin"
echo 'PATH="$HOME/bin:$PATH"' >> "$HOME/.bashrc"
source "$HOME/.bashrc"

ここにプライベートスクリプトを入れてください。PATHあなたの個人的なスクリプトは、実行せずにあなたが定義した順序でナビゲートされ実行されます.

答え3

PATH変数の先頭に.が含まれている必要があります。

export PATH=".:$PATH"

関連情報