ЛАБОРАТОРНЫЙ ПРАКТИКУМ: "КОМАНДНАЯ ОБОЛОЧКА UNIX"
СТРУКТУРА ПРАКТИКУМА
ЗАДАНИЯ ПРАКТИКУМА
ЗАДАНИЕ №1
ЗАДАНИЕ №2
ЗАДАНИЕ №3
ЗАДАНИЕ №4
ЗАДАНИЕ №5
ВВЕДЕНИЕ
НЕОБХОДИМАЯ ИНФОРМАЦИЯ
Host Name рабочего сервера
Приглашение командной строки
Редактирование командной строки
Стандартные обозначения
Используемые команды
1. СЕАНС РАБОТЫ В UNIX-СИСТЕМЕ
1. Терминал и командная строка
2. Логины, пароли и доступ к серверу
3. Вход в систему/завершение работы
2.ФАЙЛОВАЯ СИСТЕМА UNIX
1. Файлы и каталоги. Абсолютный (полный) путь
2. Домашний и текущий каталог. Относительный путь
3. Просмотр структуры каталогов и файлов
4. Создание и удаление каталогов и файлов
5. Пример построения дерева каталогов
6. Копирование и перемещение файлов
3.ЧТО ДОЛЖЕН ЗНАТЬ НЕ ТОЛЬКО СИСАДМИН
1. Учетные записи и пользователи
2. Задачи и процессы в системе
3. Права доступа к файлам и каталогам
4. Ввод/вывод и конвейеры
5. Поиск и обработка текстовых данных
4.ФАЙЛОВЫЙ МЕНЕДЖЕР MIDNIGHT COMMANDER
1. Внешний вид, начало и завершение работы
2. Работа с каталогами и файлами
3.5. Поиск и обработка текстовых данных
Работая в UNIX, иногда бывает необходимость найти группу файлов или папок, удовлетворяющих определенным критериям и выполнить с ними некоторые действия. Для этих целей в UNIX есть несколько команд и утилит, в рамках выполняемого практикума предлагается рассмотреть только одну из них – команду, а точнее, утилиту grep.
Утилита grep – поиск текстовых файлов по фрагментам текста
Утилита grep выполняет поиск в текстовых файлах образца текста, и в зависимости от способа применения выдает информацию о файле, содержащем этот образец. Например, можно узнать, есть ли в директории /usr/share/liblab/proverbs/spirit/mind файлы, содержащие текстовые фрагменты «show» и «shall». Выясняется, что есть файл /usr/share/liblab/proverbs/spirit/mind/philosph, содержащий текстовый образец «shall», а файлов содержащих «show», в этой директории не существует (Пример 3.19). Команда grep выдает на экран полное имя файла и строки из него, в которых найдет искомый образец текста.
Для дальнейших манипуляций над найденным файлом потребуется форма команды grep, которая будет выдавать в качестве результата строку, содержащую только имя файла, в виде полного пути. Это команда grep –l (Пример 3.20).
Очевидным способом просмотра текста найденного файла является: cat /usr/share/liblab/proverbs/spirit/mind/philosph, однако, чтобы не набирать по многу раз команды с длинными путями, можно использовать результат работы grep –l в качестве параметра cat. (Пример 3.21) При этом вся команда grep –l заключается в обратные апострофы (другой регистр клавиши с волной «~»).
По сути, результатом grep –l является выдаваемая в stdout текстовая строка, которая может быть преобразована, например, потоковым текстовым редактором sed (англ. Stream EDitor). Например, можно выполнить замену текста, используя внутреннюю команду «s/что_заменять/на_что_заменять/». Пример 3.22 показывает, как используя конвейер изменить текстовую строку из stdout, добавив в конец строки (обозначается $) группу символов « . « (пробел, точка, пробел).
Полученная таким образом (Пример 3.22) текстовая строка может быть использована в качестве аргумента (обрамленного обратными апострофами) для команды копирования cp (Пример 3.23). Для копирования файла нужно предварительно создать в домашней директории каталог myproverbs и сделать его текущим.
Применение команды grep –l shall к текущей директории выдаст в качестве результата текстовую строку philosph. Эту строку можно передать в качестве параметра команде chmod, устанавливающей права доступа к файлам (Пример 3.24). Изменение прав доступа (перед и после) контролируется командой ls –l.
Пример 3.24. Изменение прав доступа к файлу, найденному по образцу текста
v100-1@beta:~/ myproverbs> ls –l -rw-r--r-- 1 v100-1 v100 792 Ноя 3 11:45 philosphv100-1@beta:~/myproverbs> chmod u-w `grep -l shall *` -r--r--r-- 1 v100-1 v100 792 Ноя 3 11:45 philosphv100-1@beta:~/myproverbs>