LaTEXをインストールしたばかりで、$PATH
コマンドを使用できるように変数にパスを追加する必要があります。/usr/local/texlive/2015/bin/x86_64-linux
PATHにpath()を追加しようとしましたが、.bash_profile
端末を再起動するとecho $PATH
追加の内容は表示されません。私が追加した関連コード:
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/texlive/2015/bin/x86_64-linux
export PATH
パスを追加しようとしましたが、/etc/profile
成功しませんでした。どんなアドバイスも本当にありがとうございます。
答え1
あなたのコードは正しいです。位置が正確であっても正確でない場合もあります。.bash_profile
ログインシェルがbashでテキストモード(テキストコンソールまたはネットワーク経由)でログインしている場合は、この情報を読みます。ただし、ほとんどのシステムでグラフィカルプロンプトにログインすると、読み込みではなく.bash_profile
読み込み.profile
中です。重複を避けるために、すべての環境変数の割り当てを入力し、.profile
次のコードを使用して.bash_profile
対話型ログインシェルと非対話型ログインシェルの両方に対して正しい操作を実行することをお勧めします。
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
PATH
に環境変数定義を入れないでください.bashrc
。これは、プログラムが端末から呼び出される場合にのみ機能します。たとえば、エディタがLaTeXを自動的に実行しようとすると機能しません。
.profile
(または.bash_profile
)はログインした状態でのみ読み取られるため、ログアウトしてから再度ログインするまで設定は適用されません。ターミナルPATH=…
にコマンドを入力(または貼り付け)して、ターミナル(そのターミナルから起動したプログラムを含む)に設定を適用できます。一部のデスクトップ環境とウィンドウマネージャでは、環境変数を変更できます。これを行う方法は、デスクトップ環境によって異なります。
答え2
.bash_profile
ログイン中は読み取り専用で、端末を開くのはログインではありません。.bashrc
インタラクティブシェルが読みやすいようにコードに追加する必要があるかもしれません。
この問題に関する詳細な議論は、次のとおりです。この問題
答え3
Gillesの答えは、ログインではなく対話型シェルを考慮しません。
要約:
対話型環境と非対話型環境の両方にPATHを追加する必要がある場合は、次のようないくつかのシナリオを考慮する必要があります。
- 非ログインインタラクティブbashシェル
.profileまたは.bash_profileではなく.bashrcのみを読み込みます。
- インタラクティブbashシェルにログイン
.profileを読む(.bashrcはデフォルトで.profileから読み込まれます)
または.bash_profile(存在する場合)
- 非対話型シェルにログイン
読み取り専用.profile(または.bash_profile(存在する場合))
.bashrcはデフォルトで読み取られず、.profileで.bashrcを検索すると、以下のようにtrueが返されないはずです。
if [-n '$BASH_VERSION'];
- 非ログイン非対話型シェル
基本的には何も読みません。
注:私の答えは完全に正確ではないかもしれません。
源泉:
- https://askubuntu.com/questions/247738/why-is-etc-profile-not-invoked-for-non-login-shells
- 完全に正確ではありません。間違った部分は、非対話型シェルが呼び出さないことです。
.bashrc
- 完全に正確ではありません。間違った部分は、非対話型シェルが呼び出さないことです。
- https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
もっと:
テストログイン非対話型状況
非対話型でログインしたときに.profileがどのように機能するかをテストするには、if elseステートメントの下のファイルにいくつかのエコーを追加します。
~/.profile
if [ -n '$BASH_VERSION'];
then
echo test > test.txt
else
echo bash version missing > test.txt
fi