この質問はベストプラクティスについてです。セキュリティシェルを介してログインしたり、ユーザーを切り替えたりすることがわかり、su
効果su -l
が異なります。また、設定に誤字があっても引き続きログインできるようにしたいです。色の定義を保存するのに理想的な場所はどこですか?これまで私はそれらをそこに入れました.bash_profile
。に保存できますか.bashrc
?
構成場所:
ArchWikiによると
/etc/profile
ソースアプリケーション/etc/profile.d/*.sh
はとに設定されています/etc/bash.bashrc
。~/.bash_profile
それ以降はユーザー別に/etc/profile
。~/.bash_login
(.bash_profile
見つからない場合)~/.profile
(.bash_profile
見つからない場合)/etc/skel/.bash_profile
ソースもあります~/.bashrc
。~/.bash_logout
/etc/bash.bashrc
-DSYS_BASHRC="/etc/bash.bashrc"
コンパイルフラグによって異なります。源泉/usr/share/bash-completion/bash_completion
~/.bashrc
それ以降はユーザー別に/etc/bash.bashrc
。
これを保存してみましょう。 2つの色定義があります。 1つはコマンドプロンプト用、もう1つはコマンド用ですls
。
set_prompt () {
Last_Command=$? # Must come first!
Blue='\[\e[01;34m\]'
White='\[\e[01;37m\]'
Redbold='\[\e[01;31m\]'
Greenbold='\[\e[01;32m\]'
Greenlight='\[\e[00;32m\]'
Blueintense='\[\033[00;96m\]'
Purplelight='\[\e[00;35m\]'
Yellowbold='\[\e[01;33m\]'
Graydark='\[\e[01;90m\]'
Reset='\[\e[00m\]'
FancyX='\342\234\227'
Checkmark='\342\234\223'
PS1="${Graydark}\t "
if [[ $Last_Command == 0 ]]; then
PS1+="$Greenlight$Checkmark "
else
PS1+="$Redbold$FancyX "
fi
if [[ $EUID == 0 ]]; then
PS1+="\\u@$Redbold\\h "
else
PS1+="$Greenlight\\u$White@$Redbold\\h "
fi
PS1+="$Graydark\\W $Redbold\\\$$Reset "
}
PROMPT_COMMAND='set_prompt'
set_ls () {
Default='0;0'
White='97'
Yellowbold='01;33'
Greenlight='00;32'
Purplelight='00;35'
Purplebold='01;35'
Whitelight='00;37'
Yellowlight='00;33'
Graydark='00;90'
# Highlight
Highlightpurpledark='45'
Highlightgraydark='100'
LS_COLORS="fi=$Greenlight:di=$White;$Highlightgraydark:*.tex=$Purplebold"
export LS_COLORS
}
set_ls
ベストアンサー1
環境変数を.bash_loginまたは.bash_profileに入れます。これは(エクスポート時に)サブシェルに継承され、各シェルに対してリセットする必要がないためです。実際にリセットするのは高価ではありませんが、サブシェル中に環境変数を別のものに設定したい場合に備えています。 .bashrcが設定をオーバーライドする場合、これを行うのは困難です。
他のすべて(関数を含む)については、.bash_loginとその友達がサブシェルから読み取られないので、.bashrcに入れようとします。 .bashrcは通常、構成ファイル/ログインスクリプトのいずれかを介して行われます。
もちろん、PS1の用途は若干異なります。 PS1を変更できる機能が欲しいからです。
(Bashの初期化ファイルは少し面白いです.ログインシェルはbash_profileと友達を読みますが、bashrcは読みません.ではありません。 https://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files)
.profile、.bash_profile、および.bash_loginの中から選択することは完全にあなた次第です。
タイプミスがある場合は、シェルを開いてスクリプトを変更してテストを実行してみてください。 :) 単純なタイプミスは重要ではありません。最悪の場合は、初期化スクリプトの読み取りを中断するか、残りの設定を混乱させることがあります。何らかの理由で.bashrcに「終了」がある場合を除いては、そうです。