Outils pour utilisateurs

Outils du site


doc:guides:bash

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:guides:bash [2023/05/22 15:10] – [Fichiers SSH et journaux importants] jeremiedoc:guides:bash [2023/11/30 19:53] (Version actuelle) – [Les éditeurs vi et vim] jeremie
Ligne 5: Ligne 5:
 La majorité des commandes comprend l'argument ''%%--%%help'' pour afficher un résumé moins verbeux que ''man commande''. Pour rechercher une commande on peut utiliser ''man -k motclé'' (k=keyword), ou ... google, ou https://die.net  ... La majorité des commandes comprend l'argument ''%%--%%help'' pour afficher un résumé moins verbeux que ''man commande''. Pour rechercher une commande on peut utiliser ''man -k motclé'' (k=keyword), ou ... google, ou https://die.net  ...
  
 +Voyez enfin [[https://explainshell.com/explain?cmd=for%20user%20in%20%24%28cut%20-f1%20-d%3A%20/etc/passwd%29%3B%20do%20crontab%20-u%20%24user%20-l%202%3E/dev/null%3B%20done|explain shell]] pour un déchiffrage d'une commande bash composée, bien utile pour apprendre.
 ==== Langage bash ==== ==== Langage bash ====
  
Ligne 193: Ligne 194:
   * ''flock'' (zone critique à ne pas exécuter en même temps qu'un autre process ou soi-même plusieurs fois)...   * ''flock'' (zone critique à ne pas exécuter en même temps qu'un autre process ou soi-même plusieurs fois)...
  
-===== vi et vim =====+====== Les éditeurs vi et vim ======
  
-Quelques fonctions utiles dans ''vi'' (à faire apres la touche ''<esc>'')+Certains préfèreront utiliser ''nano'' qui est plus intuitif mais vraiment plus limité que "vi". Ce dernier est dur à maintriser mais il est présent partout et il est en fait extrêmement puissant. 
 + 
 +Voici donc quelques fonctions utiles dans ''vi'' (à saisir après la touche ''<esc>'')
  
 Générique Générique
Ligne 210: Ligne 213:
   * ''o'' nouvelle ligne au dessous (''O'' pour une nouvelle ligne au dessus)   * ''o'' nouvelle ligne au dessous (''O'' pour une nouvelle ligne au dessus)
   * ''J'' pour joindre la ligne qui suit à celle sous le curseur   * ''J'' pour joindre la ligne qui suit à celle sous le curseur
-  * ''d?'' pour delete, où ''?'' vaut:+  * ''d?'' pour "delete", où ''?'' en précise la portée:
     * ''dd'' pour la ligne     * ''dd'' pour la ligne
     * ''d$'' jusqu'à la fin de ligne     * ''d$'' jusqu'à la fin de ligne
     * ''d^'' vers la gauche (tapez ''d^ '')     * ''d^'' vers la gauche (tapez ''d^ '')
     * ''dw'' (delete word, et ''3dw'' supprime 3 mots, vous voyez la logique implacable?)...     * ''dw'' (delete word, et ''3dw'' supprime 3 mots, vous voyez la logique implacable?)...
-  * ''c?'' pour "change" (delete+insert), et X comme ci-dessus+  * ''r?'' pour "replace", avec la même logique que le ''d'' 
 +  * ''c?'' pour "change" (delete+insert), suivi  comme ci-dessus
     * ''cc'' change line (donc ''5cc'' pour changer 5 lignes d'un coup)     * ''cc'' change line (donc ''5cc'' pour changer 5 lignes d'un coup)
     * ''c$'' remplace toute la fin de ligne (idem que ''C'')     * ''c$'' remplace toute la fin de ligne (idem que ''C'')
     * ''c^'' remplace tout le début de ligne     * ''c^'' remplace tout le début de ligne
     * ''cw'' change word ...     * ''cw'' change word ...
-  * ''yy'' yank line (copie), ''yw'' yank word... +  * ''yy'' yank line (copie de la ligne courante), ''yw'' copie du "word" sous le curseur, etc ... 
-  * ''p'' paste (coller, droite du curseur)+  * ''p'' paste (coller le contenu du "y"à droite du curseur)
   * ''w'' beginning of next word, ''e'' end of next word   * ''w'' beginning of next word, ''e'' end of next word
  
Ligne 234: Ligne 238:
 Couper-coller (''vim'' et pas ''vi'') Couper-coller (''vim'' et pas ''vi'')
  
-  * ''v'' initie la zone à copier/couper en surbrillance ...+  * ''V'' initie la zone à copier/couper en surbrillance ...
   * puis ''d'' pour la couper (delete), ou bien ''y'' pour la copier (yank)   * puis ''d'' pour la couper (delete), ou bien ''y'' pour la copier (yank)
   * enfin ''p'' la colle après le curseur (''P'' pour avant le curseur)   * enfin ''p'' la colle après le curseur (''P'' pour avant le curseur)
Ligne 249: Ligne 253:
 | /etc/ssh/sshd_config    | Configuration du serveur SSH | | /etc/ssh/sshd_config    | Configuration du serveur SSH |
  
-====== Autres outils ======+====== Outils annexes en ligne de commande ======
  
 Il existe réellement des milliers d'outils, écrits dans toutes sortes de langages ou de scripts (exécutables/binaires, python, PHP...) Il existe réellement des milliers d'outils, écrits dans toutes sortes de langages ou de scripts (exécutables/binaires, python, PHP...)
  
-Certains sont réellement très classiques (ci-dessus, les ''cut'', ''sed'', ''grep'' ...), et d'autres moins courants ne sont pas moins intéressants. On peut citer+Certains sont très classiques, comme ceux mentionnés ci-avant (les ''cut'', ''sed'', ''grep'' ...). D'autres le sont moins mais reste très utiles. On peut citer
    
-  * ''jq'' pour gérer du JSON +  * ''jq'' pour exploiter du JSON (et [[https://github.com/kellyjonbrazil/jc|jc]] pour convertir des sorties de commande unix en json) 
-  * ''mlr'' (miller) pour du CSV +  * ''mlr'' (miller) pour du CSV (ou la suite [[https://csvkit.readthedocs.io/en/latest/|CSVkit]], dont ''in2csv'' pour convertir du Excel) 
-  * ''datamash'' pour des calculs sur des tables (ex. calculer la médiane des colonnes d'un fichier CSV)+  * ''datamash'' pour des calculs sur des tables (ex. calculer la médiane des colonnes d'un fichier CSV)
 +  * ''gnuplot'' pour créer des graphiques (non trivial!) 
 +  * [[https://github.com/cactusdynamics/wesplot/tree/main|wesplot]] permet de tracer en live un résultat d'un pipe linux 
 + 
 +Pour un usage orienté "data science", vous pouvez aussi consulter [[https://jeroenjanssens.com/dsatcl/chapter-2-getting-started.html|ce site]], plutôt bien fait. 
 + 
 +N'hésitez pas à recourir à Python non plus, qui fonctionne aussi en ligne de commande si besoin.
  
 Il existe aussi des versions améliorées ou plus rapides d'outils, comme pour la recherche de fichiers ou de contenu avec [[https://github.com/sharkdp/fd|fdfind]] ou [[https://github.com/BurntSushi/ripgrep|ripgrep]] ... Il existe aussi des versions améliorées ou plus rapides d'outils, comme pour la recherche de fichiers ou de contenu avec [[https://github.com/sharkdp/fd|fdfind]] ou [[https://github.com/BurntSushi/ripgrep|ripgrep]] ...
doc/guides/bash.1684768239.txt.gz · Dernière modification : 2023/05/22 15:10 de jeremie