Festival de commandes bash en une ligne
Ça fait quelque temps que j'ai le site http://www.commandlinefu.com/ dans mes flux RSS. C'est un site où chacun-e peut proposer une commande Bash d'une ligne. On peut voter pour son utilité et proposer d'autres solutions. C'est donc trop cool pour apprendre la ligne de command et découvrir plein d'obscures commandes linux !
Voici une première sélection d'une 20e de "one-liners".
Renommer tous les fichiers .jpeg et .JPG en .jpg
$ rename 's/\\.jpe?g$/.jpg/i' *
Ne pas sauvegarder les commandes dans l'historique pour cette session
$ unset HISTFILE
Sauvegarder les commandes dans l'historique en temps réel
$ shopt -s histappend ; PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Ne pas enregistrer la commande dans l'historique bash
$ history -d $((HISTCMD-1)) && command_to_run
Demander confirmation à l'utilisateur
$ Confirm() { read -sn 1 -p "$1 [Y/N]? "; [[ $REPLY = [Yy] ]]; }
Supprimer récursivement tous les fichiesr .html
$ find . -type f -name '*.htm' -delete
Split a string into an array
read -a ARR <<<'world domination now!'; echo ${ARR[2]};
Empêcher Flash de tracker tout ce qu'on fait
$ for i in ~/.adobe ~/.macromedia ; do ( rm $i/ -rf ; ln -s /dev/null $i ) ; done
Matrix du pauvre
$ while (true) ; do pwgen 1 ; done
(il faut apt-get install pwgen
et ça ne rend pas très bien en vrai).
Protéger un répertoire de rm -rf
$ cd directory; touch ./-i
Affichier le nom et la version de sa distro linux
$ cat /etc/issue
Quel est mon modèle d'ordi ?
$ sudo dmidecode | grep Product
Comparer des répertoires avec diff
$ diff -rq dirA dirB
Partager sa session de terminal en temps réel
$ mkfifo foo; script -f foo
et une autre personne peut superviser ce qu'il se pase avec cat foo
.
Bouger tous les fichiers des sous-répertoires dans le dossier courant
$ find ./ -type f -exec mv {} . \\;
Bypasser les alias ou fonctions de la commande
$ \\foo
C'est un raccourci de la commande bash command
.
Transformer un fichier word en pdf
$ oowriter -pt pdf your_word_file.doc
Conversion de document LibreOffice
$ soffice --headless -convert-to odt:"writer8" somefile.docx
Convertir un texte en majuscules
$ upper() { echo ${@^^}; }
L'inverse avec lower
.
Redimensionner une image (en gardant le ratio)
$ convert -resize '1024x600^' image.jpg small-image.jpg
convert
est une commande qui vient du paquet imagemagick
.
Synchroniser deux répertoires en filtrant des extensions
$ rsync -rv --include '*/' --include '*.txt' --exclude '*' srcDir/ desDir/
Barre de progression et temps restant
On utilise pv
. L'example suivant crée une archive gzip.
$ pv file | gzip > file.gz
Créer un serveur de fichiers
$ while true; do nc -l 7000 | tar -xvf -; done
il écoute sur le port 7000.
Et du côté client:
tar c myfile | nc localhost 7000
Entendre la prononciation anglaise d'une phrase
$ say() { mplayer "http://translate.google.com/translate_tts?q=$1"; }
Par exemple:
say "hello world"
C'est tout pour maintenant !