@ilkkachuのおかげで解決策を見つけました。ここに投稿し、コメントでも確認できます。
環境変数の設定を解除したいと思い、次の場所をすべて検索しました。
~/.bashrc
~/.profile
/etc/profile
/etc/environment
~/.bash_profile
/etc/bash.bashrc
/etc/profile.d/
見てわかるように、私は宿題をしましたが、この特定の環境変数が見つからないだけでなく、envコマンドが表示する環境変数もほとんど見つかりません。
ところで、私はDebian 10を使用しています。
PS:この質問は複数のフォーラムで何度も質問を受けたため、この問題を抱えている人は@terdonが提供する機能を使用するように答えます。残念ながら、これは私の問題を解決しません。しかし、一般的な状況では間違いなく動作します。
答え1
この種のタスクのための小さなbash機能があります。
grep_bash ()
{
grep --color -H "$@" ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2> /dev/null
}
これは、私が慣れているLinuxのさまざまなバージョンで一般的に使用されているほとんどの(すべての?)ファイルに対処します。~/.bash_aliases
私が知る限り、これにはUbuntuに関する内容が含まれています。また、検索していない標準ファイルも含まれています。最も重要なことは/etc/profile.d
。
変数が見つからない場合は、上記のいずれかのファイルから別のファイルをインポートする可能性が高くなります。すべてのソースファイル行をgrepしてから、その行も参照できます。
grep_bash -E '(\.|source) '
上記のファイルの1つが他のファイルをソースとするすべての行がリストされているため、変数はソースファイルの1つに定義されています。もちろん、これらのソースファイルは他のファイルのソースになる可能性があるため、より深く入る必要があるかもしれませんが、これは開始点になるはずです。
答え2
@ilkkachuのおかげで見つけましたこれに対する解決策。
回答の最後の部分は、起動時に発生する可能性があることを示しています(一般的ではありません)、このコマンドを使用して変数を検索したときに答えが見つかりfind /etc -type f -exec grep -F THE_VAR {} +
ました。