回答:
$ PATHは、コマンドの検索に使用される環境変数です。〜はホームディレクトリであるため、〜/ binは/ home / user / binになります。通常のディレクトリです。
たとえば、シェルで「ls」を実行すると、実際には/ bin / lsプログラムが実行されます。正確な場所は、システム構成によって異なる場合があります。これは、/ binが$ PATHにあるために発生します。
パスを表示して、特定のコマンドが配置されている場所を見つけるには:
$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls # searches $PATH for an executable named "ls"
/bin/ls
$ ls # runs /bin/ls
bin desktop documents downloads examples.desktop music pictures ...
$ /bin/ls # can also run directly
bin desktop documents downloads examples.desktop music pictures ...
独自のプライベートbinディレクトリを作成するには、パスに追加するだけです。これを行うには、〜/ .profile(隠しファイル)を編集して以下の行を含めます。行にコメントが付けられている場合は、コメントを外すだけで済みます。彼らがすでにそこにいるなら、あなたはすべて準備ができています!
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
ここで〜/ binディレクトリを作成する必要があります。ログイン時に.profileが実行され、その時点で〜/ binが存在する場合にのみ追加されるため、更新されたPATHを表示するには再度ログインする必要があります。
テストしてみましょう:
$ ln -s $(which ls) ~/bin/my-ls # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls # lookup through $PATH
bin desktop documents downloads examples.desktop music pictures ...
$ ~/bin/my-ls # doesn't use $PATH to lookup
bin desktop documents downloads examples.desktop music pictures ...
type実際のコマンドがシェルによってどのように解決されるかを確認するために使用すると便利です。例えば:which echoとtype echo異なることを報告し、whichリターン「/ binに/エコー」が、「タイプ」に戻り、それはシェルが「/ binに」内のファイルをオーバー好むでしょうシェル組み込み、だという。
whichによって、typeまたはcommand対話型シェルでより適切に置き換えられ、スクリプトではまったく役に立ちません。
$HOME変数は$PATH何らかの理由で機能しません。つまり、~代わりに符号を使用する必要があります。
~/binユーザーのみが利用できるコマンド/プログラムについて
最近のUbuntuバージョンでは、ディレクトリが存在している場合にのみ、ディレクトリが~/binディレクトリに含まれます。$PATH~/bin
存在しない場合:
に~/.profile次のスタンザが含まれていることを確認します(デフォルトでは~/.profile既に含まれています)。
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
~/binディレクトリを作成します。
mkdir -p ~/bin
コンピューターを再起動するか、bashに再読み込みを強制します~/.profile。
exec -l bash
exec -l bash」ヒントをありがとう。-lフラグは何をしますか?で説明が見つかりませんman exec。
exec -lログインシェル[ wiki.bash-hackers.org/commands/builtin/exec]としてbashを実行します。要するに、bashに強制的に再読み込み/etc/profileとを強制し~/.profileます。実行exec bashするだけで再読み込みのみ~/.bashrcです。