Estou tentando encontrar onde um específico alias
foi declarado. Pesquisei todos os lugares habituais que conheço para procurar aliases:
- ~ / .bashrc
- ~ / .bash_profile
- / etc / bashrc
- / etc / profile
Sem sorte.
Eu sei que é alias
porque, quando faço which COMMAND
, recebo:
alias COMMAND='/path/to/command'
/path/to/command
Existe uma maneira de encontrar qual arquivo declara alias
apenas saber o alias
nome?
set -x
como sugerido na parte superior do seu e veja se isso o reduz para você.set -x
no topo de/etc/bash_profile
ou/etc/bashrc
. Por que não apenas correrbash -i -x
oubash -l -x
?Respostas:
Eu procuraria
/etc/profile.d/
a ofensaalias
.Você também pode fazer o seguinte para encontrá-lo:
Isso irá recursivamente
grep
através de arquivos procurando por uma linha começando comalias COMMAND
.Se tudo mais falhar, coloque isso no final da sua
~/.bashrc
fonte
Há algumas coisas que você pode tentar:
bash -v
para ver quais linhas estão sendo lidas durante a inicialização do shellbash -x
para ver quais comandos estão sendo executados durante a inicialização do shellbash -v
A
-v
opção permitebash
imprimir cada linha de cada arquivo de script que ele lê enquanto lê.Comece executando
aguarde 5 a 10 segundos e pressione Ctrl+C.
Isso fornecerá um único arquivo chamado,
bash-i.out
semelhante a todos os seus arquivos de inicialização mesclados (ou concatenados).Em seguida, use
less
para abrir o arquivo e procure o alias usando/aliasname
.Agora, compare onde esse alias aparece em relação a outras linhas no arquivo. Por exemplo, na maioria dos sistemas,
/etc/bash.bashrc
tem um comentário no topo que diz/etc/bash.bashrc
e~/.bashrc
também um.Se estiver acima da parte superior do seu
~/.bashrc
, provavelmente é um arquivo de inicialização/etc
que define o alias; caso contrário, ele está no seu~/.bashrc
ou em um arquivo que está incluindo viasource
ou.
(comando dot).Se isso não mostrar o alias, tente
Isso diz bash para ser um shell de login, que lê alguns arquivos de inicialização diferentes, por exemplo
/etc/profile
e~/.bash_profile
, em vez de/etc/bash.bashrc
e~/.bashrc
.bash -x
Se
bash -v
não lhe der uma resposta definitiva, tente executarbash -x
, que imprime os comandos que o shell está executando, em vez das linhas que seu shell está lendo.O método é basicamente o mesmo que o acima, exceto a alteração
-v
para-x
. (Você pode usar os dois juntos, se necessário.)Executar com apenas um arquivo de inicialização
e veja se você tem o alias.
Tente o mesmo com
rcfile
definido como/etc/bash.bashrc
se o seu sistema tiver.Então tente
e faça o mesmo com todos os arquivos de inicialização do bash que tenham
profile
seu nome, por exemplo, mude$HOME/.bash_profile
para/etc/profile
.Qualquer que seja a maneira que o alias apareça, informa o arquivo que você deve começar a procurar.
fonte
Talvez o seu
.xinitrc
? Você também deve verificar se você.bashrc
ou.bash_profile
outros arquivos neles. Por exemplo, mantenho todos os meus aliases em um arquivo separado referenciado por este comando:Algumas perguntas que também podem ajudar: Isso é para um usuário comum ou root? Que comando é esse? Qual o sabor do Linux?
fonte
Sigo a prática muito comum de colocar minhas definições de alias em
e então chamando isso de .bashrc com
fonte