ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2024
Просмотров: 10
Скачиваний: 0
Баранов вадим ивт-33 ОС3
Задание 1.
-
Перейдите в домашний каталог.
-
Создайте каталоги D1/D2/D3.
Тк присутствует иерархия нужна комманда mkdir –p D1/D2/D3
-
В каталоге D2 создайте обычный пустой файл file.txt.
Сначала зайду в директорию командой cd D1/D2
А потом создам файл touch file.txt
-
Добавьте текст в файл file.txt.
Зайду в текстовый редактор nano file.txt
Напишу любые строчки
далее
нажму ctrl + X ДАЛЕЕ Y и сохраню
-
В каталоге D3 создайте символическую и жесткие ссылки на file.txt. Докажите, что ссылки созданы успешно.
-
Переместите файл file.txt в каталог D1. Проверьте, что ранее созданные ссылки на этот файл работают.
Ссылки работают
-
Удалите каталог D2 со всем содержимым.
rm –r D2
Задание 2.
-
Найдите все файлы в системе размером больше 50МБ. Убедитесь в том, что найденные файлы имеют нужный размер.
-
В домашнем каталоге и его подкаталогах найдите обычные файлы, которые были изменены в течение последних 24х часов.
Find / -type f –mtime -1
Где -1 (это меньше 1 дня)
-
В каком каталоге находится команда find?
-
Что можно сказать о файле find по характеру его содержимого?
Утилита для поиска файлов и каталогов и не является файлом, а это значит, что у нее нету содержимого
-
Установите, к какому типу относятся файлы /boot/initrd.img*.
Initrd – начальный образ файловой системы, который загружается в оперативную память при запуске системы (связан с загрузкой)
Задание 3.
-
Выведите содержимое журнального файла auth.log в постраничном режиме так, чтобы сначала выводились последние записи.
grep sudo /var/log/auth.log- ищет строки, содержащие слово "sudo" в журнальном файле auth.log.
|- это оператор "pipe", который выдает вывод grep в команду less.
less- Результаты обеспечивают поиск в страничном режиме, что позволяет вам просматривать их на одной странице за раз.
-
Выведите на экран имя текущего каталога и список файлов в этом каталоге. Введите соответствующие команды в одной строке.
$(pwd)в результате выполнения команды pwd, которая возвращает текущий рабочий каталог (текущий каталог).
&& используется для выполнения второй команды ( ls) только в случае выполнения первой команды ( echo).
-
Используя предыдущее задание, сохраните имя текущего каталога и список файлов в этом каталоге в файл cur_dir_files.txt. Проверьте успешность выполнения
команды.
ls- выводит список файлов и каталогов в текущем каталоге. (command1 && command2)- выполнить две команды последовательно, при этом результат выполнения первой команды влияет на выполнение второй. >- перенаправляет стандартный вывод команды в файл cur_dir_files.txt.
Задание 4.
-
Перейдите в домашний каталог. Выведите на экран информацию о подкаталогах текущего каталога командой ls -l | grep '^d'. Используя команды tr и cut, отставьте в выводе на экран только имена подкаталогов. Примечание: используйте параметр -s команды tr, который удаляет последовательности повторяющихся символов, указанных
вводите информацию о подкаталогах текущего каталога с помощью ls -lи фильтруете строки, начинающиеся с "d" (которые обозначают каталоги) с помощью grep: в команде.
ls -l- вы ведете список файлов и каталоги с дополнительной информацией.
grep '^d'- фильтрует только строки, начинающиеся с "d", что означает директории. tr -s ' '- заменяет повторяющиеся пробелы одним пробелом, чтобы облегчить вывод колонок.
cut -d ' ' -f 9- разбивает каждый символ по пробелам и выводит только девятую колонку, содержащую имена каталогов
-
Усовершенствуйте предыдущее задание, выводя все имена подкаталогов в одной строке. Используйте команду tr.
ls -l | grep '^d' | tr -s ' ' | cut -d ' ' -f 9 | tr '\n' ' '
cut -d ' ' -f 9- разбивает каждый символ по пробелам и выводит только девятую колонку, содержащую имена каталогов. tr '\n' ' '- заменяет символы новыми строками на пробелы, чтобы имена каталогов выводились в одну строку.
-
Добавьте эту строку с именами каталогов в файл cur_dir_files.txt.
ls -l /dev- вы ведете список файлов и каталоги в каталоге /devс подробной информацией о каждом файле.
tr -s ' '- заменяет повторяющиеся пробелы одним пробелом, чтобы облегчить вывод колонок.
cut -d ' ' -f 1- разбивает каждый символ по пробелам и выводит первую колонку, содержащую права доступа.
sort- сортирует права доступа для подсчета уникальных комбинаций. uniq- Ремонт дубликатов, оставляющих только уникальные записи прав доступа.
wc –l- подсчитывает количество уникальных комбинаций прав доступа.
Это число вернет, обозначающее количество различных комбинаций прав доступа в каталоге /dev
Задание 5.
-
Задания на использование регулярных выражений и утилиты grep:
-
пользуясь справочной системой man, выведите список всех пользовательских и административных команд, начинающихся с ls;
-
Эта команда использует флаг -k (keyword), который позволяет выполнить поиск в справочной системе (man-страницах) с помощью ключевого слова. В данном случае, мы ищем все команды, начинающиеся с ls, и выводим их список.
-
из файла /var/log/messages вывести строки за вчерашний день с 1 am до 5pm.
командой grep, чтобы фильтровать строки, основываясь на дате и времени и использовать утилиты grep, awk и date.
grep "$(date -d "yesterday 1 AM" "+%b %e %H:%M")" /var/log/messages | awk '$3 >= "01:00" && $3 <= "17:00"'
date -d "yesterday 1 AM" "+%b %e %H:%M" используется для получения временной метки, представляющей "вчерашний день в 1 AM". Формат временной метки соответствует формату в журнале /var/log/messages.
grep используется для поиска строк в файле /var/log/messages, которые содержат указанную дату и время.
awk используется для фильтрации строк на основе времени в формате "час:минута". Условие $3 >= "01:00" && $3 <= "17:00" фильтрует строки с временем от 1 AM до 5 PM (1 утра до 5 вечера).
"+%b %e %H:%M" - это строка форматирования времени, используемая с командой date для задания формата вывода времени. Каждая часть формата имеет свой собственный смысл:
%b - Это аббревиатура названия месяца (например, "Jan" для января).
%e - Это день месяца в виде одной или двух цифр (без ведущего нуля, например, "1" или "12").
%H - Это часы в 24-часовом формате (от "00" до "23").
%M - Это минуты (от "00" до "59").
-
Задание на использование утилиты sed
-
в файлах .bashrc, находящихся в домашних каталогах пользователей (/home), изменить определение переменной LD_LIBRARY_PATH (в переменную должен быть добавлен каталог /opt/rubackup/lib, определение переменной разместить в конце файлов).
-
не знаю
sudo find /home -maxdepth 1 -type d -exec sh -c 'if [ -f "$1/.bashrc" ]; then
sed -i "/^export LD_LIBRARY_PATH=/s/$/:\/opt\/rubackup\/lib/" "$1/.bashrc"
fi' sh {} \;
-
Задание на использование утилиты awk
-
в домашнем каталоге создайте каталог temp и перейдите в него;
-
mkdir ~/temp cd ~/temp
-
создайте файлы file1.txt, file2.txt, …, file20.txt
touch file{1..20}.txt
-
(Подсказка: воспользуйтесь механизмом генерации строк с помощью фигурных скобок);
-
создайте подкаталог bak;
-
скопируйте файлы file1.txt, file2.txt, … , file20.txt в каталог bak с именами file1.txt.bak, file2.txt.bak, …, file20.txt.bak, используя awk.
mkdir bak
ls file*.txt | awk '{print "cp "$0" bak/"$0".bak"}' | sh
выводит ошибку. не знаю почему
ls file*.txt используется для получения списка файлов file1.txt, file2.txt, и так далее.
awk '{print "cp "$0" bak/"$0".bak"}' используется для создания команд копирования для каждого файла, добавляя ".bak" в имя.
| sh используется для выполнения созданных команд копирования с помощью командного интерпретатора.