Виктор Костромин - Linux для пользователя
3.5. Завершение работы системы Linux
Хотя компьютер, работающий под управлением ОС Linux, при выполнении некоторых условий можно оставлять работающим круглосуточно, большинство пользователей персональных компьютеров привыкли выключать их после завершения работы. Если вы работаете с ОС Linux, нельзя выключать компьютер простым отключением питания, как это было под MS-DOS. Дело в том, что в любой момент времени в системе запущено несколько процессов, вы могли видеть это, когда выполняли команду
[root]# ps ax
(и можете посмотреть еще раз, повторив запуск этой команды). Но более важная причина состоит в том, что некоторые из этих процессов могут работать с файлами, причем система не записывает все изменения файлов на диск сразу после внесения этих изменений пользователем или процессом, а сохраняет их временно в оперативной памяти (кэширует). Если просто выключить питание, эти изменения не будут сохранены и пропадут, что иногда может привести даже к невозможности последующей загрузки системы. Так что надо уметь правильно завершить работу системы перед выключением компьютера. Это делается командой shutdown.
Команда shutdown может быть выполнена только пользователем root[10], так что вы либо должны были войти в систему под этим именем, либо должны предварительно выполнить команду su, чтобы приобрести соответствующие права.
Команда shutdown имеет следующий синтаксис:
[root]# shutdown ‹options› ‹time› ‹warning-massage›
Замечание
Существует некоторая вероятность того, что запустив команду, вы получите ответ "command not found". Это значит, что оболочка не знает, где находится файл программы. В таком случае вам необходимо ввести команду с указанием полного пути, в данном случае в виде /sbin/shutdown -h, поскольку для команды shutdown файл программы лежит в каталоге /sbin.
Из опций программы shutdown наиболее часто используются две:
• -h - полная остановка системы (компьютер будет выключен);
• -r - перезагрузить систему.
Параметр time указывает время, когда должна быть выполнена команда (не обязательно выполнять ее немедленно). Время можно указать в форме задержки от текущего момента. Например, если вы хотите, чтобы система остановилась через 5 минут, вводите команду
[root]# shutdown -r +5
что будет означать "остановить систему через 5 минут и перезагрузиться после того, как работа будет корректно завершена''. Для вас пока наиболее актуальной формой этой команды будет, скорее всего,
[root]# shutdown -h 0
когда вы захотите просто выключить компьютер. Эквивалентом команды
shutdown -h 0
является команда halt. При нажатии известной комбинации клавиш ‹Ctrl›+‹Alt›+‹Del› в Red Hat Linux выполняются действия, аналогичные команде
shutdown -r 0
так что таким образом тоже можно выключить компьютер, только надо в момент перезагрузки отключить питание.
3.6. Помощь по работе с Linux
Вы завершили первый сеанс работы с операционной системой Linux, и, надеюсь, понимаете, что вам еще не раз потребуется подсказка в разных ситуациях. Надеюсь также, что настоящая книга сможет служить вам такой подсказкой на первых порах, но она наверняка не решит всех ваших проблем. Поэтому постараюсь сразу указать другие источники информации. При этом я несколько забегаю вперед, рассказывая о получении подсказки в графическом режиме работы, о котором еще ничего не было сказано. Но это оправдано, поскольку о способах выхода из затруднительных ситуаций лучше знать заранее.
3.6.1. Источники справочной информации
Если вы окажетесь в ситуации, когда не знаете, что предпринять или сделать для достижения желаемой цели, лучше всего начать искать подсказку в самой системе. Дистрибутив Red Hat Linux содержит тысячи страниц документации, представленной в электронном виде, так что ответы на все возникающие вопросы у вас, что называется, "на кончиках пальцев". Существует несколько независимых источников, которые содержат информацию почти по любому аспекту работы в системе Linux:
• страницы интерактивного руководства man;
• гипертекстовое руководство info;
• документация, прилагаемая к пакетам ПО;
• текстовые файлы HOWTO и FAQ проекта Linux Documentation Project;
• команда locate.
Необходимо сразу сказать, что большую часть информации из этих источников вы будете получать на английском языке. Только для русифицированных дистрибутивов часть страниц интерактивного руководства man выдается на русском языке. Можно дополнительно скачать из Интернета имеющиеся там страницы руководства man, переведенные на русский язык [П5.1], и разместить их в соответствующих каталогах. Но все равно, на русский переведено далеко не все. Учитывая это замечание, рассмотрим каждый из перечисленных выше источников информации подробнее.
3.6.2. Страницы интерактивного руководства man
Выше уже было вкратце рассказано о команде man, с помощью которой пользователь всегда может в затруднительной ситуации получить подсказку почти по любой команде системы, форматах файлов и системных вызовах. Это основной способ получения подсказки во всех UNIX-системах. Страницы руководства man в Linux делятся на следующие секции:
Таблица 3.4. Основные секции интерактивного руководства man
Секция Содержание 1 Команды пользователя 8 Системные команды 2 Системные вызовы 3 Библиотечные вызовы (подпрограммы) 4 Устройства 5 Форматы файлов 6 Игры 7 Разное 9 Ядро (kernel internals) n Tcl/Tk commandsПорядок перечисления секций в этой таблице не случаен. Дело в том, что файлы с информацией расположены в подкаталогах каталога /usr/man и команда man ищет нужную информацию, просматривая эти подкаталоги именно в том порядке, который приведен табл. 3.4. Если вы, например, дадите команду
[user]$ man swapon
то получите справку о команде swapon из секции 8. Поэтому если вы хотите получить справку по системному вызову swapon, надо дать команду
[user]$ man 2 swapon
указывая номер секции, в которой надо искать информацию.
Страницы man просматриваются с помощью команды less (что дает возможность просматривать информацию поэкранно и перемещаться по этим экранам вперед и назад), так что для управления процессом вывода информации можно использовать клавиши, используемые в программе less. Наиболее употребительные:
Таблица 3.5. Клавиатурные команды, используемые при просмотре man-страниц
Клавиша Назначение ‹Q› Выход из программы ‹Enter› Просмотр строка за строкой ‹Space› Вывод следующего экрана информации ‹B› Вернуться к предыдущему экрану ‹/› за которой следует строка символов и ‹Enter› Поиск введенной строки символов ‹N› Повторение предыдущего поискаЕсли вы предпочитаете читать текст не с экрана, а с отпечатанной копии, то можете отпечатать соответствующую страницу, воспользовавшись командой
[user]$ man имя_команды | lpr
или, если у вас postscript-принтер,
[user]$ man -t имя_команды | lpr
Но для того, чтобы получить нужную информацию, нужно еще знать, что искать. В таком случае могут помочь команды whatis и apropos. Команда whatis производит контекстный поиск заданного ключевого слова (шаблона) в базе данных, содержащей перечень системных команд с кратким описанием команды. Выводятся только точные совпадения с ключевым словом. Команда apropos производит поиск по фрагментам слов. Аналогично команде apropos работает команда man с параметром -k. Попробуйте, например,
[user]$ man -k net
Необходимо, однако, предупредить, что для того, чтобы команды man -k, whatis и apropos работали, необходимо вначале создать базу данных о системных командах, для чего надо запустить команду makewhatis. В противном случае вы можете на любой запрос получить сообщение "nothing appropriate". Правом запустить команду makewhatis обладает только пользователь root. Если вы не выключаете компьютер на ночь, то лучше всего запускать эту команду как задание для процесса cron.