在 CentOS 中在哪里设置别名?

在 CentOS 中在哪里设置别名?

有一个拼写错误导致登录时出现错误消息(有人输入了lias而不是alias)。我已针对各个用户检查了/etc/bashrc以及~/.bashrc/etc/profile以及~/.bash_profile,但这些文件均不包含系统的自定义别名。哪些替代文件可以包含系统范围的别名?

答案1

很高兴你找到了它,但是这里有一种从一般意义上查看所有登录文件的方法:

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

(退出 bash shell)

# 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 是那些如果你知道如何使用就会产生神奇效果的命令之一。

答案2

找到了:/etc/profile.d/useralias.sh

答案3

对于那些快速而肮脏的人群,我会...

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

如果这不能为我指明正确的方向,我就会诉诸......

grep alias ~/.* > /tmp/alias.txt ; grep alias /etc/* /etc/*/* >> /tmp/alias.txt ; less /tmp/alias.txt并校对所有别名行。

相关内容