мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
soft:bash [2025/07/14 15:21] – удалено - внешнее изменение (Дата неизвестна) A User Not Logged insoft:bash [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in
Строка 1: Строка 1:
 +====== bash ======
 +
 +Bash (**B**ourne-**a**gain **Sh**ell) - [[playground:glossary:posix|POSIX]]-совместимая командная оболочка. Bash работает в одном из двух режимов:
 +  - login shell (оболочка входа) - если bash был вызван в TTY при помощи login, ssh и тп.
 +  - interactive shell (интерактивная оболочка) - если был вызван терминалом или запущен непосредственно bash, без параметров и скриптов.
 +
 +===== Конфиги =====
 +
 +login shell:
 +  - ''/etc/profile'' - Cистемный, исполняется первым.
 +  - ''~/.bash_profile'' - Пользовательский, исполняется после ''/etc/profile''. Если не существует, проверяются ''~/.bash_login'' и ''~/.profile'' (в указанном порядке). Файл-образец ''/etc/skel/.bash_profile'' содержит также указание на исполнение файла ''~/.bashrc''.
 +  - ''~/.bash_logout'' - Пользовательский, исполняется после выхода из оболочки входа.
 +  - ''/etc/bash.bash_logout'' - Системный, исполняется после выхода из оболочки входа. Зависит от флага компиляции ''-DSYS_BASH_LOGOUT="/etc/bash.bash_logout"''.
 +
 +interactive shell:
 +  - ''/etc/bash.bashrc'' - Системный, исполняет файл ''/usr/share/bash-completion/bash_completion''. Зависит от флага компиляции ''-DSYS_BASHRC="/etc/bash.bashrc"''.
 +  - ''~/.bashrc'' - Пользовательский, исполняется после ''/etc/bash.bashrc''.
 +
 +
 +===== Переменные окружения =====
 +
 +Интерактивные оболочки наследуют окружение от родительского процесса (которым может быть в том числе и оболочка входа).
 +
 +Для создания переменной окружения необходимо экспортировать переменную оболочки:
 +<code bash>
 +VARIABLE=content
 +export VARIABLE
 +
 +# или более кратко:
 +export VARIABLE=content
 +
 +</code>
 +
 +Переменные окружения лучше((чтобы другие совместимые оболочки могли их использовать.)) перечислять в файлах ''~/.profile'' или ''/etc/profile''.
 +
 +Так же для работы с переменными окружения в пакете [[soft:coreutils:ns_index|coreutils]] есть программы ''printenv'' и ''env''.
 +
 +''printenv'' - выводит все переменные окружения оболочки и их значения.
 +
 +''env'' может быть использована для запуска команд с переменной окружения при единичном вызове программы, не затрагивая переменные окружения командной оболочки:
 +<code bash>
 +env EDITOR=vim xterm
 +</code>
 +
 +===== Встроенный команды =====
 +
 +{{fixme}}