Published using Google Docs
2012-5SE-Unix-Bash_Tasks_20120928.doc
Updated automatically every 5 minutes
  1. Напишите на bash часы, обновляющиеся каждую секунду. В случае, если скрипт запущен с ключем -d (или --date), то должна также выдаваться текущая дата.
  2. Напишите скрипт, рисующий шахматную доску в консоли.
  3. Напишите скрипт, который рекурсивно обходит каталог (переданный в качестве параметра) и выводит имена всех файлов, хозяином которых является текущий пользователь, и возраст которых больше N (второй параметр) дней. Если параметры не переданы, должна быть выдана ошибка.
  4. Определить какие компьютеры в локальной сети включены. Локальных сетей может быть несколько – нужно проверить все.
  5. Есть файл цитат вида (в первой строке – автор, во второй – количество цитат):

В.И. Ленин

4

* 0

Учиться, учиться и еще раз учиться

* 1

Ученье свет, а неученье - тьма!

* 2

Наше дело правое!

Враг будет разбит - победа будет за нами!

(И.В. Сталин)

* 3

Товарищи, большевики!

Революция победила!

Требуется написать скрипт, выбирающий из подобного файла случайную цитату и выводящий ее на экран.

  1. Напишите «умную» утилиту удаления файла.

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

В случае запуска с ключом –v все запросы должны отсутствовать.

В случае запуска с ключом -? или –help должна выдаваться информация об использовании.

  1. Напишите bash скрипт рисующий в консоли заставку, максимально похожую на заставку из фильма «Матрица». (см. картинку в конце файла).
  2. Создайте в bash массив и заполните его числами Фибоначчи от 0-го до N-го. Число N передается в качестве параметра. Если параметр не указан, то должна быть выдана ошибка.
  3. Напишите на bash рекурсивную функцию для вычисления N-го числа Фибоначчи. Число N передается в качестве параметра. Если параметр не указан, то должна быть выдана ошибка.
  4. Написать bash скрипт, определяющий является ли строка, переданная в качестве параметра, палиндромом (читается одинаково в обе стороны)
  5. В файле, переданном в качестве параметра, содержится электронная переписка. Требуется выдать электронные адреса из этой переписки в порядке убывания частоты появления в файле.
  6. Написать скрипт, который принимает в качестве параметров день, месяц и год и должен выдать на экран какой это день недели. Решать задачу можно только через обработку результатов команды сal.
  7. Напишите аналог утилиты du.
  8. Определить файлы в текущем каталоге, которые являются символическими ссылками.
  9. Закодируйте файл, заменив в нем каждый символ на следующий по ASCII таблице.
  10. Скачайте произвольную RSS-ленту (в виде XML-файла) и выведите названия присутствующих в ней разделов (item).
  11. Скачайте произвольный html документ. Выведите содержимое тега <body>, очищенное от всех тегов.
  12. Проверьте, что для всех файлов с расширением .c в текущем каталоге в этом же каталоге есть все подключаемые ими файлы .h
  13. Посчитайте синус числа, переданного в качестве параметра. Это задание необходимо решать через сумму ряда!
  14. Создайте утилиту для группового переименования

rename_group --prefix aa --suffix bb --number 10 *.a*

Такая команда должна переименовать все файлы, подходящие под маску, в следующий вид: aaNbb.xxx, где N – номер найденного файла + 10, а xxx – изначальное раширение (оно не меняется).