Задания для зачета по факультативу Unix shell
Для всех задач, преподаватель может засчитать частичное решение на основе субъективной оценки того, насколько
вы были близки к корректному решению, и ваших соображений по поводу того, как работает то, что вы написали.
В задачах 1-4 можно предполагать, что имена каталогов в $PATH не содержат пробелов.
- Напишите программу, которая находит самый длинный файл во всех каталогах, указанных в переменной среды PATH.
- Напишите программу, которая находит все файлы в во всех каталогах, указанных в переменной среды
PATH, которые не являются исполняемыми.
- Напишите программу, которая выводит
ls -l
для всех файлов, являющихся символическими ссылками,
во всех каталогах, указанных в переменной среды PATH.
- Напишите программу, которая формирует массив, каждый элемент которого соответствует
одному каталогу из переменной среды PATH
- Найдите самый длинный исполняемый файл в файловой системе.
Допускается игнорировать файлы в каталогах, к которым у вас нет доступа.
- Напишите шелловский скрипт, который для каждого аргумента, являющегося именем регулярного файла или каталога,
выводит длину этого файла или каталога и его имя. Аргументы, не являющиеся именами файлов или каталогов,
игнорируются. Длина каталога - это значение, которое для этого каталога выдает команда
ls -ld
, а не сумма
длин всех файлов в этом каталоге.
- Подсчитайте общее количество файлов и других объектов файловой системы (каталогов, символических связей
и т.д., кроме записей . и ..) в заданном каталоге и его подкаталогах. Допускается игнорировать
содержимое подкаталогов, к которым у вас нет доступа.
- Напишите скрипт, который выводит слова man bear pig dog cat sheep, каждое на отдельной строке.
Скрипт должен занимать не более трех строк. Строка
#!/bin/bash
не считается.
- Выведите список всех "живых" (отвечающих на ping) машин с адресами из диапазона от 10.4.16.1 до 10.4.16.254.
Для проверки "живости" машины с адресом $IP используйте команду
ping -w 1 -c 2 $IP
(эта команда отправляет не более двух пакетов и ждет не более одной секунды).
- Для всех зарегистрированных в системе пользователей, выведите имена тех, в чьем домашнем каталоге
или его подкаталогах есть хотя бы один исполняемый файл. Допускается игнорировать каталоги, к которым
у вас нет доступа. Имена файлов и другие сообщения, в том числе сообщения об ошибках, выводить не следует.
- Выведите имена всех пользователей в системе, которым принадлежит хотя бы один файл с установленным битом
setuid. Допускается игнорировать файлы в каталогах, к которым у вас нет доступа.
Имена файлов и другие сообщения, в том числе сообщения об ошибках доступа к каталогам, выводить не следует.