Respostas:
O type
builtin é ú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 cmd
mostrará todos os comandos com esse nome em ordem de precedência, o que é útil para o ls
alias 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/ls
será usado e --color=auto
será incluído em sua lista de argumentos, além de qualquer outro que você adicionar.
type
até atingir algo diferente de um alias ...
type
analisará / 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 ls
mostrará 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 alias
enquanto 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 ls
alias está alias, poderá fazer alias ls
.
alias ls
para descobrir o que especificamente ls
está associado.
type
no 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
ls
alias 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 which
comando
Se você definir um alias para ls
as ls -al
e digitar which ls
, verá:
ls: aliased to ls -al
.
which
comando.
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.