История команд и автодополнение
Поскольку в Bash приходится набирать текст вручную, то были придуманы различные способы облегчения ввода команд. Во-первых, Bash сохраняет историю команд, которые вводились ранее, и предоставляет к ней быстрый доступ. Во вторых, есть автозавершение, или автодополнение, когда вы пишите только начало команды или адреса, а конец подставляется автоматически.
История команд
Если, находясь в командной строке, нажимать клавишу вверх клавиатуры, то в строке будут появляться команды, введенные ранее. После первого нажатия стрелки вверх появится последняя команда, следующее нажатие заполнит строку предпоследней командой и т. д. Прокрутив по восходящей к более ранним командам, можно вернуться к более поздним, нажимая стрелку вниз на клавиатуре.
Это удобно, когда команда длинная или требуется повторить недавно введенную. Или вы даете команду, которая похожа на одну из предыдущих, но с незначительными изменениями. Кроме того, с помощью прокрутки истории можно посмотреть, что происходило ранее.
Если требуется избежать сохранения команды в историю, следует поставить пробел в командную строку перед вводом.
При завершении сеанса Bash сохраняет команды в файл .bash_history, который находится в домашнем каталоге пользователя. Точка перед именем файла в Unix-подобных системах делает файл скрытым, поэтому обычно такие файлы не видны. Однако это не мешает посмотреть файл и даже его отредактировать.
На скрине командой cat
содержимое файла выводится на экран. Отметим, команды текущего сеанса еще не дописаны в .bash_history.
Автодополнение
Автодополнение, или автозавершение, – это способность командной оболочки автоматически дописывать конец вводимого слова, если это слово однозначно определено. В Bash для автозавершения используется клавиша Tab клавиатуры.
Например, вы через командную строку запускаете программу под названием filezilla. Скорее всего достаточно будет ввести filez и нажать Tab. Оболочка сама допишет слово до конца, если нет других команд, начинающихся с filez.
Автозавершение работает как по отношению к командам-программам, так и адресам. Например, обычно в домашних каталогах дистрибутивов GNU/Linux имеется папка Загрузки (или Downloads). При вводе ее имени может быть достаточным ввести только первую букву и нажать Tab, чтобы получить полное имя.
Обратим внимание, что Bash, да и Linux в общем, различают большие и малые буквы. Поэтому text.txt и Text.txt – разные файлы.
Если команду или имя файла/каталога однозначно идентифицировать нельзя, то двойное нажатие Tab выводит на экран все возможные варианты.
Здесь было введено слово apt
, после этого два раза нажат Tab. В ответ Bash вывел все команды, начинающиеся с заданного слова.
Также автодополнение может помочь, когда вы не помните полное название программы.
Ctrl + U и Ctrl + W
Сочетание клавиш Ctrl + U удаляет написанную в текущей строке команду целиком, т. е очищает командную строку (не путать с командой clear
, которая очищает весь экран терминала). Это куда удобнее, чем стирать клавишей Backspace. При этом курсор должен стоять в конце всей строки.
Если курсор находится где-либо в середине строки, то будет удалено все, что находится перед курсором. Текст позади него останется.
Комбинация Ctrl + W удаляет только одно слово перед курсором. Например, в примере ниже нажатие Ctrl + W приведет к удалению только слова install
.
Задание
Обычно нажатие Ctrl + H в файловых менеджерах графических оболочек Linux отображает скрытые файлы.
-
Откройте "Терминал" и проверьте, что у вас есть история команд. Закройте "Терминал".
-
Откройте в графическом текстовом редакторе файл .bash_history, удалите его содержимое, сохраните файл.
-
Снова откройте "Терминал". Остались ли в истории ранее введенные вами команды?
Курс с ответами к заданиям и дополнительными уроками в PDF