PATH
gnome-terminalがシェルを呼び出すときに環境変数を変更した可能性があります。特には$HOME/.local/bin:$HOME/bin
常にに追加されますPATH
。
私はこれを証明するために次のような実験をしました。
- GNOME端末を開く
- 編集 - >基本設定 - >プロフィールに行き、現在のプロフィールを「編集」します(私は「名前なし」でした)。
- [コマンド]タブで、[マイシェルの代わりにカスタムコマンドを実行]を選択し、次の入力領域を入力します
sh
。これにより、ログインシェルではなくbash
-wayモードで呼び出す必要があります。sh
/etc/profile
、、を取得できないように、一時$HOME/.bash_profile
的$HOME/.bashrc
にそのファイルの名前を変更します。 (実際にはnon-loginを呼び出しているので、このファイルをインポートしないでくださいsh
。)次に、新しいgnomeターミナルウィンドウを開き、
echo $PATH
次を実行します。/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/naitree/.local/bin:/home/naitree/bin
最後の2つのパスがPATH
。
これらの事実に基づいて、次のような説明が可能だと思います。
PATH
この場合、親プロセスから継承されますgnome-terminal-server
。PATH
ある時点で神秘的に起動されたスクリプトで修正されました。sh
PATH
gnome-terminal-serverが子プロセスをフォークするときに修正されます。
今私は可能性#1と#2を排除したと思います。
cat /proc/$PPID/environ
PID$PPID
は、gnome-terminal-server
そのPATH
変数/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
に私たちが探しているものが含まれていないことを示します。sh
開いて実行したばかりのプロセスでは、export -n PATH
このsh -x
新しいinitプロセスにはどのソースも表示されませんsh
。そしてそれはPATH
きれいです:/usr/local/bin:/usr/bin
今、最後の可能性が残っています。
私は何を逃したことがありませんか?不思議な修正に対してgnome-terminalは責任がありますかPATH
?
修正する:
sh -x
カスタムコマンドで試しました。ゴンメターミナルを開けた後は何も見えません。しかしecho $PATH
そう言い、$HOME/.local/bin
そこ$HOME/bin
にありなさい。
以下は、リリースに関する情報です。
- Fedora 23(4.4.8-300.fc23.x86_64)
- bash バージョン 4.3.42(1)-リリース(x86_64-redhat-linux-gnu)
アップデート2:
今試してみました。
echo "$PATH"
最初に追加されました~/.bashrc
。- bashを使用してデフォルトの非ログインシェルモードでgnome-terminalを開き、カスタムコマンドを使用します
bash -x
。
デバッグ出力に基づいて、これが~/.bashrc
スクリプトソースの開始点であることを確認しました。しかし、$HOME/.local/bin
とは$HOME/bin
それ以前にも存在していましたPATH
。
答え1
PATH
最初に端末を/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
。
~/.bashrc
いつも疑わしい項目をすべて確認した後、、、、~/.bash_profile
で設定を変更してみました。しかし、私は結局まだそこにいます。/etc/bashrc
/etc/profile
DefaultEnvironment
/etc/systemd/system.conf
/etc/systemd/user.conf
/usr/local/...
PATH
pam_env
偶然への言及が見つかりました。だから、次の行を追加しました/etc/security/pam_env.conf
。
PATH DEFAULT=/bin:/sbin
再度ログインした後、ターミナルシェルは迷惑なPATH
ローカルパスを削除しました。
pam_env
systemd設定を変更した後、PID 1またはプロセスの両方がsystemd --user
環境にローカルパスがないため、デフォルトは次のものであると確信していますgnome-terminal-server
。
最新のLinuxは構成の悪夢となっています。
私はこれがOPの質問に対する答えではないことを知っています。しかし、言及する価値は十分なようです。
答え2
Fedoraのコメントによると、~/.local/bin をデフォルトパスに追加します。、これはFedora関連の変更です。強く打つ数年前の構成です。
変化はRPMで製作(上流ではない)文書化されていません。