ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2024

Просмотров: 10

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Баранов вадим ивт-33 ОС3

Задание 1.

  1. Перейдите в домашний каталог.

  1. Создайте каталоги D1/D2/D3.

Тк присутствует иерархия нужна комманда mkdir –p D1/D2/D3

  1. В каталоге D2 создайте обычный пустой файл file.txt.

Сначала зайду в директорию командой cd D1/D2

А потом создам файл touch file.txt

  1. Добавьте текст в файл file.txt.

Зайду в текстовый редактор nano file.txt

Напишу любые строчки

далее

нажму ctrl + X ДАЛЕЕ Y и сохраню

  1. В каталоге D3 создайте символическую и жесткие ссылки на file.txt. Докажите, что ссылки созданы успешно.

  1. Переместите файл file.txt в каталог D1. Проверьте, что ранее созданные ссылки на этот файл работают.

Ссылки работают

  1. Удалите каталог D2 со всем содержимым.

rm –r D2

Задание 2.

  1. Найдите все файлы в системе размером больше 50МБ. Убедитесь в том, что найденные файлы имеют нужный размер.

  1. В домашнем каталоге и его подкаталогах найдите обычные файлы, которые были изменены в течение последних 24х часов.

Find / -type f –mtime -1

Где -1 (это меньше 1 дня)

  1. В каком каталоге находится команда find?

  1. Что можно сказать о файле find по характеру его содержимого?

Утилита для поиска файлов и каталогов и не является файлом, а это значит, что у нее нету содержимого

  1. Установите, к какому типу относятся файлы /boot/initrd.img*.

Initrd – начальный образ файловой системы, который загружается в оперативную память при запуске системы (связан с загрузкой)

Задание 3.

  1. Выведите содержимое журнального файла auth.log в постраничном режиме так, чтобы сначала выводились последние записи.

grep sudo /var/log/auth.log- ищет строки, содержащие слово "sudo" в журнальном файле auth.log.


|- это оператор "pipe", который выдает вывод grep в команду less.

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

  1. Выведите на экран имя текущего каталога и список файлов в этом каталоге. Введите соответствующие команды в одной строке.

$(pwd)в результате выполнения команды pwd, которая возвращает текущий рабочий каталог (текущий каталог).

&& используется для выполнения второй команды ( ls) только в случае выполнения первой команды ( echo).

  1. Используя предыдущее задание, сохраните имя текущего каталога и список файлов в этом каталоге в файл cur_dir_files.txt. Проверьте успешность выполнения

команды.

ls- выводит список файлов и каталогов в текущем каталоге. (command1 && command2)- выполнить две команды последовательно, при этом результат выполнения первой команды влияет на выполнение второй. >- перенаправляет стандартный вывод команды в файл cur_dir_files.txt.

Задание 4.

  1. Перейдите в домашний каталог. Выведите на экран информацию о подкаталогах текущего каталога командой ls -l | grep '^d'. Используя команды tr и cut, отставьте в выводе на экран только имена подкаталогов. Примечание: используйте параметр -s команды tr, который удаляет последовательности повторяющихся символов, указанных

вводите информацию о подкаталогах текущего каталога с помощью ls -lи фильтруете строки, начинающиеся с "d" (которые обозначают каталоги) с помощью grep: в команде.

ls -l- вы ведете список файлов и каталоги с дополнительной информацией.

grep '^d'- фильтрует только строки, начинающиеся с "d", что означает директории. tr -s ' '- заменяет повторяющиеся пробелы одним пробелом, чтобы облегчить вывод колонок.

cut -d ' ' -f 9- разбивает каждый символ по пробелам и выводит только девятую колонку, содержащую имена каталогов

  1. Усовершенствуйте предыдущее задание, выводя все имена подкаталогов в одной строке. Используйте команду tr.

ls -l | grep '^d' | tr -s ' ' | cut -d ' ' -f 9 | tr '\n' ' '

cut -d ' ' -f 9- разбивает каждый символ по пробелам и выводит только девятую колонку, содержащую имена каталогов. tr '\n' ' '- заменяет символы новыми строками на пробелы, чтобы имена каталогов выводились в одну строку.


  1. Добавьте эту строку с именами каталогов в файл cur_dir_files.txt.

ls -l /dev- вы ведете список файлов и каталоги в каталоге /devс подробной информацией о каждом файле.

tr -s ' '- заменяет повторяющиеся пробелы одним пробелом, чтобы облегчить вывод колонок.

cut -d ' ' -f 1- разбивает каждый символ по пробелам и выводит первую колонку, содержащую права доступа.

sort- сортирует права доступа для подсчета уникальных комбинаций. uniq- Ремонт дубликатов, оставляющих только уникальные записи прав доступа.

wc –l- подсчитывает количество уникальных комбинаций прав доступа.

Это число вернет, обозначающее количество различных комбинаций прав доступа в каталоге /dev

Задание 5.

  1. Задания на использование регулярных выражений и утилиты grep:

    1. пользуясь справочной системой man, выведите список всех пользовательских и административных команд, начинающихся с ls;

Эта команда использует флаг -k (keyword), который позволяет выполнить поиск в справочной системе (man-страницах) с помощью ключевого слова. В данном случае, мы ищем все команды, начинающиеся с ls, и выводим их список.

    1. из файла /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").

  1. Задание на использование утилиты sed

    1. в файлах .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 {} \;

  1. Задание на использование утилиты awk

    1. в домашнем каталоге создайте каталог temp и перейдите в него;

mkdir ~/temp cd ~/temp

    1. создайте файлы file1.txt, file2.txt, …, file20.txt

touch file{1..20}.txt

  1. (Подсказка: воспользуйтесь механизмом генерации строк с помощью фигурных скобок);

    1. создайте подкаталог 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 используется для выполнения созданных команд копирования с помощью командного интерпретатора.