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