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 [az] un caractère en minuscule [azAZ] une lettre [09] un chiffre ^/$ le début/la fin de ligne | séparateur pour spécifier de multiples expressions (ou logique) – Classes de caractères [[:alnum:]]: [azAZ09] [[:alpha:]]: [azAZ] [[:ascii:]]: caractère ascii (...) [[:blank:]]: espace ou tabulation [[:cntrl:]]: caractère de contrôle [[:digit:]]: [09] [[:graph:]]: caractères imprimables et visibles [[:lower:]]: [az] [[:print:]]: caractère imprimable [[:punct:]]: ponctuation [[:space:]]: espace, tabulation, ... [[:upper:]]: [AZ] [[:word:]] : [azAZ09_] [[:xdigit:]] : [afAF09] 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 [az] un caractère en minuscule [azAZ] une lettre [09] 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
Documents similaires










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