Домашнее задание к занятию "3.2. Работа в терминале, лекция 2"
1.Какого типа команда cd? Попробуйте объяснить, почему она именно такого типа; опишите ход своих мыслей, если считаете что она могла бы быть другого типа.
Встроенная команда Сhange Directory для смены директории. Это не внешняя программа и не системный вызов. Хотя могла бы быть.
Если бы был системный вызов, тогда команда обращалась бы к ядру. Если бы внешней программой, тогда для вызова надо было бы менять директорию вызова. Самый оптимальный вариан встороенная команда bash.
- Какая альтернатива без pipe команде grep <some_string> <some_file> | wc -l? man grep поможет в ответе на этот вопрос. Ознакомьтесь с документом о других подобных некорректных вариантах использования pipe.
- Какой процесс с PID 1 является родителем для всех процессов в вашей виртуальной машине Ubuntu 20.04?
- Как будет выглядеть команда, которая перенаправит вывод stderr ls на другую сессию терминала?
1 терминал

- Получится ли одновременно передать команде файл на stdin и вывести ее stdout в другой файл? Приведите работающий пример.
cat<file.log | tee>file.log3
cat<file.log > file.log3
- Получится ли находясь в графическом режиме, вывести данные из PTY в какой-либо из эмуляторов TTY? Сможете ли вы наблюдать выводимые данные? получится
- Выполните команду bash 5>&1. К чему она приведет? Что будет, если вы выполните echo netology > /proc/$$/fd/5? Почему так происходит?
bash 5>&1 - Создаст дескриптор с 5 и перенатправит его в stdout echo netology > /proc/$$/fd/5 - выведет в дескриптор 5
-
Получится ли в качестве входного потока для pipe использовать только stderr команды, не потеряв при этом отображение stdout на pty? Напоминаем: по умолчанию через pipe передается только stdout команды слева от | на stdin команды справа. Это можно сделать, поменяв стандартные потоки местами через промежуточный новый дескриптор, который вы научились создавать в предыдущем вопросе.

-
Что выведет команда cat /proc/$$/environ? Как еще можно получить аналогичный по содержанию вывод? Переменные окружения команда printenv
10.Используя man, опишите что доступно по адресам /proc//cmdline, /proc//exe.
Путь до файла процесса,содержимое командной строки, которой был запущен процесс
Символическая ссылка на выполнимый файл запущенной программы
11 Узнайте, какую наиболее старшую версию набора инструкций SSE поддерживает ваш процессор с помощью /proc/cpuinfo.
sse4
sse 4.2
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 будет работать.
tee в сочетании с sudo записывать в файлы, принадлежащие другим пользователям








