Festival de commandes bash en une ligne
Table of Contents
- 1. Renommer tous les fichiers .jpeg et .JPG en .jpg
- 2. Ne pas sauvegarder les commandes dans l'historique pour cette session
- 3. Sauvegarder les commandes dans l'historique en temps réel
- 4. Ne pas enregistrer la commande dans l'historique bash
- 5. Demander confirmation à l'utilisateur
- 6. Supprimer récursivement tous les fichiesr .html
- 7. Split a string into an array
- 8. Empêcher Flash de tracker tout ce qu'on fait
- 9. Matrix du pauvre
- 10. Protéger un répertoire de rm -rf
- 11. Affichier le nom et la version de sa distro linux
- 12. Quel est mon modèle d'ordi ?
- 13. Comparer des répertoires avec diff
- 14. Partager sa session de terminal en temps réel
- 15. Bouger tous les fichiers des sous-répertoires dans le dossier courant
- 16. Bypasser les alias ou fonctions de la commande
- 17. Transformer un fichier word en pdf
- 18. Conversion de document LibreOffice
- 19. Convertir un texte en majuscules
- 20. Redimensionner une image (en gardant le ratio)
- 21. Synchroniser deux répertoires en filtrant des extensions
- 22. Barre de progression et temps restant
- 23. Créer un serveur de fichiers
- 24. Entendre la prononciation anglaise d'une phrase
Ç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".
1 Renommer tous les fichiers .jpeg et .JPG en .jpg
$ rename 's/\.jpe?g$/.jpg/i' *
2 Ne pas sauvegarder les commandes dans l'historique pour cette session
$ unset HISTFILE
3 Sauvegarder les commandes dans l'historique en temps réel
$ shopt -s histappend ; PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
4 Ne pas enregistrer la commande dans l'historique bash
$ history -d $((HISTCMD-1)) && command_to_run
5 Demander confirmation à l'utilisateur
$ Confirm() { read -sn 1 -p "$1 [Y/N]? "; [[ $REPLY = [Yy] ]]; }
6 Supprimer récursivement tous les fichiesr .html
$ find . -type f -name '*.htm' -delete
7 Split a string into an array
read -a ARR <<<'world domination now!'; echo ${ARR[2]};
8 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
9 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).
10 Protéger un répertoire de rm -rf
$ cd directory; touch ./-i
11 Affichier le nom et la version de sa distro linux
$ cat /etc/issue
12 Quel est mon modèle d'ordi ?
$ sudo dmidecode | grep Product
13 Comparer des répertoires avec diff
$ diff -rq dirA dirB
14 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
.
15 Bouger tous les fichiers des sous-répertoires dans le dossier courant
$ find ./ -type f -exec mv {} . \;
16 Bypasser les alias ou fonctions de la commande
$ \foo
C'est un raccourci de la commande bash command
.
17 Transformer un fichier word en pdf
$ oowriter -pt pdf your_word_file.doc
18 Conversion de document LibreOffice
$ soffice --headless -convert-to odt:"writer8" somefile.docx
19 Convertir un texte en majuscules
$ upper() { echo ${@^^}; }
L'inverse avec lower
.
20 Redimensionner une image (en gardant le ratio)
$ convert -resize '1024x600^' image.jpg small-image.jpg
convert
est une commande qui vient du paquet imagemagick
.
21 Synchroniser deux répertoires en filtrant des extensions
$ rsync -rv --include '*/' --include '*.txt' --exclude '*' srcDir/ desDir/
22 Barre de progression et temps restant
On utilise pv
. L'example suivant crée une archive gzip.
$ pv file | gzip > file.gz
23 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
24 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 !