Установка виртуальной машины и инсталляция ОС семейства UNIX. Изучение команд для работы с файловой системой ОС семейства UNIX

Лабораторная работа №10

Установка виртуальной машины и инсталляция ОС семейства UNIX. Изучение команд для работы с файловой системой ОС семейства UNIX

Цель: изучить работу с виртуальными машинами, установку ОС семейства UNIX и основные команды для работы с файлами и каталогами.

Общие положения

Способы работы с программами разных операционных систем на одном компьютере

Способ №1: многовариантная загрузка

Это самый распространенный способ (до недавнего времени) решения проблемы, который использует подавляющее большинство пользователей. Жесткий диск компьютера разбивается на несколько разделов и на каждый из них устанавливается своя операционная система и программы для нее. Кроме того, настраивается менеджер многовариантной загрузки, позволяющий выбрать операционную систему при загрузке компьютера. При таком подходе невозможно одновременно работать с приложениями разных операционных систем и для смены операционной системы необходимо перезагрузить компьютер. Зато операционные системы и их приложения исполняются без потерь в скорости и надежности. Если операционные системы совместимы по типу файловой системы, то возможно создание общего раздела для обмена файлами между ними.

Способ №2: эмуляция API операционной системы

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

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

Способ №3: виртуальная машина эмулирует реальное аппаратное обеспечение

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

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

Идея естественной виртуализации: поверх аппаратного уровня (физический сервер) располагается уровень монитора виртуальных машин VMM (гипервизор). Гипервизор полностью эмулирует компьютер, и способен поддерживать выполнение более чем одной операционной системы. На VMM выполняются так называемые гостевые операционные системы (guest OS) виртуальных машин, непосредственно поддерживающие работу приложений.

Установка виртуальной машины и инсталляция ОС семейства UNIX. Изучение команд для работы с файловой системой ОС семейства UNIX - student2.ru

Рисунок 1 - Модели ОС без использования виртуальных машин и на основе виртуальных машин

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых.

Команды ОС семейства UNIX для работы с файловой системой

Принятые обозначения

Формат команд в ОС UNIX следующий:

имя команды [аргументы] [параметры] [метасимволы]

· Имя команды может содержать любое допустимое имя файла; аргументы - одна или несколько букв со знаком минус (-); параметры - передаваемые значения для обработки; метасимволы интерпретируются как специальные операции.

· В квадратных скобках [] указываются необязательные части команд.

· Аргумент –l - «минус буква ЭЛ».

Получение справки

Команда

man файл

где файл - команда, программа, конфигурационный файл или библиотечная функция, по которой требуется получить справку. Справочник man состоит из нескольких разделов:

1: Команды пользователя

1M: Команды для системного администрирования

2: Системные вызовы

3 (3B,3S,...): Библиотечные функции

4: Форматы файлов

5: Заголовки, таблицы, макросы, разное

6: Демонстрации

7: Интерфейсы устройств и сети

При упоминании какой-либо команды, функции или системного файла в литературе по Unix часто в скобках указывается номер раздела справочника man, например: "команда ls(1) предназначена для вывода списка файлов". Как правило, man сам находит раздел с требуемой справкой, просматривая все разделы по очереди, поэтому для получения справки по команде ls достаточно ввести

Man ls

Управление скролингом текста:

· <пробел> - страница вниз

· <Enter> - строка вниз

· <Ctrl>+B - страница вверх

· /word - поиск слова word

· q - выход

Однако иногда требуемый термин может находиться сразу в нескольких разделах (printf - команда и библиотечная функция); в этом случае man выдаст документ из первого найденного раздела. Следующие ключи используйте для получения справки по команде printf :

· -s раздел – для получения документа из другого раздела;

· -l–для получения списка разделов, в которых встречается требуемый термин;

· -a – дает указание вывести все найденные справки из всех разделов друг за другом.

Обращайте внимание на номера разделов (они указываются в заголовке каждой страницы).

Выполните:

Man printf

Изучение файловой системы

Команда

Pwd

выводит полное имя текущего каталога (в котором вы находитесь).

Команда

ls

выводит список файлов текущего каталога.

Команда

Ls –l

выводит список файлов с их атрибутами. «минус буква ЭЛ».

Информация о файле предоставляется пользователю в следующем формате:

ABBBBBBBBB C DDDD EEEEEEEE FFFFF GGGGGGGGGGGG HHHHH

Символ Информация Дополнительно
A   Тип файла - обычный файл; d каталог (фактически, каталог - это специальный файл, в котором перечислены файлы этого каталога); l символическая связь (файл, содержащий имя другого файла - является ссылкой на этот файл; подробности ниже в команде ln); c символьное устройство (устройство, с которым операции чтения-записи производятся побайтно); b блочное устройство (операции чтения-записи буферизуются). Некоторые устройства являются только символьными (например, последовательный порт), а некоторые представлены в обоих вариантах (например, диск). p конвейер (pipe; программный канал, организованный в виде очереди, для передачи данных между двумя процессами).  
B   Права на использование файла Следующие после типа файла 9 символов представляют собой права на использование файла: первая тройка символов - для пользователя-владельца файла, вторая - для группы-владельца, третья - для всех остальных. Наличие буквы в каждой тройке означает наличие соответствующего права: для обычных файлов: r - право на чтение содержимого файла w - право на изменение содержимого файла x - право на исполнение (запуск) файла для каталогов: r - право на получение списка файлов каталога w - право на создание и удаление файлов в каталоге x - право на "поиск" в каталоге   Набор прав --x для каталога позволяет войти в него и прочитать файл, имя которого заранее известно (при условии наличия прав чтения этого файла). Можно также выполнить команды ls и ls -l для этого файла. При этом получить список файлов (ls (-l) для каталога), а также создать или удалить файл нельзя. Право r-- для каталога позволяет произвести чтение каталога, то есть получить список имен его файлов. При этом ни войти в каталог, ни узнать атрибуты файлов (ls -l), ни прочесть файл (даже при наличии прав чтения этого файла) нельзя. Создать или удалить файл, естественно, нельзя. Модификация файла требует прав на запись в файл, так как это операция над файлом. Удаление файла требует прав на запись в каталог, в котором находится этот файл - это операция над каталогом. Наличие права записи в файл не обязательно означает возможность его удалить (хотя можно размер файла уменьшить до нуля).  
С   Число связей Число жестких связей (имён) файла - подробнее см. ниже команду ln. Для каталога - число его подкаталогов (как минимум два - '.' точка и '..' две точки. Текущий каталог обозначается точкой; родительский каталог, которому принадлежит текущий, обозначается двумя точками).
D   Пользователь-владелец файла  
E   Группа-владелец файла Группа - это именованное множество пользователей; группы составляются администратором. Каждый пользователь является членом как минимум одной группы. Пользователь-владелец файла (далее - просто владелец) не обязательно является членом группы-владельца, хотя и может быть таковым.
F   Размер файла в байтах  
G Дата последней модификации файла    
H   Имя файла  

Например,

-rwxr-xr-- 1 asoi students 24380 Feb 3 2014 hello

Команда

cd каталог

переходит в указанный каталог. Без указания каталога - переход в домашний.

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

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

Манипулирование файлами

Команды создания файла

Команда

touch имя_файла

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

>имя_файла

создает файл нулевого размера (буквально: в этот файл перенаправляется вывод из ниоткуда).

Создание каталога

Команда

mkdir имя_директории

создает новый каталог. Если используется в следующем формате (mkdir имя_директории1 имя_директории2 имя_директории3), создаст папки: имя_директории1, имя_директории2 и имя_директории3.

Символические связи

Символическая связь - особый тип файла, содержащий имя другого файла (в листинге ls -l такие файлы обозначаются буквой l в первой колонке). Чтение-запись в файл-связь на самом деле приводят к чтению-записи в файл, на который он ссылается. Например, при выводе на экран содержимого символической связи появятся данные файла, на который эта символическая связь ссылается.

Создание символической связи:

ln -s сущестсвующий_файл файл_связь

(Файл с именем файл_связь не должен существовать.)

Жесткие связи

В файловой системе UNIX имя файла является указателем на индексный дексриптор (i-node), который содержит атрибуты файла и массив адресов дисковых блоков, в которых находятся данные файла. Однако файл может иметь несколько имен. Дексриптор содержит только счетчик числа этих имен, значение которого показывается во второй колонке листинга ls -l.

Установка виртуальной машины и инсталляция ОС семейства UNIX. Изучение команд для работы с файловой системой ОС семейства UNIX - student2.ru

Рисунок 2 – Организация жесткой связи

Создание жесткой связи - это создание еще одного имени, ссылающегося на тот же самый индексный дескриптор:

ln сущестсвующее_имя_файла новое_имя_файла

Удаление файлов и каталогов

rm имя_файла

удаляет файл, но не каталог;

rmdir имя_каталога

удаляет каталог, только если он пуст;

rm -r имя_каталога

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

rm -rf имя_каталога

удаляет каталог рекурсивно и молча.

Удаление файла на самом деле представляет собой уменьшение на 1 счетчика его имен в индексном дескрипторе; соответствующий системный вызов называется unlink(2). Физически файл удаляется системой, если он закрыт и если счетчик имен равен нулю. Это свойство используется программистами при создании временных файлов: после создания файла функцией open сразу же вызывается unlink, сбрасывающий счетчик имен в 0. Пока файл открыт, его можно использовать (через файловую переменную, возвращенную функцией open; имени у файла уже нет). После вызова close файл автоматически уничтожается.

Изучение содержимого файла

Команда

file имя_файла [имя_файла ...]

определяет тип файла путем анализа его содержимого

Выполните:

Определите тип всех файлов вашего домашнего каталога и каталога prog.

Расширение файла (часть имени после точки) в Unix не имеет никакого специального значения. Например, для запуска файла требуется не расширение типа .exe, а право на исполнение.

Команда

cat имя_файла

- выводит содержимое файла на терминал.

Команда

more имя_файла

- пейджер (выводит файл постранично, с остановом). Фактически, команда man формирует текст справки и пропускает его через more. Поэтому команды управления прокруткой текста см. выше в описании man.

Команда

tail [-число] имя_файла

выводит последние 10 строк файла или сколько указано.

Команда

head [-число] имя_файла

выводит первые 10 строк файла или сколько указано.

Команда

od имя_файла

выводит файл в восьмеричном виде. Ключи:

-Nчисло - вывести только указанное число первых байт,

-jчисло - пропустить указанное число первых байт,

-j0xчисло - пропустить указанное число первых байт (число является 16-ричным),

-tx - вывести в шестнадцатеричном виде,

-с - вывести каждый байт в виде символа (непечатные символы отображаются как спецсимволы языка Си: \t,\n,\b,\f,\r,\0, либо как трехзначное 8-ричное число).

Таблица 1. Основные каталоги

Каталог Подкаталоги Назначение
/bin   Этот каталог содержит в основном готовые к исполнению программы, большинство из которых необходимы во время старта системы (или в однопользовательском системном режиме, используемом для отладки). Здесь хранится значительное количество общеупотребительных команд Unix
/boot   Содержит основные постоянные файлы для загрузки системы, в частности загружаемое ядро. Файлы из этого каталога нужны только во время загрузки системы
/dev   Каталог специальных файлов или файлов устройств (рассматривается ниже)
/etc   Этот каталог и его подкаталоги содержат большинство данных, необходимых для начальной загрузки системы и основные конфигурационные файлы. В /etc находятся, например, файл inittab, определяющий загружаемую конфигурацию, и файл паролей пользователей passwd. Часть конфигурационных файлов может находиться и в /usr/etc. Каталог /etc не должен содержать двоичных файлов (их следует перенести в /bin или /sbin). Ниже приводится назначение основных (но далеко не всех!) подкаталогов каталога /etc
  /etc/rc.d Этот подкаталог содержит файлы, которые используются в процессе начальной загрузки системы.
  /etc/skel Когда создается новый пользователь и account для него, то файлы из этого каталога копируются во вновь созданный домашний каталог пользователя
/home   Обычно в этом каталоге находятся домашние каталоги пользователей
/lib   Этот каталог содержит разделяемые библиотеки функций, необходимых компилятору языка C и модули (драйверы устройств). Даже если в системе не установлен компилятор языка C, разделяемые библиотеки необходимы, поскольку они используются многими прикладными программами. Они загружаются в память по мере необходимости выполнения каких-то функций, что позволяет уменьшить объем кода программ - в противном случае один и тот же код многократно повторялся бы в различных программах
/lost+found   Этот каталог используется при восстановлении файловой системы командой fsck. Если fsck обнаруживает файл, родительский каталог которого определить невозможно, она помещает такой файл в каталог /lost+found. Поскольку родительский каталог потерян, то таким файлам присваиваются имена, совпадающие с номерами их индексных дескрипторов
/mnt   Это точка монтирования для временно монтируемых файловых систем. Если на компьютере запускается поочередно Unix и MS DOS, то этот каталог обычно используется, чтобы монтировать файловую систему MS DOS. Если вы имеете привычку монтировать несколько дополнительных носителей, например, дискеты, CD-ROM, дополнительный жесткий диск и т. д., то можно создать в нем соответственно дополнительные подкаталоги для каждого носителя
/proc   Это точка монтирования для файловой системы proc, которая обеспечивает информацию о выполняющихся процессах, ядре, оборудовании вычислительной установки и т. д. Это псевдо-файловая система, подробности о которой можно узнать по команде man 5 proc. Специальные файлы из этого каталога используются для получения и передачи данных ядру
/root   Это домашний каталог суперпользователя. Обратите внимание на то, что он расположен не там, где располагаются личные каталоги остальных пользователей (в /home)
/sbin   Подобно каталогу /bin содержит в основном исполняемые файлы - программы и утилиты ОС, используемые в процессе загрузки и запускаемые системным администратором. В стандарте FHS говорится, что в этот каталог надо помещать те исполняемые файлы, которые используются после успешного подключения файловой системы /usr. Минимальное содержимое этого каталога включает программы clock, getty, init, update, mkswap, swapon, swapoff, halt, reboot, shutdown, fdisk, fsck.*, mkfs.*, lilo, arp, ifconfig, route
/tmp   Каталог для временных файлов. В любой момент суперпользователь может удалить файлы из этого каталога без большого ущерба для остальных пользователей. Однако, не стоит удалять файлы из этого каталога, если вам не стало ясно, что конкретный файл или группа файлов мешают продолжению продуктивной работе на машине. Система сама периодически очищает этот каталог, поэтому не следует хранить тут файлы, которые вам могут понадобиться в дальнейшем
/usr   Этот каталог огромен и его структура в основном повторяет структуру корневого каталога. В его подкаталогах находятся все основные приложения. В соответствии со стандартом FHS рекомендуется выделять для этого каталога отдельный раздел диска или вообще располагать его на сетевом диске, общем для всех компьютеров в сети. Такой раздел или диск монтируют только для чтения и располагают в нем общие конфигурационные и исполняемые файлы, документацию, системные утилиты и библиотеки, а также включаемые файлы (файлы типа include)
/var   Этот каталог содержит файлы, в которых сохраняются различные переменные данные, определяющие конфигурацию некоторых программ при следующем запуске или временно сохраняемую информацию, которая будет использоваться позже в ходе текущего сеанса. Объем данных в этом каталоге может сильно изменяться, поскольку он содержит, например, файлы протоколов (логи), файлы спулинга и блокировки (locking), временные файлы и т. д.
  /var/adm Содержит учетную и диагностическую информацию, необходимую системному администратору
  /var/backups Этот каталог используется, чтобы сохранить резервную копию важных системных файлов
  /var/lock Здесь содержатся управляющие файлы системы, которые используются для резервирования использования тех или иных ресурсов системы
  /var/log Различные файлы протоколов (логи)
  /var/run Переменные файлы времени выполнения различных программ. Они содержат идентификаторы процессов (PIDs) и записывают текущую информацию (utmp). Файлы в этом каталоге обычно очищаются во время загрузки системы
  /var/spool Файлы различных программ, поставленные в очередь на обслуживание.
  • /var/spool/at - Файлы заданий, запущенных посредством команды at.
  • /var/spool/cron - Файлы системы cron.
  • /var/spool/lpd - Файлы, ожидающие вывода на печать.
  • /var/spool/mail - Пользовательские почтовые ящики.
  • /var/spool/news - Файлы системы news.
  • /var/spool/uucp - Файлы системы uucp
  /var/tmp Временные файлы

Файлы физических устройств

Как уже говорилось, с точки зрения ОС Unix, все подключаемые к компьютеру устройства (жесткие и съемные диски, терминал, принтер, модем и т. д.), представляются файлами. Если, например, надо вывести на экран какую-то информацию, то система как бы производит запись в файл /dev/tty01.

Физические устройства бывают двух типов: символьными (или байт-ориентированными) и блочными (или блок-ориентированными). Различие между ними состоит в том, как производится считывание и запись информации в эти устройства. Взаимодействие с символьными устройствами производится посимвольно, в режиме потока байтов. К таким устройствам относятся, например, терминалы. На блок-ориентированных устройствах информация записывается (и, соответственно, считывается) блоками. Примером устройств этого типа являются жесткие диски. На диск невозможно записать или считать с него один байт: обмен с диском производится только блоками.

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

Таблица 2. Основные специальные файлы
Имя Значение
/dev/console Системная консоль, т. е. монитор и клавиатура, физически подключенные к компьютеру
/dev/hd Жесткие диски с IDE-интерфейсом. Устройство /dev/hda1 соответствует первому разделу на первом жестком диске (/dev/hda), т. е. на диске, подключенном как Primary Master
/dev/sd Жесткие диски с SCSI-интерфейсом
/dev/fd Файлы дисководов для гибких дисков. Первому дисководу соответствует /dev/fd0, второму /dev/fd1
/dev/tty Файлы поддержки пользовательских консолей. Название сохранилось с тех пор, когда к системе UNIX подключались телетайпы в качестве терминалов. В Unix эти файлы устройств обеспечивают работу виртуальных консолей (переключаться между которыми можно с помощью <Alt>+<F1> - <Alt>+<F6>)
/dev/pty Файлы поддержки псевдо-терминалов. Применяются для удаленных рабочих сессий с использованием telnet
/dev/ttS Файлы, обеспечивающие работу с последовательными портами. /dev/ttS0 соответствует COM1 в MS-DOS, /dev/ttS1 - COM2. Если ваша мышь подключается через последовательный порт, то /dev/mouse является символической ссылкой на соответствующий /dev/ttSN
/dev/cua Специальные устройства для работы с модемами
/dev/null Это устройство - просто черная дыра. Все, что записывается в /dev/null, навсегда потеряно. На это устройство можно перенаправить вывод ненужных сообщений. Если /dev/null используется как устройство ввода, то оно ведет себя как файл нулевой длины

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

Для файлов устройств команда ls -l вместо размера файла выдает старший и младший номера данного устройства.

Изучите список каталогов верхнего уровня

· /etc/

В каталоге /etc содержатся системные конфигурационные файлы. Все эти файлы - текстовые.

· /usr/

Каталог /usr является главным каталогом для хранения приложений. Все бинарные файлы в этом каталоге не требуются для загрузки или обслуживания системы, поэтому иерархия /usr может, а часто так и есть, размещаться на отдельной файловой системе. Вследствие его (обычно) большого размера, /usr имеет свою собственную иерархию подкаталогов. Следует упомянуть каталоги /usr/share/doc и /usr/share/man, которые соответственно содержат документацию к приложениями и системные страницы руководств.

· /dev/ и /devices/

В этих каталогах находятся специальные файлы типов b и c, представляющие собой устройства компьютера. Спецфайлы в каталоге /devices организованы по принципу размещения устройств на системной шине компьютера.

"Устройство" в UNIX понимается двояко. С одной стороны - это внешнее устройство, то есть некая аппаратная часть компьютера, которая занимается обработкой или хранением данных. Жесткий диск, видеоадаптер, сетевой интерфейс, последовательный порт - все это примеры внешних устройств. Они как-то работают, и система может ими управлять сообразно потребностям; однако пользователю все тонкости работы с внешними устройствами на низком уровне вряд ли понадобятся.

С точки зрения пользователя, разнообразие устройств должно диктоваться только разнообразием их функциональности. Но и совсем различные устройства должны поддерживать простейшие способы передачи данных, вроде "открыть устройство-прочитать-закрыть" или "открыть устройство-записать-закрыть". Для этих операций уже придумана абстракция: файл. Поэтому в UNIX точки доступа к устройствам (чаще говорят просто "устройства") размещаются в файловой системе: подобно файлам, устройства имеют имена, в них можно писать и можно из них читать. Иногда устройства называют еще файл-дырками, потому что наглядно можно себе представить устройство в виде дырки в файловой системе: все данные, которые мы записываем в такой файл, проваливаются в него, не занимая места на диске, прямо к драйверу, и читаем мы данные не с диска, а из дырки, куда их драйвер подкладывает. Традиционно устройства (или, что одно и то же, их файл-дырки) размещаются в UNIX в каталоге /dev хотя создать устройство и пользоваться им можно в любом месте файловой системы, которая поддерживает файл-дырки.

Устройства делятся на настоящие устройства, расположенные на шине PCI, и псевдо-устройства (например, оперативная память mm или псевдотерминалы pts, к которым подключается программа telnet).

Большую часть терминалов-устройств в /dev так называемые псевдотерминалы. Это довольно курьезные устройства, не имеющие не только соответствующей аппаратной части, но даже и программной! UNIX управляется посредством терминала. Терминал не обязан быть аппаратным устройством (это мы видели на примере виртуальной консоли). На самом деле, любой источник адресованных системе команд в виде потока байтов может быть терминалом. Псевдотерминалами пользуется всякая программа, желающая заменить терминал: например, многочисленные варианты эмуляторов терминала для графической системы X Window.

· /var/

В подкаталогах каталога /var хранятся временные или служебные файлы различных программ. Основные подкаталоги каталога /var:

· /var/log - журналы регистрации событий в системе.

· /var/adm - журналы регистрации событий административного контекста.

· /var/mail - новая (непрочитанная) почта пользователей.

· /var/spool - различные очереди (на печать, на отправку почты, на выполнение заданий по расписанию).

· /var/tmp - различные временные файлы.

Выполните:

Cd var

ls

Ls -l log

Tail log/syslog

Ls -l mail

Ls -ld tmp

(Обратите внимание: запись в этот каталог разрешена всем. Аналогичную функцию выполняет каталог /tmp, но природа его файловой системы другая, что, в общем-то, для пользователя не имеет значения.)

Ls -ld /tmp

· /home/

В каталоге /home размещены домашние каталоги пользователей.

· /opt/

В каталоге /opt располагаются большие пакеты прикладного ПО (аналог каталога Program Files).

· /sbin/

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

· /kernel/

В этом каталоге расположено ядро операционной системы (файл genunix), драйверы устройств и другие служебные файлы.

Mount /dev/sd0a /users

монтирует файловую систему, находящуюся на устройстве /dev/sd0a, под именем users.

Команда

Mount

без параметров выводит информацию о смонтированных файловых системах и параметрах монтирования.

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

Пример размонтирования файловой системы /users

Umount /users

Команда

df

выводит данные о размерах файловых систем, занятом и свободном пространстве; ключ -k определяет формат вывода и означает, что данные выводятся в килобайтах.

Команда

Tree

показывает дерево файлов и директорий, начиная от корня (/).

Команда

du -k каталог

выводит информацию о суммарном размере файлов в указанном каталоге и - рекурсивно - его подкаталогах (плюс размер собственно каталога). Если каталог не указан, подразумевается текущий. Ключи:

· -k – означает, что данные выводятся в килобайтах, иначе - в 512-байтных блоках.

· -s – подавляет рекурсивный вывод информации о подкаталогах - команда сообщает только суммарный объем.

Пользователи

Наличие или отсутствие пользователя в системе определяется записью в файле /etc/passwd. Каждая запись представляет собой строку, состоящую из семи полей, разделенных двоеточиями.

Поля, слева направо, имеют следующие значения:

1. USER - имя пользователя.

2. PASSWORD - в старых версиях Unix в этом поле хранился зашифрованный пароль пользователя; в современных версиях поле содержит "x", а зашифрованный пароль хранится в файле /etc/shadow, который доступен для чтения только суперпользователю.

3. UID - идентификатор пользователя - целое положительное число, 0 зарезервирован для суперпользователя.

4. GID - идентификатор группы, в которую входит пользователь.

5. GECOS - произвольный текстовый комментарий (как правило, имя и фамилия пользователя).

6. HOME - домашний каталог пользователя.

7. SHELL - шелл - программа, запускаемая для обслуживания сеанса работы пользователя в системе. Для обычных пользователей это - командный интерпретатор.

Если пользователь должен быть членом более одной группы, то для внесения его в другие группы, следует указать имя пользователя в соответствующей строке файла /etc/group.

Группа, которая указана для пользователя в файле /etc/passwd называется первичной группой этого пользователя, остальные группы, в которые он внесен согласно файлу /etc/group, - вторичными. Первчичная группа отличается от вторичных только в следующем:

  • Когда пользователь создает файл (и у каталога не установлен бит SGID), то группой-владельцем нового файла будет первичная группа пользователя (владельцем файла будет он сам).

Файл /etc/group таким образом выполняет две функции: во-первых, он определяет имена и идентификаторы групп; во-вторых, указывает участие пользователей во вторичных для них группах.

Чтобы определить, в каких группах вы участвуете, надо подать команду groups

Узнать, какие пользователи работают в настоящий момент в системе и чем занимаются, можно с помощью команд whoили w

Chmod o-wx file

Добавить владельцу и группе права на чтение и запись:

chmod ug+rw file

Установить права прочих такими же, как у группы

chmod o=g file

Установить права прочих и группы такими же, как у владельца

chmod og=u file

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

chmod u+x,go-w file

Поиск в файловой системе

Поиск по содержимому файлов (grep)

Команда

grep [-inv] подстрока файл [файл2 ...]

производит поиск указанной подстроки в указанных файлах.

Команда выводит строки из указанного файла (файлов), в каковых строках найдена указанная подстрока. Если файлов несколько, строка предваряется именем файла с двоеточием.

Основные ключи:

-i - игнорировать отличия верхнего и нижнего регистра (на нерусифицированных системах работает только для латиницы),

-n - вместе со строками выводить и их номера,

-v - выводить строки, в которых не найдена указанная подстрока.

Полное описание ключей команды grep см. в справочнике man.

Поиск файлов (find)

Команда

find каталог [выражение ... ]

проивзодит рекурсивный поиск в указанном каталоге и его подкаталогах. Для каждого файла вычисляются значения указанных в командной строке логических выражений, которые объединяются по "И". Если в итоге получается "ИСТИННО", то имя файла (точнее путь к нему, начиная от указанного в командной строке каталога, выводится в стандартный вывод).

Отсутствие выражений - всегда "ИСТИННО" (то есть в это случае find рекурсивно выводит имена всех файлов каталога и его подкаталогов).

Основные выражения find

(Примечание: ниже везде, где есть числовой параметр N, перед ним можно ставить плюс или минус, при этом справедливо следующее правило: "+N" означает "больше, чем N", "-N" означает "меньше, чем N", просто число N означает "равно N".)

-name шаблон_имени_файла

истинно, если имя файла соответствует шаблону; в шаблоне можно использовать символ '*' и т.п. - при этом шаблон надо взять в одинарные кавычки.

-perm ABCD

истинно, если права доступа к файлу точно равны указанным (ABCD); права записываются в числовой нотации команды chmod.

-perm -ABCD

истинно, если указанные права доступа (ABCD) имеются у файла; права записываются в числовой нотации команды chmod.

-type T

истинно, если ти

Наши рекомендации