Командная строка Linux: краткий курс для начинающих
Введение
Требования
Для разных операционных систем командную строку можно открывать с помощью приложений:
С подробным описанием команд для Ubuntu можно ознакомиться в официальной документации.
Вход на сервер через терминал
В операционной системе Ubuntu 20.04 открыть командную строку можно двумя способами: через консоль и через графический терминал.
Для работы через консоль следует нажать сочетание клавиш Ctrl+Alt+F1, для возврата в графический интерфейс — сочетание клавиш Ctrl+Alt+F7.
Для запуска терминала нажмите сочетание клавиш Ctrl+Alt+T.
Внизу экрана располагается приглашение командной строки — последовательность символов, извещающая о готовности к обработке команд:
Базовые команды, используемые при настройке сервера
После создания нового сервера необходимо предпринять несколько шагов по его базовой настройке.
Для того чтобы открыть сервер под учетной записью заведенного пользователя введите команду:
Для входа на сервер под учетной записью root используйте команду, заменив SERVER_IP_ADDRESS на публичный IP-адрес вашего сервера:
Для создания новой учетной записи пользователя введите команду, заменив имя DEMO на любое другое необходимое имя:
Для открытия конфигурационного файла в текстовом редакторе под пользователем root введите команду:
Для замены строчки в открывшемся конфигурационном файле найдите, например, строчку Port 22 и замените число 22 на любое другое число (от 1025 и до 65536).
После внесения изменений сохраните и закройте файл, нажав сочетание клавиш CTRL-X, затем клавишу Y, затем клавишу ENTER.
Для перезапуска сервиса SSH выполните следующую команду:
Для выполнения команды с привилегиями root-пользователя, перед ней следует поставить слово sudo:
Для завершения сессии выполните команду:
Обзорное описание команд, аргументов и опций для них
Для запуска команды следует ввести команду и нажать клавишу Enter.
Команды выполняются последовательно, для выполнения следующей появится приглашение командной строки (если не использовать специальные скрипты).
Для того чтобы открыть страницу с подробным описанием команды Linux, например ip address, введите команду man с именем команды:
Запуск без аргументов и опций
При запуске команд без аргументов:
Пример:
Выполнив команду ls без параметров, получаем список файлов в каталоге:
Запуск с аргументами (параметрами)
Большинство команд рассчитано на запуск с передачей аргументов (параметров).
Наиболее распространенное использование команды cd — вызов с аргументом, который является путем к директории, в которую следует перейти:
Запуск с опциями
Многие команды также поддерживают опции (флаги, ключи) запуска, позволяющие изменять результат выполнения команды. Опции представляют собой одиночный символ после символа «-», либо в расширенном написании после «—».
Пример:
Запуск с аргументами и опциями (одновременно)
Структура записи команды с опциями и аргументами:
Пример:
Переменные окружения
Окружение/среда (environment) — это набор пар ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, которые могут использоваться запускаемыми процессами.
Просмотр переменных окружения
Для того чтобы посмотреть свое окружение введите команду без аргументов:
В зависимости от конфигурации системы, вывод списка переменных окружения может занять несколько экранов, поэтому лучше использовать команду:
Просмотр значения переменной
Переменные окружения могут формироваться как из заглавных, так и из строчных символов, однако исторически повелось именовать их в верхнем регистре.
Для перехода в домашнюю директорию следует использовать команду:
Установка переменных окружения
Для установки значений переменной окружения введите команду:
VAR — название переменной;
value — значение переменной.
Пример:
Выполнив команду var=value, после вывода на просмотр получаем результат value:
Заключение
Мы познакомились с принципами работы в командной строке и базовыми командами.
В последующих статьях цикла, описывающего принципы работы в Linux, вы изучите с работой в bash (переменные, условия, циклы, примеры простых скриптов), а также ознакомитесь с управлением файлами и каталогами, созданием пользователей и настройкой прав.
Справочник 70 основных команд Linux: полное описание с примерами
Содержание:
Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.
В Linux насчитывается несколько сотен основных команд и их модификаций. Они группируются по нескольким категориям. По расположению — могут быть утилитами командной строки или встроенной функцией командной оболочки. По частоте применения – используемыми постоянно, эпизодически и редко. По типам действий – от получения справки до управления файлами и процессами. Именно третья, функциональная составляющая и станет основой группировки утилит в этой статье.
В обзоре собраны все важнейшие команды Linux, которые могут пригодиться для администрирования ОС Linux. Статья рассчитана как на новичков, так и на продвинутых пользователей, уже знакомых с основным функционалом терминала. Эту своеобразную шпаргалку можно смело добавлять в закладки всем, кто хочет извлечь из «Линукс» максимум полезных свойств и повысить свою продуктивность в несколько раз.
Справочная информация / документация
(Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:
Для инструкции по команде, введите:
whatis
Выводит краткое описание программы. Пример:
whereis
Показывает полный путь к исполняемому файлу и другим файлам программы. Пример:
Также даёт информацию о связанной с программой справочной информации.
Показывает к какому типу относится файл. Особенность Linux в том, что рабочие файлы могут и не иметь расширения. Поэтому у пользователя могут возникнуть проблемы с идентификацией файлов, которые снимает эта команда.
Вся необходимая информация о команде будет доступна, если набрать:
whoami
Команда показывает действительный идентификатор пользователя (UID).
Показывает варианты автозавершения команды. Нажатие клавиши табуляция после определённой команды или их последовательности выводит подсказку с вариантами возможного продолжения команды.
Ctrl + R
Права суперпользователя
Большое число базовых команд Linux, например, установка программ или создание файлов в корневой системе, требуют для исполнения права пользователя root или суперпользователя. Применение данного режима несёт серьёзные изменения для операционной системы, поэтому нужно точно понимать, как сработает запущенная команда.
Способы получить права root в Linux
О втором варианте расскажем подробнее.
(Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:
sudo su
Инструмент применяется, когда нужно запустить несколько «суперпользовательских» команд. Все следующие вводимые команды будут запускаться в режиме суперпользователя до закрытия командной строки.
sudo gksudo
Команда применяется, если нужно перезапустить с правами root уже отданную (от имени обычного пользователя) команду.
Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.
Управления файлами и каталогами
(List). С помощью этой утилиты можно посмотреть, что содержится в папке. Без указания конкретного пути показывает текущий каталог. Если путь указан, то переход совершиться в конечный его каталог. Чтобы вывести каталог в виде списка с дополнительной поясняющей информацией введите:
Для показа скрытых файлов:
(Concatenate / Catenate). Команда двойного назначения. Показывает на экране что содержит файл или стандартный ввод. Также к «склеивает» несколько переданных подряд файлов в один. Если нужно посмотреть содержимое одного файла, вводим:
Если нужно узнать содержимое нескольких файлов подряд:
Для «склейки» файлов, вводим:
Чтобы задать нужное количество строк в показанном:
(Change Directory). Меняет текущий каталог, в котором работает терминал на указанный. Когда терминал запущен, он использует по умолчанию корневой каталог (root), вернуться в который можно, набрав:
Чтобы указать другую папку для работы с файлами, нужно ввести:
Чтобы подняться по древу каталогов на уровень вверх набираем:
Чтобы вернуться к предыдущей директории:
Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:
Число команд в такой последовательности не ограничено.
mkdir
(Make Directory). Создаёт новую директорию. Можно также создать полную структуру подкаталогов, если ввести сочетание:
(Copy). Утилита, позволяющая скопировать файл или каталог. Копирование файлов и каталогов. Чтобы копирование прошло рекурсивно, т. е. включало все поддиректории и файлы в них, надо добавить к команде:
(Move). Эта команда в Linux одновременно отвечает за перемещение и переименование файла или каталога. При переименовании файл перемещается в ту же папку, но уже названную по-новому.
(Remove). Отвечает за удаление папок и файлов. Использовать оператор rm следует крайне осторожно. В Linux файлы удаляются не в корзину, откуда их можно восстановить, а стираются безвозвратно. Для рекурсивного удаления используйте сочетание:
(Link). Создаёт программные ссылки на файлы. По функционалу это похоже на ярлыки в Windows.
Типы ссылок Linux
chmod
(Change Mode). Изменяет разрешения доступа к файлу. Под доступом имеется в виду классическая триада: чтение r, изменение w и запуск x. Общий вид:
При этом, «разрешения» могут быть указаны буквенным, символьным (rwx) или цифровым кодом. Кроме того, эта переменная может включать информацию о владельце ( u / g / o / a ) и операции с правами ( + / — / = ).
Популярные комбинации разрешений для команды chmod
| Вид разрешения | Символьный код | Числовой код |
| Нет допуска | — | 0 |
| Чтение | r— | 4 |
| Изменение | -w- | 2 |
| Запуск | —x | 1 |
| Запуск + Изменение | -wx | 3 |
| Чтение + Запуск | r-x | 5 |
| Чтение + Изменение | rw- | 6 |
| Запуск + Изменение + Запуск | rwx | 7 |
chown
(Change Owner). Команда для смены владельца файла и его группы. Для смены владельца используем синтаксис:
Для смены группы файла:
Если надо поменять оба параметра:
Команду можно применить только с правами суперпользователя. Чтобы изменить владельца/группу рекурсивно добавляем:
chgrp
(Change Group). Меняет группу файла. В отличие от chown, эта команда позволяет менять группы, только тем, кто в ней состоит.
(Disk Free). Даёт полную информацию о свободном пространстве на диске. Анализ включает перечисление файловых систем смонтированных разделов, обзор занятого и свободного места на диске. Для более удобного вывода информации, лучше применять сочетание:
mount / umount
Команды Linux для монтажа и отключения любых файловых систем — от CD-диска и USB-флешки до ядер ОС. Тип файловой системы обычно определяется командой самостоятельно, путём чтения суперблока. Опция используется только с правами суперпользователя.
Навигация
Осуществляет поиск в файловой системе, файлах и папках. Для результатов поиска можно выполнять дополнительные команды.
Отображает на экране текущий каталог.
clear
Команда полной очистки окна терминала удаляет все ранее выведенные сообщения.
history
Показывает ранее введённые пользователем команды. Перемещаться по списку введённых команд можно, нажимая на клавиатуре «Вверх» и «Вниз».
locate
Быстрый поиск файлов по базе данных updatedb для шаблонов имён файлов. Эта БД работает со снимком файловой системы, что многократно ускоряет процесс поиска. Но тут есть и существенный минус. Точность поиска зависит от того, насколько актуальны данные о файловой системе в текущей версии снимка.
zcat / zless / zmore
Утилиты для просмотра сжатых файлов. С помощью zcat можно найти увидеть список сжатых файлов, zless выводит их списком постранично с возможностью листать вперёд и назад, а zmore — только вперёд.
Точка с запятой — ещё один оператор для последовательного запуска нескольких команд в одной строке. Если нужно, чтобы команды выполнялись параллельно, используйте оператор так:
Управление сетью
Команда проверяет наличие и качество интернет-подключения.
nethogs
Утилита мониторинга сетевой активности устройств в системе. Чтобы задать сетевой интерфейс, введите:
traceroute
Утилита отслеживания интернет-подключения, отслеживая маршруты следования пакетов данных в сетях TCP/IP. Более совершенный инструмент для отслеживания проблем с подключением к Сети, чем упомянутая выше команда ping. Запускается только с правами суперпользователя.
Работа с процессами
kill / xkill / pkill / killall
Ctrl +C
Данное сочетание клавиш — еще один быстрый способ завершить выполнение любого процесса в терминале Linux.
Ctrl +Z
ps / pgrep
(Process Status / Process-ID Global Regular Expressions Print). Команды находят по заданным параметрам и выводят информацию об активных процессах. Самый доступный способ найти идентификатор процесса (PID). Модификация pstree показывает весь список («древо») исполняемых процессов.
top / htop / atop
(Table of Processes). Три варианта команды, вызывающую консольную программу мониторинга активных процессов в системе. Информация отображается в виде таблицы со списком процессов в реальном времени. Рекомендуется использовать две последних модификации программы – в них больше возможностей и продвинутых функций.
crontab
Выполнение Cron (Command Run ON) — задач по расписанию в Linux.
Сделать время исполнения процесса ОС Linux минимальным поможет VPS сервер от Eternalhost! Универсальное решение по доступной цене!
Работа с архивами
gunzip
Управление пользователями
useradd / userdel / usermod
Команды управления учётными записями пользователей. Позволяют добавлять, удалять и редактировать пользовательские профили. Пример:
passwd
Позволяет менять пароли учётных записей. Обычный пользователь может поменять только пароль, связанный с его именем: passwd имя_пользователя.В режиме суперпользователя можно «вслепую» сбросить все пользовательские пароли в системе.
Работа с текстом
Ctrl + A / Ctrl + E
Клавиши быстрого перехода в начало ( А ) и конец ( E ) строки.
Ctrl + Shift + C / Ctrl + Shift + V
Это сочетание клавиш в Linux позволит быстро скопировать ( C ) и вставить ( V ) текст в терминале.
more / less
Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.
head / tail
(Global Regular Expression and Print). Ищет текст по заданному шаблону. Это очень полезно, когда надо проанализировать работу команды, которая сопровождается большим объёмом текстовой информации. Шаблон может заполняться строкой или регулярным выражением. Пример:
(Word Count). Программа для подсчета заданных параметров в тексте. Считает такие показатели, как символы, слова, строки и байты.
(Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними. Алгоритм работы:
Окружение пользователя
su / sudo
(Switch User / Substitute User & Do). Две команды для запуска процессов от имени другого пользователя без завершения текущего сеанса. При использовании su по умолчанию происходит переход на пользователя root. Команда sudo способна не только активировать режим суперпользователя (о чём упоминалось выше), но и выполнить команду от имени другого пользователя без реального переключения на него. Поэтому второй вариант считается более безопасным.
Команда Linux, сообщающая информацию о времени. Отдельными переменными можно задать удобный формат вывода и число отображаемых параметров, вплоть до миллисекунд.
alias
Команда для создания синонимов названий незаменяемых команд для их сокращения. Она изменяет длинное название на удобное пользователю короткое или аббревиатуру. Пример:
uname
Утилита, выводящая информацию об операционной системе. Без дополнительных параметров она выдаст только название ядра. Чтобы получить всю возможную системную информацию, введите:
uptime
Показывает аптайм – время непрерывной работы системы.
sleep
Задаёт таймер выключения системы.
Утилита автозаполнения поля согласия в команде или скрипте. Введите: yes название_команды и вам не придётся делать подтверждение вручную, когда этого потребует сценарий взаимодействия программы с пользователем.
Пакетные менеджеры
Пакетные менеджеры (ПМ) в Linux отвечают за установку, обновление и удаление приложений. Принцип их работы – загрузка программных пакетов из собственных сетевых репозитариев. Данные утилиты работают только с правами суперпользователя. Для различных дистрибутивов Linux существуют свои версии ПМ.
ПМ для Debian, Ubuntu и Mint. Чтобы установить приложение, введите:
Чтобы удалить приложение:
dnf / yum
Два самых распространённых ПМ для операционных систем Red Hat, Fedora и CentOS. Чтобы установить приложение, введите:
pacman
Пакетный менеджер дистрибутивов Arch и Manjaro. Чтобы установить приложение, введите:
Чтобы удалить приложение:
Заключение
Полный список команд для дистрибутивов Linux — материал скорее для объемной книги, чем для одной статьи. Однако, в данном обзоре мы постарались собрать самые важные из них. Эти команды будут гарантированно полезны как в повседневных задачах, так и для раскрытия продвинутых возможностей этой операционной системы.
У каждого пользователя Linux есть свой список must have команд. Наверняка и вам есть чем дополнить данный обзор? Делитесь своими любимыми командами Linux в комментариях!
Хотите, чтобы операционка работала как швейцарские часы? Надёжная и мощная платформа для развёртывания любых дистрибутивов Linux — VDS от Eternalhost!
Глава 3. Первый запуск ОС Linux
Если не предпринимать никаких действий, то на экран будет выдана масса сообщений, разбирать смысл которых мы пока не будем, и, наконец, появится стилизованное изображение пингвинчика. (я пока рассматриваю тот случай, когда вы при установке отказались от автоматической загрузки графической оболочки). Ниже изображения пингвина на экране написано:
Linux Version 2.0.36, Compiled #1 Tue Dec 29 13:11:11 EST 1998
One Intel 486 DX/2-WB Processor, 16M RAM, 33.28 Bogomips Total
Black Cat Linux release 5.2 (Fulcrun)
Kernel 2.0.36 on an i486 localhost login:
Я привел здесь то сообщение, которое появлялось у меня при одном из вариантов установки, когда я ставил Black Cat версии 5.2; у вас, конечно, сообщение будет отличаться в некоторых деталях. Если у вас хватит терпения дочитать эту книгу, то вы узнаете, что выдаваемое при загрузке сообщение при желании можно изменить, так что будет выдаваться что-нибудь вроде «Привет, дружище! Сегодня 11 ноября 2001 года. Сейчас 19 часов 22 минуты. Введи, пожалуйста, свое имя и пароль». Однако пока рано говорить о том, как это делается.
Если вы загружались с дискеты, то загрузка происходит точно также, только чуть медленнее.
Если Linux не единственная ОС на вашем компьютере, и вы используете LILO для организации многовариантной загрузки, то в тот момент, когда на экране появится надпись LILO boot: вы должны нажать клавишу ‹Tab› или ‹?›. Тогда LILO выдаст вам список меток, которые сопоставлены разным ОС. В версии 21 LILO уже автоматически выводит этот список на экран в виде меню. Необходимо выбрать из меню или ввести (набрать на клавиатуре) одну из этих меток и нажать клавишу ‹Enter›. Если вы выберете метку, соответствующую Linux, то в конце концов вы все равно должны увидеть слово login:, которое в данном случае служит приглашением к вводу вашего пользовательского имени.
3.2. Вход в систему
Как вы понимаете, в ответ на это приглашение необходимо ввести имя пользователя, а потом, по запросу, и пароль для входа в систему. Если это первый вход в систему после ее установки, то входить надо под именем »root». Это единственный пользователь, для которого обязательно заводится счет или бюджет (account) во время инсталляции. Этот пользователь является полным хозяином системы (как сейчас, так и в последующем), то есть имеет неограниченный доступ к ее ресурсам, может заводить и удалять других пользователей, останавливать систему и т. д. Неосторожное поведение пользователя с такими правами легко может привести к печальным последствиям, вплоть до полного краха системы. Поэтому обычно под этим именем входят в систему только для выполнения административных задач. Но у нас сейчас как раз такой случай, так что в ответ на приглашение login: вводим «root» и нажимаем клавишу ‹Enter› (или ‹Return›). Система выдаст запрос на ввод пароля:
Очевидно, что в ответ надо вводить пароль того пользователя, имя которого было введено ранее. При первой загрузке надо ввести тот пароль, которой был задан для пользователя root в процессе инсталляции, и нажать ‹Enter›. Заметим, что если после ввода имени очень долго не вводить пароль, то система снова вернется к запросу имени пользователя. После ввода пароля вы увидите примерно такую надпись:
В приведенном примере приглашение включает в себя указание имени пользователя (root), имени системы (localhost) и тукущего каталога (/root). Вид приглашения тоже можно изменить. Во всех последующих примерах мы будем использовать приглашение, состоящее только из имени пользователя.
Прежде чем предложить вам ввести первую команду, надо сказать, что в любой UNIX-системе учитывается регистр символов, т. е. различаются строчные и прописные буквы. Поэтому вводить все команды и их параметры следует именно так, как указано в примерах, учитывая регистр.
После этого система будет знать о существовании пользователя jim (говорят, будет «открыт счет для пользователя jim»). Однако войти в систему (или, как обычно говорят, «логироваться») под этим именем еще невозможно. Для того, чтобы система разрешила работать пользователю с именем jim, надо задать ему пароль. Для этого вводим команду
Вводите пароль. После того, как вы завершите ввод нажатием клавиши ‹Enter›, система попросит ввести его повторно:
Если вы не ошиблись при вводе (пароль приходится вводить «вслепую», поскольку он не отображается на экране), появится сообщение: passwd: all authentication tokens updated successfully и приглашение системы. Если вы выбрали пароль не очень удачно (слишком короткий или простой), вам будет выдано предупреждение, но система все равно примет пароль и позволит новому пользователю входить с ним в систему.
В ответ вы получите описание соответствующей команды или информацию по теме, обозначенной ключевым словом. Поскольку информация обычно не помещается на одном экране, при просмотре можно пользоваться клавишами ‹PageUp› и ‹PageDown›, а также клавишей пробела. Нажатие клавиши ‹Q› в любой момент приводит к выходу из режима просмотра и возврату в режим ввода команд. Попробуйте просмотреть информацию по рассмотренным уже командам login и passwd. Заметим, что точно также можно получить информацию по самой команде man. Введите
К сожалению, в большинстве случаев информация выдается по-английски. Если вы не читаете по-английски, то терпеливо читайте настоящее руководство или другую подходящую книгу по данной теме.
Вы можете попробовать вводить еще некоторые команды и понаблюдать за реакцией системы. Попробуйте, например, команды, перечисленные в табл. 3.1 (вводите их с приведенными в таблице параметрами).
Таблица 3.1. Простейшие команды Linux.
Просмотрите описания этих команд с помощью команды man.
Мы не будем приводить здесь более подробный список возможных команд. Во-первых, с необходимыми командами можно будет постепенно познакомиться в ходе дальнейшего чтения. Во-вторых, описания основных команд можно найти в любой книге по UNIX.
3.3. Консоль, виртуальные терминалы и оболочка
Итак, вы приобрели первый опыт работы в текстовом, или «консольном», режиме системы Linux. Понятия «терминала» и «консоли», которые встретятся нам еще не раз, требуется, вероятно, дополнительно пояснить.
У мейнфреймов имелся особый терминал, который предназначался для системного администратора и назывался консолью. Консоль обычно подсоединялась к компьютеру не по последовательному интерфейсу, а через отдельные разъемы (иногда в качестве устройства вывода в ее состав вместо монитора входило печатающее устройство).
Поскольку в UNIX-системах обычно соблюдаются традиции, клавиатура и монитор персонального компьютера ведут себя так же, как ранее консоль. Преимущество такого решения состоит в том, что все старые программы, создававшиеся для администраторов UNIX, без проблем работают и на новом типе системной консоли.
Зная теперь как открыть и закрыть сеанс работы в системе, выполните приведенные выше рекомендации, т. е. заведите себя как рядового пользователя (без суперпользовательских прав), завершите все сеансы работы, открытые от имени root, и снова войдите в систему под своим новым именем.
Оболочку может запускать не только команда login. Вы можете просто ввести команду bash (именно так называется программа-оболочка в системе Red Hat Linux) и тем самым запустить новый экземпляр оболочки. Выходя из него (по команде exit или по комбинации клавиш ‹Ctrl ›+‹ D›) вы вернетесь к предыдущему экземпляру оболочки.
Оболочка bash является не только командным процессором, но и мощным языком программирования. В ней имеется целый ряд встроенных (внутренних) команд и операторов, а, кроме того, в качестве команды может использоваться любая программа, хранящаяся в виде файла на диске. Список встроенных команд можно получить по команде help. Попробуйте! Детальную информацию по конкретной встроенной команде выдает та же команда help с указанием в качестве параметра имени встроенной команды, например: help cd.
Поскольку оболочка играет очень важную роль в Linux, ей будет посвящена отдельная глава этой книги. Впрочем, аналогичный материал вы найдете в любой книге по UNIX. Стоит только отметить, что для UNIX-подобных систем разработано несколько альтернативных bash оболочек. Их можно использовать и в Linux, но по умолчанию запускается именно bash.
Рассмотрим теперь еще одну команду, которую вам необходимо знать, поскольку все же компьютер у вас персональный (неважно, дома ли это происходит, или на работе). А это значит, что вы и есть суперпользователь данного компьютера. Но, как уже было сказано выше, входить в систему под именем суперпользователя не рекомендуется, поскольку любое неосторожное действие суперпользователя может привести к нежелательным последствиям. Входя под именем простого пользователя, вы, по крайней мере, не можете по неосторожности удалить или испортить системные файлы. В то же время, имеется ряд действий (например, монтирование файловых систем), выполнить которые может только суперпользователь. Не перезагружать же каждый раз компьютер! Именно в таких ситуациях выручает команда su. Достаточно ввести команду su и текущая оболочка (так и хочется сказать «система») запустит для вас новый экземпляр оболочки, в который вы попадете уже с правами пользователя root. Естественно, что для этого вам придется (в ответ на соответствующий запрос) ввести пароль этого пользователя. Закончив выполнять администраторские действия, выйдите из оболочки, и вы снова станете непривилегированным пользователем с отведенными ему полномочиями.
Если вы вошли в систему под именем root, то вы можете аналогичным образом запустить новый экземпляр оболочки от имени любого пользователя, пароль которого вы знаете[8]. Но для этого надо указать имя этого пользователя в командной строке, например:
Когда мы вводим su без указания имени, по умолчанию подставляется имя суперпользователя root.
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› по-прежнему действуют для редактирования командной строки.
Список возможных команд не ограничивается только приведенными в табл. 3.2, но из-за ограниченности объема книги невозможно привести здесь полный перечень клавиатурных команд. Для получения дополнительной информации воспользуйтесь командой info bash.
Заметим, что оболочка bash имеет встроенную подпрограмму, предназначенную для облегчения ввода команд в командной строке. Эта подпрограмма вызывается при двукратном нажатии клавиши ‹Tab› после того, как вы уже ввели некоторое число символов. Если эти символы являются началом названия одной из стандартных команд, которые известны оболочке, то возможны два варианта реакции оболочки на двукратное нажатие клавиши ‹Tab›. Если по введенным символам команда определяется однозначно, оболочка просто добавляет окончание команды в командную строку. Если однозначно восстановить имя команды по введенным символам невозможно, то выдается список возможных вариантов продолжения для того, чтобы пользователь мог ввести еще несколько символов, позволяющих однозначно завершить ввод команды нажатием клавиши ‹Tab›.
Если дважды нажать клавишу табуляции после того, как введена одна из команд и пробел, оболочка предполагает, что вы ищете имя файла, который должен вводиться как параметр команды, и выдает в качестве подсказки список файлов текущего каталога. Если же достаточная часть имени файла введена, то заканчивается ввод этого имени в командную строку. Аналогичным образом можно пытаться угадывать окончания переменных окружения, если вместо клавиши ‹Tab› воспользоваться комбинацией ‹Esc›+‹$›.
Таблица 3.3. Клавиши для управления историей команд.
| Клавиша | Описание реакции системы |
|---|---|
| ‹Стрелка вверх› или ‹Ctrl›+‹P› | Переход к предыдущей команде в списке (движение назад по списку) |
| ‹Стрелка вниз› или ‹Ctrl›+‹N› | Переход к следующей команде в списке (движение вперед по списку) |
| ‹PgUp› | Переход к (вызов в командную строку) самой первой команде, сохраненной в истории команд |
| ‹!›, ‹N› | Выполняется (без нажатия клавиши ‹Enter›) n-ная команда из списка истории команд |
| ‹!›, ‹-›, ‹N› | Выполняется n-ая от конца списка команда |
| ‹!›, строка символов | Выполняется команда, имя которой начинается на строку символов (поиск нужной команды осуществляется движением в обратном порядке от конца файла истории и выполняется первая попавшаяся команда, которая начинается на строку символов) |
| ‹Ctrl›+‹O› | То же что нажатие клавиши ‹Enter›, затем отображается очередная команда из файла истории |
3.5. Завершение работы системы Linux
Хотя компьютер, работающий под управлением ОС Linux, при выполнении некоторых условий можно оставлять работающим круглосуточно, большинство пользователей персональных компьютеров привыкли выключать их после завершения работы. Если вы работаете с ОС Linux, нельзя выключать компьютер простым отключением питания, как это было под MS-DOS. Дело в том, что в любой момент времени в системе запущено несколько процессов, вы могли видеть это, когда выполняли команду
(и можете посмотреть еще раз, повторив запуск этой команды). Но более важная причина состоит в том, что некоторые из этих процессов могут работать с файлами, причем система не записывает все изменения файлов на диск сразу после внесения этих изменений пользователем или процессом, а сохраняет их временно в оперативной памяти (кэширует). Если просто выключить питание, эти изменения не будут сохранены и пропадут, что иногда может привести даже к невозможности последующей загрузки системы. Так что надо уметь правильно завершить работу системы перед выключением компьютера. Это делается командой shutdown.
Команда shutdown может быть выполнена только пользователем root[10], так что вы либо должны были войти в систему под этим именем, либо должны предварительно выполнить команду su, чтобы приобрести соответствующие права.
Команда shutdown имеет следующий синтаксис:
[root]# shutdown ‹options› ‹time› ‹warning-massage›
Из опций программы shutdown наиболее часто используются две:
Параметр time указывает время, когда должна быть выполнена команда (не обязательно выполнять ее немедленно). Время можно указать в форме задержки от текущего момента. Например, если вы хотите, чтобы система остановилась через 5 минут, вводите команду
что будет означать «остановить систему через 5 минут и перезагрузиться после того, как работа будет корректно завершена». Для вас пока наиболее актуальной формой этой команды будет, скорее всего,
когда вы захотите просто выключить компьютер. Эквивалентом команды
является команда halt. При нажатии известной комбинации клавиш ‹Ctrl›+‹Alt›+‹Del› в Red Hat Linux выполняются действия, аналогичные команде
так что таким образом тоже можно выключить компьютер, только надо в момент перезагрузки отключить питание.
3.6. Помощь по работе с Linux
Вы завершили первый сеанс работы с операционной системой Linux, и, надеюсь, понимаете, что вам еще не раз потребуется подсказка в разных ситуациях. Надеюсь также, что настоящая книга сможет служить вам такой подсказкой на первых порах, но она наверняка не решит всех ваших проблем. Поэтому постараюсь сразу указать другие источники информации. При этом я несколько забегаю вперед, рассказывая о получении подсказки в графическом режиме работы, о котором еще ничего не было сказано. Но это оправдано, поскольку о способах выхода из затруднительных ситуаций лучше знать заранее.
3.6.1. Источники справочной информации
Если вы окажетесь в ситуации, когда не знаете, что предпринять или сделать для достижения желаемой цели, лучше всего начать искать подсказку в самой системе. Дистрибутив Red Hat Linux содержит тысячи страниц документации, представленной в электронном виде, так что ответы на все возникающие вопросы у вас, что называется, «на кончиках пальцев». Существует несколько независимых источников, которые содержат информацию почти по любому аспекту работы в системе Linux:
• страницы интерактивного руководства man;
• гипертекстовое руководство info;
• документация, прилагаемая к пакетам ПО;
• текстовые файлы HOWTO и FAQ проекта Linux Documentation Project;
Необходимо сразу сказать, что большую часть информации из этих источников вы будете получать на английском языке. Только для русифицированных дистрибутивов часть страниц интерактивного руководства 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. Если вы, например, дадите команду
то получите справку о команде swapon из секции 8. Поэтому если вы хотите получить справку по системному вызову swapon, надо дать команду
указывая номер секции, в которой надо искать информацию.
Страницы man просматриваются с помощью команды less (что дает возможность просматривать информацию поэкранно и перемещаться по этим экранам вперед и назад), так что для управления процессом вывода информации можно использовать клавиши, используемые в программе less. Наиболее употребительные:
Таблица 3.5. Клавиатурные команды, используемые при просмотре man-страниц
| Клавиша | Назначение |
|---|---|
| ‹Q› | Выход из программы |
| ‹Enter› | Просмотр строка за строкой |
| ‹Space› | Вывод следующего экрана информации |
| ‹B› | Вернуться к предыдущему экрану |
| ‹/› за которой следует строка символов и ‹Enter› | Поиск введенной строки символов |
| ‹N› | Повторение предыдущего поиска |
Если вы предпочитаете читать текст не с экрана, а с отпечатанной копии, то можете отпечатать соответствующую страницу, воспользовавшись командой
или, если у вас postscript-принтер,
В заключение хочется сказать, что страницы руководства man, вообще говоря, создавались не для первоначального изучения системы. Они скорее предназначены для опытных пользователей, которым в процессе работы нужно иметь под рукой справку по формату, опциям и синтаксису команд, чтобы не приходилось держать весь этот громоздкий материал в голове.
3.6.3. Команда info
Команда info является некоторой альтернативой команде man. Для получения информации по отдельной команде надо задать в командной строке info с параметром, являющимся именем интересующей вас команды, например,
Информация, которую вы увидите, в большинстве случаев несколько отличается от той, которую дает команда man, причем, по моему мнению, в лучшую сторону. Но самое существенное отличие заключается в том, что выдаваемая info информация представлена в гипертекстовом формате. В силу этого вы получаете возможность просматривать различные разделы помощи, не выходя из оболочки, предоставляемой командой info. Работая в тестовом режиме, вы можете запустить info в одной из альтернативных консолей (помните: ‹Ctrl›+‹Alt›+‹F2›, ‹Ctrl›+‹Alt›+‹F3› и т. д.), и переключаться за помощью в случае необходимости. В тех случаях, когда вы не знаете, где именно найти нужную информацию, может оказаться полезным побродить по разным разделам текста с помощью гипертекстовых ссылок, предоставляемых командой info. Эти ссылки обозначены символом звездочки (*), что несколько отличается от способа обозначения гипертекстовых ссылок в широко распространенных браузерах типа Internet Explorer или Netscape Navigator, но от этого не становится менее удобным. Перемещаться по ссылкам можно также с помощью клавиши ‹Tab›. Достигнув названия нужной темы, нажмите клавишу ‹Enter›. Нажатие клавиши ‹P› возвращает вас к предыдущей странице, ‹N› вызывает переход на следующую страницу, а ‹U› переводит на один уровень вверх по иерархической структуре страниц документации.
3.6.4. Команда help
3.6.5. Документация, поставляемая с дистрибутивом и пакетами ПО
Если в процессе установки системы вы не отказались от установки документации, то после завершения процедур инсталляции в каталоге /usr/doc/ (или /usr/share/doc) вы найдете подкаталоги HOWTO, FAQ, HTML и LDP, содержащие обширнейшую документацию по системе Linux в целом и отдельных аспектах ее применения. Большая часть этой документации представляет собой обычные текстовые ASCII-файлы, которые можно просматривать по командам more filename или less filename, а также с помощью встроенной программы просмотра, включенной в оболочку Midnight Commander. Просмотр этих файлов был для меня основным источником получения информации при освоении Linux (а, значит, и при подготовке данной книги). Начните с Red Hat Reference Guide (/doc/ref-guide на компакт-диске). Особенно стоит обратить внимание на главы Package Management with RPM и System Administration. Также полезно прочесть cодержимое /usr/doc/initscripts-x.xx. К сожалению, большая часть этой документации написана на английском языке, но я надеюсь, что со временем с русифицированными дистрибутивами эта документация будет поставляться на русском.
Большинство пакетов программного обеспечения поставляются разработчиками с обширной документацией по установке и использованию этих пакетов. Если пакет представлен в формате rpm (а дистрибутивы Red Hat Linux и его клонов типа Black Cat поставляются в этом формате), то эта документация будет развернута в соответствующих подкаталогах каталога /usr/doc. Имена этих подкаталогов соответствуют названию пакета и версии ПО. Например, для графической оболочки KDE версии 1.1.1 создается подкаталог KDE-1.1.1.
Иногда в поиске нужного файла документации может помочь команда locate. Команда locate в некотором смысле аналогична командам whatis и apropos. По этой команде производится поиск всех файлов, имена которых содержат заданный шаблон. Например, по команде locate net будет найдена масса имен файлов, в названиях которых встречается подстрока «net». В шаблоне могут применяться метасимволы*. []. Однако команда locate производит поиск не по каталогам файловой системы, а в специально созданной базе имен файлов, которую надо вначале создать (и иногда обновлять) командой updatedb.
В некоторых дистрибутивах (например, в ALTLinux) вместо locate имеется команда slocate, которая сама создает для себя базу имен файлов (после запуска с соответствующим параметром).
3.6.6. Команда Xman
В 6-ой версии дистрибутива Red Hat Linux была включена программа, которая позволяет просмотреть страницы руководства man при работе в графическом режиме. Поиск и вывод на экран страниц руководства вызывается посредством щелчков по кнопкам и меню. В остальном (по выдаваемой информации) Xman аналогична команде man.
3.6.7. Команда helptool
По команде helptool появляется графическое окно, имеющее строку ввода, в которой вы сможете задать интересующий вас термин. Команда просматривает все файлы документов (вы можете сконфигурировать, какие документы следует просматривать при поиске). По завершению поиска вам будет выдан список файлов, где встречается данный термин. Если кликнуть мышкой на элементе списка, то появится дополнительное окно, в котором будет отображаться выбранный вами файл. При этом файл будет отображаться в том формате, в котором он хранится на вашей машине: страницы info, страницы man и др.
3.6.8. Книги и Интернет
Естественно, что осваивать Linux проще и легче, если под рукой имеется хорошая книга. Прежде всего почитайте руководство к своему дистрибутиву (если таковое есть). Несколько наиболее полезных, на мой взгляд, книг указаны в Приложении «Источники и ссылки на дополнительные материалы». И, конечно, если у вас есть выход в Интернет, то вы можете найти ответ на любой из возникающих вопросов. Просмотрите Приложение [П2] для того, чтобы выбрать начальные точки путешествия по этому безбрежному океану информации. А дальше… остается пожелать вам удачи в ваших поисках.
Если проблемы возникают еще при установке, можно обратиться в службу поддержки производителя дистрибутива (если дистрибутив не пиратский, на нем как правило указываются координаты этой службы), на которую можно выйти через Web-сайт производителя. Учтите, что в случае, если у вас пиратский дистрибутив, причина проблем может быть в том, что он «криво» записан на компакт-диск.
Примечания:
Надо иметь в виду, что данный текст был написан в 2001 году.
Тут я был не прав. Суперпользователю не надо знать пароль простого пользователя для того, чтобы запустить оболочку от его имени.
Причем здесь без прямого указания подразумевалось, что в Midnight Commander используется стандартный или укороченный формат отображения списка файлов. Если включен расширенный формат, то клавиши ‹Стрелка вправо›, ‹Стрелка влево›, ‹Home›, ‹End›, ‹Del› работают так, как сказано в этой таблице. О форматах отображения файлов в программе Midnight Commander будет рассказано в главе 6.


