39.2.3. Командная оболочка Bash
В
Bash имеется несколько приемов для работы со строкой команд. Например, можно использовать следующие сочетания:
Ctrl+A — перейти на начало строки;
Ctrl+U — удалить текущую строку;
Ctrl+C — остановить текущую задачу.
Для ввода нескольких команд одной строкой можно использовать разделитель «;». По истории команд можно перемещаться с помощью клавиш ↑ («вверх») и ↓ («вниз»).
Чтобы найти конкретную команду в списке набранных, не пролистывая всю историю, можно нажать Ctrl+R и начать вводить символы ранее введенной команды.
Для просмотра истории команд можно воспользоваться командой
history
. Команды, присутствующие в истории, отображаются в списке пронумерованными. Чтобы запустить конкретную команду необходимо набрать:
!номер команды
Если ввести:
!!
запустится последняя из набранных команд.
В
Bash имеется возможность самостоятельного завершения имен команд из общего списка команд, что облегчает работу при вводе команд, в случае, если имена программ и команд слишком длинны. При нажатии клавиши
Tab Bash завершает имя команды, программы или каталога, если не существует нескольких альтернативных вариантов. Например, чтобы использовать программу декомпрессии
bunzip2
, можно набрать следующую команду:
bu
Затем нажать клавишу Tab. Так как в данном случае существует несколько возможных вариантов завершения команды, то необходимо повторно нажать клавишу Tab, чтобы получить список имен, начинающихся с bu.
В предложенном примере можно получить следующий список:
$
bu
buildhash
builtin
bunzip2
Если набрать: n (bunzip
— это единственное имя, третьей буквой которого является «n»), а затем нажать клавишу Tab, то оболочка самостоятельно дополнит имя. Чтобы запустить команду нужно нажать Enter.
Программы, вызываемые из командной строки, Bash ищет в каталогах, определяемых в системной переменной
$PATH
. По умолчанию в этот перечень каталогов не входит текущий каталог, обозначаемый
./
(точка слеш) (если только не выбран один из двух самых слабых уровней защиты). Поэтому, для запуска программы из текущего каталога, необходимо использовать команду (в примере запускается команда
prog
):
./prog