Astuces en vrac
Voici quelques astuces que j’ai découvertes ces derniers mois et que j’ai pensées à noter pour plus tard, et aussi pour les partager:
Ligne de commande
- Quand la commande
realpathn’est pas disponible, la commandereadlink -fpeut la remplacer; -
pwd -Présout les liens symboliques; -
less -irend la recherche insensible à la case (taper-i) à l’intérieur d’unlessmarche aussi; -
git log --oneline -- path/to/directory/liste rapidement toutes les commits qui ont affecté un répertoire.
Sudo
sudo une-commande-qui-genere-du-texte >> fichier-not-writable ne marchera pas, parce que sudo est utilisé par la commande seulement, pas pour la redirection. Il faut utiliser sudo tee
sudo une-commande-qui-genere-du-texte | tee -a fichier-not-writable
Environnement hostile (netcat non disponible)
Pour tester si un port est ouvert en bash, lorsque ni netcat, ni telnet ne sont pas disponible ou installable:
(echo > /dev/tcp/skinner/22) >/dev/null 2>&1 \ && echo "It's up" || echo "It's down"
Javascript
document.getElementsByTagName('img') retourne une [[https://developer.mozilla.org/en-US/docs/Web/API/NodeList][Nodelist]], et non un [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array][array]]. Heureusement l’opérateur ... va vous aider:
[...document.getElementsByTagName('img')].forEach(t => {t.remove()})
Ansible:
- Attention à ne pas confondre:
database: "{{ ansible_env.MYSQL_DATABASE }}"etuser: "{{ lookup('env', 'MYSQL_USER') }}":-
envrécupère une variable de l’environnement de la machine source; -
ansible_envrécupère une variable de l’environnement de la machine cible.
-
- Le module
rsyncpeut être utilisé derrière un bastion ssh uniquement avec l’optionuse_ssh_args: yes