В результате выполнения этого задания вы:
- Ознакомитесь с возможностями некоторых команд (grep, wc), что позволит в дальнейшем обращать внимание на схожие особенности команд.
- Попрактикуетесь с перенаправлением потоков ввода, вывода, ошибок, что позволит грамотно использовать функционал в скриптах.
- Поработаете с файловой системой /proc как примером размещения информации о процессах.
- Создайте .md-файл для ответов на задания в своём репозитории, после выполнения прикрепите ссылку на него в личном кабинете.
- Любые вопросы по решению задач задавайте в чате учебной группы.
Статья с примерами перенаправлений в Bash и работы с файловыми дескрипторами
-
Какого типа команда
cd
? Попробуйте объяснить, почему она именно такого типа: опишите ход своих мыслей, если считаете, что она могла бы быть другого типа. -
Какая альтернатива без pipe команде
grep <some_string> <some_file> | wc -l
?Подсказка
man grep
поможет в ответе на этот вопрос.Ознакомьтесь с документом о других подобных некорректных вариантах использования pipe.
-
Какой процесс с PID
1
является родителем для всех процессов в вашей виртуальной машине Ubuntu 20.04? -
Как будет выглядеть команда, которая перенаправит вывод stderr
ls
на другую сессию терминала? -
Получится ли одновременно передать команде файл на stdin и вывести ее stdout в другой файл? Приведите работающий пример.
-
Получится ли, находясь в графическом режиме, вывести данные из PTY в какой-либо из эмуляторов TTY? Сможете ли вы наблюдать выводимые данные?
-
Выполните команду
bash 5>&1
. К чему она приведет? Что будет, если вы выполнитеecho netology > /proc/$$/fd/5
? Почему так происходит? -
Получится ли в качестве входного потока для pipe использовать только stderr команды, не потеряв при этом отображение stdout на pty?
Напоминаем: по умолчанию через pipe передается только stdout команды слева от|
на stdin команды справа. Это можно сделать, поменяв стандартные потоки местами через промежуточный новый дескриптор, который вы научились создавать в предыдущем вопросе. -
Что выведет команда
cat /proc/$$/environ
? Как еще можно получить аналогичный по содержанию вывод? -
Используя
man
, опишите что доступно по адресам/proc/<PID>/cmdline
,/proc/<PID>/exe
. -
Узнайте, какую наиболее старшую версию набора инструкций SSE поддерживает ваш процессор с помощью
/proc/cpuinfo
. -
При открытии нового окна терминала и
vagrant ssh
создается новая сессия и выделяется pty.
Это можно подтвердить командойtty
, которая упоминалась в лекции 3.2.
Однако:vagrant@netology1:~$ ssh localhost 'tty' not a tty
Почитайте, почему так происходит, и как изменить поведение.
-
Бывает, что есть необходимость переместить запущенный процесс из одной сессии в другую. Попробуйте сделать это, воспользовавшись
reptyr
. Например, так можно перенести вscreen
процесс, который вы запустили по ошибке в обычной SSH-сессии. -
sudo echo string > /root/new_file
не даст выполнить перенаправление под обычным пользователем, так как перенаправлением занимается процесс shell'а, который запущен безsudo
под вашим пользователем. Для решения данной проблемы можно использовать конструкциюecho string | sudo tee /root/new_file
. Узнайте? что делает командаtee
и почему в отличие отsudo echo
команда сsudo tee
будет работать.
В личном кабинете отправлена ссылка на .md файл в вашем репозитории.
Зачет - выполнены все задания, ответы даны в развернутой форме, приложены соответствующие скриншоты и файлы проекта, в выполненных заданиях нет противоречий и нарушения логики.
На доработку - задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки.