====== ANTI-SÈCHE BASH ====== Ma collection de commandes Bash qui m'ont tiré d'affaire à la maison ou au travail, ou susceptibles de l'être. Certaines peuvent être évidentes, d'autres non. Cette page sera mon bloc-note perso. Outil très chouette pour décortiquer des commandes à rallonge : https://explainshell.com/ ---- ===== Commandes ===== Rechercher les lignes en commun sur deux fichiers awk 'NR==FNR{arr[$0];next} $0 in arr' file1 file2 cat file1 file2 | sort | uniq -d Afficher les fichiers volumineux (du plus gros au plus léger) du -ak | sort -rn | more Créer une session shell et enregistre la sortie standard dans un fichier script file # Ctrl +D pour quitter Afficher les librairies chargées d'un exécutable ldd Connaître sa distribution Linux cat /etc/lsb-release ou lsb_release -a Connaître la version du kernel utilisé cat /proc/cmdline Se connecter à une BDD Postgres psql -h -d -U -p Tracer les accès d'une application à mon home strace -e trace=file APP 2>&1 | grep "/home" > trace.log Basculer le clavier en QWERTY/AZERTY setxkbmap en / fr Couteau-suisse du traitement de lignes sed -n 'x,yp' file # affiche le contenu entre les lignes x et y sed -n '/A/,/B/p' file # affiche le contenu entre l’occurrence A et B awk '/A/, B/' file # affiche le contenu entre l’occurrence A et B sed -e '/bash*/ s/bash/sh/g' # remplace 'bash' par 'sh' sur toutes les lignes finissant par 'bash' sed '/^$/d' file # retire les lignes vides grep -v '^$' file # retire les lignes vides sed /'foo'/d file # supprime le mot 'foo' d'un fichier tail -n+2 file # saute la première ligne Troubleshooting réseau netstat -su # affiche des infos sur les pertes de paquets netstat -g # affiche les groupes multicast écoutés sur chaque interface ethtool # récupère des infos sur une interface (branchement, ses modes supportés) fuser -v -n tcp 5000 # afficher des infos sur le process utilisant le port 5000 Troubleshooting mémoire vmstat 1 free -m htop -d1 cat /proc/meminfo ===== Scripting ===== Itérer sur des entiers for i in $(seq 1 5); do quelque_chose; done SUBSTITUTIONS * **//echo ${foo%?}//** supprime le dernier caractère de foo * **//echo ${foo%_v.cf}//** supprime le caractère "_v.cf" - pratique pour renommer en masse