Risposte:
Il typebuiltin è utile per questo. Non ti parlerà solo di alias, ma anche di funzioni, built-in, parole chiave e comandi esterni.
$ 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 cmdmostrerà tutti i comandi con quel nome in ordine di precedenza, che è utile per l' lsalias sopra, dove lo stesso alias chiama ls.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Questo ti dice che quando eseguirai ls, /bin/lsverrà utilizzato e --color=autoverrà incluso nel suo elenco di argomenti, oltre a qualsiasi altro che ti aggiungi.
typefino a quando non colpisci qualcosa di diverso da un alias ...
typeanalizzerà / interpreterà le virgolette, quindi puoi assicurarti che le virgolette siano giuste.
ls is aliased to 'ls --color=auto', ma come posso approfondire uno strato, per vedere se usa / bin / ls o / usr / local / bin / ls o cosa?
type -a lsmostrerà tutti i comandi ls trovati in ordine di preferenza. Qualunque sia proprio sotto l'alias è quello che verrà eseguito dall'alias.
Basta digitare aliasal prompt di Shell. Dovrebbe essere visualizzato un elenco di tutti gli alias attualmente attivi.
In alternativa, è possibile digitare alias [command]per vedere a cosa viene aliasato uno specifico alias, ad esempio, se si desidera scoprire a cosa lsera aliasato l' alias, è possibile farlo alias ls.
alias lsper scoprire a cosa lsè specificamente destinato.
typetuttavia, funziona in entrambi i casi.
Mi piace molto Ctrl+ Alt+ Ecome ho imparato da questa risposta . "Espande" la riga di comando attualmente digitata, nel senso che esegue l'espansione dell'alias (tra le altre cose).
Cosa significa? Trasforma qualsiasi alias, che potrebbe essere attualmente scritto sulla riga di comando, in ciò che l'alias rappresenta.
Ad esempio, se digito:
$ ls
e quindi premi Ctrl+ Alt+ E, si trasforma in
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R invece disqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
A rigor di termini, la risposta corretta sta usando l'array BASH_ALIASES, ad esempio:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
lssenza alterare quello che c'è. Quindi vado alias ls="${BASH_ALIASES[ls]} --time-style=iso"per il mio caso.
Puoi usare il whichcomando.
Se imposti un alias per lsas ls -ale quindi digiti which ls, vedrai:
ls: aliased to ls -al.
whichcomando.
whichè un brutto modo di cercare alias come spiegato qui: unix.stackexchange.com/questions/10525/… Non funziona nemmeno per me per gli alias in bash su Ubuntu.