ເມື່ອລະຫັດເຂົ້າສູ່ລະບົບອອກ, bash ອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກໄຟລ໌ ~/.bash_logout, ຖ້າມັນມີຢູ່. ຂັ້ນຕອນນີ້ແມ່ນໄດ້ອະທິບາຍຢ່າງລະອຽດຢູ່ໃນ ເຂົ້າສູ່ລະບົບ ແລະ bash ຫນ້າຜູ້ຊາຍ.
7.2.3. ຊຸດໄຟລ໌ຕັ້ງຄ່າປົກກະຕິ
7.2.3.1. /etc/profile ຕົວຢ່າງ
ໃຫ້ເບິ່ງບາງໄຟລ໌ config ເຫຼົ່ານີ້. ທໍາອິດ / etc / profile ແມ່ນອ່ານ, ໃນຕົວແປທີ່ສໍາຄັນເຊັ່ນ:
PATH, USER ແລະ HOSTNAME ຖືກຕັ້ງ:
debby:~> cat /etc/profile
# /etc/profile
# ສະພາບແວດລ້ອມກ້ວາງຂອງລະບົບແລະໂຄງການເລີ່ມຕົ້ນ, ສໍາລັບການຕິດຕັ້ງເຂົ້າສູ່ລະບົບ
# ຟັງຊັນແລະນາມແຝງເຂົ້າໄປໃນ /etc/bashrc
# ການຫມູນໃຊ້ເສັ້ນທາງ
ຖ້າ [ `id -u` = 0 ] && ! ສະທ້ອນ $PATH | /bin/grep -q "/sbin" ; ຈາກນັ້ນ PATH=/sbin:$PATH
fi
ຖ້າ [ `id -u` = 0 ] && ! ສະທ້ອນ $PATH | /bin/grep -q "/usr/sbin" ; ຈາກນັ້ນ PATH=/usr/sbin:$PATH
fi
ຖ້າ [ `id -u` = 0 ] && ! ສະທ້ອນ $PATH | /bin/grep -q "/usr/local/sbin" ຈາກນັ້ນ
PATH=/usr/local/sbin:$PATH
fi
ຖ້າ ! ສະທ້ອນ $PATH | /bin/grep -q "/usr/X11R6/bin" ; ຈາກນັ້ນ PATH="$PATH:/usr/X11R6/bin"
fi
debby:~> cat /etc/profile
# /etc/profile
# ສະພາບແວດລ້ອມກ້ວາງຂອງລະບົບແລະໂຄງການເລີ່ມຕົ້ນ, ສໍາລັບການຕິດຕັ້ງເຂົ້າສູ່ລະບົບ
# ຟັງຊັນແລະນາມແຝງເຂົ້າໄປໃນ /etc/bashrc
# ການຫມູນໃຊ້ເສັ້ນທາງ
ຖ້າ [ `id -u` = 0 ] && ! ສະທ້ອນ $PATH | /bin/grep -q "/sbin" ; ຈາກນັ້ນ PATH=/sbin:$PATH
fi
ຖ້າ [ `id -u` = 0 ] && ! ສະທ້ອນ $PATH | /bin/grep -q "/usr/sbin" ; ຈາກນັ້ນ PATH=/usr/sbin:$PATH
fi
ຖ້າ [ `id -u` = 0 ] && ! ສະທ້ອນ $PATH | /bin/grep -q "/usr/local/sbin" ຈາກນັ້ນ
PATH=/usr/local/sbin:$PATH
fi
ຖ້າ ! ສະທ້ອນ $PATH | /bin/grep -q "/usr/X11R6/bin" ; ຈາກນັ້ນ PATH="$PATH:/usr/X11R6/bin"
fi
ສາຍເຫຼົ່ານີ້ກວດເບິ່ງເສັ້ນທາງທີ່ຈະກໍານົດ: ຖ້າ ຮາກ ເປີດ shell (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"
HOSTNAME=`/bin/hostname` HISTSIZE=1000
USER=`id -un` LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HOSTNAME=`/bin/hostname` HISTSIZE=1000
ໃນທີ່ນີ້ຕົວແປທົ່ວໄປຖືກມອບຫມາຍຄ່າທີ່ເຫມາະສົມຂອງພວກເຂົາ.
ຖ້າ [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; ຈາກນັ້ນ INPUTRC=/etc/inputrc
fi
ຖ້າ [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; ຈາກນັ້ນ INPUTRC=/etc/inputrc
fi
ຖ້າຕົວແປ INPUTRC ບໍ່ໄດ້ຕັ້ງ, ແລະບໍ່ມີ .inputrc ໃນໄດເລກະທໍລີເຮືອນຂອງຜູ້ໃຊ້, ຫຼັງຈາກນັ້ນໄຟລ໌ຄວບຄຸມການປ້ອນຂໍ້ມູນເລີ່ມຕົ້ນຖືກໂຫລດ.
![]()
ການສົ່ງອອກ PATH ຜູ້ໃຊ້ LOGNAME MAIL ຊື່ເຈົ້າພາບ ປະຫວັດສາດ INPUTRC
ຕົວແປທັງຫມົດຖືກສົ່ງອອກ, ດັ່ງນັ້ນພວກມັນມີຢູ່ໃນໂຄງການອື່ນໆທີ່ຮ້ອງຂໍຂໍ້ມູນກ່ຽວກັບສະພາບແວດລ້ອມຂອງທ່ານ.
![]()
7.2.3.2. ໄດເລກະທໍລີ profile.d
ສໍາລັບຂ້ອຍໃນ /etc/profile.d/*.sh ; do if [ -r $i ]; ແລ້ວ
. $i
fi ສໍາເລັດ unset i
ສໍາລັບຂ້ອຍໃນ /etc/profile.d/*.sh ; do if [ -r $i ]; ແລ້ວ
. $i
fi ສໍາເລັດ unset i
ສະຄຣິບແກະທັງໝົດທີ່ສາມາດອ່ານໄດ້ຈາກ /etc/profile.d ໄດເລກະທໍລີຖືກອ່ານແລະປະຕິບັດ. ສິ່ງເຫຼົ່ານີ້ເຮັດສິ່ງຕ່າງໆເຊັ່ນການເປີດໃຊ້ງານ ສີ-ls, ນາມແຝງ vi to vim, ການຕັ້ງຄ່າທ້ອງຖິ່ນແລະອື່ນໆ. ຕົວແປຊົ່ວຄາວ i ບໍ່ໄດ້ຕັ້ງຄ່າເພື່ອປ້ອງກັນບໍ່ໃຫ້ມັນລົບກວນພຶດຕິກໍາຂອງແກະໃນພາຍຫຼັງ.
![]()
7.2.3.3. ຕົວຢ່າງ .bash_profile
ຫຼັງຈາກນັ້ນ, bash ຊອກຫາ a .bash_ ໂປຣໄຟລ ໃນບັນຊີລາຍຊື່ຂອງຜູ້ໃຊ້:

debby:~> cat .bash_profile
# ######## ######## ######## # ເລົ່າສູ່ກັນຟັງ
# #
# ໄຟລ໌ .bash_profile #
# #
# ຖືກປະຕິບັດຈາກແກະ bash ເມື່ອທ່ານເຂົ້າສູ່ລະບົບ.
# #
# ######## ######## ######## # ເລົ່າສູ່ກັນຟັງ
ແຫຼ່ງ ~/.bashrc ແຫຼ່ງ ~/.bash_login
ໄຟລ໌ທີ່ກົງໄປກົງມານີ້ສັ່ງໃຫ້ແກະຂອງເຈົ້າອ່ານກ່ອນ ~ / bashrc ແລະຫຼັງຈາກນັ້ນ ~/.bash_login. ທ່ານຈະໄດ້ພົບກັບ ແຫຼ່ງ ຄໍາສັ່ງ shell ທີ່ມີການກໍ່ສ້າງເປັນປົກກະຕິໃນເວລາທີ່ເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມຂອງແກະ: ມັນຖືກນໍາໃຊ້ເພື່ອນໍາໃຊ້ການປ່ຽນແປງການຕັ້ງຄ່າກັບສະພາບແວດລ້ອມໃນປະຈຸບັນ.
![]()
7.2.3.4. ຕົວຢ່າງ .bash_login
ໄດ້ ~/.bash_login ໄຟລ໌ກໍານົດການປົກປ້ອງໄຟລ໌ເລີ່ມຕົ້ນໂດຍການຕັ້ງຄ່າ ໜ້າ ກາກ ຄ່າ, ເບິ່ງພາກ 3.4.2.2. ໄດ້ ~ / bashrc ໄຟລ໌ຖືກນໍາໃຊ້ເພື່ອກໍານົດຊໍ່ຂອງນາມແຝງແລະຫນ້າທີ່ສະເພາະຂອງຜູ້ໃຊ້ແລະຕົວແປສະພາບແວດລ້ອມສ່ວນບຸກຄົນ. ມັນທໍາອິດອ່ານ /etc/bashrc, ເຊິ່ງອະທິບາຍການກະຕຸ້ນເຕືອນເລີ່ມຕົ້ນ (PS1) ແລະຄ່າ umask ເລີ່ມຕົ້ນ. ຫຼັງຈາກນັ້ນ, ທ່ານສາມາດເພີ່ມການຕັ້ງຄ່າຂອງທ່ານເອງ. ຖ້າບໍ່ມີ ~ / bashrc ມີຢູ່, /etc/bashrc ຖືກອ່ານໂດຍຄ່າເລີ່ມຕົ້ນ.
![]()
7.2.3.5. /etc/bashrc ຕົວຢ່າງ
ຂອງທ່ານ /etc/bashrc ໄຟລ໌ອາດຈະມີລັກສະນະນີ້:
debby:~> cat /etc/bashrc
# /etc/bashrc
# ລະບົບຟັງຊັນກວ້າງແລະນາມແຝງ
# ສິ່ງແວດລອ້ມໄປໃນ /etc/profile
# ໂດຍຄ່າເລີ່ມຕົ້ນ, ພວກເຮົາຕ້ອງການການຕັ້ງຄ່ານີ້.
debby:~> cat /etc/bashrc
# /etc/bashrc
# ລະບົບຟັງຊັນກວ້າງແລະນາມແຝງ
# ສິ່ງແວດລອ້ມໄປໃນ /etc/profile
# ໂດຍຄ່າເລີ່ມຕົ້ນ, ພວກເຮົາຕ້ອງການການຕັ້ງຄ່ານີ້.
# ເຖິງແມ່ນວ່າສໍາລັບການທີ່ບໍ່ມີການໂຕ້ຕອບ, ບໍ່ເຂົ້າສູ່ລະບົບ shells.
ຖ້າ [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; ຫຼັງຈາກນັ້ນ, umask 002
ອື່ນ
umask 022
fi
# ເຖິງແມ່ນວ່າສໍາລັບການທີ່ບໍ່ມີການໂຕ້ຕອບ, ບໍ່ເຂົ້າສູ່ລະບົບ shells.
ຖ້າ [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; ຫຼັງຈາກນັ້ນ, umask 002
ອື່ນ
umask 022
fi
ສາຍເຫຼົ່ານີ້ກໍານົດ ໜ້າ ກາກ ຄ່າ. ຫຼັງຈາກນັ້ນ, ອີງຕາມປະເພດຂອງແກະ, ການເຕືອນແມ່ນຖືກກໍານົດ:
# ພວກເຮົາເປັນແກະໂຕ້ຕອບບໍ? ຖ້າ [ "$PS1" ]; ແລ້ວ
ຖ້າ [ -x /usr/bin/tput ]; ແລ້ວ
ຖ້າ [ "x`tput kbs`" != "x" ]; ແລ້ວ
# ພວກເຮົາບໍ່ສາມາດເຮັດສິ່ງນີ້ໄດ້ດ້ວຍ "dumb" terminal stty erase `tput kbs`
elif [ -x /usr/bin/wc ]; ແລ້ວ
ຖ້າ [ "`tput kbs|wc -c `" -gt 0 ]; ແລ້ວ
# ພວກເຮົາບໍ່ສາມາດເຮັດສິ່ງນີ້ໄດ້ດ້ວຍ "dumb" terminal stty erase `tput kbs`
fi fi
fi
ກໍລະນີ $TERM ໃນ
xterm*)
ຖ້າ [ -e /etc/sysconfig/bash-prompt-xterm ]; ຈາກນັ້ນ 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
;;
ວ່າ C
[ "$PS1" = "\\s-\\v\\\$" ] && PS1="[\u@\h \W]\\$"
ຖ້າ [ "x$SHLVL" != "x1" ]; ແລ້ວ # ພວກເຮົາບໍ່ແມ່ນ login shell ສໍາລັບ i ໃນ /etc/profile.d/*.sh; ເຮັດ
ຖ້າ [ -x $i ]; ແລ້ວ
. $i
fi
ເຮັດ
fi
fi
# ພວກເຮົາເປັນແກະໂຕ້ຕອບບໍ? ຖ້າ [ "$PS1" ]; ແລ້ວ
ຖ້າ [ -x /usr/bin/tput ]; ແລ້ວ
ຖ້າ [ "x`tput kbs`" != "x" ]; ແລ້ວ
# ພວກເຮົາບໍ່ສາມາດເຮັດສິ່ງນີ້ໄດ້ດ້ວຍ "dumb" terminal stty erase `tput kbs`
elif [ -x /usr/bin/wc ]; ແລ້ວ
ຖ້າ [ "`tput kbs|wc -c `" -gt 0 ]; ແລ້ວ
# ພວກເຮົາບໍ່ສາມາດເຮັດສິ່ງນີ້ໄດ້ດ້ວຍ "dumb" terminal stty erase `tput kbs`
fi fi
fi
ກໍລະນີ $TERM ໃນ
xterm*)
ຖ້າ [ -e /etc/sysconfig/bash-prompt-xterm ]; ຈາກນັ້ນ 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
;;
ວ່າ C
[ "$PS1" = "\\s-\\v\\\$" ] && PS1="[\u@\h \W]\\$"
ຖ້າ [ "x$SHLVL" != "x1" ]; ແລ້ວ # ພວກເຮົາບໍ່ແມ່ນ login shell ສໍາລັບ i ໃນ /etc/profile.d/*.sh; ເຮັດ
ຖ້າ [ -x $i ]; ແລ້ວ
. $i
fi
ເຮັດ
fi
fi
![]()
7.2.3.6. ຕົວຢ່າງ .bash_logout
ເມື່ອອອກຈາກລະບົບ, ຄໍາສັ່ງໃນ ~/.bash_logout ໄດ້ຖືກປະຕິບັດ, ເຊິ່ງສາມາດສໍາລັບການຍົກຕົວຢ່າງລ້າງ terminal, ດັ່ງນັ້ນທ່ານມີປ່ອງຢ້ຽມທີ່ສະອາດເມື່ອອອກຈາກເຊດຊັນຫ່າງໄກສອກຫຼີກ, ຫຼືເມື່ອອອກຈາກ console ລະບົບ:
debby:~> cat .bash_logout
# ~/.bash_logout
ແຈ້ງ
debby:~> cat .bash_logout
# ~/.bash_logout
ແຈ້ງ
ລອງພິຈາລະນາເບິ່ງວ່າສະຄຣິບເຫຼົ່ານີ້ເຮັດວຽກແນວໃດໃນພາກຕໍ່ໄປ. ຮັກສາ ຂໍ້ມູນ bash ໃກ້ກັບມື.
![]()
ເອກະສານ