PATH
私の環境変数に不要なパスが追加されました。
犯人をどのように見つけることができますか?
私はすでに見ました:
- ~/.bashrc
- ~/.bash_profile
- /etc/bashrc
- /etc/設定ファイル
- /etc/環境
答え1
これはおそらく過剰である可能性があり、スクリプトを実行する順序を追跡して(もちろん)見つけることを試みる必要がありますが、時々ツリーを解析するのは困難です。したがって、簡単にgrepして見つけることができます。
grep --regexp='PATH=.*/path/that/you/try/to/find' --binary-files=without-match -r /
これは非常に長いプロセスであり、プロセス全体の間にハードドライブが正しく機能しないことに注意してください(基本的に持っているすべてのテキストファイルを読みます)。
答え2
努力する:
grep -rF --binary-files=without-match ':/the/undesired/path' / 2> /dev/null
または、/the/undesired/path
これは$UNKNOWN_VARIABLE_NAME_FOR_THE_UNDESIRED_PATH
明らかに動作しません。
/home/user/undesired/path
これは通常として指定されます$HOME/undesired/path
。
:
変数の割り当てを取得せずに同じタスクを実行します。
grep -rF --binary-files=without-match '/the/undesired/path' / 2> /dev/null
それでも問題が解決しない場合は、すべてのPATH
タスクを見つけて手動でフィルタリングしてください。
grep -rwF --binary-files=without-match 'PATH=' / 2> /dev/null
答え3
find
そして個々にファイルを見つけて検索するには、各ファイルのページをxargs
参照してください。man
sudo find / -type f -print0 | \
xargs -0 --no-run-if-empty \
grep -l 'PATH'
PATHを参照するすべてのファイル名をリストします。追加
| xargs less
ファイルを見る。
わかる限り/some/deep/path/bin
で表現できるので検索できません。$SDP/bin