Opérations en ligne de commande
Contents
-
Opérations en ligne de commande
-
Opérations pratiques
- Comparer les différences entre deux fichiers en colonnes avec diff
- Afficher la date sous forme de timestamp UNIX
- Afficher un timestamp UNIX dans un format lisible facilement avec date
- Afficher un timestamp UNIX dans un format lisible facilement avec Perl
- Encoder/décoder une chaîne en Base 64 avec OpenSSL
- Extraire le son d'une vidéo avec Mplayer
- Transformer le contenu d'un fichier en minuscules/majuscules avec dd
- Télécharger tout le contenu d'un répertoire sur un serveur web avec Wget
- Effacer le contenu d'un fichier (très) rapidement
- Inverser l'ordre d'un fichier
- 'ls *' plus rapide
- Copier un répertoire en conservant les permissions d'origine avec GNU Tar
- Récupérer le contenu texte (ASCII) d'une page web sans les tags HTML avec Curl et sed
- Réitérer rapidement une commande avec les droits sudo
- Afficher les nouvelles lignes ajoutées à un fichier en temps réel avec less
- Supprimer toutes les lignes d'un fichier contenant une certaine chaine de caractères avec sed
- Supprimer toutes les lignes d'un fichier contenues entre deux lignes distinctes
- Effectuer des conversions de base numérique avec bc
- Trouver tous les liens symboliques cassés
- Trouver tous les fichiers de plus de N Ko
- Afficher des lignes spécifiques d'un fichier ou d'un flux de texte avec sed
-
Opérations pratiques
Opérations pratiques
Comparer les différences entre deux fichiers en colonnes avec diff
$ diff -ybB --width=80 ficher1 fichier2
Afficher la date sous forme de timestamp UNIX
Le timestamp UNIX est le nombre de secondes écoulées depuis le 1/1/1970 00h00 (date surnommée "Epoch") :
$ date +%s
Afficher un timestamp UNIX dans un format lisible facilement avec date
$ date -d @1209041432
Afficher un timestamp UNIX dans un format lisible facilement avec Perl
$ perl -e 'print(scalar(localtime(1209041432)));'
Encoder/décoder une chaîne en Base 64 avec OpenSSL
$ echo maChaine | openssl base64 # encode $ echo maChaineEnBase64 | openssl base64 -d # décode
Extraire le son d'une vidéo avec Mplayer
$ mplayer ma_video.avi -vc dummy -vo null -ao pcm:file=son_video.wav
Transformer le contenu d'un fichier en minuscules/majuscules avec dd
$ dd if=fichier_original of=fichier_modifié conv=ucase # transforme le contenu en majuscules $ dd if=fichier_original of=fichier_modifié conv=lcase # transforme le contenu en minuscules
Télécharger tout le contenu d'un répertoire sur un serveur web avec Wget
$ wget -r -nc -nd -nH --cut-dirs=2 http://www.unsite.com/unrepertoire/lerepertoirequejeveux/
Effacer le contenu d'un fichier (très) rapidement
$ > lefichier.txt
Inverser l'ordre d'un fichier
$ cat lefichier.txt | sed '1!G;h;$!d'
'ls *' plus rapide
$ echo *
Copier un répertoire en conservant les permissions d'origine avec GNU Tar
$ cd /un/repertoire; tar cf - . | tar xf - -C /autre/repertoire
Récupérer le contenu texte (ASCII) d'une page web sans les tags HTML avec Curl et sed
$ curl http://unsiteweb.com/page.html | sed 's/<[^>]*>//g'
Réitérer rapidement une commande avec les droits sudo
$ sudo !!
Afficher les nouvelles lignes ajoutées à un fichier en temps réel avec less
$ less +F /un/fichier
Il est également possible de passer temporairement en mode "temps réel" depuis une session en cours de less avec la combinaison de touches Shift+f.
Supprimer toutes les lignes d'un fichier contenant une certaine chaine de caractères avec sed
$ sed -i '/chaine/d' lefichier.txt
Supprimer toutes les lignes d'un fichier contenues entre deux lignes distinctes
sed -i -e '/<REMOVE>/,/<\/REMOVE>/d lefichier.txt
Le fichier :
ligne1 ligne2 <REMOVE> Bouh, c'est mal! Ils faut que ces lignes disparaissent... </REMOVE> ligne3
donnera :
ligne1 ligne2 ligne3
Effectuer des conversions de base numérique avec bc
Outre les opérations arithmétiques, bc est capable d'effectuer des conversions de bases numériques à l'aise des opérateurs ibase (input base, base d'entrée) et obase (output base, base de sortie) : il est même possible d'effectuer des opérations arithmétiques dans une certaine base et d'afficher le résultat dans une autre base.
Par défaut bc considère que ibase et obase sont en base 10 (décimale), il n'est donc pas nécessaire de les définir explicitement lors de vos conversions si vous utilisez l'ibase ou l'obase en base 10 :
$ echo 'obase=2; 145' | bc 10010001 $ echo 'ibase=2; 10010001' | bc 145
Attention, si vous changez les bases d'entrée et de sortie, il faut *impérativement* spécifier obase en premier.
$ echo 'obase=16; ibase=2; 11010' | bc 1A $ echo 'ibase=2; 101111+10000101' | bc 180
Trouver tous les liens symboliques cassés
$ find -type l | (while read FN ; do test -e "$FN" || ls -ld "$FN"; done)
Trouver tous les fichiers de plus de N Ko
Pour lister tous les fichiers de plus d'1 Go (1 000 000 Ko) à partir du répertoire courant :
$ find ./ -size +1000000k -printf "%kKo\t%p\n"
Afficher des lignes spécifiques d'un fichier ou d'un flux de texte avec sed
Afficher seulement la 42ème ligne du fichier fichier.txt :
sed -n "42p" fichier.txt
Afficher seulement de la ligne 10 à la ligne 15 :
cat fichier.txt | sed -n '10~15p'