14 liens privés
Commande pour réduire une image à 10% de sa taille initiale :
convert source.jpg -resize 10% cible.jpg
Pour utiliser ses propres dotfiles (.bashrc, .vimrc, etc.) locaux sur les serveurs distants, sans avoir à les y stocker ni mettre à jour un par un.
Une interface graphique pour générer des lignes de commandes bash.
Make Linux Script Portable With #!/usr/bin/env As a Shebang - nixCraft · Liens en vrac de sebsauvage
TL;DR:
Ne faites pas :
#!/bin/bash
Faites :
#!/usr/bin/env bash
La commande sleep a comme objectif d'attendre un temps donné.
La commande wait permet d'attendre la fin d'un ou plusieurs processus en arrière-plan.
La commande timeout exécute une commande et la termine si elle dépasse une durée spécifiée. C'est utile pour éviter que des processus ne s'exécutent indéfiniment.
find Music/ -name *.mp3 -exec ma_commande {} \; → applique ma_commande sur les fichiers trouvés par find.
- Le
&en fin de ligne pour lancer en arrière-plan - Si on a oublié le
&, on peut faire un[Ctrl]+[Z] - Après un
[Ctrl]+[Z]on peut lancer unbgpour lancer en background - On peut utiliser le
fgpour ramener en foreground (avant-plan) le dernier processus (ou bien indiquer le PID correspond). - Enfin
nohup(en début de ligne cette fois-ci), s'affranchit du processus du terminal depuis lequel il est lancé pour fonctionner en arrière-plan (ie, on peut fermer la fenêtre).
Pour décompresser plusieurs fichiers *.tar.gz en une seule passe.
for f in *gz; do tar -xzf "$f"; doneComment déterminer sur quel shell on tourne ? Quelques commandes bien choisies :
echo $0ps -p $$pstree $$cat /proc/$$/cmdline
J'ai régulièrement le besoin d'écrire des scripts shell un peu évolués. Il y a quelques mois, j'ai commencé à travailler sur un modèle que je met régulièrement à jour. Aujourd'hui, j'ai travaillé sur la couche pour gérer les logs et c'est pourquoi j'écris cet article.
Ce modèle contient les fonctions
usageethelppour décrire le fonctionnement du programme. La fonctionon_interruptpermet de gérer le signalSIGINTquand le programme est interrompu.La fonction
mainest la fonction qui contient le code principal du script. Elle contient la gestion des paramètres passés au script. Par défaut, plusieurs y sont déjà intégrés :-lpour définir le niveau de log désiré et-hpour afficher l'aide.Enfin, il y a la fonction
logpour afficher des messages de debug avec différents niveaux de criticité. Cela permet de générer des messages qui seront affichés ou pas selon les besoins. Les messages sont colorés selon le niveau de criticité et ils sont redirigés versstderr. Il est également possible d'ajouter la date.Le code source est disponible sur Gitnet et comme toujours, vous pouvez en faire ce que vous voulez !
En conclusion, le développement de ce modèle de script shell a été un projet passionnant et fructueux. En l'enrichissant régulièrement, j'ai pu créer une base solide pour gérer efficacement les fonctionnalités essentielles d'un script.
Un mémo pour les équivalences entre les commandes Bash (Linux) et Dos, Powershell (Windows).
Un article, excellent et très intéressant, expliquant comment bien gérer l'historique bash.