Risposte:
Il type
builtin è 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 cmd
mostrerà tutti i comandi con quel nome in ordine di precedenza, che è utile per l' ls
alias 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/ls
verrà utilizzato e --color=auto
verrà incluso nel suo elenco di argomenti, oltre a qualsiasi altro che ti aggiungi.
type
fino a quando non colpisci qualcosa di diverso da un alias ...
type
analizzerà / 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 ls
mostrerà tutti i comandi ls trovati in ordine di preferenza. Qualunque sia proprio sotto l'alias è quello che verrà eseguito dall'alias.
Basta digitare alias
al 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 ls
era aliasato l' alias, è possibile farlo alias ls
.
alias ls
per scoprire a cosa ls
è specificamente destinato.
type
tuttavia, 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
ls
senza alterare quello che c'è. Quindi vado alias ls="${BASH_ALIASES[ls]} --time-style=iso"
per il mio caso.
Puoi usare il which
comando.
Se imposti un alias per ls
as ls -al
e quindi digiti which ls
, vedrai:
ls: aliased to ls -al
.
which
comando.
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.