To write bash one-liner functions, don't forget to add a semi-column at the end of the commands:
$ grep_file() { grep "$@" file; }
vault -autocomplete-install
pour avoir l'autocompletion de la command line Vault
Tous les raccourcis pour se déplacer sur une ligne de commande en une image
Pour extraire une valeur d'un XML avec grep
:
grep -oPm1 "(?<=<title>)[^<]+"
Example:
$ echo "$data"
<item>
<title>15:54:57 - George:</title>
<description>Diane DeConn? You saw Diane DeConn!</description>
</item>
<item>
<title>15:55:17 - Jerry:</title>
<description>Something huh?</description>
$ title=$(grep -oPm1 "(?<=<title>)[^<]+" <<< "$data")
$ echo "$title"
15:54:57 - George:
un petit rappel bien complet sur les manipulations de chaines de caractères avec bash
Pour utiliser des alias avec watch
, il suffit de créer un alias pour watch
.
$ alias watch='watch '
$ alias ll='ls -l'
$ watch ll
Commenter SendEnv LANG LC_*
dans /etc/ssh/ssh_config
pour corriger les erreurs de locales quand on se connecte en SSH depuis un poste Linux en locale FR vers un serveur Linux ne possédant pas cette locale.
set -e
: sort automatiquement du script si une commande échoueset -u
: sort automatiquement du script si une variable n'est pas initialiséeset -o pipefail
: sort automatiquement du script si une commande dans un pipe échoueIFS=$'\n\t'
: les chaînes de caractères séparées par un espace sont considérées comme une même chaîne de caractère (seul le saut de ligne et la tabulation sont considéré comme des séparateurs standards)function finish { ... }
&trap finish EXIT
: les instructions de la fonction finish seront toujours exécutés en sortie du script (ex: supprimer des fichiers temporaires, arrêter ou redémarrer une application, ...)
Pour travailler avec des templates de fichiers de conf jinja2 depuis le shell
#!/bin/bash
function finish {
# Your cleanup code here
}
trap finish EXIT
Utile pour supprimer un répertoire temporaire quand le script s'arrête par exemple, mais aussi pour redémarrer un service qu'on arrête pour maintenance en début de script
Un shell en python
Un système pour mettre des commandes shell dans une queue FIFO puis les exécuter les unes à la suite des autres en dépilant la queue
Une webapp javascript pour avoir un shell sur son serveur depuis le navigateur chrome.
Utile quand on doit accéder à son serveur depuis un endroit ou le SSH est bloqué.
J'ai utilisé l'image docker fournie par le projet avec un nginx en front + ssl + authentification.
Ça marche nickel et ça me donne enfin une raison de jouer avec docker.
Attention cette webapp ne marche qu'avec Chrome (KO sur Firefox)
Utiliser la variable de type array $PIPESTATUS
en bash pour obtenir le code retour d'une commande après un pipe |
Script pour publier rapidement sur un serveur web des fichiers à partager
Les normes de scripting Shell en vigueur chez Google.
Également dispo pour les autres langages de développement utilisées par Google (C++, Java, Python, HTML/CSS, JavaScript...) à cette adresse:
Pas mal d'astuces sympa dont:
set -u
(ou set -o nounset
) pour que le script se termine s'il doit utiliser une variable nom définie. A tester
Analyseur syntaxique de script shell en ligne ou à télécharger
Un ebook sur vim accessible à tous et en prix libre. A lire et appliquer pour (peut-être) remplacer SublimeText comme éditeur de choix
Pour optimiser la taille d'un JPEG:
jpegtran -optimize -outfile $newfile.jpg $oldfile.jpg
jpegtran -progressive -outfile $newfile.jpg $oldfile.jpg