June 12, 2020

Bash

Приветствую тебя суперпользователь.

В этой статье будем говорить об оболочке bash. Эта программа, позволяет выполнять команды в текстовой консоли или командном окне, оболочка является интерпретатором команд. В то же время bash располагает собственным языком программирования, с помощью которого можно создавать оболочковые программы (shell- сценариев).

Что же такое оболочка? Оболочка в первую очередь служит для вызова команд и программ Linux. Она является своего рода интерпретатором команд. Оболочка может выполняться в любом командном окне, например konsole, gnome-terminal, xterm, или в любой текстовой консоли после входа в систему (логина).

Вместе с тем, оболочка является достаточно мощным языком программирования, который может автоматизировать рабочие процессы. Особые команды оболочки позволяют использовать в рамках созданной программы, переменные, создавать запросы и циклы и т.д. Получаемые в результате написания программы на языке bash, в зависимости от предпочтений автора, могут называться командными файлами, сценариями, пакетными файлами, процедурами оболочки и т.д. Независимо от названия, речь идет о простых текстовых файлах, которые выполняются (интерпретируются) оболочкой.

В статье будет описана bash-версия 4.n, но большая часть информации применима и к версии 3.n. Многие обновления версии 4.0 по умолчанию неактивны, и их нужно специально активировать. Если вы не знаете, с какой версией оболочки работаете, выполните следующую команду:

user$ echo $0

-bash

user$ $BASH_VERSION

"4.2.29(1)-release"

Справка. Для оболочки bash существует справка которую можно вызывать командой man которой посвящен большой раздел. Кроме того, есть объемный справочный материал, который выводится командой info bash. Разумеется, этот файл есть и в Интернете: http://www.gnu.org/software/bash/manual/bash.html.(на английском)

Почти во всех дистрибутивах Linux, bash считается стандартной оболочкой для работы с оболочками и окнами терминалов. Однако, воспользовавшись системой управления пакетами(в Linux программы устанавливаются по средствам пакетов) вы можете установить и многие другие оболочки. Многие Linux-оводы особенно любят Z-оболочку zsh. Так же есть варианты — оболочки Korn (ksh или pdksh) и C (csh или tcsh). Чтобы опробовать любую из оболочек, после установки запустите командное окно и введите в него имя любой оболочки. Команда exit вернет вас обратно в предыдущую активную оболочку.

user$ zsh

hostname% ls (Выполнение команд в zsh)

...

hostname% exit (Обратно в предыдущую оболочку)

user$

Для любого Linux пользователя, система предусматривает стандартную оболочку, которая запускается автоматически в командном окне при работе с терминалом. Сохроняется стандартная оболочка в файле /etc/passwd. Название оболочки находится в самом конце строки с учетной записью каждого пользователя. Чтобы задать по умолчанию другую оболочку, выполните команду chsh (change shell). Программы оболочки сохраняются в каталоге /bin. Это значит, что требуется указать, например, /bin/csh в том случае, если вы собираетесь в дальнейшем работать с оболочкой C. Список доступных оболочек находится в /etc/shells.

Большинство сценариев написанных на языке bash начинается с кода #!/bin/sh. Данная последовательность символов указывает, что сценарий должен выполняться оболочкой /bin/sh. Раньше в /bin/sh почти всегда ставилась ссылка на bash. Однако, поскольку bash (не в последнюю очередь благодаря множеству ее функций) считается относительно медленной и требует для работы большого количества памяти, в некоторых дистрибутивах вместо нее используется оболочка, более подходящая для выполнения сценариев. В Linux Ubuntu применяется, например, оболочка Debian-Almquist (dash). Она быстра, но не полностью совместима с bash. Если при программировании вы используете bash-специфичные функции, нужно указать в первой строке

#!/bin/bash.

user$ ls –l /bin/sh

.../bin/sh -> dash

Приглашения при вводе. В оболочке в начале каждой строки ввода в зависимости от дистрибутива отображается имя компьютера, имя пользователя и/или название текущего каталога. Последовательность символов обычно заканчивается на $, ~, > (у обычных пользователей) или на # (у администратора).

Основная конфигурация переменой окружения PS1, которая отвечает за внешний вид приглашения, обычно осуществляется в файле /etc/bash.bashrc, в Kali Linux и Fedora — в /etc/bashrc. Без применения конфигурации действует PS1="\s-\v\quot;. В этом случае bash отображает имя оболочки и номер версии. Чтобы индивидуально настроить PS1, измените файл ~/.profile. При вводе следующей строки в качестве приглашения просто отображается текущий каталог:

# Изменения в ~/.profile

PS1="\w\quot;

Здесь \u является джокерным символом для имени пользователя, \h — для хостимени, \w — для всего актуального каталога, \W — для последней части актуального каталога и \$ (или #) — для завершения приглашения. Кроме того, с помощью \[\e[0;nnm\] можно задавать цвет.В дополнение или в качестве альтернативы для PS1 можно также настроить переменную PROMPT_COMMAND. Она содержит команду, выполняемую всякий раз перед отображением PS1.

И ты сейчас скажешь блин я ни чего не понял, сложно. Но без практики ни чего понятно и не станет. По пробуй сам по искать информацию о том, что такое bash. Открой Linux терминал, по пробуй по открывать файлы которые описаны в статье и посмотреть как они устроены и что в них находится. Ни кто не говорил что будет просто.

Удачи суперпользователь.
До связи.