Содержание

bash

Bash (Bourne-again Shell) - POSIX-совместимая командная оболочка. Bash работает в одном из двух режимов:

  1. login shell (оболочка входа) - если bash был вызван в TTY при помощи login, ssh и тп.
  2. interactive shell (интерактивная оболочка) - если был вызван терминалом или запущен непосредственно bash, без параметров и скриптов.

Конфиги

login shell:

  1. /etc/profile - Cистемный, исполняется первым.
  2. ~/.bash_profile - Пользовательский, исполняется после /etc/profile. Если не существует, проверяются ~/.bash_login и ~/.profile (в указанном порядке). Файл-образец /etc/skel/.bash_profile содержит также указание на исполнение файла ~/.bashrc.
  3. ~/.bash_logout - Пользовательский, исполняется после выхода из оболочки входа.
  4. /etc/bash.bash_logout - Системный, исполняется после выхода из оболочки входа. Зависит от флага компиляции -DSYS_BASH_LOGOUT=«/etc/bash.bash_logout».

interactive shell:

  1. /etc/bash.bashrc - Системный, исполняет файл /usr/share/bash-completion/bash_completion. Зависит от флага компиляции -DSYS_BASHRC=«/etc/bash.bashrc».
  2. ~/.bashrc - Пользовательский, исполняется после /etc/bash.bashrc.

Переменные окружения

Интерактивные оболочки наследуют окружение от родительского процесса (которым может быть в том числе и оболочка входа).

Для создания переменной окружения необходимо экспортировать переменную оболочки:

VARIABLE=content
export VARIABLE
 
# или более кратко:
export VARIABLE=content

Переменные окружения лучше1) перечислять в файлах ~/.profile или /etc/profile.

Так же для работы с переменными окружения в пакете coreutils есть программы printenv и env.

printenv - выводит все переменные окружения оболочки и их значения.

env может быть использована для запуска команд с переменной окружения при единичном вызове программы, не затрагивая переменные окружения командной оболочки:

env EDITOR=vim xterm

Встроенный команды

{{fixme}}

1)
чтобы другие совместимые оболочки могли их использовать.