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:
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.
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
:
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);