Respuestas:
La type
construcción es útil para esto. No solo le informará sobre los alias, sino también las funciones, las funciones integradas, las palabras clave y los 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 los comandos por ese nombre en orden de precedencia, lo cual es útil para el ls
alias anterior, donde el alias mismo llama ls
.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Esto le dice que cuando ejecute ls
, /bin/ls
se usará y --color=auto
se incluirá en su lista de argumentos, además de cualquier otro que agregue usted mismo.
type
hasta que encuentres algo diferente a un alias ...
type
analizará / interpretará cualquier cita, por lo que puede asegurarse de que las citas sean correctas.
ls is aliased to 'ls --color=auto'
, pero ¿cómo puedo obtener una capa más profunda, para ver si usa / bin / ls o / usr / local / bin / ls o qué?
type -a ls
mostrará todos los comandos ls encontrados en orden de preferencia. Cualquiera que esté justo debajo del alias es el que será ejecutado por el alias.
Simplemente escriba alias
en el indicador de Shell. Debería generar una lista de todos los alias actualmente activos.
O bien, puede escribir alias [command]
para ver a qué se alias un alias específico, por ejemplo, si desea saber a qué se ls
alias alias, puede hacer alias ls
.
alias ls
para averiguar a qué ls
se alias específicamente .
type
Sin embargo, funciona en ambos casos.
Realmente me gusta Ctrl+ Alt+ Ecomo aprendí de esta respuesta . "Expande" la línea de comando actualmente escrita, lo que significa que realiza una expansión de alias (entre otras cosas).
Qué significa eso? Convierte cualquier alias, que podría estar actualmente escrito en la línea de comando, en lo que significa el alias.
Por ejemplo, si escribo:
$ ls
y luego presione Ctrl+ Alt+ E, se convierte en
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R
lugar desqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
Hablando estrictamente, la respuesta correcta es usar la matriz BASH_ALIASES, por ejemplo:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
ls
alias actual sin alterar lo que hay allí. Entonces voy alias ls="${BASH_ALIASES[ls]} --time-style=iso"
por mi caso.
Podrías usar el which
comando.
Si establece un alias para ls
as ls -al
y luego escribe which ls
, verá:
ls: aliased to ls -al
.
which
comando.
which
es una mala manera de buscar alias como se explica aquí: unix.stackexchange.com/questions/10525/… Ni siquiera funciona para mí para los alias en bash en Ubuntu.