<Предыдущая | Содержание: | Следующая>
Когда оболочка входа закрывается, колотить читает и выполняет команды из файла ~ / .Bash_logout, если он существует. Подробно эта процедура описана в Войти и колотить страницы руководства.
7.2.3. Типичный набор установочных файлов
7.2.3.1. /etc/пример профиля
Давайте посмотрим на некоторые из этих конфигурационных файлов. Первый / И т.д. / профиль считывается, в котором важные переменные, такие как
PATH, USER и HOSTNAME установлены:
дебби: ~> кот /etc/профиль
# /etc/профиль
# Общесистемная среда и программы запуска для настройки входа в систему.
# Функции и псевдонимы находятся в /etc/bashrc
# Манипулирование путем
if [ `id -u` = 0 ] && ! эхо $PATH | /bin/grep -q "/sbin" ; затем PATH=/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! эхо $PATH | /bin/grep -q "/usr/sbin"; затем PATH=/usr/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! эхо $PATH | /bin/grep -q "/usr/local/sbin", затем
ПУТЬ=/usr/local/sbin:$PATH
fi
если ! эхо $PATH | /bin/grep -q "/usr/X11R6/bin" ; затем PATH="$PATH:/usr/X11R6/bin"
fi
дебби: ~> кот /etc/профиль
# /etc/профиль
# Общесистемная среда и программы запуска для настройки входа в систему.
# Функции и псевдонимы находятся в /etc/bashrc
# Манипулирование путем
if [ `id -u` = 0 ] && ! эхо $PATH | /bin/grep -q "/sbin" ; затем PATH=/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! эхо $PATH | /bin/grep -q "/usr/sbin"; затем PATH=/usr/sbin:$PATH
fi
if [ `id -u` = 0 ] && ! эхо $PATH | /bin/grep -q "/usr/local/sbin", затем
ПУТЬ=/usr/local/sbin:$PATH
fi
если ! эхо $PATH | /bin/grep -q "/usr/X11R6/bin" ; затем PATH="$PATH:/usr/X11R6/bin"
fi
Эти строки проверяют путь к установке: если корень открывает оболочку (идентификатор пользователя 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 / нуль если пользователь не изменит этот параметр.
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
Если переменная ВХОДRC не установлено и нет .inputrc в домашнем каталоге пользователя, затем загружается файл управления вводом по умолчанию.
экспорт PATH USER LOGNAME ПОЧТА HOSTNAME HISTSIZE ВХОДRC
Все переменные экспортируются, поэтому они доступны другим программам, запрашивающим информацию о вашей среде.
7.2.3.2. Каталог Profile.d
для меня в /etc/profile.d/*.sh ; сделать, если [ -r $i ]; затем
. $я
фи закончил, я отключил
для меня в /etc/profile.d/*.sh ; сделать, если [ -r $i ]; затем
. $я
фи закончил, я отключил
Все читаемые сценарии оболочки из /etc/profile.d каталог читаются и выполняются. Они делают такие вещи, как включение цвет-ls, псевдонимы vi в напор, установка локалей и т. д. Временная переменная i не установлен, чтобы предотвратить нарушение поведения оболочки в дальнейшем.
7.2.3.3. пример .bash_profile
Затем колотить ищет .bash_profile в домашнем каталоге пользователя:
дебби: ~> кот .bash_profile
################################################## ###############
# #
# файл .bash_profile #
# #
# Выполняется из оболочки bash при входе в систему. #
# #
################################################## ###############
источник ~/.bashrc источник ~/.bash_login
Этот очень простой файл предписывает вашей оболочке сначала прочитать ~ / .bashrc , а затем ~ / .Bash_login. Вы столкнетесь с источник встроенная команда оболочки регулярно при работе в среде оболочки: она используется для применения изменений конфигурации к текущей среде.
7.2.3.4. Пример .bash_login
Команда ~ / .Bash_login file определяет защиту файла по умолчанию, устанавливая Umask значение см. раздел 3.4.2.2. ~ / .bashrc Файл используется для определения множества пользовательских псевдонимов и функций, а также переменных личной среды. Сначала он читает / Etc / Bashrc, который описывает приглашение по умолчанию (PS1) и значение umask по умолчанию. После этого вы можете добавить свои настройки. Если нет ~ / .bashrc существует, / Etc / Bashrc читается по умолчанию.
7.2.3.5. пример /etc/bashrc
Your / Etc / Bashrc файл может выглядеть так:
дебби: ~> кот /etc/bashrc
# /etc/bashrc
# Общесистемные функции и псевдонимы
# Материалы окружения находятся в /etc/profile
# по умолчанию мы хотим, чтобы это было установлено.
дебби: ~> кот /etc/bashrc
# /etc/bashrc
# Общесистемные функции и псевдонимы
# Материалы окружения находятся в /etc/profile
# по умолчанию мы хотим, чтобы это было установлено.
# Даже для неинтерактивных оболочек без входа в систему.
if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; затем маска 002
еще
маска 022
fi
# Даже для неинтерактивных оболочек без входа в систему.
if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; затем маска 002
еще
маска 022
fi
Эти строки задают Umask ценить. Далее, в зависимости от типа оболочки, выставляется подсказка:
# мы интерактивная оболочка? если [ "$PS1"]; затем
если [ -x /usr/bin/tput ]; затем
if [ "x`tput kbs`" != "x" ]; затем
# Мы не можем сделать это с помощью «тупого» терминала stty Erase `tput kbs`
элиф [-x/usr/bin/wc]; затем
if [ "`tput kbs|wc -c `" -gt 0 ]; затем
# Мы не можем сделать это с помощью «тупого» терминала stty Erase `tput kbs`
фи фи
fi
case $ 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
;;
ESAC
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
if [ "x$SHLVL" != "x1" ]; then # Мы не являемся оболочкой входа в систему для i в /etc/profile.d/*.sh; делать
если [ -x $i ]; затем
. $я
fi
сделанный
fi
fi
# мы интерактивная оболочка? если [ "$PS1"]; затем
если [ -x /usr/bin/tput ]; затем
if [ "x`tput kbs`" != "x" ]; затем
# Мы не можем сделать это с помощью «тупого» терминала stty Erase `tput kbs`
элиф [-x/usr/bin/wc]; затем
if [ "`tput kbs|wc -c `" -gt 0 ]; затем
# Мы не можем сделать это с помощью «тупого» терминала stty Erase `tput kbs`
фи фи
fi
case $ 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
;;
ESAC
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
if [ "x$SHLVL" != "x1" ]; then # Мы не являемся оболочкой входа в систему для i в /etc/profile.d/*.sh; делать
если [ -x $i ]; затем
. $я
fi
сделанный
fi
fi
7.2.3.6. Пример .bash_logout
При выходе из системы команды в ~ / .Bash_logout выполняются, что может, например, очистить терминал, чтобы у вас было чистое окно при выходе из удаленного сеанса или при выходе из системной консоли:
дебби: ~> кот .bash_logout
# ~/.bash_logout
Очистить
дебби: ~> кот .bash_logout
# ~/.bash_logout
Очистить
Давайте подробнее рассмотрим, как работают эти сценарии, в следующем разделе. Держать info колотить под рукой.