Respuestas:
La typeconstrucció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 cmdmostrará todos los comandos por ese nombre en orden de precedencia, lo cual es útil para el lsalias 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/lsse usará y --color=autose incluirá en su lista de argumentos, además de cualquier otro que agregue usted mismo.
typehasta que encuentres algo diferente a un alias ...
typeanalizará / 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 lsmostrará 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 aliasen 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 lsalias alias, puede hacer alias ls.
alias lspara averiguar a qué lsse alias específicamente .
typeSin 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
lsalias actual sin alterar lo que hay allí. Entonces voy alias ls="${BASH_ALIASES[ls]} --time-style=iso"por mi caso.
Podrías usar el whichcomando.
Si establece un alias para lsas ls -aly luego escribe which ls, verá:
ls: aliased to ls -al.
whichcomando.
whiches 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.