Editeurs Editeurs « An infinite number of monkeys typing into GNU emacs would n

Editeurs Editeurs « An infinite number of monkeys typing into GNU emacs would never make a good program. » Linus Torvalds Editeurs Editeurs cat, echo > ●toujours disponible ●performances imbattables user@host:~$ echo "chat "{"noir,",blanc} > texte.txt user@host:~$ cat texte.txt chat noir, chat blanc user@host:~$ cat > texte.txt chat blanc, chat noir user@host:~$ cat texte.txt chat blanc, chat noir user@host:~$ ●pas vraiment un éditeur... Editeurs Editeurs vi ●très petit ●(presque) toujours disponible ●incontournable ●cryptique (pour les emacsiens) ●apprendre avant d'en avoir besoin ●incontournable Editeurs Editeurs emacs ●sait tout faire... ●...même le reste (extensible) ●cryptique (pour les vi-istes) ●très gros ●(presque) jamais disponible ●apprendre avant d'en avoir besoin Editeurs Editeurs ...et les autres ●CLI : aee, ed, e3, joe, jed, nano, pico,.... ●XWindow : xed, xwpe, axe,... ●Gnome : gedit, gnotepad+, scite, scribes... ●KDE : kate, kedit, ... Editeurs Editeurs Survivre à vi ●vi a deux modes : – mode commande : ce que l'on tape est considéré comme une commande et n'affiche rien – mode insertion : ce que l'on tape s'écrit dans le fichier ●Du mode commande au mode insertion : i, o, ... ●Du mode insertion au mode commande : <Esc> Editeurs Editeurs Commandes vi / : rechercher n : occurence de recherche suivante :w : ecrit le fichier sur le disque :q : quitte vi i : passer en mode insertion  : avancer de n lignes n + dd : effacer la ligne courante o : insérer une ligne en dessous et passer en mode insertion :q! : quitte vi malgré les avertissements :x : ecrit le fichier sur le disque et quitte vi (équivaut à :wq) G : aller à la ligne n. Si n est omis, va à la fin du fichier n + dw : effacer le mot courant D : effacer la fin de la ligne courante Shell & commandes avancées Shell & commandes avancées Personnaliser le shell Personnaliser le shell Aliases ●Les alias permettent de créér une commande personnalisée alias cd..="cd .." alias la="ls ­la" alias cat="echo Impossible de lire " ●alias sans arguments donne la liste des alias actuellement définis ●unalias permet de supprimer un alias unalias cd.. Personnaliser le shell Personnaliser le shell ~/.bash{rc,_profile} ●L'environnement au démarrage du shell est paramétrable – ~/.bashrc : éxécuté à chaque shell – ~/.bash_profile : exécuté à chaque login shell ●Il est préférable d'utiliser ~/.bashrc, les login shell se font rares... ●La configuration par defaut d'un nouvel utilisateur est dans /etc/skel ●La configuration « system-wide » est définie dans /etc/bash.bashrc et /etc/profile ●Penser à personnaliser http_proxy Commandes avancées Commandes avancées Boucles : for ●for/in : permet d'exécuter une série de commandes sur chacun des éléments d'une liste for var in list; do things; done Exemples : for i in 1 2 3 do echo i vaut $i done for i in mnt boot var; do echo Contenu de /$i; ls /$i; done for i in b{in,oot}; do echo ­n "/$i prend "; du ­skh /$i; done Commandes avancées Commandes avancées Boucles : backticks & seq ●seq : permet de générer une liste sur STDOUT seq 1 9  affiche les chiffres de de 1 à 9 seq 1 2 9  affiche les nombres impairs entre 1 et 9 ●Les `` (backticks) exécutent une commande et se remplacent par la sortie de cette commande rm `seq 1 3` : supprime les fichiers nommés 1 2 et 3 Commandes avancées Commandes avancées B o u c l e s : f o r , ` ` e t s e q e n s e m b l e for, `` et seq for i in `seq 3`; do echo i vaut $i; done for i in `seq 1 2 9`; do echo i vaut $i; done for i in `seq 9 ­2 1`; do echo i vaut $i; done for i in `ls ~`; do echo Il y a $i dans $HOME; done for i in ~/tmp/*; do echo ­n Le fichier $i est de type" " file ­b $i done for i in ~/tmp/*; do echo ­n Le fichier $i est de type" " file ­b "$i" done for i in ~/tmp/*; do echo ­n Le fichier \'$i\' est de type" " file ­b "$i" done Commandes avancées Commandes avancées Traiter le texte : cut cut : permet d'extraire une colonne dans un fichier à champs délimités cut ­f<i> ­d<délim> <file> – cut lit sur STDIN si file est omis – le séparateur de champ est délim (blanc si omis) – extrait le ième champ sur chaque ligne et affiche sur STDOUT cut ­f1 ­d':' /etc/passwd  affiche tous les utilisateurs déclarés dans /etc/passwd Commandes avancées Commandes avancées Traiter le texte : sort sort : permet de trier les lignes lues dans un fichier (éventuellement à champs délimités) sort ­k<k> [­n] [­r] ­t<délim> <file> – sort lit sur STDIN si file est omis – le séparateur de champ est délim (ou du blanc si délim est omis) – compare en fonction de la clef à la position k – avec l'option -r, l'ordre est renversé (z->a, 9->0) – avec l'option -n, la comparaison n'est plus alphabétique mais numérique sort ­k3 ­nt':' /etc/passwd  affiche /etc/passwd dans l'ordre numérique des UID Commandes avancées Commandes avancées Traiter le texte : uniq uniq : permet de supprimer les lignes consécutives doublon lues dans un fichier uniq [­c] <file> – sort lit sur STDIN si file est omis – n'affiche qu'une ligne lorsque plusieurs lignes consécutives sont lues – avec l'option -c, uniq affiche le nombre d'occurences pour chaque ligne echo ­e "aaa\naaa\naaa\nbbb\nbbb" | uniq  n'affiche que 'aaa' et 'bbb' Commandes avancées Commandes avancées (Mal)traiter le texte : sed sed : remplacement de texte ("stream editor") sed [­r] 's/motif1/motif2/' [fichier] – lit fichier ou STDIN si aucun fichier n'est spécifié – -r permet d'utiliser des expressions régulières (presque) compatibles avec egrep – remplace 'motif1' par 'motif2' (les motifs sont des expressions régulières compatibles avec grep) – \1...\n dans motif2 sont des variables positionnelles représentant un match dans motif1 – écrit le résultat sur STDOUT echo "chat noir" | sed ­r 's/noir/blanc/'  affiche "chat blanc" Commandes avancées Commandes avancées (Mal)traiter le texte : sed sed : remplacement de texte («stream editor») ● le modificateur 'g' permet d'attraper plusieurs fois le motif sur la même ligne : echo "chat noir, très noir" | sed ­r 's/noir/blanc/'  affiche « chat blanc, très noir» echo "chat noir, très noir" | sed ­r 's/noir/blanc/g'  affiche « chat blanc, très blanc» ● le modificateur 'i' permet d'ignorer la casse lors des évaluations : echo "chat NOIR, très noir" | sed ­r 's/noir/blanc/g'  affiche « chat NOIR, très blanc» echo "chat NOIR, très noir" | sed ­r 's/noir/blanc/gi'  affiche « chat blanc, très blanc» Commandes avancées Commandes avancées (Mal)traiter le texte : sed sed : remplacement de texte («stream editor») – \1...\n dans motif2 sont des variables positionnelles – ces variables référenceront les expression entre () dans motif1 – elles ne sont initialisées que s'il y a une concordance echo ­e "chat noir" | sed ­r 's/chat (.*)/\1 chat/'  affiche "noir chat" echo ­e "abc" | sed ­r 's/(.)(.)(.)/\3\2\1/'  affiche "cba" Commandes avancées Commandes avancées Traiter le texte : sed – Rappel sur les expressions régulières . n'importe quel caractère * le caractère précédent 0 ou plusieurs fois + le caractère précédent 1 fois au moins ? le caractère précédent 0 ou 1 fois {n} le caractère précédent exactement n fois {m,n} le caractère précédent de m à n fois {n,} le caractère précédent n fois ou plus [a­z] un caractère en minuscule [a­zA­Z] une lettre [0­9] un chiffre ^/$ le début/la fin de ligne | séparateur pour spécifier de multiples expressions (ou logique) – Classes de caractères [[:alnum:]]: [a­zA­Z0­9] [[:alpha:]]: [a­zA­Z] [[:ascii:]]: caractère ascii (...) [[:blank:]]: espace ou tabulation [[:cntrl:]]: caractère de contrôle [[:digit:]]: [0­9] [[:graph:]]: caractères imprimables et visibles [[:lower:]]: [a­z] [[:print:]]: caractère imprimable [[:punct:]]: ponctuation [[:space:]]: espace, tabulation, ... [[:upper:]]: [A­Z] [[:word:]] : [a­zA­Z0­9_] [[:xdigit:]] : [a­fA­F0­9] Commandes avancées Commandes avancées Rechercher des fichiers : find find argument options liste les fichiers/répertoires situés dans argument selon des critères définis dans options. – options -name glob : liste les fichiers correspondant au shell glob glob -type f/d/l : ne liste respectivement que les fichiers, répertoires, liens -exec : exécute une commanderécursif – patrons de globs . n'importe quel caractère * le caractère précédent 0 ou n fois + le caractère précédent 1 ou n fois ? le caractère précédent 0 ou 1 fois [a­z] un caractère en minuscule [a­zA­Z] une lettre [0­9] un chiffre – exemples find ~/mes_docs ­type f ­name "*.doc" find ~/mes_docs ­type f ­name "*facture*" ­exec rm ­f '{}' \; find / ­name "*log*" ­type d Commandes avancées Commandes avancées xargs, companion de find ●xargs permet d'utiliser la sortie d'une commande et de la passer en argument à une autre cut ­f6 ­d':' /etc/passwd | xargs du ­skh ●La commande xargs est souvent utilisée en combinaison avec find : find arguments uploads/Management/ edit-shell.pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 06, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.9820MB