GNU/Linux: Основы работы

В предыдущей статье (см. КГ №38) вы познакомились с процессом установки и началом работы с операционной системой GNU/Linux. Сейчас рассмотрим основы работы. Данные знания понадобятся в дальнейшем, когда будет рассматриваться практическое применение системы.

Интерфейсы пользователя GNU/Linux

GNU/Linux имеет два типа интерфейса: текстовый и графический (далее GUI). GUI удобен для обычного пользователя, однако далеко не всегда подходит для администрирования системы. К тому же, использование графики нерационально для серверов, поскольку впустую расходует аппаратные ресурсы. Текстовый же интерфейс, помимо того, что использует мало аппаратных ресурсов, позволяет получить наиболее полный и быстрый доступ ко всем составляющим системы (особенно к утилитам и конфигурационным файлам). Также использование текстового интерфейса безопаснее и надежнее, поскольку не используется множество графических библиотек и утилит, которые увеличивали бы общее число уязвимостей и ошибок в системе.

Простая разновидность текстового интерфейса - это интерфейс командной строки. Работа с системой в данном случае происходит за счет ввода команд с клавиатуры и вывода информации в текстовой форме на экран (также принтер, передача по сети и пр.). Обработкой команд занимается интерпретатор, также называемый консолью. Интерпретаторов существует несколько (bash, csh и т.д.), каждый обладает своими особенностями (различия в некоторых командах и различная реакция на управляющие клавиши). В настоящее время чаще всего используется интерпретатор bash.

Чтобы перейти к работе в консоли, в меню загрузчика системы выберите пункт «Single user mode». Для учебных целей, а также если основная работа происходит в GUI, но иногда возникает потребность в администрировании, можно использовать эмуляторы консоли. В различные дистрибутивы включены различные эмуляторы: XTerm, Терминал, и др. Ссылки для запуска их находятся обычно в подменю «Стандартные» или «Системные утилиты».

Файловая система

Файловая система основана на модели иерархического дерева каталогов. В GNU/Linux отсутствуют логические диски, все каталоги являются подкаталогами единого дерева, начинающегося с «корневого каталога», обозначаемого «/». Структура каталогов представлена в следующем виде:

/ корневой каталог
/bin основные системные программы
/boot файлы загрузчика
/dev каталог устройств компьютера
/etc конфигурационные файлы системы и подкаталоги с конфигурационными файлами прикладных программ
/home каталоги пользователей
/lib библиотеки
/lost+found информация об удаленных файлах
/mnt каталог для монтирования устройств
/media в некоторых дистрибутивах (в том числе и в Ubuntu) служит для монтирования компакт-дисков и flash-накопителей
/root домашний каталог суперпользователя
/sbin системные программы
/usr прикладные программы и библиотеки
/var каталоги программ для хранения изменяющихся данных (например, каталоги веб-сервера).

Вообще, в Unix-системах каталог является файлом, содержащим ссылки на другие «вложенные в него» файлы и каталоги. Но для удобства изложения здесь будут различаться файлы и каталоги.

При работе с консолью можно использовать шаблоны: неточные имена (файлов и каталогов). Здесь вместо части имени используется символ '*' для обозначения любого количества любых символов, а '?' для обозначения любого одиночного символа. Например, fil* означает любой файл или каталог, начинающийся на fil (fil, film, file и пр.). Оба шаблонных символа могут находиться как по краям имен, так и внутри.

Для выполнения каких-либо действий используются утилиты. Использование утилиты также называется выполнением команды.

Рассмотрим основные команды (утилиты) для работы с каталогами и файлами:

man — отображает подробную справочную информацию о команде, введенной после man. Например:

man pwd

отобразит справку о команде pwd. Перемещение по справке осуществляется клавишами «вверх», «пробел» и «вниз», выход — клавишей 'q';

pwd — показывает текущий каталог;

cd — сменить каталог. Для перехода в подкаталог (или в подкаталог подкаталога и далее) текущего каталога используется относительный путь. Например, если вы находитесь в каталоге «/», то для перехода в подкаталог username, располагающийся в каталоге /home, выполните

cd home/username

Для перехода на каталог уровнем выше используется «..». Также можно использовать абсолютный адрес. В этом случае перейти можно в любой каталог, вне зависимости, находится ли он в иерархии текущего. Например, при текущем каталоге /home/username команда

cd /bin

осуществит переход в /bin;

ls — показывает содержание текущего каталога. Если после команды ввести путь к другому каталогу, то команда покажет его содержимое. Чтобы отобразить скрытые каталоги и файлы, используйте параметр 'a' (ls -a). Для отображение свойств файлов и каталогов используется параметр 'l' (строчная L) (ls -l). Оба параметра можно объединить (ls -al). Путь к каталогу всегда указывается после параметров;

cat — отображает содержимое текстовых файлов;

tac — аналогично команде cat, только отображает содержимое файлов в обратном порядке (построчно);

cp — копирует файл. Используется в нескольких формах:

cp файл1 файл2

копирует файл1 (должен существовать) в файл2 (может отсутствовать, но если существует, то перезаписывается),

cp файл1 файл2 … файлN каталог

копирует группу файлов в указанный каталог

cp -r кат1 кат2

копирует содержимое каталога кат1 в новый каталог с именем кат2. Если кат2 существует, то кат1 копируется как каталог внутрь кат2, Можно копировать сразу несколько каталогов (аналогично копированию файлов);

rm — удаляет указанный файл. При использовании параметра 'r' удаляет каталог (сначала убедитесь, что в удаляемом каталоге отсутствуют нужные вам файлы).

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

mkdir test

ls -l

Среди всего вывода вы увидите строку, похожую на

drwxr-xr-x 2 techni techni 4096 2009-10-18 12:25 test

Первая колонка, состоящая из 10 символов, показывает права доступа. Первый символ означает тип файла:

— обычный файл;

d каталог;

А также 'l', 's' и 'p', которые здесь рассматривать не будем.

Следующие 9 символов состоят из трех групп по три символа, указывающие права для различных типов пользователей:

первая тройка (здесь rwx) — для владельца;
вторая тройка (здесь r-x) — для пользователей, входящих в группу владельца;
третья тройка (здесь r-x) — для всех остальных пользователей.

Символы означают следующее:

— - нет прав;
r — право на чтение (просмотр содержимого);
w — право на запись (изменение содержимого);
x — для файла возможность исполнения, для каталога возможность перейти в него командой cd.

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

Что такое группа? Это метод логического объединения пользователей, позволяющий задавать им одинаковые права на общие файлы. Допустим, предприятие состоит из нескольких отделов, и имеется некий файл, доступ к которому должны иметь только сотрудники одного отдела. В этом случае пользователи, работающие в данном отделе, объединяются в группы. Один пользователь может входить в различное число групп, в зависимости от потребностей.

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

chmod XXX name

где name - имя файла, каталога, XXX - это цифры, означающие новые права для каждого типа пользователей.

Возможны следующие значения:

0 — запрещено все
1 — право на выполнение
2 — право на запись
3 — право на запись и выполнение
4 — право на чтение
5 — право на чтение и выполнение
6 — право на чтение и запись
7 — разрешено все

Например,

chmod 777 test

разрешит совершать любые действия с каталогом test всем пользователям.

Изменять права можно только на файлы и каталоги, владельцем которых вы являетесь. Изменять права любых файлов и каталогов может только пользователь root.

Архивирование

Потребовалось отправить письмо и прикрепить к нему несколько файлов? Можно вложить файлы по отдельности, а можно вложить их в один файл (то, что в Windows называется архивом). В Unix-системах изначально архивирование разделено на два этапа: упаковывание (объединения в один файл) и сжатие.
Для упаковывания используется команда tar. Например,

tar -cvf name.tar file1 file2 … fileN

упакует файлы file1 … fileN в name.tar

tar -xvvf name.tar

распаковывает name.tar в текущий каталог.

Команда имеет множество параметров, с которыми можете ознакомиться в справочной системе:

man tar

Сжатие производят утилиты gzip или bzip2. Также применяется универсальная (упаковка и сжатие) утилита zip.

На этом ознакомление с системой окончено. В следующий раз поговорим о практическом применении.

Михаил Techni Храмов, q@sa-sec.org


Компьютерная газета. Статья была опубликована в номере 40 за 2009 год в рубрике ос

©1997-2024 Компьютерная газета