Я студент информатики на Mac OSX El Capitan. Мой друг сделал так, чтобы мой компьютер say 'heil hitler' всякий раз, когда я входил в новый экземпляр Терминала. Само собой разумеется, я должен избавиться от этого. На данный момент я переименовал /usr /bin /say в /usr /bin /0say, чтобы он не появлялся публично. Я проверил ~ /.bash_profile, ~ /.bashrc, ~ /.login, /etc /bashrc. Остальные файлы автоматически запускаются при входе в bash?

Кроме того, как я могу узнать, какой файл конфигурации на самом деле вызывает данную команду?

3 ответа3

1

Несколько методов расследования приходят на ум:

  • В дополнение к файлам инициализации оболочки, которые вы просматривали, проверьте ~/.profile , ~/.bash_login и /etc/profile .

  • Для пользовательских файлов инициализации попробуйте отключить их, переименовав; если удаление одного конкретного файла не позволяет ему работать, say , тогда вы знаете, что в этом файле что-то есть. Вы также можете поместить команду return в файл инициализации, чтобы узнать, является ли вызов say до или после этой точки.

  • Вы можете добавить set -x в файл инициализации, и он заставит оболочку выводить команды при их выполнении; облегчает выполнение трассировки.

  • Брутфорс ищет вашу домашнюю папку: grep -r hitler ~

0

Похоже, вы уже решили проблему, но я бы также проверил ярлык терминала. Его можно заменить любым количеством сочетаний клавиш, наиболее вероятным из которых является AppleScript.

0

Используйте команду set , man-страницу здесь. В частности:

  • set -x чтобы показывать команды после раскрытия, непосредственно перед выполнением

  • set -v чтобы показывать команды во время их чтения перед расширением

Например, вставьте set -xv вверху вашего ~/.profile, и вы увидите все, что ваш терминал делает после этой строки. Вы можете захватить этот вывод (или скопировать-вставить из терминала в текстовый документ) и сделать что-то вроде grep -B 4 hitler чтобы дать вам представление о том, где он находится.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .