Comment créer des alias et des fonctions shell sous Linux

Contenu

Une fenêtre de terminal sur un ordinateur portable Linux

Créez vos propres commandes Linux à l'aide d'alias et de fonctions shell bash. Contrôler les tâches répétitives, tronquer les longs processus et configurer les commandes standard avec des alternatives que vous utilisez toujours et dont vous avez du mal à vous souvenir.

Alias et les scripts shell sont des techniques puissantes sur les systèmes d'exploitation Linux et Unix qui vous permettent d'affiner votre expérience de ligne de commande pour être exactement ce que vous voulez. Vous pouvez définir vos propres commandes adaptées à vos besoins spécifiques et alléger le fardeau des tâches répétitives.

Alias ​​et scripts de shell faire le même genre de travail. Ils vous permettent d'établir (et nom) un ensemble de fonctions shell bash qui peuvent ensuite être appelées par le nom que vous avez donné. Taper le nom est plus facile et plus pratique que d'avoir à taper toutes les étapes ou commandes à chaque fois que vous souhaitez les utiliser.

La différence entre un alias et un script réside dans la complexité et l'échelle. Les scripts sont meilleurs pour enregistrer des extraits de code plus longs et plus élaborés. Les alias sont parfaits pour garder les ensembles de commandes plus courts et plus concis.

Alias ​​prédéfinis

Certains alias sont prédéfinis pour vous. Pour voir la liste des alias définis sur votre système, utiliser la commande alias sans paramètres:

alias

Ce sont les alias qui sont définis sur la machine de test Ubuntu sur laquelle ce post a été étudié. Si j'avais défini des alias personnalisés, ceux-ci figureraient également dans cette liste.

En tête de liste, il y a un alias d'apparence délicate qui s'appelle alert. Nous y viendrons dans un instant. Il existe de nombreux alias différents pour ls commander, et il existe un groupe d'alias qui fournissent une sortie couleur au grep famille de commandes. Par exemple, avec ces alias définis, chaque fois que j'écris:

grep

Le système l'interprétera comme:

grep --color=auto

Cela montre un point important avec les alias. Elles peuvent avoir le même nom que les commandes existantes. Ils peuvent même contenir la commande d'origine en eux-mêmes.

Voici la définition de grep alias.

alias grep = 'grep --color = auto'
  • Les alias La commande est utilisée pour définir un alias.
  • Le nom de l'alias est donné ci-dessous. Dans cet exemple, c'est grep.
  • Le signe égal relie le nom d'alias à corps alias. Pour tous les alias, sauf les très simples, le corps de l'alias est entouré de guillemets simples '.
  • Le corps de l'alias est la section qui est exécutée lorsque l'alias est utilisé sur la ligne de commande.

Le corps de cet alias appelle simplement le grep commande avec le --color=auto option.

Alerte d'alias

En guise de bref aparté, et donc tu sais ce que ça fait, les alert alias est utilisé pour vous avertir lorsqu'une commande est terminée. Il indique également si la commande s'est terminée avec succès ou non. Fournit une alerte système graphique en haut de l'écran.

Voici un exemple simple. Les sleep La commande va dormir pendant cinq secondes. alert alors il s'appellera alias. L'alias vérifie la solution de la commande ci-dessus. Extraire la dernière commande du fichier d'archive. Détermine si la commande s'est terminée avec succès ou non. Présentez ensuite les résultats dans une alerte système.

Si la commande s'est terminée comme prévu, l'icône d'alerte système est une petite fenêtre de terminal. Si la commande a renvoyé un code d'erreur, l'icône d'alerte système est une icône d'erreur rouge.

dormir 5; alerte

Après cinq secondes, nous voyons cette alerte système:

Alerte système pour la commande de suspension

L'icône est une petite fenêtre de terminal, ce qui veut dire que tout s'est bien passé. Essayons à nouveau avec une commande dont nous savons qu'elle échouera:

Voué à l'échec; alerte

Notre alerte système a maintenant une icône d'erreur.

Définition d'un alias trivial

Comme nous l'avons vu, définir un alias, nous utilisons le alias commander.

Créons-lui un pseudonyme clear commander. Notre alias s'appellera cls et appellera clear commander.

Notre définition des alias est si triviale qu'elle ne justifie pas d'être entre guillemets simples. Si le corps de l’alias est plus complexe que celui-ci, ou s’il contient des espaces, envelopper les guillemets simples. Nous allons définir l’alias, utilisation ls pour mettre une sortie dans la fenêtre du terminal, puis utiliser notre nouvel alias cls pour nettoyer l’écran.

alias cls=clear
ls -l
Cls

L’écran est effacé. Succès, même lorsqu’ils sont de courte durée. L’alias ne survivra que tant que cette fenêtre de terminal reste ouverte. Une fois la fenêtre fermée, l’alias disparaîtra.

Ensuite, Comment rendre nos alias permanents ??

Le fichier .bashrc et les alias

Vous vous demandez peut-être où les alias préemballés sont définis. est dans l’archive “.bashrc” dans votre dossier d’accueil. ce fichier est lu et les commandes qu’il contient sont exécutées chaque fois que vous démarrez un shell interactif. En d'autres termes, lorsque vous ouvrez une fenêtre de terminal.

tapez la commande suivante dans votre dossier de base pour afficher le contenu du fichier “.bashrc” avec la syntaxe mise en surbrillance.

gedit .bashrc

Cela lancera le gedit éditeur avec le fichier “.bashrc” chargé dedans.

gedit avec .bashrc chargé dessus

Les zones en surbrillance montrent deux zones où les alias sont définis.

Lorsque vous faites défiler le document, deux autres sections associées aux alias seront révélées:

Le premier d’entre eux est la définition de alert alias. La seconde est un if déclaration. Il se traduit par, “si le fichier” .bash_aliases “Ça existe, Lire”.

Si vous n’avez que quelques alias que vous souhaitez définir, vous pouvez les mettre dans votre fichier « .bashrc ». Placez-les sous la section qui contient le ls alias.

Si vous créez de nombreux alias, ou vous aimez juste l’idée d’avoir vos alias encapsulés dans votre propre fichier, vous pouvez les définir dans votre fichier « .bash_aliases ». Un avantage de les créer dans votre fichier “.bash_aliases” est que vous ne pouvez pas modifier accidentellement l’un des paramètres du fichier “.bashrc”. Un autre avantage est que leurs alias sont facilement copiés sur de nouveaux systèmes car ils sont totalement séparés du fichier « .bashrc »..

Stockage des alias dans le fichier .bash_aliases

L'archive “.bash_aliases” il n’existera pas tant que vous ne le croirez pas. vous pouvez créer le fichier avec cette commande:

.bash_aliases tactile

Modifions le fichier et ajoutons des alias. Cette commande ouvrira le fichier “.bash_aliases” dans le gedit éditeur.

gedit .bash_aliases

Nous avons ajouté trois alias. Le premier est notre cls alias que nous utilisions auparavant. Le prochain s’appelle h. et est un raccourci pour appeler history commander.

Le troisième alias est appelé ftc. Ça signifie “nombre de types de fichiers”.

Cet alias est plus complexe, il est donc inclus entre guillemets simples. Utilise une chaîne de commandes jointes entre elles par des tuyaux. Produit une liste ordonnée des différentes extensions de fichiers et noms de répertoires, avec un décompte pour chaque entrée de la liste.

EN RELATION: Comment utiliser Pipes sur Linux

Lorsque nous avons enregistré le fichier “.bash_aliases”, nous pourrions nous attendre à ce que nos alias soient actifs et accessibles. Ce n’est pas le cas.. le shell bash doit lire le fichier avant que les définitions d’alias ne soient actives. cela se fait chaque fois qu’un shell interactif est ouvert.

Nous pouvons également utiliser le shell Bash intégré. . pour lire et exécuter des commandes dans un fichier. Parce que nos archives “.bash_alias” lit lorsqu’il est traité “.bashrc”, nous devons effectuer notre test en appelant “.bashrc”. De cette façon, nous pouvons vérifier que le fichier « .bash_alias » est appelé à partir de « .bashrc » et que nos alias sont vivants et en bon état.

Les commandes que nous utilisons sont:

gedit .bash_alias

Pour modifier le fichier “.bash_alias”.

. .bashrc

Cela lira et exécutera les commandes dans “.bashrc”, qui appellera “.bash_alias”.

Ftc

Cela appellera le ftc alias.

Notre alias répond, ce qui signifie que Bash a lu tellement de choses dans “.bashrc” comme dans “.bash_aliases”, et nos nouveaux alias sont maintenant actifs.

Vous pouvez maintenant aller de l’avant et ajouter de nouveaux alias au fichier “.bash_aliases” quand ils vous arrivent. Si vous vous retrouvez à faire des choses plus d’une ou deux fois, envisager de créer un alias pour cela.

Effacer les alias

Il y a une commande pour supprimer des alias de sorte que BAsh ne les reconnaît pas ou n’y répond pas. D’une franchise rafraîchissante, la commande est appelée unalias.

Pour l'utiliser, donnez le nom de l’alias que vous voulez que Bash oublie. Pour faire oublier à Bash notre ftc alias, utilisation unalias comme ça:

unalias ftc

Vous pouvez utiliser unalias pour supprimer les alias que vous avez définis et l’un des alias prédéfinis.

Pour supprimer tous les alias de votre système, Utilisez le -a (tout) option:

unalias -a

Malgré cela, La perte de mémoire Bash ne sera pas permanente. La prochaine fois que vous ouvrirez une fenêtre de terminal, Alias “Oublié” Volonté. Pour vraiment les supprimer, vous devez les supprimer de vos fichiers “.bashrc” et “.bash_alias”.

Si vous pensez que vous aimeriez les récupérer, ne les supprimez pas de votre fichier « .bashrc ». À sa place, commentez-les en ajoutant un hachage # au début de chaque alias ligne. Pour que votre fichier « .bash_alias » ne soit pas efficace, renommez-le. Si votre fichier « .bashrc » ne peut pas le voir, ne le lira pas. Inverser ces étapes pour réinitialiser vos alias est une question triviale..

Caractéristiques du shell

Alias de Lika, Les fonctions shell Bash peuvent être définies dans le fichier « .bashrc », mais il est souvent préférable de les mettre dans votre propre fichier de définition. nous l'appellerons “.bash_functions”, suivant la convention utilisée pour le fichier “.bash_aliases”.

Cela signifie que nous devrions dire au fichier « .bashrc » de lire nos définitions.. Nous pouvons copier et modifier l’extrait de code qui est lu dans le fichier “.bash_aliases”. Lancement gedit et téléchargez le fichier “.bashrc” avec cette commande:

gedit .bashrc

Vous devez ajouter la section en surbrillance ci-dessous.

Vous pouvez mettre en surbrillance la section alias et appuyer sur Ctrl+C puis déplacez-vous à l’endroit où vous voulez la nouvelle section et appuyez sur Ctrl+V pour coller une copie du texte. Après, tout ce que vous avez à faire est de changer les deux endroits où il est dit “.bash_aliases” une “.bash_functions”.

Nous pouvons enregistrer ces modifications et fermer gedit.

Maintenant, créons et modifions le fichier « .bash_functions » et y mettons une définition de fonction.

.bash_functions tactile
gedit .bash_functions

cela ouvrira le fichier “.bash_functions” vide dans gedit.

Ajoutons une fonction simple appelée up. up prendra un seul paramètre de ligne de commande, qui est un chiffre. up alors j’appellerai cd .. ce nombre de fois. Ensuite, si vous avez utilisé la commande

en haut 2

up Appeler cd .. deux fois et cela remonterait de deux niveaux dans l'arborescence des répertoires.

Il existe différentes alternatives pour définir une fonction. en voici un:

fonctionner() {

Mot function c'est facultatif. Si vous êtes traditionaliste, utilise le, si tu ne prends pas la peine de l'écrire, laisser de côté.

Voici toute notre fonction dans gedit:

La fonction shell up () Bash et gedit

fonctionner() {

Ceci marque le début de notre définition de fonction, et nommez la fonction up.

niveaux=1$

Cela crée une variable appelée levels et le mettre à la valeur du premier paramètre. Ce paramètre sera un chiffre fourni par l'utilisateur lors de l'appel de la fonction. Les $1 ça veut dire “premier paramètre de ligne de commande”.

tandis que [ "$niveaux" -gt "0" ]; faire

Ensuite, nous entrons dans une boucle. Cela se traduit par “tandis que la valeur de levels est supérieur à zéro, faire ce qui est contenu dans le corps de la boucle “.

À l'intérieur du corps de la boucle, nous avons deux commandes. Fils:

CD ..

Remonter d'un niveau dans l'arborescence.

niveaux=$(($niveaux - 1))

Mettez levels à une nouvelle valeur, qui est un de moins que sa valeur actuelle.

Puis on remonte en haut du cycle, la comparaison entre la valeur de levels et devient zéro. Et levels est supérieur à zéro, le corps de la boucle est réexécuté. S’il n’est pas supérieur à zéro, la boucle se termine et nous allons à done déclaration, et la fonction est terminée.

enregistrer ces modifications et fermer gedit.

Nous allons lire et exécuter les commandes dans “.bashrc” qui devrait lire et exécuter les commandes dans notre fichier “.bash_functions”.

. .bashrc

Nous pouvons tester la fonction en nous déplaçant vers un emplacement dans l’arborescence des répertoires et en utilisant up pour revenir à un point “supérieur” dans l’arborescence des répertoires.

cd ./travail/sauvegarde/
en haut 2

La fonction fonctionne. Nous avons déplacé deux niveaux de répertoire plus haut dans l'arborescence.

Gardez une trace avec le gars

Lorsque vous créez un ensemble d'alias et une bibliothèque de fonctions, il peut être difficile de se rappeler si une commande particulière est un alias ou une fonction. Vous pouvez utiliser le type commander se souvenir de toi. La bonne chose ici est que vous pouvez également voir la définition.

Utilisons type dans notre ftc alias et notre up fonction.

tapez ftc
taper

Nous obtenons un rappel très utile du type de commande de chacun, avec leurs définitions.

Commencez à collecter

Les alias et les fonctions peuvent grandement accélérer l’utilisation de la ligne de commande. Ils peuvent raccourcir les scripts et vous permettre d’incorporer les alternatives que vous utilisez toujours avec les commandes standard.

Chaque fois que vous voyez une fonctionnalité astucieuse ou utile, vous pouvez l’adapter et le personnaliser, puis ajoutez-le à vos fichiers « .bash_aliases » ou « .bash_functions ».

setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.