Я пытаюсь получить список всех программ, выполняемых при запуске системы.
Мой план игры следующий:
grep -r
/etc/init.d
и /etc/rc.d/*
directoryies - Поиск любой строки, которая явно начинается с "/"
- Включает выполнение из обратных символов и $ ()
- Предполагается, что выполнение выполняется путем указания полного пути и игнорирования относительноговыполнение пути (то есть
./...
)
Для этого я использовал следующее:
egrep -r '^\s*/|\$\(\s*/|\`\s*/' /etc/rc.d/* /etc/init.d
Поскольку он ищет файлы в каталогах, список результатов показывает файл, в котором он находилсянашел в и полную строку.Я хотел бы теперь передать результаты во что-то, чтобы получить только имя файла и канал, в sort|uniq
, чтобы получить упрощенный список.Я думаю, что могу как-то использовать awk, но я не очень знаком с ним.
Пример Результат:
/etc/init.d/foo: foo=$(/bin/echo hello)
/etc/init.d/bar: bar=$(/bin/echo world)
/etc/rc.d/init.d/foobar: /bin/false
Желаемый результат:
/bin/echo
/bin/false