Quelques commandes GNU/Linux utiles
sed
Modifier un terme dans plusieurs fichiers
Exemple ici, on modifie tous les champs 011.html en xperia_bouygues.html :
-
-i : editer les fichiers.
-
s : substitution
user@host:~$ sed -i 's/011.html/xperia_bouygues.html/' *.html
Afficher un fichier sans les commentaires
-
L'expression régulire ^ veur dire début de ligne, donc ici toutes les lignes commançant par le caractère #
-
d demande à sed de supprimer les occurences matchées
user@host:~$ cat monfichier | sed '/^#/d'
Afficher un fichier sans les lignes vides
-
L'expression régulire ^ veur dire début de ligne, $ correspond au caractère de fin de ligne, donc ici c'est toutes les lignes vides qui seront supprimées.
user@host:~$ cat monfichier | sed '/^$/d'
Garder seulement les lignes contenant un terme matché
-
-i : editer les fichiers.
-
-n : mode silencieux
-
p : affiche l'occurence matché
user@host:~$ sed -n -i '/vmail/p' /etc/courier/authlib/userdb/system
Supprimer les retours chariots
-
:a : créer un label a
-
N : concatène (joue s/\n//g)
-
$!ba : condition : tant que ce n'est pas la dernière ligne revenir au label a.
user@host:~$ cat file | sed ':a;N;$!ba;s/\n//g'
Supprimer les répétitions de lignes vides
-
N : ajoute la ligne suivante au pattern actuel
-
s/^\n$// : effectue la substitution (retour chariot par rien)
-
P : renvoi le résultat
-
D : efface ce qui reste afin de ne pas afficher la ligne suivante deux fois
user@host:~$ cat file | sed 'N;s/^\n$//;P;D'
Connaitre les détails de sa distribution
Environnement
-
OS : Debian squeeze 6.0.5
user@host:~$ lsb_release -ds
Autres
-
Savoir quel MTA se cache derrière sendmail
user@host:~$ ls -al /usr/sbin/sendmail
ou
user@host:~$ ls -al `which sendmail`
-
Modifier un compte utilisateur
root@host # usermod -g GROUPE -d REPERTOIRE_USER -s SHELL USER
-
Demander à son GNU/Linux de trouver les chiffres du loto (sans garantie aucune que ça marche!)
user@host $ i=0; while [ "$i" -ne 5 ] ; do test=$RANDOM; let 'test %= 50'; echo "$test"; let i="$i"+1; done ; test=$RANDOM;let 'test %= 11';echo "$test"
-
Chercher et jouer tous les fichiers audios et vidéos d'un emplacement et de façon aléatoire avec vlc à une heure précise
user@host $ echo export DISPLAY=$DISPLAY \&\& 'find /mon/dossier/audios/ou/videos -type f | sed "s/\\s/\\\ /g" | sed "s/\x27/\\\&/g" | sort -R | xargs -t vlc' | at 7h50
-
Chercher et jouer tous les fichiers audios et vidéos d'un emplacement et de façon aléatoire avec vlc
user@host $ find /tmp/ppp/ -type f | sed "s/\\s/\\\ /g" | sed "s/\x27/\\\&/g" | sort -R | xargs -t vlc
-
Utiliser le terminal comme calculatrice
user@host $ let "i = 360 / 12"; echo $i
-
Utiliser le terminal comme calculatrice avec deux chiffres aprés la virgule
user@host $ echo "scale=2; 23 / 7" | bc
-
Afficher tous les caractères (brut) d'un fichier
user@host $ cat file | od -c