Введение в администрирование UNIX/Командная строка UNIX: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 211:
 
=== Возможности интерфейса командной оболочки ===
[[Файл:Small-lect3-09.png|right|300px|Презентация 3-09: возможности командной оболочки]]
 
Презентация 3-09: возможности командной оболочки
 
Современные командные оболочки, например bash предоставляют пользователю ряд удобных особеностей пользовательского интерфейса, облегчающих работу с командной строкой.
Редактирование командной строки
 
==== Редактирование командной строки ====
Вводимую команду можно редактировать с помощью клавиш '''Backspace''' и '''Delete''', перемещаться стрелками по всей строке.
 
Для управления запущенными командами используются сочетания клавиш. Ввод следует завершать командой '''Ctrl-D''' (конец ввода). Эту команду интерпретирует при вводе с терминала система. Она же превращает некоторые другие управляющие символы (например, '''Ctrl-C''' — «прерывание» или '''Ctrl-Z''' — «засыпание») в сигналы.
 
Командная оболочка позволяет настраивать все функциональные клавиши и команды. Настройки ввода для bash располагаются в файле /etc/inputrc.
История команд
 
==== История команд ====
Двумя другими клавишами со стрелками — вверх и вниз — задействуется весьма мощный механизм bash — работа с историей команд. Все команды, набранные пользователем, командная оболочка запоминает и позволяет обращаться к ним впоследствии. По стрелке вверх, список поданных команд «прокручивается» от последней к первой, а по стрелке вниз — обратно. Соответствующая команда отображается в командной строке как только что набранная, её можно отредактировать и подать оболочке (подгонять курсор к концу строки при этом необязательно).
 
Чтобы история команд могла сохраняться между сеансами работы пользователя, bash записывает ее в файл .bash_history, находящийся в домашнем каталоге пользователя. Делается это в момент завершения оболочки: накопленная за время работы история дописывается в конец этого файла. При следующем запуске командной оболочки считывает .bash_history целиком. История хранится не вечно, количество запоминаемых команд в .bash_history ограничено (обычно сохраняется 500 команд, но это можно и перенастроить).
Псевдонимы
 
==== Псевдонимы ====
Поиск по истории — удобное средство: длинную командную строку можно не набирать целиком, а отыскать и использовать. Однако давнюю команду придется добывать с помощью нескольких нажатий клавиши вверх — а можно и совсем не доискаться, если она уже выбыла оттуда. Для того чтобы оперативно заменять короткие команды длинными, стоит воспользоваться псевдонимами (aliases). В конфигурационных файлах командного интерпретатора пользователя обычно уже определено несколько сокращений, список которых можно посмотреть с помощью команды alias без параметров:
 
Строка 243 ⟶ 242 :
</source>
 
Например, по команде '''ls''' вместо утилиты /bin/ls bash запускает собственную команду-сокращение, превращающееся в команду '''ls --color=auto'''. Повторно появившуюся в команде подстроку «ls» интерпретатор уже не обрабатывает, во избежание вечного цикла. Например, команда '''ls -al''' превращается в результате в '''ls --color=auto -al'''.
 
Сокращения не наследуются с окружением.
Автодополнение
 
==== Автодополнение ====
Автодополнения позволяют быстро набирать команды и пути в файловой системе. Во время набора имени команды или файла пользователь может нажать клавишу '''Tab''', и командная оболочка попытается «дополнить» указанную команду или файл: предложит возможные варианты с данным началом или же дополнит имя, ведь часто набранной строки — пути к файлу и нескольких первых букв его имени — достаточно для однозначного указания на этот файл, потому что по введенному пути других файлов, чье имя начинается на эти буквы, просто нет.
Шаблоны
 
==== Шаблоны ====
Автодополнение очень удобно, когда цель пользователя — задать один конкретный файл в командной строке. Если же нужно работать сразу с несколькими файлами — например, для перемещения их в другой каталог с помощью mv, достраивание не помогает. Необходим способ задать одно «общее» имя для группы файлов, с которыми будет работать команда. В подавляющем большинстве случаев это можно сделать при помощи шаблона.
 
Строка 264 ⟶ 263 :
 
Шаблоны используются в нескольких конструкциях shell. Главное место их применения — командная строка. Если оболочка «видит» в командной строке шаблон, она немедленно заменяет его списком файлов, имена которых ему соответствуют. Команда, которая затем вызывается, получает в качестве параметров список файлов уже без всяких шаблонов, как если бы этот список пользователь ввел вручную. Шаблоны используются в нескольких конструкциях shell. Главное место их применения — командная строка. Если оболочка «видит» в командной строке шаблон, она немедленно заменяет его списком файлов, имена которых ему соответствуют. Команда, которая затем вызывается, получает в качестве параметров список файлов уже без всяких шаблонов, как если бы этот список пользователь ввел вручную.
Командная оболочка как средство программирования
 
==== Командная оболочка как средство программирования ====
Большая часть того, что нужно начинающему пользователю UNIX, делается с помощью одной правильной команды, или вызовом нескольких команд в конвейере. От пользователя только требуется оформить решение задачи в виде сценария на shell. На самом же деле уже самый первый из командных интерпретаторов, sh, был настоящим высокоуровневым языком программирования — если, конечно, считать все утилиты системы его операторами. При таком подходе от sh требуется совсем немного: возможность вызывать утилиты, возможность свободно манипулировать результатом их работы и несколько алгоритмических конструкций (условия и циклы).