Глава 1. Командная строка

Содержание

Командная строка и графический интерфейс
Удобства при работе с командной строкой
Автодополнение командной строки

Операционная система Linux управляется командами. Управляющие команды разбираются специальной программой — командной оболочкой, после чего исполняются. Команды должны подчиняться правилам командного языка.

Существует несколько различных программ — командных оболочек (sh, bash, zsh и др.). Они поддерживают несколько отличающиеся друг от друга диалекты командного языка (впрочем, эти диалекты имеют гораздо больше общего, чем различий). Окончание «sh» в названиях происходит от слова shell — оболочка.

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

В графической оконной системе ввод команд обеспечивается специальной программой — терминалом. Таких программ несколько: xterm, aterm, konsole и др. Программа-терминал является посредником между оконной системой и командной оболочкой и берёт на себя заботу о вводе команд и выводе результатов их работы.

Вот скриншот программы xterm:

На нём видно, что только что была запущена команда ls /, она напечатала кое-что на экране и теперь можно вводить новую команду. Силуэт Главного здания МГУ выводится единожды при запуске командной оболочки zsh (так уж настроен мой компьютер), после чего появляется так называемое приглашение.

Красный прямоугольник после второго приглашения — это курсор. Он обозначает место в окне терминала, в котором появится следующий выведенный символ. Когда символ выведен, курсор перемещается правее, а если достигнет правого края окна, курсор переместится в начало следующей строки. Наконец, если следующей строки нет (курсор на последней строке окна), весь текст окна прокручивается вверх, и следующая строка появляется, а курсор перемещается в её начало.

[Подсказка]Подсказка

Некоторые программы выводят много текста в окно терминала, но из-за прокрутки в окне видно только его окончание — то, что помещается в окне. Тем не менее программа-терминал обычно хранит несколько сотен последних строчек в своей памяти, и имеется возможность промотать текст обратно. В xterm для этого нужно нажимать Shift+Up (прокрутка по строкам) Shift+PgUp (по страницам). Соответственно, обратная прокрутка осуществляется комбинациями клавиш Shift+Down (прокрутка по строкам) Shift+PgDown (по страницам).

[Замечание]Замечание

В дальнейшем в этом руководстве подобные примеры будут приводиться не в виде скриншотов, а вот таким образом:

° ║ █ ▓▓▓ ■ ▐▒▒▒▒▒▌ ■ ▒▒▌ ▐▒▒▒▒▒▌ ▐▒▒ ____ ▒▒▌▄▄▄▐▒▒▒▒▒▌▄▄▄▐▒▒ ____ ▒▒▒▒▄▄▒▒▌▓▓▓▐▒▒▒▒▒▌▓▓▓▐▒▒▄▄▒▒▒▒ ▒▒▒▒╦╦▒▒▌▓▓▓█▓╦╦╦▓█▓▓▓▐▒▒╦╦▒▒▒▒ [2:10:28][tz@coneforest ~/work]% ls / arch/ dev/ initrd/ media/ noah/ root/ tmp/ bin/ etc/ lib/ misc/ opt/ sbin/ usr/ boot/ home/ lost+found/ mnt/ proc/ sys/ var/ [2:10:35][tz@coneforest ~/work]%

Фрагмент

[2:10:35][tz@coneforest ~/work]%

и есть уже упомянутое приглашение. Его вид и содержание можно как угодно настроить. В нашем примере приглашение содержит время, в которое оно появилось на экране. Кроме того, из приглашения видно, что мы вводим команды в качестве пользователя tz на компьютере coneforest, и текущей директорией для нас служит ~/work. Подробнее обо всех этих вещах написано в следующих главах.

В тех примерах, где содержание приглашения не важно, мы будем изображать его просто как знак процента:

% ls /

Этот знак не является частью команды, и набирать его не нужно. То, что пользователь вводит, показано наклонным шрифтом.

Не обязательно запускать команды только лишь описанным выше способом. Графическая оконная система предоставляет и другие возможности: меню, пиктограммы (иконки) на рабочем столе, клавиатурные сочетания. С каждым пунктом меню или пиктограммой на рабочем столе связана определённая команда, которая запускается при выборе этого пункта меню или при щелчке (возможно, двойном, зависит от настроек) на пиктограмме, при нажатии определённого сочетания клавиш или при определённом мышином жесте.

Однако многие программы в Linux могут запускаться с различными ключами и параметрами, и указание параметров при запуске программы при помощи мышки становится невозможным.

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

Допустим, что программой, которая назначена для открытия веб-адресов, это Konqueror, но вы по какой-то причине хотите её открыть в Seamonkey. Тогда щёлкаем на ярлык правой кнопкой мыши, и в появившемся меню выбираем Открыть с помощью…, а затем в появившемся диалоге мучительно отыскиваем и выбираем программу Seamonkey.

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

Излишняя привязанность к мыши становится похожей на привязанность малыша, который учится ходить, к ходункам. Ребёнок, которому давно пора кушать ложечкой, по-прежнему тянется к любимой соске. Выздоровевший человек не может расстаться с костылями.

Между тем мы считаем, что клавиатура является гораздо более гибким инструментом, чем мышка, а язык команд — более универсальным способом управления компьютером.

Операционная система Linux в большей степени, нежели многие другие, приспособлена к профессиональной работе. Даже ввод команд в терминале оказывается не столь утомителен, как можно подумать.

Информатика-54