141

$PATH 変数で同じパスを 6 回定義しました。

機能するかどうかを確認するためにログアウトしていませんでした。

重複を削除するにはどうすればよいですか?

$PATH 変数は次のようになります。

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin

どうすればそれをリセットできますか

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
4

12 に答える 12

130

実行するだけです:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

これは現在のセッション用です。永続的に変更したい場合は、.bashrc、bash.bashrc、/etc/profile に追加します。システムとユーザーのニーズに合わせて何でも構いません。

注: これは Linux 用です。これは、新しいコーダーのために明確にします。(` , ') これらを SET = しようとしないでください。

于 2012-07-25T13:37:24.543 に答える
75

Bash を使用している場合、たとえば、変数/home/wrong/dir/からディレクトリを削除する場合は、次のこともできます。PATH

PATH=`echo $PATH | sed -e 's/:\/home\/wrong\/dir\/$//'`
于 2013-09-20T20:58:07.337 に答える
11

これは、PATHをクリーンアップする1行のコードです。

  • PATHの順序を乱すことはなく、重複を削除するだけです
  • 扱います:そしてパスを優雅にエンプします
  • 特殊文字は使用されていないため、エスケープは必要ありません
  • /bin/awkPATHが壊れていても機能するように 使用します

    export PATH="$(echo "$PATH" |/bin/awk 'BEGIN{RS=":";}
    {sub(sprintf("%c$",10),"");if(A[$0]){}else{A[$0]=1;
    printf(((NR==1)?"":":")$0)}}')";
    
于 2012-08-13T01:50:03.480 に答える
3
  1. ただecho $PATH
  2. 詳細をテキスト エディタにコピーする
  3. 不要なエントリを削除する
  4. PATH= # pass new list of entries
于 2019-03-05T07:45:01.067 に答える
1

これらの重複したパスを PATH 変数にどのように追加しましたか? ファイルの 1 つを編集している必要があり.ます。(特定のシステム/シェルに応じて.tcshrc、またはなど)。.bashrcこれを修正する方法は、ファイルを再度編集して、重複するパスを削除することです。

ファイルを編集していない場合は、対話的に PATH を変更したに違いありません。その場合、変更は「固定」されません。つまり、別のシェルを開くか、ログアウトして再度ログインすると、変更は自動的に失われます。

システム全体の構成ファイルもいくつかあることに注意してください。ただし、それらを変更した可能性は低いため、個人のホーム ディレクトリのファイルを変更する可能性が最も高いでしょう (一連のパスに落ち着いたら、それらの変更を永続的にしたい場合)。

于 2012-07-25T13:33:26.043 に答える
0

シェルがBashであると仮定すると、次のようにパスを設定できます

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

しかし、Levonが別の答えで言ったように、シェルを終了するとすぐに変更はなくなります。PATH~/.bash_profileまたはをセットアップすることをお勧めします~/.bashrc

于 2012-07-25T13:38:31.947 に答える
0

値を「編集」するための標準的なツールはありません$PATH(つまり、「フォルダーがまだ存在しない場合にのみフォルダーを追加する」または「このフォルダーを削除する」)。

次回ログイン時にパスを確認するには、telnet localhost(またはtelnet 127.0.0.1) を使用します。次に、ユーザー名とパスワードを要求されます。

これにより、新しいログイン シェル (つまり、現在の環境から何も継承しない完全に新しいシェル) が提供されます。

そこの値を確認し、$PATH正しくなるまでrcファイルを編集できます。これは、重要なファイルに変更を加えた後に再度ログインできるかどうかを確認するのにも役立ちます。

于 2012-07-25T13:40:42.647 に答える