- •Федеральное агенство связи
- •1. Использование командного интерпретатора для работы с файлами
- •1.1. Структура файловой системы FreeBsd
- •1.2. Работа с файлами
- •1.2.1. Работа с обычным текстовым файлом
- •1.2.2. Работа с каталогами
- •1.2.3. Работа со ссылками
- •1.3. Задание на лабораторную работу
- •4. Контрольные вопросы
- •2. Архивирование и сжатие файлов
- •2.1. Архивирование
- •2.2. Cжатие файлов
- •2.3. Задание на лабораторную работу
- •2.4. Контрольные вопросы
- •3. Управление учётными записями пользователей и правами доступа к файлам
- •3.1. Концепция пользователей и групп
- •3.2. Учетные записи пользователей
- •3.3. Группы пользователей
- •3.4. Владельцы файлов и права доступа к файлам
- •3.5. Задание на лабораторную работу
- •3.6. Контрольные вопросы
- •4. Использование команд для фильтрации и обработки текстов
- •4.1. Основные команды
- •4.3. Контрольные вопросы
- •5. Программирование на языке командного интерпретатора
- •5.1. Командные интерпретаторы
- •5.2. Синтаксис языка Bourne shell
- •5.3. Задание на лабораторную работу
- •5.4. Контрольные вопросы
- •6. Мониторинг производительности, управление процессами и автоматизация заданий
- •6.1. Мониторинг производительности
- •6.2. Управление процессами
- •6.3. Запуск заданий по расписанию
- •6.4. Задание на лабораторную работу
- •7. Монтирование файловых систем и мониторинг их использования
- •7.1. Монтирование и демонтирование файловых систем
- •7.2. Мониторинг использования файловых систем
- •6.4. Задание на лабораторную работу
- •7.4. Контрольные вопросы
- •8. Установка и настройка операционной системыFreeBsd
- •8.1. Установка и настройка виртуальной машины
- •8.2. Установка и настройка FreeBsDна виртуальной машине
- •8.3. Задание на лабораторную работу
- •8.4. Контрольные вопросы
- •Список литературы
- •Содержание
3.5. Задание на лабораторную работу
Посмотреть текстовые файлы, содержащие сведения о пользователях и группах /etc/passwdи/etc/group.
Используя команду su, подключиться к системе в качестве администратора.
Создать нового пользователя с помощью команды adduser.
Обязательно выйти из системы с помощью команды exitи войти в неё под новой учетной записью!
Убедиться, что создан домашний каталог для нового пользователя.
Найти созданных пользователя и группу в файлах /etc/passwdи/etc/group.
С помощью команды passwdизменить для своей новой учётной записи пароль.
С помощью команды chpassизменить для своей новой учётной записи полное имя пользователя.
Войти в систему под учётной записью user. Используя командуsu, подключиться к системе в качестве администратора.
С помощью команды pw groupadd создать новую группу пользователей.
Добавить своего нового пользователя в новую группу с помощью команды pw groupmod.
С помощью команды idопределить принадлежность вашего пользователя к группам.
Изменить владельца-пользователя, а также владельца-группу для созданного ранее текстового файла test.
Изменить атрибуты файла testнаr-xr-xr-x, задавая их в текстовом виде.
Изменить атрибуты файла test2наr-xr-xr-x, задавая их в числовом виде.
Удалить созданную учётную запись с помощью команды rmuser.
Обязательно выйти из системы с помощью команды exit!
3.6. Контрольные вопросы
Какой командой можно получить список работающих пользователей и сохранить его в файле?
Для чего нужны пользователи и группы в системе?
Перечислите основных пользователей системы и группы.
Назовите атрибуты пользователя.
Назовите атрибуты группы.
Что определяет атрибуты файлов и каким образом их можно просмотреть и изменить?
Перечислите права доступа к файлам.
Каким образом можно изменить права доступа к файлам?
Что означает владелец-пользователь и владелец-группа?
Перечислите основные команды для управления учётными записями.
4. Использование команд для фильтрации и обработки текстов
4.1. Основные команды
В составе операционной системы Unix имеется большое число системных утилит, предназначенных для обработки текстов. В таблице 8.1. приведены основные из них.
Таблица 8.1.
Утилита |
Назначение |
cat |
вывод и конкатенация (объединение) файлов; |
grep |
поиск по шаблону, заданному регулярным выражением; |
cmp |
сравнение файлов; |
cut |
вырезание полей из текста; |
paste |
сцепление строк файлов; |
head |
распечатка начала файла; |
tail |
распечатка последних строк файла; |
sort |
сортировка; |
sed |
потоковый текстовый редактор; |
awk |
многофункциональная утилита для обработки текстов; использует C-подобный язык программирования; |
wc |
подсчёт числа строк в файле. |
Командаgrepвыполняет поиск строк в файлах или во входном потоке, соответствующих шаблону, заданному регулярным выражением.Регулярные выраженияпредставляют собой язык описания текстовых шаблонов. Регулярные выражения содержат образцы символов, входящих в искомое текстовое выражение, и конструкции, определяемые специальными символами (метасимволами). В таблице 8.2. приведены метасимволы, используемые в регулярных выражениях.
Таблица 8.2.
Метасимвол |
Назначение |
^ |
начало строки; |
$ |
конец строки; |
[] |
любой символ, заключенный в квадратные скобки; чтобы задать диапазон символов, в квадратных скобках указываются через дефис первый и последний символы диапазона; |
[^] |
любой символ, кроме символов, заданных в квадратных скобках; |
. |
любой отдельный символ; |
\ |
отменяет специальное значение следующего за ним метасимвола; |
* |
указывает, что предыдущий шаблон встречается 0 или более раз; |
\{n\} |
указывает, что предыдущий шаблон встречается ровно nраз; |
\{n,\} |
указывает, что предыдущий шаблон встречается не менее nраз; |
\{,n\} |
указывает, что предыдущий шаблон встречается не более nраз; |
\{n,m\} |
указывает, что предыдущий шаблон встречается не менее nи не болееmраз. |
Ниже приведены примеры регулярных выражений, которые задают условия поиска следующих строк:
^the |
начинающихся с буквосочетания "the"; |
be$ |
заканчивающихся буквосочетанием "be"; |
[Ss]igna[lL] |
содержащих буквосочетания: "signal", "Signal", "signaL" или "SignaL"; |
\. |
содержащих точку; |
^...th |
содержащих символы "th" в 4-й и 5-й позициях; |
^.*\{53\}th |
содержащих символы "th" в 54-й и 55-й позициях; |
^.*\{10,30\}th |
содержащих символы "th" в любых позициях между 11-й и 31-й; |
^.....$ |
состоящих из 5 любых символов; |
^t.*e$ |
ищутся строки, начинающихся с буквы "t" и заканчивающиеся буквой "e"; |
[0-9][a-z] |
содержащих комбинацию: цифра-прописная буква; |
[^123] |
содержащих цифр "1" или "2" или "3" |
Команда grepимеет следующий синтаксис:
grep [опции] [шаблон] [файл...]
Опции команды grep приведены в таблице 8.3. Если команда задана без опций, выводятся все найденные строки.
Таблица 8.3.
Опция |
Назначение |
-c |
выводится толькочисло строк файла, соответствующих шаблону |
-f файл |
чтение шаблона из файла |
-h |
не выводятся имена файлов, в которых найдены строки, соответствующие шаблону |
-i |
игнорирование верхнего/нижнего регистров |
-l |
выводятся толькоимена файлов, в которых найдены строки, соответствующие шаблону |
-n |
перед каждой выводимой строкой выводится ее номер в файле |
-v |
ищутся строки, несоответствующие заданному шаблону |
-w |
ищутся слова, полностьюсоответствующие шаблону |
-x |
ищутся строки, полностьюсоответствующие шаблону |
Примеры:
Задание 1.В файлеquery4выбрать все строки, в которых дата продажи - весна 1990 г. Дата представлена в формате «год-месяц-число», где месяц – три первых символа, например, 8 марта 2011 года будет «2011-mar-08».
$ grep "[0-9]-[MA][AP][RY]-[0-9]" ./lab8/query4
Первая буква весеннего месяца должна быть "M" или "A", вторая - "A" или "P", третья - "R" или "Y". Из этих букв можно сложить буквосочетания, обозначающие весенние месяцы, а все другие возможные буквосочетания не являются обозначениями месяцев вообще. Таким образом, шаблон для распознавания весеннего месяца будет: "[MA][AP][RY]".
Задание 2. В файле query2 выбрать все строки, в которых в адресе есть улица ("ST."). Поле адреса в файле начинается с 31-й позиции. Длина адреса составляет не более 20 символов.
$ grep "^.\{30\}.*\{0,17\}ST\." ./lab8/query2
Задание 3. В файле query1 выбрать все строки, в которых зарплата составляет целое число тысяч. Поле зарплаты в файле начинается с 60-й позиции.
grep "^.\{59\}[0-9]\{1,\}000[^0-9]*" ./lab8/query1
Если зарплата составляет целое число тысяч, то в ней содержится одна или несколько цифр, за которыми следует три нуля - подвыражение: "[0-9]\{1,\}000". Однако возможна (теоретически) зарплата, например "10001", поэтому стоит позаботиться о том, чтобы следующие за тремя нулями символы были отличны от значащих цифр. Таких символов может быть сколько угодно, и это условие можно обеспечить подвыражением: "[^0-9]*".
Приведем еще несколько примеров работы с другими утилитами для обработки текстов.
head -5 ./lab8/query1– вывод первых пяти строк файла;
tail -3 ./lab8/query1– вывод трёх последних строк файла;
head -5 ./lab8/query1 | tail -3 >./myfile– вывод строкc3 по 5 файлаquery1 и помещение результата в файлmyfile.
Задание на лабораторную работу
В файле query4выбрать все строки, в которых код покупателя - 201.
В файле query2выбрать все строки, в которых индекс начинается с'11'.
В файле query3выбрать все строки, в которых минимальная цена не меньше 10.
В файле query1выбрать все строки, в которых имя сотрудника начинается на букву'R'.
В файле query3выбрать все строки, в которых в названии есть слово'TENNIS', а цена установлена в 1990 г.
В файле query4выбрать все строки, в которых фамилия продавца -'DUNCAN'.
Вывести 20 символов с конца файла.
Вывести 10 строк с конца файла.
Вывести 15 строк в обратном порядке.
Просматривать файл с конца в процессе его создания.
Отсортировать последние 20 строк файла.
Вывести количество пользователей подключенных к системе.