Skip to content

Instantly share code, notes, and snippets.

@servzin
Created May 21, 2020 07:56
Show Gist options
  • Save servzin/cc26e58238bda7f5b076809407683378 to your computer and use it in GitHub Desktop.
Save servzin/cc26e58238bda7f5b076809407683378 to your computer and use it in GitHub Desktop.
Задания на лабораторную работу 2

Лабораторная №2

Написать shell-скрипт, выполняющий простые операции работы с командной строкой.

Короткая справка

Если необходимо получить результат выполнения функции, выражение оборачивается в такую конструкцию: $(expression) echo выводит на печать (по умолчанию на экран) всё, что передано ему в качестве аргумента Если встречаются служебные символы, которые надо передать аргументом, они экранируются обратным слэшом (\)

Общие требования

  • Скрипт должен быть сохранён в текстовый файл с расширением .sh
  • Первая строка скрипта: #!/bin/bash (указывает на используемый интерпретатор)
  • Скрипт должен быть сохранён в Git репозитории и отправлен на проверку
  • Все правки (если они будут) должны быть отражены в версионировании в том же репозитории
  • Файл с результатами выполнения скрипта должен лежать рядом со скриптом

Список заданий

  1. Вывести в текстовый файл все алиасы (alias), прописанные в файле ~/.bashrc
  2. Вывести в текстовый файл с 20 по 41 строку файла ~/.bashrc
  3. Создать в текущей директории текстовый файл с содержимым переменной окружения $PATH и ограничить права на чтение и запись только для владельца, запуск запретить всем.
  4. Вывести в текстовый файл все объекты корневой директории, удовлетворяющие правам доступа 755.
  5. Сохранить в текстовый файл все текущие процессы (ps aux), запущенные от имени текущего пользователя (whoami).
  6. Сохранить в файл выдержку из мануала к команде ls (man ls), в которой будет описано использование ключа -I.
  7. Создать пустой текстовый файл. Переместить его в новую директорию и добавить в конец файла текущую дату (date).
  8. Скопировать файл ~/.bashrc в новую директорию и добавить ему расширение .bak.
  9. Сохранить информацию о текущей ОС (uname -a) в файл, а затем добавить в него имя текущего пользователя (whoami).
  10. Сохранить в файл все переменные окружения (printenv), а затем из этого файла в другой отфильтровать только те, что содержат имя текущего пользователя (whoami).
  11. Экспортировать в текстовый файл путь до файла истории команд (переменная окружения $HISTFILE) и его максимальный размер (переменная окружения $HISTFILESIZE).
  12. Рекурсивно создать вложенную структуру folder1/folder2/folder3, поместить в folder2 новый пустой файл и удалить folder3.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment