Linux / shell
Shell hints / aide
Commandes “one-line” |
|
Connaître l’architecture de sa machine | dpkg --print-architecture |
Chercher les fichiers qui prennent de la place | ncdu |
Archiver au format :
|
tar -cjf "$(date '+%Y.%m.%d-%Hh%Mm%Ss').x.tar.bz2" htdocs/* |
Archiver au format :
|
tar -czf "$(date '+%Y.%m.%d-%Hh%Mm%Ss').x.tar.gz" htdocs/* |
Redirection de la sortie |
|
stderr vers stdout |
command 2>&1 |
stdout vers un fichier et stderr vers un autre |
command > out > 2>error |
stderr vers stdout (&1) puis stdout vers un fichier |
command >out 2>&1 |
stderr vers stdout (&1) puis stdout ajouter un texte et l’afficher, sans problème de buffering (seule solution trouvée qui fonctionne chez moi) |
echo "bonjour" 2>&1 | awk -W interactive '{ print "Site SokoBan > "$0; fflush(stdout); }' |
Tout rediriger vers un fichier |
Exemple court :echo "test" &> /dev/null
Exemple long : |
Nettoyage de disque |
|
Comment supprimer ses vieux noyaux (= Mint, Ubuntu etc.) Oui c’est aussi simple que ça ! |
sudo purge-old-kernels
|
pip (= pip3) |
|
Mettre tous les packages pour une version spécifique de python (ici 3.7) | sudo -H LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/python3.7 -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | sudo -H LD_LIBRARY_PATH=/usr/local/lib xargs -n1 /usr/local/bin/python3.7 -m pip install -U
|
Vider le cache complet des packages puis enchainer une mise à jour des packages |
|
Ignorer pour toujours une mise à jour d’un packet (ex ici, avec Python2.7 qui n’est plus maintenu) |
|
Mettre à jour tous les packages puis arrêter l’ordinateur (c’est le shutdown -h now quej’ai longtemps cherché, sudo halt ” et autres ne fonctionnent pas
|
|
copy/paste vim (trailing whitespaces!) |
|
Solution au problème : quand on copie colle sous vim avec la souris et qu’il ajoute plein d’espaces à la fin Note : le -b signifie “CLIPBOARD”c’est ce qui change tout ! |
xsel -b -o | sed 's/[ \t]*$//' | xsel -b
|
Sous Mint : – aller dans les raccourcis claviers ; – ajouter un nouveau personnalisé ; – ce dernier doit lancer un script séparé mais dans un terminal = gnome-terminal -e (sinon le code seul, en direct, ne fonctionne pas) |
gnome-terminal -e /xxx/trim.copy.paste.sh
et dans le fichier
|
https |
|
Regénérer avec acme.sh : | root@inyab2:~# acme.sh --renew -d hqf.fr |
Pour génerer le https, avec création de tous les certificats + mise en place des renouvellements, utiliser certbot : | root@inyab:~/certbot# ./certbot-auto |
Déplacer certbot dans le dossier de letsencrypt pour être plus homogène : | cd /etc/letsencrypt && mv ~/certbot . |
S’il y a des problèmes d’accents, ordre shell pour tout chercher : | grep -r -P '[^\x00-\x7f]' /etc/apache2 /etc/letsencrypt /etc/nginx |
Renouvellement automatique : | cd /etc/letsencrypt/certbot && ./certbot-auto renew |
Si jamais ça ne fonctionne pas, mettre toute la configuration en commentaire, puis demander à générer un certificat : | cd /etc/letsencrypt/certbot && ./certbot-auto --nginx -d www.monsite.com |
Autre option : faire son dossier à la main, s’assurer que nginx peut y accéder (= faire un fichier manuellement et l’ouvrir via le navigateur), et lancer certbot en précisant où déposer les certificats. | cd /etc/letsencrypt/certbot && ./certbot-auto certonly -d www.ergofip.com,ergofip.com,configurateur.ergofip.com -w /web/htdocs/ergofip/htdocs/ergofip/ |
Changer le prompt |
|
J’ai vu plein de choses, de discussions un peu partout, mais celle qui a fonctionné le mieux 100% sans fautes est ici, et je résume dans ce qui suit. | |
Séquence de caractères “non-visibles” = qu’on veut cacher, entourée par \[ et \]
|
\[ code \] |
Dans cette séquence de caractères “non-visibles”, ajouter le code d’échappement qui précise qu’on veut mettre une couleur \033[X;YYm , et remplacer :– X par 0 (foncé) ou 1 (= plus clair)– YY par un code couleur
|
\[\033[X;YYm\] |
Black | \[\033[0;30m\] |
Blue | \[\033[0;34m\] |
Brown | \[\033[0;33m\] |
Cyan | \[\033[0;36m\] |
Green | \[\033[0;32m\] |
Purple | \[\033[0;35m\] |
Red | \[\033[0;31m\] |
Finir par “reset à la couleur de base” | \[\033[0m\] |
Exemple de prompt qui affiche toutes les couleurs et qui termine par un reset à la couleur du prompt :export PS1="\[\033[0;30m\]Black\[\033[0;34m\]Blue\[\033[0;33m\]Brown\[\033[0;36m\]Cyan\[\033[0;32m\]Green\[\033[0;35m\]Purple\[\033[0;31m\]Red\[\033[1;30m\]Black\[\033[1;34m\]Blue\[\033[1;33m\]Brown\[\033[1;36m\]Cyan\[\033[1;32m\]Green\[\033[1;35m\]Purple\[\033[1;31m\]Red\[\033[0m\]" |
Déclaration de script |
|
Shebang le meilleur Merci stackoverflow |
#!/usr/bin/env bash |
La calculette version Linux = 10 fois plus puissante, ne pas oublier l'option "l" pour calculer avec des virgules (man bc ) |
bc -l |
Outils de capture d'écran |
|
|
sudo apt-get install scrot sudo apt-get install shutter
|
Note : pour mettre shutter par défaut, lire la documentation ici. |
Notifications scriptées sous gnome |
|
Comment envoyer un message sous gnome (= Mint, Ubuntu etc.) |
#!/bin/bash
|