Skip to content

Latest commit

 

History

History
88 lines (55 loc) · 6.76 KB

File metadata and controls

88 lines (55 loc) · 6.76 KB

Домашнее задание к занятию «Работа в терминале. Лекция 2»

Цель задания

В результате выполнения задания вы:

  • познакомитесь с возможностями некоторых команд (grep, wc), чтобы в дальнейшем обращать внимание на схожие особенности команд;
  • попрактикуетесь с перенаправлением потоков ввода, вывода, ошибок, что поможет грамотно использовать функционал в скриптах;
  • поработаете с файловой системой /proc как примером размещения информации о процессах.

Инструкция к заданию

  1. Создайте .md-файл для ответов на вопросы задания в своём репозитории, после выполнения прикрепите ссылку на него в личном кабинете.
  2. Любые вопросы по решению задач задавайте в чате учебной группы.

Дополнительные материалы для выполнения задания

  1. Статья с примерами перенаправлений в Bash и работы с файловыми дескрипторами.

Задание

Ответьте на вопросы:

  1. Какого типа команда cd? Попробуйте объяснить, почему она именно такого типа: опишите ход своих мыслей и поясните, если считаете, что она могла бы быть другого типа.

  2. Какая альтернатива без pipe для команды grep <some_string> <some_file> | wc -l?

    Подсказка.

    man grep поможет в ответе на этот вопрос.

    Изучите документ о других подобных некорректных вариантах использования pipe.

  3. Какой процесс с PID 1 является родителем для всех процессов в вашей виртуальной машине Ubuntu 20.04?

  4. Как будет выглядеть команда, которая перенаправит вывод stderr ls на другую сессию терминала?

  5. Получится ли одновременно передать команде файл на stdin и вывести её stdout в другой файл? Приведите работающий пример.

  6. Получится ли, находясь в графическом режиме, вывести данные из PTY в какой-либо из эмуляторов TTY? Сможете ли вы наблюдать выводимые данные?

  7. Выполните команду bash 5>&1. К чему она приведёт? Что будет, если вы выполните echo netology > /proc/$$/fd/5? Почему так происходит?

  8. Получится ли в качестве входного потока для pipe использовать только stderr команды, не потеряв отображение stdout на pty?
    Напоминаем: по умолчанию через pipe передаётся только stdout команды слева от | на stdin команды справа. Это можно сделать, поменяв стандартные потоки местами через промежуточный новый дескриптор, который вы научились создавать в предыдущем вопросе.

  9. Что выведет команда cat /proc/$$/environ? Как ещё можно получить аналогичный по содержанию вывод?

  10. Используя man, опишите, что доступно по адресам /proc/<PID>/cmdline, /proc/<PID>/exe.

  11. Узнайте, какую наиболее старшую версию набора инструкций SSE поддерживает ваш процессор с помощью /proc/cpuinfo.

  12. При открытии нового окна терминала и vagrant ssh создаётся новая сессия и выделяется pty.
    Это можно подтвердить командой tty, которая упоминалась в лекции 3.2.

    Однако:

    vagrant@netology1:~$ ssh localhost 'tty'
    not a tty

    Почитайте, почему так происходит и как изменить поведение.

  13. Бывает, что есть необходимость переместить запущенный процесс из одной сессии в другую. Попробуйте сделать это, воспользовавшись reptyr. Например, так можно перенести в screen процесс, который вы запустили по ошибке в обычной SSH-сессии.

  14. sudo echo string > /root/new_file не даст выполнить перенаправление под обычным пользователем, так как перенаправлением занимается процесс shell, который запущен без sudo под вашим пользователем. Для решения этой проблемы можно использовать конструкцию echo string | sudo tee /root/new_file. Узнайте, что делает команда tee и почему в отличие от sudo echo команда с sudo tee будет работать.


Правила приёма домашнего задания

В личном кабинете отправлена ссылка на .md файл в вашем репозитории.

Критерии оценки

Зачёт:

  • выполнены все задания;
  • ответы даны в развёрнутой форме;
  • приложены соответствующие скриншоты и файлы проекта;
  • в выполненных заданиях нет противоречий и нарушения логики.

На доработку:

  • задание выполнено частично или не выполнено вообще;
  • в логике выполнения заданий есть противоречия и существенные недостатки.