ユーザー固有の環境変数、エイリアス、変数の変更などを~/.bashrc
指定する唯一の場所ですか?PATH
~/.bashrc
- しかないみたいでよかったですがbash
、他の殻も存在します...
答え1
このファイルは、$HOME/.profile
bash、sh、dashなどを含む多くのシェルで使用されます。
Bashのマニュアルページから:
bashが対話型ログインシェルとして呼び出されると、まず/ etc / profileファイル(ファイルがある場合)からコマンドを読み取り、実行します。ファイルを読み込んだら、~/.bash_profile、~/.bash_login、~/.profile を順番に探して、存在して読み取れる最初のファイルからコマンドを読み込んで実行します。
cshとtcshは明示的には見ていませんが、~/.profile
これらのシェルは少し古いです。
答え2
~/.profile
は、ログイン時に実行される環境変数定義および非グラフィックプログラム(たとえばssh-agent
)screen -m
の正しい場所です。これは、Bourneスタイルのシェル(sh、ksh、bash)の場合はログインシェルによって実行されます。代わりにZshが実行され、~/.zprofile
Cshとtcshが実行されます~/.login
。
Xディスプレイマネージャ(xdm、gdm、kdm ...)にログインしている場合、~/.profile
これが機能するかどうかは、ディストリビューションがディスプレイマネージャとデスクトップ環境をどのように設定したかによって異なります。これは通常、「カスタムセッション」にログインした場合に行われます~/.xsession
。
~/.bashrc
エイリアス、関数、シェルオプション、プロンプトなど、bash関連の設定の正しい場所です。名前が示すように、これはbashに固有のものです。 cshにはit ~/.cshrc
、kshにはit ~/.kshrc
、zshには<drumroll>があります~/.zshrc
。
また見なさい:
答え3
汎用ファイルはありませんが、すべてのシェルを汎用ファイルから読み取ることができます。
bash
読ん.bash_profile
だり.bashrc
zsh
次から読む.zprofile
そして.zshrc
ksh
読ん.profile
だり$ENV
だからこれが私がしたことです:
~/.env
# Put environment variables here, e.g.
PATH=$PATH:$HOME/bin
~/.shrc
test -f "$HOME/.env" && . "$HOME/.env"
# Put interactive shell setup here, e.g.
alias ll='ls -l'
PS1='$PWD$ '
set -o emacs
~/.bashrc
test -f ~/.shrc && source ~/.shrc
# Put any bash-specific settings here, e.g.
HISTFILE=~/.bash_history
shopt -s extglob
IGNOREEOF=yes
~/.zshenv
# Put any zsh-specific settings for non-interactive and interactive sessions, e.g.
setopt braceexpand
setopt promptsubst
setopt shwordsplit
~/.zshrc
test -f ~/.shrc && source ~/.shrc
# Put any zsh-specific interactive settings here, e.g.
HISTFILE=~/.zsh_history
setopt ignoreeof
~/.profile
# Interactive sub-shells source .env, unless this is bash or zsh,
# because they already sourced .env in .bashrc or .zshrc.
if test -z "$BASH_VERSION" -a -z "$ZSH_VERSION" || test -n "$BASH_VERSION" -a \( "${BASH##*/}" = "sh" \)
then
test -f "$HOME"/.env && . "$HOME"/.env
fi
# The name is confusing, but $ENV is ksh's config file for interactive sessions,
# so it's equivalent to .bashrc or .zshrc.
# Putting this here makes running an interactive ksh from any login shell work.
test -f "$HOME"/.shrc && export ENV="$HOME"/.shrc
# Put any login shell specific commands here, e.g.
ssh-add
stty -ixon
~/.bash_profile
source ~/.bashrc
source ~/.profile
~/.zlogin
# zsh sources .zshrc automatically, only need to source .profile
source ~/.profile
~/.zprofile
(empty)
システムへのルートアクセス権がある場合は、他の方法はpam_env
。
あなたは置くことができます
session optional pam_env.so user_envfile=.env
関連/etc/pam.d
ファイル(Debianなど)に保存し、ユーザー/etc/pam.d/common-session
がログインしたら。PAM
~/.env
デフォルトではアイテムのみがpam_env
サポートVAR=value
されています。
追加情報:
答え4
定義される方法もシェルによって異なるため、さまざまなシェルの環境設定ファイルのようなものはありません。
cshとsetenv
bashで使用してexport
定義します。
とにかく、独自の設定ファイルを作成してsource
シェルのドットファイルに含めることができます。