Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:programmation:bash:alias [02/03/2014 15:26] captnfab |
doc:programmation:bash:alias [22/07/2019 17:46] (Version actuelle) framend [Création d'alias perso permanents] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== alias ======= | + | ====== Maîtriser les alias bash ======= |
- | * Objet : alias | + | * Objet : Enrichir son environnement de travail grâce aux alias //bash//. |
- | * Niveau requis : {{tag>avisé}} | + | * Niveau requis : {{tag>débutant avisé}} |
- | * Commentaires : //Les alias permettent de définir des raccourcis. // | + | * Commentaires : //Les alias permettent de définir des raccourcis pour des commandes courantes. // |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : | + | * Suivi : {{tag>à-corriger}} |
- | * Création par smolski 2013-09-23 | + | * Création par [[user>smolski]] le 23/09/2013 |
- | * Testé par smolski le 2013-09-23 | + | * Testé par [[user>smolski]] le 23/09/2013 |
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7456 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7456 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | **Nota :** | ||
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | + | ===== Introduction ===== |
- | + | ||
- | ===== Pré en bulle ===== | + | |
Les ''alias'' permettent de définir des raccourcis pour [[:doc:systeme:commandes:gnu_linux|vos commandes]] saisies dans en [[:doc:systeme:terminal|console]].\\ | Les ''alias'' permettent de définir des raccourcis pour [[:doc:systeme:commandes:gnu_linux|vos commandes]] saisies dans en [[:doc:systeme:terminal|console]].\\ | ||
Ainsi, une commande fréquente et relativement longue sera rendue accessible en tapant un simple mot clé prédéfini par le système ou que nous aurons créé (raccourcis). | Ainsi, une commande fréquente et relativement longue sera rendue accessible en tapant un simple mot clé prédéfini par le système ou que nous aurons créé (raccourcis). | ||
- | ===== Les commandes ===== | + | ===== Commandes de base ===== |
- | Nous utiliserons les commandes : | + | Nous utiliserons les commandes ''alias'' et ''unalias''. |
- | <code user>alias</code> | + | |
+ | === Consulter l'aide === | ||
+ | Vous pouvez consulter l'aide dans bash via: | ||
+ | <code user>help alias</code> | ||
et | et | ||
- | <code user>unalias</code> | + | <code user>help unalias</code> |
- | ==== Afficher les alias actifs ==== | + | === Afficher les alias actifs === |
Vous pouvez afficher tous les alias déjà définis, tapez la commande : | Vous pouvez afficher tous les alias déjà définis, tapez la commande : | ||
Ligne 36: | Ligne 36: | ||
alias ls='ls --color=auto' | alias ls='ls --color=auto' | ||
- | ==== Alias temporaires ==== | + | === Lancer la vraie commande plutôt que l'alias === |
- | Vous avez la possibilité de définir assez rapidement un alias, mais il ne sera pas conservé et donc plus utilisable au relancement de la console.\\ | + | Si ''nom_alias'' est aussi le nom d'une commande système, et que vous voulez utiliser la commande plutôt que l'alias, la syntaxe est la suivante: |
+ | <code user>\nom_alias</code> | ||
- | === Exemple : === | + | Exemple: |
+ | <code user>\ls</code> | ||
- | Pour voir la liste des dépôts inscrits dans votre fichier sources.list, situé dans le répertoire /etc/apt/ | + | ==== Créer un alias temporaire ==== |
- | vous devez écrire ceci : | + | |
- | <code user>cat /etc/apt/sources.list</code> | + | |
- | Pour définir un alias portant par exemple le nom **aptlist**, entrez la commande suivante((Plus de précisions sur : [[:doc:systeme:cat| la commande cat ici.]])) : | + | Vous avez la possibilité de définir assez rapidement un alias, mais il ne sera pas conservé et donc plus utilisable au prochain lancement de la console. |
- | <code user>alias aptlist="cat /etc/apt/sources.list"</code> | + | |
- | *Vous pouvez constater qu'un alias à été rajouté avec :<code user>alias</code> | + | Pour créer un alias ''nom_alias'' qui exécutera la commande ''commande'', la syntaxe est la suivante : |
- | *Pour l'utiliser : taper :<code user>aptlist</code> | + | <code user>alias nom_alias=commande</code> |
+ | L'alias peut être supprimé via | ||
+ | <code user>unalias nom_alias</code> | ||
- | ==== Scripts chargés au démarrage ==== | + | Exemples : |
+ | * Pour créer un alias ''coin'' qui exécutera la commande ''echo '\_ô<' '' : | ||
+ | <code user>alias coin="echo '\_ô<'"</code> | ||
- | On trouve dans le fichier ''~/.bashrc'': | + | * Pour créer un alias vous permettant de consulter le contenu de votre ''sources.list'', ce qui se fait habituellement via la commande((Voir [[:doc:systeme:cat]], [[:doc:systeme:grep]], [[:doc:programmation:shell:chevrons]] et [[:doc:systeme:apt:sources.list]])) : |
+ | <code user>cat /etc/apt/sources.list{,.d/*} 2>/dev/null | grep -v "^#"</code> | ||
+ | Vous pouvez créer un alias sympa: | ||
+ | <code user>alias aptlist='cat /etc/apt/sources.list{,.d/*} 2>/dev/null | grep -v "^#"'</code> | ||
- | <code bash[# Alias definitions. | + | * Vous pouvez constater qu'un alias à été rajouté avec : |
+ | <code user>alias</code> | ||
+ | * Pour l'utiliser, taper : | ||
+ | <code user>aptlist</code> | ||
+ | |||
+ | * Pour le supprimer, taper: | ||
+ | <code user>unalias aptlist</code> | ||
+ | |||
+ | ==== Alias chargés au démarrage ==== | ||
+ | |||
+ | On trouve dans le fichier ''~/.bashrc'' le texte suivant : | ||
+ | |||
+ | <file config .bashrc> | ||
+ | # Alias definitions. | ||
# You may want to put all your additions into a separate file like | # You may want to put all your additions into a separate file like | ||
# ~/.bash_aliases, instead of adding them here directly. | # ~/.bash_aliases, instead of adding them here directly. | ||
# See /usr/share/doc/bash-doc/examples in the bash-doc package. | # See /usr/share/doc/bash-doc/examples in the bash-doc package. | ||
- | #if [ -f ~/.bash_aliases ]; then | + | if [ -f ~/.bash_aliases ]; then |
- | # . ~/.bash_aliases | + | . ~/.bash_aliases |
- | #fi</code> | + | fi |
+ | </file> | ||
- | Vous pouvez créer et utiliser le fichier (caché) .bash_aliases placé dans votre /home/user.\\ | + | Ce code nous indique que le fichier ''~/.bash_aliases'', s'il existe, est chargé au lancement de //bash//. |
- | Ou indiquer((comme dans le TP des alias permanent plus bas)) que vous allez créer et utiliser un fichier situé dans le répertoire ''/usr/local/bin/'', fichier qu i ne nécessitera pas de point devant pour le cacher, puisqu'il n'est pas dans votre ''/home/user''.. | + | |
- | <note bloquante> | + | Vous pouvez créer et utiliser le fichier (caché) .bash_aliases placé dans votre dossier personnel (''~''). |
- | La modification de ce fichier ''/home/user/.bashrc'' (noté aussi ~/.bashrc) ne //nécessite pas de droits administrateur//.\\ | + | |
- | __Cependant__, vous devez savoir que : | + | |
- | * La création du fichier dans le répertoire /''usr/local/bin/'' **[[:doc:systeme:droits-unix-bis|Nécessite des droits]]** ! Il faut être logué en root avec [[:doc:systeme:su|la commande SU]]. | + | |
- | *La création /home/user/.bash_aliases //n'en nécessite pas// **mais** je vous conseille de faire votre modification afin de créer et utiliser le fichier /usr/local/bin/raccourcis | + | |
- | </note> | + | |
- | La suite du fichier nous donne quelques renseignements supplémentaires :\\ | + | <note info>La modification de ce fichier ''/home/user/.bashrc'' (noté aussi ~/.bashrc) ne //nécessite pas de droits administrateur//. En effet, c'est un fichier à vous, comme les autres fichiers présents dans votre ~.</note> |
- | **Les couleurs dans la console :** | + | |
- | # enable color support of ls and also add handy aliases | + | Dans le fichier ''.bashrc'', on trouve également des propositions d'alias, commentées. |
- | if [ -x /usr/bin/dircolors ]; then | + | |
- | eval "`dircolors -b`" | + | Les alias suivants permettent d'activer la sortie colorée des commandes habituelles. On notera que l'alias pour la coloration de ''ls'' est activé par défaut, mais que les autres non : |
+ | <file bash ~/.bashrc>if [ -x /usr/bin/dircolors ]; then | ||
+ | test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" | ||
alias ls='ls --color=auto' | alias ls='ls --color=auto' | ||
#alias dir='dir --color=auto' | #alias dir='dir --color=auto' | ||
- | alias vdir='vdir --color=auto' | + | #alias vdir='vdir --color=auto' |
- | + | ||
- | alias grep='grep --color=auto' | + | #alias grep='grep --color=auto' |
#alias fgrep='fgrep --color=auto' | #alias fgrep='fgrep --color=auto' | ||
#alias egrep='egrep --color=auto' | #alias egrep='egrep --color=auto' | ||
- | fi | + | fi</file> |
- | + | ||
- | **D'autres alias :** | + | |
- | + | ||
- | # some more ls aliases | + | |
- | #alias ll='ls -l' | + | |
- | #alias la='ls -A' | + | |
- | #alias l='ls -CF' | + | |
- | + | ||
- | + | ||
- | ===== alias création ===== | + | |
- | + | ||
- | ==== Créer un alias pour stopper le réseau ==== | + | |
- | + | ||
- | Stopper le réseau est du domaine de l'administration. | + | |
- | <note important>Il faut donc être en root pour pouvoir utiiser cet alias.</note> | + | |
- | + | ||
- | Prenons l'exemple de stopper la connexion réseau (Internet) de votre ordinateur. \\ | + | |
- | La commande est celle-ci : | + | |
- | <code root>invoke-rc.d networking stop</code> | + | |
- | + | ||
- | On va créer un mot clé assez court pour stopper le réseau, par exemple l'alias nommé ''stopnet''. \\ | + | |
- | Tapez dans la console la commande suivante : | + | |
- | <code root> | + | |
- | alias stopnet="invoke-rc.d networking stop"</code> | + | |
- | + | ||
- | Pour vérifier que votre alias est bien créé, tapez : | + | |
- | <code root>alias</code> | + | |
- | + | ||
- | Votre alias apparaît ? Alors tapez-le en commande : | + | |
- | <code root>stopnet</code> | + | |
- | + | ||
- | Vérifiez que la connexion réseau a bien été stoppée en ouvrant votre navigateur internet habituel, ou bien en tapant(([[[[doc:reseau:ping | le ping]]]])) : | + | |
- | <code user>ping debian-facile.org</code> | + | |
- | + | ||
- | ==== Créer un alias pour démarrer le réseau ==== | + | |
- | + | ||
- | Pour reconnecter votre ordinateur au réseau, vous devriez taper : | + | |
- | <code root>invoke-rc.d networking start</code> | + | |
- | Ajoutons un alias que nous appelerons par exemple : ''startnet''. \\ | + | <file bash ~/.bashrc>#alias ll='ls -l' |
- | Tapez la commande suivante : | + | #alias la='ls -A' |
- | <code root>alias startnet="invoke-rc.d networking start"</code> | + | #alias l='ls -CF'</file> |
+ | Les alias suivants permettent d'activer des raccourcis pratiques pour ''ls''. | ||
- | Et refaites la même procédure que précédemment. | ||
- | ==== Supprimer les alias créés ==== | + | ===== Création d'alias perso permanents ===== |
- | Pour supprimer les alias créés utilisez la commande ''unalias'' ainsi : | + | Le meilleur endroit pour définir des alias perso est le fichier ''~/.bash_aliases''. |
- | <code root>unalias stopnet</code> | + | <note warning>Il est fortement déconseillé d'utiliser les alias en ''root'', et en particulier de nommer un alias par le nom d'une commande. Exemple de chose dangereuse à ne pas faire : |
- | <code root>unalias startnet</code> | + | <code root>alias nano='/sbin/reboot'</code> |
+ | Vous pensez bien que l'on peut faire des choses encore plus dangereuses que ça…</note> | ||
- | <note important>De toute façon, à la session suivante, vos alias ainsi créés auront été effacés !</note> | + | Pour créer un alias permanent, vérifiez que les lignes |
+ | <file config Extrait de .bashrc> | ||
+ | if [ -f ~/.bash_aliases ]; then | ||
+ | . ~/.bash_aliases | ||
+ | fi | ||
+ | </file> | ||
+ | de votre ''~/.bashrc'' sont [[doc:programmation:commenter|décommentées]], et créez un fichier ''~/.bash_aliases'' contenant les alias que vous voulez définir. \\ | ||
+ | Exemple extrait de mes alias perso et des exemples ci-dessus : | ||
+ | <file bash ~/.bash_aliases>alias coin="echo '\_ô<'" | ||
+ | alias aptlist='cat /etc/apt/sources.list{,.d/*} 2>/dev/null | grep -v "^#"' | ||
+ | alias ls='ls --color' | ||
+ | alias ll='ls -l' | ||
+ | alias la='ls -A' | ||
+ | alias l='ls -CF' | ||
+ | alias less='less -R' | ||
+ | alias grep='grep --color' | ||
+ | alias muet='mplayer -ao null' | ||
+ | alias iceweasel='iceweasel 2>/dev/null 1>&2' | ||
+ | alias icedove='icedove 2>/dev/null 1>&2' | ||
+ | alias evince='evince 2>/dev/null 1>&2' | ||
+ | alias rscp='rsync --partial --progress --inplace --rsh=ssh --archive --inplace' | ||
+ | alias ncmpc='ncmpc -c' | ||
+ | alias cdprojet='cd /home/moi/mes_projets/mon_projet_trop_bien' | ||
+ | alias stopfirefox='kill -SIGSTOP $(pidof iceweasel)' | ||
+ | alias wakefirefox='kill -SIGCONT $(pidof iceweasel)' | ||
+ | alias ☺='echo Bonjour !' | ||
+ | alias pmount="udisks --mount" | ||
+ | alias pumount="udisks --unmount" | ||
+ | alias ccl='cclive'</file> | ||
- | ==== Créer un alias permanent ==== | + | ===== Liens utiles sur le forum ===== |
- | Pour ne pas être contraint de ressaisir tous vos alias entre 2 sessions ouvertes, vous pouvez les définir dans un //fichier script// (de type : shell bash). \\ | + | * [[https://debian-facile.org/viewtopic.php?pid=235314#p235314]] |
- | Voir pour exemple le TP suivant : | + | |
- | * [[doc:systeme:programmation:bash:tp:alias_favoris | TP de création d'alias favoris permanents]] | + |