From ae9d777eb0ca5686626b02724ae10f830aad38a8 Mon Sep 17 00:00:00 2001 From: dannc Date: Thu, 10 Feb 2022 10:49:16 +0700 Subject: [PATCH] homework 3.2 add answers 8-11 --- src/homework/3.2/readme.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/homework/3.2/readme.md b/src/homework/3.2/readme.md index 38e28ad..b32d60c 100644 --- a/src/homework/3.2/readme.md +++ b/src/homework/3.2/readme.md @@ -52,4 +52,29 @@ cat out_file Насколько я понимаю, команда `bash 5>&1` создаёт новую терминальную сессию с перенаправлением потока из `5` в `1`, то есть в `stdout`. Но так как `5` - это не стандартный идентификатор потока, поэтому оболочка создаст новый файл `/proc/$$/fd/5`. Данный файл будет алиасом для stdout, поэтому выполнение `echo` выведет содержимое в терминал, -как это сделал бы обычный вызов команды без перенаправлений потока. \ No newline at end of file +как это сделал бы обычный вызов команды без перенаправлений потока. + +8. Получится ли в качестве входного потока для pipe использовать только stderr команды, не потеряв при этом отображение stdout на pty? + +Да, такая возможность есть. Сначала необходимо запустить терминал с новым перенаправлением, как в предыдущем вопросе: `bash 5>&1`. +Затем уже можно выполнить перенаправление потоков следующим образом: + +```shell +ls -la /tmp/wrong_dir 2>&1 1>&5 | less +``` + +Таким образом в команду `less` попадёт следующий текст: `ls: cannot access '/tmp/wrong_dir': No such file or directory`. + +9. Что выведет команда `cat /proc/$$/environ`? Как еще можно получить аналогичный по содержанию вывод? + +Данная команда выведет все переменные окружения, которые инициализированы в текущей сессии терминала. +Аналогичный результат может быть достигнут вызовом команд `printenv` или `env`. + +10. Используя `man`, опишите что доступно по адресам `/proc//cmdline`, `/proc//exe`. + +Файл `/proc//cmdline` - это файл, предназначенный только для чтения, который содержит в себе полную команду процесса, но только если процесс не зомби. +Файл `/proc//exe` - это файл-символическая ссылка, содержащая актуальный полный путь до выполняемой команды. + +11. Узнайте, какую наиболее старшую версию набора инструкций SSE поддерживает ваш процессор с помощью `/proc/cpuinfo` + +Выполним команду `cat /proc/cpuinfo | grep sse`. В выводе можно найти такие версии, как `sse`, `sse2`, `ssse3`, `sse4_1`, `sse4_2`. \ No newline at end of file