Linux для пользователя
Шрифт:
Поскольку оболочка играет очень важную роль в Linux, ей будет посвящена отдельная глава этой книги. Впрочем, аналогичный материал вы найдете в любой книге по UNIX. Стоит только отметить, что для UNIX-подобных систем разработано несколько альтернативных bash оболочек. Их можно использовать и в Linux, но по умолчанию запускается именно bash.
Рассмотрим теперь еще одну команду, которую вам необходимо знать, поскольку все же компьютер у вас персональный (неважно, дома ли это происходит, или на работе). А это значит, что вы и есть суперпользователь данного компьютера. Но, как уже было сказано выше, входить в систему под именем суперпользователя не рекомендуется, поскольку любое неосторожное действие суперпользователя может привести к нежелательным последствиям. Входя под именем простого пользователя, вы, по крайней мере, не можете по неосторожности удалить или испортить системные файлы. В то же время, имеется ряд действий (например, монтирование файловых систем), выполнить которые может только суперпользователь. Не перезагружать же каждый раз компьютер! Именно в таких ситуациях выручает команда su. Достаточно ввести команду su и текущая оболочка (так и хочется сказать "система") запустит для вас новый экземпляр оболочки, в который вы попадете уже с правами пользователя root. Естественно, что
Если вы вошли в систему под именем root, то вы можете аналогичным образом запустить новый экземпляр оболочки от имени любого пользователя, пароль которого вы знаете [8] . Но для этого надо указать имя этого пользователя в командной строке, например:
Когда мы вводим su без указания имени, по умолчанию подставляется имя суперпользователя root.
Но в ОС Linux есть еще одна возможность временно переключаться в бюджет пользователя root для выполнения административных функций. Вспомните, что Linux - это многопользовательская система, в ней одновременно могут работать несколько пользователей. Поэтому в первом виртуальном терминале можно войти под именем root, а в любом другом терминале - под именем простого пользователя. Основную работу вы можете выполнять как простой пользователь, а когда потребуется выполнить административные функции, вы "зовете системного администратора". Для этого достаточно нажать ‹Ctrl›+‹Alt›+‹F1› - и системный администратор уже тут. По завершении операции, которую может выполнить только суперпользователь, вы немедленно должны вернуться в бюджет простого пользователя. В таком случае вы не рискуете нарушить что-либо в системе, пока еще не набрались необходимого опыта.
8
Тут я был не прав. Суперпользователю не надо знать пароль простого пользователя для того, чтобы запустить оболочку от его имени.
3.4. Редактирование командной строки. История команд
В предыдущих разделах вам было предложено выполнить несколько команд ОС Linux. Полагаю, что, если в процессе набора возникали ошибки, вы сами догадались, как их исправить. Тем не менее будет полезно привести для справки короткую сводку команд, позволяющих редактировать командную строку, а также вообще оказывать какое-то влияние на поведение оболочки с помощью клавиатуры (о мышке разговор отдельный).
Примечание. Приводимые ниже описания команд относятся к оболочке GNU bash версии 1.14.7(1). Думается, что они будут верны и для последующих версий этой оболочки.
Таблица 3.2. Клавиши редактирования командной строки
Клавиша | Описание реакции системы |
---|---|
‹Стрелка вправо› или ‹Ctrl›+‹F› | Перемещение вправо по командной строке в пределах уже набранной цепочки символов плюс один символ справа (место для ввода следующего символа) |
‹Стрелка влево› или ‹Ctrl›+‹B› | Перемещение на один символ влево |
‹Esc›+‹F› | Перемещение на одно слово вправо |
‹Esc›+‹B› | Перемещение на одно слово влево |
‹Home› или ‹Ctrl›+‹A› | Перемещение в начало набранной цепочки символов |
‹End› или ‹Ctrl›+‹E› | Перемещение в начало/конец набранной цепочки символов |
‹Del› или ‹Ctrl›+‹D› | Удаление символа, на который показывает курсор |
‹Backspase› | Удаление символа в позиции, предшествующей курсору |
‹Ctrl›+‹K› | Удалить правую часть строки, начиная с символа, на который указывает курсор |
‹Ctrl›+‹U› | Удалить левую часть строки, включая символ, который находится слева от курсора |
‹Enter› или ‹Ctrl›+‹M› | Запуск на выполнение команды, определяемой набранной цепочкой символов |
‹Ctrl›+‹L› | Очистить экран и поместить текущую команду в верхней строке экрана |
‹Ctrl›+‹T› | Поменять местами два символа: символ, на который показывает курсор, и символ слева от курсора, затем, курсор переместить на один символ вправо |
‹Esc›+‹T› | Поменять местами два слова: слово, на которое указывает курсор и слово слева от первого |
‹Ctrl›+‹K› | Вырезать часть строки от текущей позиции курсора до конца строки (вырезанная часть строки сохраняется в буфере, ее можно вставить в другое место строки) |
‹Esc›+‹D› | Вырезать часть строки от текущей позиции курсора до конца текущего слова (если курсор указывает на пробел между словами, то вырезается все слово справа от курсора) |
‹Esc›+‹Del› | Вырезать часть строки от текущей позиции курсора до начала текущего слова (если курсор указывает на пробел между словами, то вырезается все слово слева от курсора) |
‹Ctrl›+‹W› | Вырезать часть строки от текущей позиции курсора до предыдущего пробела |
‹Ctrl›+‹Y› | Вставить последний вырезанный текст в позицию курсора |
‹Esc›+‹C› | Символ, на который указывает курсор, заменить на тот же, но заглавный, а курсор переместить на первый пробел справа от текущего слова |
‹Esc›+‹U› | Сделать символы данного слова заглавными, начиная с символа, на который указывает курсор, а курсор установить на пробел справа от слова |
‹Esc›+‹L› | Превратить символы, начиная с символа, на который указывает курсор, до конца данного слова в прописные (маленькие) буквы, а курсор установить на пробел справа от слова |
‹Shift›+‹PgUp› ‹Shift›+‹PgDown› | Эти команды позволяют просмотреть несколько страниц экранного вывода (количество зависит от размера видеопамяти); полезны в тех случаях, когда та или иная команда выводит на экран очень много информации, быстро пробегающей по экрану и как бы исчезающей для пользователя; как видите, эта информация не пропадает |
‹Ctrl›+‹C› | Прервать выполнение запущенной команды |
‹Ctrl›+‹D› | Выход из оболочки bash |
Примечание. Если вы работаете не просто в оболочке bash, а запустили программу Midnight Commander, то такие клавиши как ‹Стрелка вправо›, ‹Стрелка влево›, ‹Home›, ‹End›, ‹Del› не могут использоваться так, как указано в приведенной таблице, поскольку они используются для перемещения подсветки в текущей панели [9] . Но указанные выше в скобках комбинации символьных клавиш с клавишами ‹Ctrl› и ‹Esc› по-прежнему действуют для редактирования командной строки.
9
Причем здесь без прямого указания подразумевалось, что в Midnight Commander используется стандартный или укороченный формат отображения списка файлов. Если включен расширенный формат, то клавиши ‹Стрелка вправо›, ‹Стрелка влево›, ‹Home›, ‹End›, ‹Del› работают так, как сказано в этой таблице. О форматах отображения файлов в программе Midnight Commander будет рассказано в главе 6.
Список возможных команд не ограничивается только приведенными в табл. 3.2, но из-за ограниченности объема книги невозможно привести здесь полный перечень клавиатурных команд. Для получения дополнительной информации воспользуйтесь командой info bash.
Заметим, что оболочка bash имеет встроенную подпрограмму, предназначенную для облегчения ввода команд в командной строке. Эта подпрограмма вызывается при двукратном нажатии клавиши ‹Tab› после того, как вы уже ввели некоторое число символов. Если эти символы являются началом названия одной из стандартных команд, которые известны оболочке, то возможны два варианта реакции оболочки на двукратное нажатие клавиши ‹Tab›. Если по введенным символам команда определяется однозначно, оболочка просто добавляет окончание команды в командную строку. Если однозначно восстановить имя команды по введенным символам невозможно, то выдается список возможных вариантов продолжения для того, чтобы пользователь мог ввести еще несколько символов, позволяющих однозначно завершить ввод команды нажатием клавиши ‹Tab›.
Если вы попробуете дважды ввести символ табуляции в пустой командной строке, то после первого ввода вы получите только звуковой сигнал, а после второго - примерно следующее сообщение: "There are 1217 possibilities. Do you really wish to see them all? (y or n)" ("Возможны 1217 вариантов завершения. Вы действительно хотите увидеть их все?").
Если дважды нажать клавишу табуляции после того, как введена одна из команд и пробел, оболочка предполагает, что вы ищете имя файла, который должен вводиться как параметр команды, и выдает в качестве подсказки список файлов текущего каталога. Если же достаточная часть имени файла введена, то заканчивается ввод этого имени в командную строку. Аналогичным образом можно пытаться угадывать окончания переменных окружения, если вместо клавиши ‹Tab› воспользоваться комбинацией ‹Esc›+‹$›.
Для практической работы с оболочкой также полезно знать, что оболочка запоминает некоторое число введенных команд (по умолчанию 1000, это значение задается в переменной HISTSIZE; см. гл. 5) и позволяет вызывать их путем выбора из списка - так называемой истории команд. Историю команд можно просмотреть, введя в командной строке history (здесь вы сможете воспользоваться комбинациями клавиш ‹Shift›+‹PgUp› и ‹Shift›+‹PgDown›, чтобы просмотреть то, что выдаст эта команда). История команд сохраняется в файле, определяемом переменной HISTFILE (обычно $HOME/.bash_history). Для работы с историей команд в оболочке bash используются следующие комбинации клавиш.
Таблица 3.3. Клавиши для управления историей команд.
Клавиша | Описание реакции системы |
---|---|
‹Стрелка вверх› или ‹Ctrl›+‹P› | Переход к предыдущей команде в списке (движение назад по списку) |
‹Стрелка вниз› или ‹Ctrl›+‹N› | Переход к следующей команде в списке (движение вперед по списку) |
‹PgUp› | Переход к (вызов в командную строку) самой первой команде, сохраненной в истории команд |
‹!›, ‹N› | Выполняется (без нажатия клавиши ‹Enter›) n-ная команда из списка истории команд |
‹!›, ‹-›, ‹N› | Выполняется n-ая от конца списка команда |
‹!›, строка символов | Выполняется команда, имя которой начинается на строку символов (поиск нужной команды осуществляется движением в обратном порядке от конца файла истории и выполняется первая попавшаяся команда, которая начинается на строку символов) |
‹Ctrl›+‹O› | То же что нажатие клавиши ‹Enter›, затем отображается очередная команда из файла истории |
3.5. Завершение работы системы Linux
Хотя компьютер, работающий под управлением ОС Linux, при выполнении некоторых условий можно оставлять работающим круглосуточно, большинство пользователей персональных компьютеров привыкли выключать их после завершения работы. Если вы работаете с ОС Linux, нельзя выключать компьютер простым отключением питания, как это было под MS-DOS. Дело в том, что в любой момент времени в системе запущено несколько процессов, вы могли видеть это, когда выполняли команду