Respostas:
O typebuiltin é útil para isso. Ele não apenas informa sobre aliases, mas também funções, funções internas, palavras-chave e comandos externos.
$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep ()
{
ps -ef | {
read -r;
printf '%s\n' "$REPLY";
grep --color=auto "$@"
}
}
type -a cmdmostrará todos os comandos com esse nome em ordem de precedência, o que é útil para o lsalias acima, onde o próprio alias chama ls.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Isso informa que, quando você executar ls, /bin/lsserá usado e --color=autoserá incluído em sua lista de argumentos, além de qualquer outro que você adicionar.
typeaté atingir algo diferente de um alias ...
typeanalisará / interpretará todas as aspas, para que você possa ter certeza de que as aspas estão corretas.
ls is aliased to 'ls --color=auto', mas como posso aprofundar uma camada para ver se ela usa / bin / ls ou / usr / local / bin / ls ou o quê?
type -a lsmostrará todos os comandos ls encontrados em ordem de preferência. O que estiver logo abaixo do alias é aquele que será executado pelo alias.
Basta digitar aliasenquanto estiver no prompt do Shell. Ele deve gerar uma lista de todos os aliases atualmente ativos.
Ou, você pode digitar alias [command]para ver a que alias específico está o alias, como exemplo, se você quiser descobrir a que o lsalias está alias, poderá fazer alias ls.
alias lspara descobrir o que especificamente lsestá associado.
typeno entanto, funciona nos dois casos.
Eu realmente gosto de Ctrl+ Alt+ Ecomo aprendi com esta resposta . Ele "expande" a linha de comando digitada no momento, o que significa que realiza a expansão do alias (entre outras coisas).
O que isso significa? Ele transforma qualquer alias, que pode estar atualmente escrito na linha de comando, no que o alias representa.
Por exemplo, se eu digitar:
$ ls
e depois pressione Ctrl+ Alt+ E, é transformado em
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R vez desqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
A rigor, a resposta correta é usar a matriz BASH_ALIASES, por exemplo:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
lsalias atual sem alterar o que está lá. Então, eu estou indo alias ls="${BASH_ALIASES[ls]} --time-style=iso"para o meu caso.
Você poderia usar o whichcomando
Se você definir um alias para lsas ls -ale digitar which ls, verá:
ls: aliased to ls -al.
whichcomando.
whiché uma maneira ruim de procurar aliases, conforme explicado aqui: unix.stackexchange.com/questions/10525/… Nem sequer funciona para mim para aliases no bash no Ubuntu.