echo $PATH
重複出力を実行するとスナップ/bin:/スナップ/bin最後に現れて、珍しいようです。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
この重複は望ましくないのでしょうか? もしそうなら、どうすれば変更できますか?
答え1
おそらく、 または~/.bashrc
には、がまだ にあるかどうかを事前に確認せずに に~/.profile
追加するコマンドがあります。/snap/bin
$PATH
$PATH
変数内の重複エントリは、$PATH
にあるコマンドを実行するときには影響を及ぼさないことに注意してください$PATH
。一方、 にないコマンドを実行すると、速度低下が発生する可能性があります$PATH
(重複エントリが存在すると、コマンド検索が無駄に 2 回以上実行されるため)。ただし、この速度低下を認識するのは難しいと思います。変数を視覚的に確認したい場合にも、重複エントリは少し煩わしいものです$PATH
。
の重複エントリを避けたい場合は$PATH
、ファイルにこのコマンドを追加することができます~/.profile
(つまり、環境変数に最適な場所):
# remove duplicated paths in PATH variable
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"
このコマンドは、変数awk
内のすべての項目$PATH
(文字によって区切られています:
) を識別し、$PATH
重複したフォルダーの再追加を回避して変数を再構築するために使用されます。また、変数内のフォルダーの元の種類も保持されます$PATH
。
お好みのテキスト エディターで開くことができます~/.profile
。ターミナルで開く場合は、sudo
ユーザーの所有物なので必要ありません。