Комфортная работа в командной строке

Командная строка Linux может показаться очень неудобной, особенно после графического интерфейса Windows. Но, если использовать все возможности, предоставляемые командной строкой, то работа в ней будет очень быстрой и комфортной.

Автоподстановка

Одной из таких расширенных возможностей является автоматическая подстановка в командной строке. Например, необходимо ввести следующую команду (Приведенный пример работает в Slackware Linux. В SuSE Linux можно использовать путь /usr/share/doc/howto/en/txt/FTP.gz.):

cat /usr/share/doc/Linux-FAQs/FTP-FAQ

Путь к файлу FTP-FAQ достаточно длинный и для его набора требуется время. Кроме того, при наборе такого пути легко ошибиться. Тут вам поможет автоподстановка. Для того, что бы оболочка автоматически продолжила путь следует использовать символ табуляции.

Итак, что бы правильно и быстро ввести путь к файлу последовательность действий будет следующей:

В командной строке сначала необходимо набрать команду и начало пути

$ cat /u

и нажать символ табуляции. В результате оболочка автоматически продолжит путь. На экране появится продолжение пути:

$ cat /usr/

Что произошло? Нажав на табуляцию мы сказали оболочке: в корне файловой системы / нас интересует файл начинающийся с символа u. Если можешь, продолжи строку. Поскольку в корне файловой системы существует только один файл с именем, начинающимся на u — директория /usr, оболочка дописала имя и поскольку это директория, дописала слеш в конце имени.

Дальше мы должны ввести продолжение пути.

$ cat /usr/s

При первом нажатии на символ табуляции ничего не произошло. Это значит, что в этой директории нет файлов начинающихся на s, либо их несколько. Поэтому необходимо второй раз нажать на табуляцию. Если файлов нет — тогда вы ничего не увидите, если есть — то будет показан список возможных файлов:

$ cat /usr/s
sbin/  share/ spool/ src/

Придется ввести еще один символ h и нажать на табуляцию. В результате получим:

$ cat /usr/share/ 

Продолжим ввод пути. Допишем сразу два символа do и нажмем на табуляцию.

$ cat /usr/share/doc/

Наберем L и нажмем табуляцию.

$ cat /usr/share/doc/Linux-

Дальше символ F и табуляция.

$ cat /usr/share/doc/Linux-FAQ/

Вводим FTP, табуляция и получаем то что нам необходимо.

$ cat /usr/share/doc/Linux-FAQ/FTP-FAQ

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

История команд

Вторая особенность, облегчающая работу в командной строке — это история команд.

Для просмотра истории команд можно пользоваться клавишами стрелка вверх и стрелка вниз. Или встроенной в оболочку командой history.

Если Вы при помощи клавиш управления курсором выбрали какую нибудь команду из истории, эту команду сначала можно отредактировать и только потом нажать на Enter.

History выводит пронумерованный список команд из истории. Для того, что бы повторно запустить программу, в командной строке следует ввести символ восклицательный знак и номер команды, затем нажать на Enter. Например:

$ history
 490  apropos daemon | less
 491  man 3 daemon
 492  man 3 daemon
 493  su -
 494  man od
 495  man hexdump
 496  su -
 497  mc
 498  pwd
 499  ls
 500  su -
 501  history
$

Чтобы выполнить команду под номером 498, сначала вводим восклицательный знак и без пробелов номер команды в истории.

$ !498
Внимание! Обратите внимание на то, что в истории сохраняются вызовы программ со всеми параметрами командной строки. Никогда не передавайте пароли программам как аргумент командной строки. Это небезопасно!

История команд текущего сеанса хранится в оперативной памяти. По умолчанию в истории может храниться до 500 строк. После выхода из системы, история сохраняется в файле .bash_history, расположенном в домашней директории пользователя. Количество строк в файле ограничено 500 строками. Итого при работе история команд может достигать 500+500 — тысяча строк. Это очень много! Для ограничения количества команд в оперативной памяти используется переменная среды окружения HISTSIZE, в файле — HISTFILESIZE.