|
Bourne Again Shell (bash)
|
|
|
Разработчиком оболочки Bourne shell - командного интерпретатора Unix, доступного на любой Unix-системе -стал Steven Bourne. Bourne Again Shell (bash) представляет собой модифицированный вариант оболочки Bourne. Bash поддерживает все основные свойства интерпретатора shell с широким дополнительным набором функций и объединяет в себе лучшие черты командных языков C-shell и Korn-shell. Bash имеет дружественный пользовательский интерфейс, а также гибкий и мощный интерфейс программирования.
Командный язык C-shell был разработан Биллом Джой (Bill Joy) для среды Unix. Эквивалентом в среде Linux является его модифицированная версия tcsh.
Создателем командного языка Korn-shell стал Дэвид Корн (David Korn). Эквивалент данной оболочки в среде получил название Public Domain Korn shell (pdksh).
Работа в режиме командной строки
При вводе команды в строке команд bash начинает ее распознавание с первых символов, после нажатия клавиши <ТаЬ> он просматривает имена всех исполняемых файлов в пути поиска, начинающиеся со введенных символов, и дописывает возможные варианты ее окончания. Для передачи команды на исполнение пользователю необходимо нажать .
Метасимволы или шаблоны (wildcards)
Ключевым свойством большинства оболочек Unix является способность ссылаться сразу более, чем на один файл используя для этого специальные символы. Эти символы получили название метасимволов или шаблонов (wildcards).
Под метасимволом понимают специальный символ, который может заменять различные последовательности символов.
* (звездочка) - обозначает любое количество любых символов
? (знак вопроса) - обозначает любой символ
[...] - любой символ из тех, что заданы внутри скобок
Например
$ cat m*
Подобная форма записи с использованием метасимвола "*" обозначает все файлы, начинающиеся с символа "m" и имеющих любую длину имени. В результате система выведет на экран содержимое всех файлов, отвечающих данному шаблону.
$ cat m?
Метасимвол "?" может быть использован для замены только одного символа. Данная команда выведет содержимое только тех файлов, чьи имена содержат два символа и начинаются с "т".
$ cat m[i-9]
Метасимвол "[1-9]" используется для задания определенного набора символов. Подобная запись будет относиться к файлам, имена которых состоят из 2-х символов: начальной "m" и цифры в диапазоне от 1 до 9.
$ cat mine [123]
Вывод содержимого файлов, имена которых начинаются с "mine" и содержат цифру 1, 2 или 3.
История команд
Командный процессор bash ведет историю команд. Это значит, что система отслеживает и хранит определенное число команд, выполненных системой последними. Число команд истории определяется значением переменной среды HISTSIZE.
При регистрации пользователя в системе список истории команд считывается из файла истории. Файл истории располагается, как правило, в домашнем каталоге пользователя. По умолчанию, имя файла - ".bash_history", однако, его можно легко изменить, используя переменную среды HISTFILE. Как видно, имя файла начинается с символа ".", это значит, что файл является скрытым и для его просмотра с помощью команды Is необходимо установить параметр -а или -А.
$ Is -a
./ .Xdefaults .bash_profile .kde/ Desktop/
../ .bash.history .bashrc .kderc mine/
.Xclients* .bashJogout .cshrc .tschrc mydirl/
.Xinit
Команды, записанные в файле истории, могут быть вызваны на повторное исполнение. При этом возможно редактирование команды в зависимости от требований пользователя. Для пролистывания списка команд используются клавиши со стрелками вверх и вниз.
Для просмотра и редактирования команд в списке истории используются команды history и fc (команда fix), соответственно.
=> Команда history
Существуют два варианта ее использования:
1. history [n], где n - это число Просмотр последних n команд из списка.
$ history 3
115 cls
116 history
117 history 3
Если команда вызывается без каких-либо параметров, на экран выводится полный список.
2. history [-r w а n] [filename]
где
filename задает имя файла истории команд. Если данный параметр не задан, в качестве имени берется значение, хранящееся в переменной среды HISTFILE.
=> Команда fc
Возможные варианты использования:
fc [-e editor-name] [-n] [-I] [-г] [first] [last]
все параметры, задаваемые в скобках, являются необязательными.
Во всех случаях, кроме использования параметра -I, отобранные команды загружаются в текстовый редактор.
Если текстовый редактор не задается явно, используется редактор, определенный переменной окружения FCEDIT. Если он недоступен - то редактор, описанный в переменной EDITOR, если же ни один из них не недоступен используется редактор vi.
|
|
|
|
|