4

Существует опечатка, которая вызывает сообщение об ошибке при входе в систему (кто-то набрал lias вместо alias). Я проверил /etc/bashrc а также ~/.bashrc и /etc/profile а также ~/.bash_profile для отдельных пользователей, но ни один из этих файлов не содержит пользовательских псевдонимов для системы. Какие альтернативные файлы могут содержать общесистемные псевдонимы?

3 ответа3

6

Рад, что вы нашли это, но вот способ увидеть все файлы логина в общем смысле:

# run strace, see every syscall
strace -o /tmp/bash.out bash --login

(Выход из оболочки bash)

# filter out opens that returned a descriptor, then use sed to get the file
< /tmp/bash.out grep -o 'open("[^,]*,[^)]*)[ \t]=[ \t][0-9]' | sed -e 's/^[^"]*"//' -e  's/".*$//' | sort -u > /tmp/openedfiles.txt

# grep for the broken alias, or whatever
< /tmp/openedfiles.txt xargs grep '^[ \t]*lias'

strace - одна из тех команд, которая может быть волшебной, если вы знаете, как ее использовать.

0

нашел его:/etc/profile.d/useralias.sh

0

А для быстрой и грязной толпы я бы ...

grep ^lias ~/.* ; grep ^lias /etc/* /etc/*/*

и если бы это не указало мне правильный путь, я бы прибег к ...

grep alias ~/.* > /tmp/alias.txt ; grep alias /etc/* /etc/*/* >> /tmp/alias.txt ; less /tmp/alias.txt и вычитать все строки псевдонимов.

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