Conseils de commande de commande de bash utile et exemples de trucs - Partie 2

Conseils de commande de commande de bash utile et exemples de trucs - Partie 2

Dans cette série, nous explorons divers conseils, astuces et bash, des exemples de ligne de commande qui vous aideront à devenir un utilisateur et codeur plus avancés. Bash fournit un riche langage de script et de codage qui remet la puissance entre les mains de l'utilisateur et du développeur. Bash vous permet également d'apprendre au fur et à mesure, ce qui en fait une expérience plus agréable. Pour le premier article de notre série, veuillez consulter notre article UTILISATEUX ACTIONS DE LIGNE DE COMMANDE DE COMMANDE ET.

Dans cette série de tutoriels, vous apprendrez:

  • Conseils, astuces et méthodes utiles de la ligne de commande bash
  • Comment interagir avec la ligne de commande bash de manière avancée
  • Comment affiner vos compétences de bash dans l'ensemble et devenir un utilisateur de bash plus compétent
Conseils de commande de commande de bash utile et exemples de trucs - Partie 2

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution Linux
Logiciel Ligne de commande bash, système basé sur Linux
Autre Toute utilité qui n'est pas incluse dans le shell bash par défaut peut être installée en utilisant Sudo Apt-Get Install Utility-Name (ou Installation de miam pour les systèmes basés sur Redhat)
Conventions # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié

Exemple 1: attraper cette adresse IP illusoire



Parfois, nos scripts doivent savoir quelle adresse IP notre machine. Il existe plusieurs méthodes différentes, bien qu'aucun d'entre eux ne soit entièrement infaillible. Par exemple, avoir divers adaptateurs réseau dans un seul ordinateur peut créer des modifications de la sortie par diverses commandes. De plus, certaines commandes ont des limites.

Par exemple, le nom d'hôte La commande indique clairement dans son manuel (pour le -je option) qu'il affichera toutes les adresses réseau de l'hôte, mais pour ne fait aucune hypothèse sur l'ordre de la sortie. Il semble donc que l'utilisation nom d'hôte peut ne pas être la meilleure option.

Les exemples fournis ici sont pour vous autonomiser et fournir quelques suggestions pour une exploration plus approfondie et un environnement spécifique et / ou une amélioration générale. La connaissance de la machine interrogée, ou le réseau utilisé permettra à la transformation de ces commandes en scripts Retriever d'adresse IP plus stable.

$ Myip = "$ (ip a | grep 'inet.* Global '| grep -v docker | SED's |.* INET || ' | grep -o "^ [\.0-9] \ + ")"; Echo "$ Myip" 10.dix.0.20 $ myip = "$ (ip -s route obtenir 1 | grep -o" src [\.0-9] \ + "| grep -o" [\.0-9] \ + ")"; Echo "$ Myip" 10.dix.0.20 

Dans la première commande, nous avons utilisé le ip a (adresse IP) Commande pour récupérer une liste de toutes les adresses IP attribuées à cette machine. Vous pouvez taper le ip a Commande directement sur la ligne de commande bash pour voir à quoi ressemble la sortie.

Nous avons suivi tous les inédire adaptateurs, et supprimé toutes les connexions réseau Docker de la liste (vous pouvez voir que ce n'est pas parfait; d'autres logiciels peuvent créer d'autres interfaces réseau, par exemple ssh ou d'autres programmes de virtualisation comme virtualbox, qui nécessiterait également le filtrage).

Nous traitons ensuite l'entrée plus loin avec sed Pour supprimer les informations jusqu'à inédire. Enfin, nous grep pour l'IP réel avec un grep uniquement je.e. grep -o Commande qui utilise une expression régulière pour saisir l'adresse IP complète (IPv4).

Pour en savoir plus sur les expressions régulières, consultez nos bash RegExps pour les débutants avec des exemples et un bash avancé RegEx avec des exemples d'articles.

Vous pouvez également remarquer à nouveau comment il y a des limites ici; Comment intégrer les adresses IP IPv6, comment savoir quelle est l'adresse IP principale lorsqu'il existe plusieurs adaptateurs, etc.

Dans la deuxième commande, nous recherchons le premier itinéraire sur la machine avec IP -S Route obtenez 1 puis traitez la sortie d'une manière similaire. Ceci est potentiellement plus stable pour au moins trouver l'adresse IPv4 principale de la machine.

Faites-nous savoir votre meilleure méthode pour obtenir l'IP, et peut-être l'adresse IPv4 principale à l'aide de scripts bash dans les commentaires ci-dessous!

Exemple 2: Les risques de globe et la nécessité de citer correctement

$ Touch a b c $ echo "$ (echo" * ")" * $ echo $ (echo "*") a b c 


Dans cet exemple, nous créons d'abord 3 fichiers, un, b et c, Et ensuite nous exécutons deux écho. Le premier écho cite correctement le * résultant du écho "*" à l'intérieur de la sous-coque $ (), résultant en un littéral * être sorti par le premier écho dans la commande. La deuxième commande echo ne cite pas correctement le * Et en tant que tel, le globe de bash a lieu; le * est considéré comme un identifiant de nom de fichier, et les fichiers sont répertoriés et transmis à l'écho de poing. Pour clarifier cela, considérez:

$ echo * a b c 

Nous voyons donc le besoin de citer toujours correctement tout texte qui peut être interprété comme un nom de fichier, même si un tel texte est déjà cité correctement à l'intérieur de la sous-coquille, comme c'est le cas ici ($ (echo "*"): Notez le cité *).

Conclusion

Dans cet article, nous avons examiné comment obtenir une adresse IP en utilisant diverses méthodes et envisagé l'expansion en fonction de divers environnements. Nous avons également exploré le globe de bash et la nécessité de citer des textes qui peuvent être interprétés comme des noms de fichiers correctement, afin d'éviter le globe.

  • Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 2
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 3
  • Exemples de lignes de commande de commande de bash utile - Partie 4
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 5

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Masterring Bash Script Loops
  • Choses à installer sur Ubuntu 20.04
  • Boucles imbriquées dans les scripts bash
  • Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Ubuntu 20.04 Guide
  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 3
  • Exemples de lignes de commande de commande de bash utile - Partie 4