Изучение элементов и конструкций скриптов shell
: переменных, параметров, ветвлений, циклов, вычислений, команд shell
и вызовов внешних программ.
Создать скрипт для shell
, обеспечивающий получение заданным образом организованной выходной информации.
Результаты выполнения записываются в файл (наиболее универсальный способ их сохранения). Скрипт сделать исполняемым, выполнить, проанализировать результат. Используются перенаправление ввода-вывода, внешние утилиты и фильтры, переменные shell
.
Для редактирования shell
-скрипта рекомендуется использовать консольные редакторы текста, например vim, nano, micro.
-
Топ 5 процессов, которые потребляют больше всего памяти и процессора в системе: имя процесса, имя пользователя, PID.
-
Список подкаталогов и файлов в заданном каталоге: имя анализируемого каталога, список подкаталогов, список файлов, общее число файлов и подкаталогов. Имя анализируемого каталога может быть задано аргументом командной строки.
-
Шестнадцатиричный дамп заданного файла: имя файла, строки дампа, имя пользователя, дата (в качестве подписи).
-
"Самодокументирующийся скрипт": форматирует собственный текст, снабжает заголовком и подписью по аналогии с предыдущим вариантом.
-
Статистика текущего сеанса: имя пользователя, текущее время, дата, текущий каталог, число процессов в системе, время работы.
-
Замер времени выполнения команды: имя команды/процесса, время выполнения. Команда или имя внешней программы задаются в командной строке скрипта. Сам скрипт такой программой быть не может (что сильно упрощает реализацию!).
-
Список файлов в каталоге и подкаталогах к которым не обращались в течение времени, заданного аргументом командной строки.
-
Список коммитов популярного репозитория, размещённого на сайте https://github.com/ (или схожем) в формате дерева, короткого хэша коммита, электронной почты автора и названия коммита.
- Mendel Cooper. Advanced Bash-Scripting Guide. (ссылка на перевод).
- Гарольд Родригес. Краткое введение в программирование на Bash. (ссылка на перевод).
- Тейнсли Д. Linux и UNIX. Программирование в Shell. Руководство разработчика.
- http://wiki.bash-hackers.org/
- Изучение возможностей командной строки через задачки: https://cmdchallenge.com/