Автодополнение

Для правильного применения команд, конечно же, нужно знать их имена и назначение. Однако нас никто не заставляет напрягать пальцы вводом имени команды полностью. Потому что тут на помощь приходит великий метод автодополнения.

Благодаря этому методу для любой команды достаточно ввести первые несколько ее символов -- и нажать клавишу табуляции (Tab). И, если введённых буковок достаточно для однозначной идентификации, полное имя команды волшебным образом возникнет в строке. Если же наш ввод допускает альтернативы продолжения имени -- все они высветятся на экране (сразу или после повторного нажатия на табулятор), и из них можно будет выбрать подходящую.

Поясню на примере. Создание пустого файла выполняется командой touch. Чтобы ввести ее имя в строку, достаточно набрать первые три ее буквы -- tou, -- и клавишу Tab, остальные два символа будут добавлены автоматически. Если же мы из естественной человеческой лени ограничимся только двумя первыми символами, то после нажатия табулятора нам будет предложен список возможных дополнений:

$ to <Tab>

toc2cue	toc2mp3	toe	top	touch

из которого мы и выберем подходящее. В данном случае достаточно набора ещё одной буковки u и повторного нажатия на Tab. А вот если прибегнуть к табулятору в пустой командной строке -- перед нами предстанет список имён всех команд, доступных в данной системе. Правда, перед этим обычно задаётся вопрос, а хотим ли мы созерцать эти 500-700 имён.

Большинство употребимых команд POSIX-систем -- коротки и мнемонически прозрачны. И может показаться. что не такое уж это облегчение -- заменить ввод двух-трех символов нажатием табулятора (а то еще и неоднократным). Однако, когда речь дойдет до аргументов команд -- тут вся мощь автодополнения станет явной.

И еще маленькое отступление. Автодополнение -- стандартная возможность bash и всех других командных оболочек, относимых к категории развитых. Но как раз в стандарте POSIX эта возможность не предусмотрена, и потому POSIX shell ее лишён. А в современных представителях семейства C-shell (tcsh) автодополнение реализуется несколько иначе.

Ещё один способ облегчения ввода команд -- обращение к их истории, но об этом разговор будет несколько позже.

. .