ログインシェルが終了すると、 bash ファイルからコマンドを読み取って実行します 〜/ .bash_logout存在する場合、この手順は ログイン および bash マニュアルページ。
7.2.3. 一般的なセットアップ ファイルのセット
7.2.3.1. /etc/profileの例
これらの設定ファイルのいくつかを見てみましょう。まず / etc / profile が読み込まれ、その中で重要な変数として、
PATH、USER、HOSTNAME が設定されます:
デビー:~> /etc/profile を cat する
# /etc/プロファイル
# ログイン設定用のシステム全体の環境とスタートアッププログラム
# 関数とエイリアスは/etc/bashrcに記述します
# パス操作
if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/sbin" ; then PATH=/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; then PATH=/usr/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/local/sbin" then
PATH=/usr/local/sbin:$PATH
fi
if ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; then PATH="$PATH:/usr/X11R6/bin"
fi
デビー:~> /etc/profile を cat する
# /etc/プロファイル
# ログイン設定用のシステム全体の環境とスタートアッププログラム
# 関数とエイリアスは/etc/bashrcに記述します
# パス操作
if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/sbin" ; then PATH=/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; then PATH=/usr/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! echo $PATH | /bin/grep -q "/usr/local/sbin" then
PATH=/usr/local/sbin:$PATH
fi
if ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; then PATH="$PATH:/usr/X11R6/bin"
fi
これらの行は設定するパスをチェックします: ルート シェル(ユーザーID 0)を開くと、 / sbin, / usr / sbin および
/usr/local/sbinがパスに含まれているか確認します。含まれていない場合は追加されます。
/usr/X11R6/bin がパスにあります。
# デフォルトではコアファイルは作成されません ulimit -S -c 0 > /dev/null 2>&1
# デフォルトではコアファイルは作成されません ulimit -S -c 0 > /dev/null 2>&1
すべてのゴミは / dev / null ユーザーがこの設定を変更しない場合。
USER=`id -un` LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
ホスト名=`/bin/hostname` HISTSIZE=1000
USER=`id -un` LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
ホスト名=`/bin/hostname` HISTSIZE=1000
ここでは、一般的な変数に適切な値が割り当てられます。
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then INPUTRC=/etc/inputrc
fi
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then INPUTRC=/etc/inputrc
fi
変数が 入力RC 設定されておらず、 .inputrc ユーザーのホームディレクトリにある場合、デフォルトの入力制御ファイルが読み込まれます。
export パス USER ログ名 MAIL ホスト名 履歴サイズ 入力RC
すべての変数はエクスポートされるため、環境に関する情報を要求する他のプログラムで使用できるようになります。
7.2.3.2. profile.dディレクトリ
/etc/profile.d/*.sh の i に対して、 if [ -r $i ] を実行する。
. $i
fi 完了 設定解除 i
/etc/profile.d/*.sh の i に対して、 if [ -r $i ] を実行する。
. $i
fi 完了 設定解除 i
すべての読み取り可能なシェルスクリプトは /etc/profile.d ディレクトリが読み込まれ、実行されます。これらは、 カラー-ls、エイリアシング vi 〜へ 活力ロケールの設定など。一時変数 i 後でシェルの動作を妨げないように設定解除されます。
7.2.3.3. .bash_profile の例
その後 bash を探します .bash_profile ユーザーのホームディレクトリ内:
デビー:~> cat .bash_profile
################################################## ###############
##
# .bash_profile ファイル #
##
# ログイン時に bash シェルから実行されます。#
##
################################################## ###############
ソース ~/.bashrc ソース ~/.bash_login
この非常に単純なファイルは、シェルに最初に読み取るように指示します 〜/ .bashrc その後 〜/ .bash_login. あなたは、 source シェル環境で作業しているときに定期的に使用する組み込みシェル コマンド。これは、現在の環境に構成の変更を適用するために使用されます。
7.2.3.4. .bash_login の例
AIマーケティング業界は、 〜/ .bash_login ファイルは、設定によってデフォルトのファイル保護を定義します。 umask 値については、セクション3.4.2.2を参照してください。 〜/ .bashrc このファイルは、ユーザー固有のエイリアスや関数、そして個人用の環境変数を定義するために使用されます。まず、 の/ etc / bashrcにデフォルトのプロンプトを記述します(PS1)とデフォルトのumask値を設定します。その後、独自の設定を追加できます。 〜/ .bashrc 存在し、 の/ etc / bashrcに デフォルトで読み取られます。
7.2.3.5. /etc/bashrcの例
あなたの の/ etc / bashrcに ファイルは次のようになります。
デビー:~> /etc/bashrc を cat する
# /etc/bashrc
# システム全体の関数とエイリアス
# 環境設定は /etc/profile に記述します
# デフォルトではこれを設定するようにします。
デビー:~> /etc/bashrc を cat する
# /etc/bashrc
# システム全体の関数とエイリアス
# 環境設定は /etc/profile に記述します
# デフォルトではこれを設定するようにします。
# 非対話型、非ログイン シェルの場合でも同様です。
[ `id -gn` = `id -un` -a `id -u` -gt 99 ]の場合; umask 002
ほかに
ウマスク 022
fi
# 非対話型、非ログイン シェルの場合でも同様です。
[ `id -gn` = `id -un` -a `id -u` -gt 99 ]の場合; umask 002
ほかに
ウマスク 022
fi
これらの行は、 umask 値。その後、シェルの種類に応じてプロンプトが設定されます。
# 対話型シェルですか? if [ "$PS1" ]; then
[ -x /usr/bin/tput ]の場合;
if [ "x`tput kbs`" != "x" ]; then
# 「ダム」端末ではこれを行うことはできません stty erases `tput kbs`
elif [ -x /usr/bin/wc ]; その後
if [ "`tput kbs|wc -c `" -gt 0 ]; then
# 「ダム」端末ではこれを行うことはできません stty erases `tput kbs`
フィフィ
fi
$TERM の場合
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
ほかに
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:\
${PWD/$HOME/~}\007"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=\
/etc/sysconfig/bash-prompt-default
;;
ESAC
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
if [ "x$SHLVL" != "x1" ]; then # /etc/profile.d/*.sh の i のログインシェルではない; do
[ -x $i ]の場合;
. $i
fi
行われ
fi
fi
# 対話型シェルですか? if [ "$PS1" ]; then
[ -x /usr/bin/tput ]の場合;
if [ "x`tput kbs`" != "x" ]; then
# 「ダム」端末ではこれを行うことはできません stty erases `tput kbs`
elif [ -x /usr/bin/wc ]; その後
if [ "`tput kbs|wc -c `" -gt 0 ]; then
# 「ダム」端末ではこれを行うことはできません stty erases `tput kbs`
フィフィ
fi
$TERM の場合
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
ほかに
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:\
${PWD/$HOME/~}\007"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=\
/etc/sysconfig/bash-prompt-default
;;
ESAC
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
if [ "x$SHLVL" != "x1" ]; then # /etc/profile.d/*.sh の i のログインシェルではない; do
[ -x $i ]の場合;
. $i
fi
行われ
fi
fi
7.2.3.6. .bash_logout の例
ログアウトすると、 〜/ .bash_logout が実行され、たとえばターミナルをクリアして、リモート セッションからログアウトしたときやシステム コンソールを終了したときにクリーンなウィンドウが表示されるようになります。
デビー:~> cat .bash_logout
# ~/.bash_logout
クリア
デビー:~> cat .bash_logout
# ~/.bash_logout
クリア
次のセクションでは、これらのスクリプトがどのように動作するかを詳しく見ていきましょう。 info bash すぐ近くです。