Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы_пособие.doc
Скачиваний:
33
Добавлен:
03.05.2015
Размер:
353.79 Кб
Скачать

3.5. Задание на лабораторную работу

  1. Посмотреть текстовые файлы, содержащие сведения о пользователях и группах /etc/passwdи/etc/group.

  2. Используя команду su, подключиться к системе в качестве администратора.

  3. Создать нового пользователя с помощью команды adduser.

  4. Обязательно выйти из системы с помощью команды exitи войти в неё под новой учетной записью!

  5. Убедиться, что создан домашний каталог для нового пользователя.

  6. Найти созданных пользователя и группу в файлах /etc/passwdи/etc/group.

  7. С помощью команды passwdизменить для своей новой учётной записи пароль.

  8. С помощью команды chpassизменить для своей новой учётной записи полное имя пользователя.

  9. Войти в систему под учётной записью user. Используя командуsu, подключиться к системе в качестве администратора.

  10. С помощью команды pw groupadd создать новую группу пользователей.

  11. Добавить своего нового пользователя в новую группу с помощью команды pw groupmod.

  12. С помощью команды idопределить принадлежность вашего пользователя к группам.

  13. Изменить владельца-пользователя, а также владельца-группу для созданного ранее текстового файла test.

  14. Изменить атрибуты файла testнаr-xr-xr-x, задавая их в текстовом виде.

  15. Изменить атрибуты файла test2наr-xr-xr-x, задавая их в числовом виде.

  16. Удалить созданную учётную запись с помощью команды rmuser.

  17. Обязательно выйти из системы с помощью команды exit!

3.6. Контрольные вопросы

  1. Какой командой можно получить список работающих пользователей и сохранить его в файле?

  2. Для чего нужны пользователи и группы в системе?

  3. Перечислите основных пользователей системы и группы.

  4. Назовите атрибуты пользователя.

  5. Назовите атрибуты группы.

  6. Что определяет атрибуты файлов и каким образом их можно просмотреть и изменить?

  7. Перечислите права доступа к файлам.

  8. Каким образом можно изменить права доступа к файлам?

  9. Что означает владелец-пользователь и владелец-группа?

  10. Перечислите основные команды для управления учётными записями.

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.

    1. Задание на лабораторную работу

  1. В файле query4выбрать все строки, в которых код покупателя - 201.

  2. В файле query2выбрать все строки, в которых индекс начинается с'11'.

  3. В файле query3выбрать все строки, в которых минимальная цена не меньше 10.

  4. В файле query1выбрать все строки, в которых имя сотрудника начинается на букву'R'.

  5. В файле query3выбрать все строки, в которых в названии есть слово'TENNIS', а цена установлена в 1990 г.

  6. В файле query4выбрать все строки, в которых фамилия продавца -'DUNCAN'.

  7. Вывести 20 символов с конца файла.

  8. Вывести 10 строк с конца файла.

  9. Вывести 15 строк в обратном порядке.

  10. Просматривать файл с конца в процессе его создания.

  11. Отсортировать последние 20 строк файла.

  12. Вывести количество пользователей подключенных к системе.