Самоучитель
системного администратора

2.3. Базовые сведения о работе в *nix-системах

Информационные системы предприятий не мыслятся сегодня без серверов, работающих на одном из клонов *nix-систем.

Linux-мифы

Бесплатные операционные системы и прикладные программы являются серьезным конкурентом коммерческим продуктам. На большинстве рабочих мест можно безболезненно перейти на программы с открытым кодом. Естественно, что вокруг этой проблемы существует много рекламных спекуляций, призванных внушить пользователям и руководителям определенные представления о "правильном" пути.

Автор не ставит целью дать подробную инструкцию по работе с Linux-системами. Открытых источников очень много, и во многом они лучше того, что я смог бы предложить читателю. Постараемся просто объективно сравнить основные характеристики коммерческого и бесплатного продуктов и познакомить читателей с другим классом операционных систем, чтобы каждый смог самостоятельно составить собственное мнение о быстро развивающихся продуктах.

Современные операционные системы и прикладные программы, особенно самые массовые, строятся, прежде всего, на стандартах. Как Linux, так и Windows могут использовать одинаковые сетевые протоколы, единую пользовательскую базу (сервер с учетными записями пользователей может быть как на основе Linux, так и Windows) и т. п.

Естественно, что полной тождественности различных продуктов быть не может. Возникающие проблемы носят, прежде всего, психологический характер. Когда я решил сменить обозреватель Интернета (в то время это был вынужденный шаг, поскольку производительности моего компьютера не хватало для работы в Internet Explorer), то несколько дней меня не покидало чувство дискомфорта и желание вернуться в привычную среду. Сейчас я уже ни за что не откажусь от работы в Firefox: эта программа мне кажется более удобной и предоставляет большие возможности. Существенно меньшие неудобства были связаны с переходом к OpenOffice.

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

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

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

    Примечание

    Не случайно, что и базовая функциональность нового сервера от Microsoft — Windows Server 2008 — предполагает отказ от графического интерфейса и работу исключительно в режиме командной строки.

Безопасность в Linux и Windows

Очень много разговоров ведется о безопасности работы в операционных системах. При этом приводятся различные данные, которые должны показать преимущество той или иной операционной системы. Сейчас очень популярны цифры о количестве обнаруженных уязвимостей и сроках их устранения, причем в зависимости от критериев оценки лидером "становится" то одна, то другая система. Можно рассматривать количество обнаруженных уязвимостей, можно оценивать степень их опасности и сроки реагирования разработчика. Любая такая оценка будет объективной, но насколько она отражает реальную жизнь?

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

    Примечание

    При освоении Linux необходимо сразу заставить себя отказаться от практики перезагрузок компьютера: в отличие от Windows, это не приносит никакого эффекта. Причины практически любых проблем нужно искать в системных настройках.

Несколько моментов, о которых следует знать пользователям Linux

В Интернете представлен весьма большой объем документации по настройке Linux, и если возникла та или иная проблема, скорее всего, вы найдете необходимые рекомендации простым поиском в Сети. Здесь упомянем только несколько основных моментов, которые нужно учесть администраторам, имеющим опыт работы только в Windows.

Собственно сам Linux — это только ядро. Остальное — это приложения и службы, которые вы устанавливаете. Нечетные номера версий — экспериментальные, четные (2.8 и т. п.) представляют собой стабильные сборки.

В Linux не принято хранить файлы "где придется". Есть достаточно четкая структура размещения информации (см. табл. 2.3 в разд. "Структура папок Linux” далее в этой главе), поэтому, например, все пользовательские данные будут находиться только в папке соответствующего личного профиля.

При работе в консоли система позволяет автоматически дополнять ввод с клавиатуры по нажатию клавиши <Tab>. Например, если требуется скопировать файл, то достаточно набрать команду (cp), первые символы имени файла и нажать клавишу <Tab>. Если первые символы однозначно определяют имя файла или команды, то система автоматически допишет полное название. В противном случае никаких изменений на экране не будет, а повторное нажатие клавиши <Tab> выведет на экран полный перечень имен, начинающихся с введенных символов.

    Примечание

    Состав доступных команд зависит от учетной записи, под которой выполнен вход в систему. Если вы не видите в списке требуемой команды, попробуйте переключиться на учетную запись root.

Как правило, пользовательская работа в Linux ведется при помощи графического интерфейса, однако в любой момент можно начать работу в нескольких консолях. Для этого достаточно запустить новый сеанс с помощью нажатия клавиш <Ctrl>+<Alt>+<F1>, <Ctrl>+<Alt>+<F2>1 и т. д. (графическому интерфейсу соответствует сочетание клавиш <Alt>+<F7>).

Работу в консоли существенно облегчит использование программы MidNight Commander — mc (рис. 2.12). Программа практически повторяет интерфейс и возможности Norton Commander, с которого начиналась вся работа на компьютерах под управлением операционной системы DOS. При помощи программы mc можно осуществлять любые файловые операции (копировать, переименовывать, удалять, создавать папки и т. д.), редактировать файлы, просматривать архивы, установочные пакеты и т. п. MidNight Commander по умолчанию не устанавливается, но входит в большинство дистрибутивов Linux. Думаю, что вы не пожалеете, если будете использовать возможности данной программы.

Рис. 2.12.
Программа MidNight Commander

В Linux расширения имен файлов не используются для ассоциации выполняемых операций. Исполняемым может быть любой файл, необходимо только предоставить ему соответствующее разрешение. Кстати, это повышает безопасность системы.

Команды в Linux чувствительны к регистру. Например, ключи R и r могут обозначать различные операции.

В Linux не принято подключать жесткие диски под именами логических дисков (C, D, E и т. д.). Обычно диски монтируются: добавляются в качестве новой папки в определенное место файловой структуры.

Так же, как и в Windows, в Linux создаются пользователи, которых можно объединять в группы. Учетные записи могут быть как локальными, так и храниться централизованно (и использоваться на нескольких компьютерах). В Linux есть один "суперпользователь", которому разрешено все. Его имя — root. Работа от имени этой учетной записи не приветствуется. Текущие операции выполняются с правами обычного пользователя, в случае операции, требующей административных прав, система запрашивает пароль учетной записи root (и обычно сохраняет его некоторое время в памяти для удобства последующих административных операций).

Права доступа обычно отображаются в виде последовательности символов -rwxr-x—x. Первый символ указывает тип файла (- - обычный файл, d — папка, возможны также псевдофайлы), следующие три символа определяют права владельца файла, следующие три — права группы, к которой принадлежит владелец, и последние три обозначают права для всех остальных пользователей. В каждой тройке первый символ свидетельствует о наличии права чтения (r) или его отсутствии (дефис), второй — право записи (w) и третий — исполнения (x). Часто права записывают также в виде трех цифр, например, 753. Если представить каждую цифру в двоичном виде, то получится 111101011, что соответствует rwxr-x-wx.

Структура папок Linux

Linux предполагает четкую структуру расположения папок и файлов. В табл. 2.3 приведены наиболее "значимые" папки системы.

Таблица 2.3.
Типовая структура папок в Linux

Папка

Назначение

/sbin

Папка с программами редактирования и проверки структуры диска, а также изменения состояния системы

/dev

Содержит записи, соответствующие устройствам, подключенным к системе

/usr/bin

Папка программ работы с учетными записями. В этой же папке хранятся программы демонов

/etc

В этой папке находится основная часть файлов локальной конфигурации системы

/etc/init.d

Скрипты запуска системы. Часто указывают, в свою очередь, на папки /etc/rc?.d (? — цифра от 0 до 6, соответствует уровню запуска)

/home/username

Домашняя папка пользователя username

/usr

Папка с общими программами; доступна только для чтения

/usr/local

В эту папку должны устанавливаться прикладные программы

/usr/share/doc

Папка, в которую обычно копируется справочная документация по установленным программам

/lib

Папка с программными библиотеками

/mnt

Обычно используется для подключения устройств (диски, CD-ROM и т. д.)

/opt

Папка, в которой обычно размещаются устанавливаемые программы, имеющие большой объем

/proc

Папка для хранения специальных файлов, формируемых ядром системы

/var

Папка для изменяемых данных. Содержит, в том числе, папки журналов системы

Текстовый редактор vi

Если используется графическая оболочка, то для редактирования файлов применяются программы типа OpenOffice, Gedit и аналогичные, работающие в графическом режиме. Однако в аварийных ситуациях, когда нужно восстанавливать систему, а обычно такие операции выполняются в нервной обстановке и при отсутствии времени, работать можно только в консоли.

В Linux существует очень мощный текстовый редактор, который запускается командой vi (в терминале). Умение пользоваться им может оказаться очень полезным.

Редактор можно запустить сразу с открытием файла. Для этого после vi нужно через пробел указать имя файла.

Текстовый редактор vi имеет два режима работы: командный и редактирования. При открытии файла вы попадаете в командный режим, в котором можно выполнять такие операции, как поиск, замена, сохранение файла, вызов внешней команды и т. п.

Чтобы начать ввод текста, следует перейти в режим редактирования. Например, чтобы ввести символ в текущей позиции, надо нажать сначала на клавишу i и только потом начать набор. Если нажать клавишу а, то символы будут вводиться справа от позиции курсора и т. п. Обычной ошибкой пользователей, начинающих работу в vi, является попытка удаления символов или перемещения курсора в режиме редактирования. В этом случае редактор набирает спецсимволы, поэтому приходится выходить в командный режим, удалять ошибочный ввод, перемещаться в нужную точку текста и снова входить в режим редактирования.

Чтобы вернуться из режима редактирования в командный режим, следует нажать клавишу <Esc>.

В редакторе доступно много команд, они подробно описаны в Интернете. Упомяну лишь самые основные, которые позволят выполнить простейшие операции с текстом (табл. 2.4).

Таблица 2.4.
Команды текстового редактора vi

Команда

Действие

a

Добавить. Переход в режим ввода текста справа от курсора

i

Вставить. Переход в режим ввода текста слева от курсора

Клавиши перемещения курсора

Перемещение курсора по документу. Для перемещения курсора используются также четыре расположенные в ряд клавиши <h> (влево), <j> (вниз), <k> (вверх) и <l> (вправо). Можно использовать их вместе с цифрами: например, ввод команды 9k переместит курсор на 9 строк вверх

<Ctrl>+<F>/<Ctrl>+<B>

Перемещение на одну страницу вперед/назад

G

Переход на последнюю строку документа

nG

Переход на строку с номером n

x

Удаление символа над курсором

X

Удаление слова, в котором находится курсор

dw

Удаление символов, начиная с текущего, до конца слова; ввод команды 4dw приведет к удалению четырех слов

d$

Удаление символов, начиная с текущего, до конца строки

yw

Копирует текущее слово в буфер

yy

Копирует текущую строку в буфер

P

Вставляет содержимое буфера после курсора

/слово

Поиск символов слово вперед

?слово

Поиск символов слово назад

: g/поиска/замена/g

Замена сочетания символов, указанного в строке поиск, на сочетание, указанное в строке замена, во всем тексте документа

u

Отмена последней операции (можно отменить несколько шагов)

<Ctrl>+<R>

Восстановление последней отмененной операции

:w

Сохранение файла

:wq

Сохранение файла и выход из режима редактирования

ZZ

То же, что и :wq — сохранение файла и выход

:q

Выход из редактора (операция выполнится, только если все внесенные изменения сохранены)

:q!

Выход без сохранения изменений

: ! command

Выполнение внешней команды (command)

<Ctrl>+<G>

Вывод информации об имени редактируемого файла и текущей позиции в нем

Выполнение команд с правами другого пользователя

Для выполнения программ с правами другого пользователя служит команда su. При выполнении команды2 su - система запросит пароль. Введите пароль пользователя root, и вы получите его права (обратите внимание, что при этом изменяется символ приветствия).

Для возвращения введите команду exit или нажмите клавиши < Ctrl>+< D>.

Помимо переключения на суперпользователя эта же команда, введенная с указанием какой-либо другой учетной записи в качестве параметра, позволяет переключиться на нее, если далее по запросу системы ввести ее имя и пароль: su — userl

    Примечание

    При переходе от суперпользователя к другому пользователю пароль вводить не требуется.

Прикладные программы в Linux

Операционная система — это только "основа", позволяющая работать в прикладных программах, ради которых и включают компьютер. Сегодняшний Linux включает в себя большое количество бесплатного прикладного программного обеспечения. Это текстовые и графические редакторы, аудио- и видеопроигрыватели, утилиты записи CD/DVD, почтовые клиенты и обозреватели Интернета, серверы баз данных и т. п.

Программы для Linux доступны обычно в двух вариантах: в исходных кодах и в пакетах, полностью подготовленных для автоматической установки. При наличии предварительно скомпилированного пакета именно его и устанавливают. Преимущество этого варианта в том, что при установке автоматически добавляются и необходимые библиотеки (те, которые должны быть установлены для нормальной работы программы, иначе называют зависимостями).

Установочные пакеты хранятся в депозитариях. Для того чтобы добавить новую программу в систему, достаточно выполнить простейшую команду. Например, для установки программы в Ubuntu:

Эта команда загрузит из Интернета необходимый установочный пакет и все зависимости и выполнит установку.

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

На портале http://SourceForge.net вы можете найти тысячи проектов, среди которых есть и программы управления предприятием (ERP-системы), CRM-системы, системы электронного документооборота и т. п.

Среди коммерческого программного обеспечения можно отметить тенденцию постоянного увеличения числа вендоров, разрабатывающих свои продукты как для систем на основе Windows, так и для использования в Linux. Если примерами крупных западных разработчиков уже вряд ли кого удивишь (например, для системы документооборота Documentum можно выбрать любую платформу и клиента, причем ее версия для Linux характеризуется большей надежностью и повышенной производительностью), то пример российской фирмы 1С, выпустившей версию своей программы для Linux, говорит о многом.

Кроссплатформенный запуск программ

Существуют как коммерческие, так и бесплатные проекты, позволяющие запускать Windows-программы на Linux-системах. Наиболее известный бесплатный пакет — это Wine (www.winehq.org).

Под Wine работают не все программы. Но пользователям в свое время удавалось запустить в этом пакете даже программу 1С.

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

Существует возможность запускать и Linux-программы под Windows. Интересующихся читателей можно отослать к ресурсам Интернета.

Установка Linux

Установка Linux и ее первоначальная настройка не составляют никакой сложности. Операции выполняются в графической среде при помощи мастера установки (рис. 2.13), который в процессе инсталляции запрашивает основные параметры (часовой пояс, раскладку клавиатуры, путь установки и т. п.). Если какие-то параметры вам не понятны, можно просто согласиться с вариантом, предложенным мастером по умолчанию.

Рис. 2.13.
Установка Linux происходит в графическом режиме

Многовариантная загрузка

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

Можно воспользоваться возможностями Windows 7 и уменьшить разделы жесткого диска для того, чтобы создать новый раздел и установить систему на него. Но установщики Linux позволяют сами изменить конфигурацию разделов существующей системы без потери данных. Мастер установки предложит создать на существующем диске новый раздел, при этом вы можете указать желаемый объем нового раздела (по умолчанию обычно предлагается использовать половину имеющегося свободного пространства). Операция займет некоторое время (зависит от объема жесткого диска), после чего установка Linux продолжится.

Естественно, что подобный вариант действий возможен только тогда, когда первой установленной системой была Windows. Современные установщики Linux "знают" практически все используемые операционные системы других вендоров.

    Примечание

    После установки Linux на раздел Windows и последующей загрузки Windows система предупредит о возможных неисправностях диска и предложит выполнить его проверку. При этом возможна и перезагрузка Windows (после установки новых устройств). Это стандартная реакция системы на изменение раздела диска. Данные не потеряны, надо просто один раз согласиться на выполнение предложенных шагов.

Тестирование Linux на виртуальной машине

Если вы хотите предварительно протестировать систему Linux и ознакомиться с ней, то можно воспользоваться ее установкой на виртуальную машину. Можно, конечно, использовать виртуальную машину от Microsoft, но это не самый лучший вариант для Linux-гостевой системы. Я бы рекомендовал проводить эксперименты в среде Oracle VirtualBox.


1Клавиша <Ctrl> требуется только при запуске команды в графическом режиме. После переключения в режим консоли переходить в другой сеанс можно нажатием клавиш <Alt>+<Fn>, возврат в графический режим также будет выполняться нажатием сочетания клавиш <Alt>+<F7>.

2Можно не использовать дефис в качестве параметра: в этом случае вы также получите права администратора, но параметры окружения (например, текущая папка) останутся прежними. При вводе дефиса команда переведет вас в новое окружение.


Рейтинг@Mail.ru