هنگامی که یک پوسته ورود به سیستم خارج می شود، بر هم زدن دستورات را از فایل می خواند و اجرا می کند ~/.bash_logout، اگر وجود داشته باشد. این روش به طور مفصل در توضیح داده شده است ورود و بر هم زدن صفحات مرد
7.2.3. مجموعه ای معمولی از فایل های راه اندازی
7.2.3.1. نمونه /etc/profile
بیایید به برخی از این فایل های پیکربندی نگاه کنیم. اولین / etc / profile خوانده می شود که در آن متغیرهای مهمی مانند
PATH، USER و HOSTNAME تنظیم شده اند:
دبی:~> 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
دبی:~> 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
این خطوط مسیر تعیین شده را بررسی می کنند: if ریشه یک پوسته (شناسه کاربر 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 USER LOGNAME MAIL نام خانوادگی HISTSIZE INPUTRC
همه متغیرها صادر می شوند، به طوری که در دسترس برنامه های دیگر هستند که اطلاعاتی در مورد محیط شما درخواست می کنند.
7.2.3.2. فهرست راهنمای profile.d
برای i در /etc/profile.d/*.sh ; انجام دهید اگر [ -r $i ]; سپس
. $i
fi انجام شد unset i
برای i در /etc/profile.d/*.sh ; انجام دهید اگر [ -r $i ]; سپس
. $i
fi انجام شد unset i
همه اسکریپت های پوسته قابل خواندن از /etc/profile.d دایرکتوری خوانده و اجرا می شود. اینها کارهایی مانند فعال کردن را انجام می دهند رنگ ls، نام مستعار vi به نیرو، تنظیم مناطق و غیره. متغیر موقت i تنظیم نشده است تا بعداً از اختلال در رفتار پوسته جلوگیری کند.
7.2.3.3. نمونه .bash_profile
سپس بر هم زدن به دنبال a .bash_profile در فهرست اصلی کاربر:
دبی:~> گربه .bash_profile
################################################################### ## ############### ##
# #
# فایل bash_profile #
# #
# هنگام ورود به سیستم از پوسته bash اجرا می شود.
# #
################################################################### ## ############### ##
منبع ~/.bashrc منبع ~/.bash_login
این فایل مستقیم به پوسته شما دستور می دهد که ابتدا بخوانید ~ / .bashrc و پس از آن ~/.bash_login. شما مواجه خواهید شد منبع فرمان داخلی پوسته به طور منظم هنگام کار در یک محیط پوسته: برای اعمال تغییرات پیکربندی در محیط فعلی استفاده می شود.
7.2.3.4. نمونه .bash_login
La ~/.bash_login فایل با تنظیم کردن، حفاظت پیشفرض فایل را تعریف میکند umask مقدار، به بخش 3.4.2.2 مراجعه کنید. در ~ / .bashrc فایل برای تعریف دسته ای از نام های مستعار و توابع خاص کاربر و متغیرهای محیط شخصی استفاده می شود. ابتدا می خواند /etc/bashrc، که دستور پیش فرض را توصیف می کند (PS1) و مقدار umask پیش فرض. پس از آن، می توانید تنظیمات خود را اضافه کنید. اگر نه ~ / .bashrc وجود دارد ، /etc/bashrc به صورت پیش فرض خوانده می شود.
7.2.3.5. /etc/bashrc مثال
شما /etc/bashrc فایل ممکن است شبیه به این باشد:
دبی:~> cat /etc/bashrc
# /etc/bashrc
# توابع و نام مستعار گسترده سیستم
# موارد محیطی در /etc/profile می رود
# به طور پیش فرض، ما می خواهیم این تنظیم شود.
دبی:~> cat /etc/bashrc
# /etc/bashrc
# توابع و نام مستعار گسترده سیستم
# موارد محیطی در /etc/profile می رود
# به طور پیش فرض، ما می خواهیم این تنظیم شود.
# حتی برای پوسته های غیر تعاملی و بدون ورود به سیستم.
if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; سپس umask 002
دیگر
umask 022
fi
# حتی برای پوسته های غیر تعاملی و بدون ورود به سیستم.
if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; سپس umask 002
دیگر
umask 022
fi
این خطوط تنظیم می کنند umask ارزش. سپس، بسته به نوع پوسته، اعلان تنظیم می شود:
# آیا ما یک پوسته تعاملی هستیم؟ اگر [ "$PS1" ]; سپس
اگر [ -x /usr/bin/tput ]; سپس
if [ "x`tput kbs`" != "x" ]; سپس
# ما نمی توانیم این کار را با ترمینال "گنگ" stty erase `tput kbs` انجام دهیم
elif [ -x /usr/bin/wc ]; سپس
if [ "`tput kbs|wc -c `" -gt 0 ]; سپس
# ما نمی توانیم این کار را با ترمینال "گنگ" 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]\\$ "
if [ "x$SHLVL" != "x1" ]; سپس # ما یک پوسته ورود به سیستم برای i در /etc/profile.d/*.sh نیستیم. انجام دادن
اگر [ -x $i ]; سپس
. $i
fi
انجام شده
fi
fi
# آیا ما یک پوسته تعاملی هستیم؟ اگر [ "$PS1" ]; سپس
اگر [ -x /usr/bin/tput ]; سپس
if [ "x`tput kbs`" != "x" ]; سپس
# ما نمی توانیم این کار را با ترمینال "گنگ" stty erase `tput kbs` انجام دهیم
elif [ -x /usr/bin/wc ]; سپس
if [ "`tput kbs|wc -c `" -gt 0 ]; سپس
# ما نمی توانیم این کار را با ترمینال "گنگ" 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]\\$ "
if [ "x$SHLVL" != "x1" ]; سپس # ما یک پوسته ورود به سیستم برای i در /etc/profile.d/*.sh نیستیم. انجام دادن
اگر [ -x $i ]; سپس
. $i
fi
انجام شده
fi
fi
7.2.3.6. نمونه .bash_logout
پس از خروج، دستورات وارد می شوند ~/.bash_logout اجرا می شوند، که به عنوان مثال می تواند ترمینال را پاک کند، به طوری که هنگام خروج از یک جلسه راه دور یا پس از خروج از کنسول سیستم، یک پنجره تمیز داشته باشید:
دبی:~> cat .bash_logout
# ~/.bash_logout
واضح
دبی:~> cat .bash_logout
# ~/.bash_logout
واضح
بیایید در بخش بعدی نگاهی دقیق تر به نحوه کار این اسکریپت ها بیندازیم. نگاه داشتن اطلاعات بر هم زدن نزدیک در دست