User Tools

Site Tools


informatique:linux:commandes_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:linux:commandes_linux [2020/01/02 16:08] – [stat] pteuinformatique:linux:commandes_linux [2020/01/08 10:32] – [declare] pteu
Line 422: Line 422:
 <code bash> <code bash>
 # Pour afficher la date au format YYYY/MM/JJ-HH:MM:SS : # Pour afficher la date au format YYYY/MM/JJ-HH:MM:SS :
-date +%Y/%m/%d-%H:%M:%S +date "+%Y/%m/%d %H:%M:%S" 
-2009/06/25-15:07:56+2009/06/25 15:07:56
  
 # afficher le compteur (timestamp) de l'heure actuelle : # afficher le compteur (timestamp) de l'heure actuelle :
-date +%s+date "+%s"
 1441816670 1441816670
  
Line 460: Line 460:
 <code bash> <code bash>
 pkill -USR1 dd pkill -USR1 dd
 +</code>
 +
 +
 +=====declare=====
 +
 +Permet de déclarer des variables en bash et leur affecter des attributs ; il équivaut à la commande ''typeset'' (les options sont les mêmes) à partir de bash v2+, alors que ''typeset'' est compatible ksh. Invoqué sans paramètre, ''declare'' affiche la liste des variables existantes dans l'environnement. Pour ne lister que les fonctions, utiliser le flag ''-f''.
 +
 +Liste des attributs existants :
 +  * ''-a'' : tableau indexé (//array//)
 +  * ''-A'' : tableau associatif
 +  * ''-i'' : entier (//integer//)
 +  * ''-l'' : la variable ne peut contenir que des caractères en minuscules ; les majuscules sont converties (//lowercase//)
 +  * ''-u'' : la variable ne peut contenir que des caractères en majuscules ; les minuscules sont converties (//uppercase//)
 +  * ''-r'' : constante (//readonly//)
 +  * ''-x'' : exporter la variable (//export//)
 +  * ''-p'' : affiche le contenu de la variable qui suit
 +  * ''-f'' : lister le contenu de la fonction qui suit
 +
 +Utiliser ''+'' à la place de ''-'' permet de désactiver l'attribut d'une variable (ne fonctionne pas pour l'attribut ''+a'' (tableaux indexés)).
 +
 +<code bash>
 +# exemple d'utilisation d'un entier
 +declare -i int=2
 +echo "int vaut $int"      # "int vaut 2"
 +let "int += 1"
 +echo "int vaut $int"      # "int vaut 3"
 +unset int
 +
 +# exemple d'utilisation d'une constante
 +declare -r const=pierre
 +echo "const vaut $const"  # "const vaut pierre"
 +const=sable               # "-bash: const : variable en lecture seule"
 +echo "const vaut $const"  # "const vaut pierre"
 </code> </code>
  
Line 2100: Line 2133:
 =====sed===== =====sed=====
  
-**S**tream **ED**itor est une commande qui permet d'appliquer différentes transformations prédéfinies à un flux séquentiel de données textuelles. +**S**tream **ED**itor est une commande qui permet d'appliquer différentes transformations prédéfinies à un flux séquentiel de données textuelles. Sed peut travailler sur un flux (pipé derrière une autre commande) ou à partir d'un fichier :
- +
-  * Filtre pour remplacer une IP par X.X.X.X+
 <code bash> <code bash>
-sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/X.X.X.X/g" +# afficher le contenu du fichier en remplaçant toto par titi 
-</code>+cat fichier.txt | sed 's/toto/titi'
  
-  * Convertir les minuscules en majuscules (ou inversement) +# même chose en plus simple 
-<code bash> +sed 's/toto/titifichier.txt
-echo "La PhraSe avec Des LeTTres n'iMpoRte comMEnt"sed 's/.*/\L&/' +
-la phrase avec des lettres n'importe comment +
-# et respectivement 's/.*/\U&/' pour convertir le texte en majuscules+
 </code> </code>
-(Le "&" représente le motif qui matche) 
  
-  * Ajouter une ligne en début de fichier :+Par défaut le résultat est affiché dans le terminal ; si on précise un fichier on peut choisir d'enregistrer les modifications dans celui-ci, en ajoutant l'option ''-i'' :
 <code bash> <code bash>
-sed -i '1iPremièreLigne' toto.txt+# remplacer toto par titi dans le fichier (sans afficher le résultat) 
 +sed -i 's/toto/titifichier.txt 
 +# idem, mais en sauvegardant le fichier original avec l'extension .bck 
 +# cela créra 2 fichiers : fichier.txt (modifié) et fichier.txt.bck (l'original) 
 +sed -i".bck" 's/toto/titi' fichier.txt
 </code> </code>
-(il s'agit d'un "un" i suivi du texte à insérer) 
  
-  * Afficher la 3ème ligne d'un fichier (et sauvegarder le fichier source avec le suffixe ".bck") :+  * Afficher la 3ème ligne d'un fichier (plusieurs méthodes
 +Afficher la 3ème ligne d'un fichier :
 <code bash> <code bash>
-sed -i".bck" -n '3p' <fichier>+sed -n '3p' <fichier> 
 +sed '3!d'   <fichier> 
 +sed '52q;d' <fichier>   # arrête la lecture dès qu'elle a matché, pour la performance
 </code> </code>
  
Line 2135: Line 2168:
 sed -n '2,5p' <fichier> sed -n '2,5p' <fichier>
 sed -n '2,/sys/p' <fichier> sed -n '2,/sys/p' <fichier>
 +</code>
 +
 +  * Ajouter une ligne en début de fichier :
 +<code bash>
 +sed -i '1iPremièreLigne' toto.txt
 +</code>
 +(il s'agit d'un "un" i suivi du texte à insérer)
 +
 +  * Afficher les lignes sauf celles situées entre "toto" et "titi" :
 +<code bash>
 +sed '/toto/,/titi/d'
 </code> </code>
  
Line 2150: Line 2194:
 sed -e '0,/^begin/d' -e '/^end/,$d' fichier.txt sed -e '0,/^begin/d' -e '/^end/,$d' fichier.txt
 </code> </code>
 +
 +  * Remplacer les adresses IP par X.X.X.X
 +<code bash>
 +sed "s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/X.X.X.X/g"
 +</code>
 +
 +  * Convertir les minuscules en majuscules (ou inversement)
 +<code bash>
 +echo "La PhraSe avec Des LeTTres n'iMpoRte comMEnt" | sed 's/.*/\L&/'
 +la phrase avec des lettres n'importe comment
 +# et respectivement 's/.*/\U&/' pour convertir le texte en majuscules
 +</code>
 +(Le "&" représente le motif qui matche)
  
   * On peut réutiliser des patterns entre () qui ont matchées avec \1, \2. Par exemple, pour inverser les 3 termes séparés par des virgules :   * On peut réutiliser des patterns entre () qui ont matchées avec \1, \2. Par exemple, pour inverser les 3 termes séparés par des virgules :
informatique/linux/commandes_linux.txt · Last modified: 2024/04/05 06:58 by pteu