web-dev-qa-db-fra.com

Comment voir la commande attachée à un alias bash?

Supposons que j'ai un alias dans le shell bash. Existe-t-il une simple commande permettant d’imprimer quelle commande l’alias sera exécuté?

310
Casebash

La variable type est utile pour cela. Il vous renseignera non seulement sur les alias, mais également sur les fonctions, les commandes intégrées, les mots-clés et les commandes externes.

$ 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 montrera toutes les commandes de ce nom par ordre de priorité, ce qui est utile pour l'alias ls ci-dessus, où l'alias lui-même appelle ls.

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

Cela vous indique que lorsque vous exécutez ls, /bin/ls sera utilisé et --color=auto sera inclus dans sa liste d'arguments, en plus des autres que vous ajoutez vous-même.

411
geirha

Il suffit de taper alias à l'invite du shell. Il devrait générer une liste de tous les alias actuellement actifs.

Ou, vous pouvez taper alias [command] pour voir à quel alias spécifique est aliasé, par exemple, si vous voulez savoir à quoi alias ls, vous pouvez faire alias ls.

153
Thomas Ward

J'aime vraiment Ctrl+Alt+E comme je l'ai appris de cette réponse . Il "développe" la ligne de commande actuellement typée, ce qui signifie qu'il effectue le développement d'alias (entre autres).

Qu'est-ce que ça veut dire? Il transforme n'importe quel alias, qui pourrait être actuellement écrit sur la ligne de commande, en ce que cet alias signifie.

Par exemple, si je tape:

$ ls

puis appuyez sur Ctrl+Alt+E, il est transformé en

$ ls --time-style=locale --color=auto
53
Der Hochstapler

La bonne réponse, à proprement parler, utilise le tableau BASH_ALIASES, par exemple:

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
9
noonex

Vous pouvez utiliser la commande which.

Si vous définissez un alias pour ls comme ls -al et que vous tapez ensuite which ls, vous verrez:

ls: aliased to ls -al.

2
user312471