Bash
Тип корпуса
Поиск…
замечания
Войти в Shell
Оболочка для входа - это тот, чей первый символ аргумента нуль - -, или один начинается с параметра -login. Инициализация более полная, чем в обычной интерактивной (суб) оболочке.
Интерактивная оболочка
Интерактивная оболочка запускается без аргументов без опционов и без опции -c, стандартный ввод и ошибка которой соединены с терминалами (как определено isatty (3)), или один начинается с опции -i. PS1 установлен, а $ - включает i, если bash является интерактивным, позволяя сценарию оболочки или загрузочному файлу проверить это состояние.
неинтерактивная оболочка
Неинтерактивная оболочка - это оболочка, в которой пользователь не может взаимодействовать с оболочкой. Например, оболочка, запускающая скрипт, всегда является неинтерактивной оболочкой. Тем не менее, скрипт может получить доступ к его tty.
Настройка оболочки входа
При входе в систему:
If '/etc/profile' exists, then source it.
If '~/.bash_profile' exists, then source it,
else if '~/.bash_login' exists, then source it,
else if '~/.profile' exists, then source it.
Для интерактивных оболочек без входа
При запуске:
If `~/.bashrc' exists, then source it.
Для неинтерактивных оболочек
При запуске: Если переменная окружения ENV не равна null, разверните переменную и введите файл с именем по значению. Если Bash не запускается в режиме Posix, он ищет BASH_ENV до ENV.
Введение в файлы точек
В Unix файлы и каталоги, начинающиеся с периода, обычно содержат настройки для конкретной программы / серии программ. Файлы Dot обычно скрыты от пользователя, поэтому вам нужно будет запустить ls -a
чтобы увидеть их.
Примером точечного файла является .bash_history
, который содержит последние выполненные команды, предполагая, что пользователь использует Bash.
Существуют различные файлы, которые получены при падении в оболочку Bash. На изображении ниже, взятом с этого сайта , показан процесс принятия решения о выборе файлов для запуска при запуске.
Начать интерактивную оболочку
bash
Определить тип оболочки
shopt -q login_shell && echo 'login' || echo 'not-login'