Linux Tips & Tricks
Apt
apt-cache policy (package)- Permet de déterminer à partir de quel dépôt est installé / téléchargé un paquet. Ainsi, si jamais plusieurs dépôts proposent le même paquet, il est possible de savoir celui qui aura la plus haute priorité.
apt-cache show (package)- Permet d’obtenir les métadonnées d’un paquet.
Grub
/etc/default/grub GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"- Permet de forcer le nommage des interfaces réseau en ethX plûtot que enpXsX. Les interfaces en enpXsX sont succeptibles de changer aléatoirement en cas de modification matérielle ou montée de version logicielle.
/etc/default/grub GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8" GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" update-grub update-initramfs -u -k all sudo systemctl enable serial-getty@ttyS0.service- Permet d’activer GRUB / un shell sur le port console.
LVM
lvmconfig --validate- Permet de vérifier la syntaxe de configuration du fichier
/etc/lvm/lvm.conf
- Permet de vérifier la syntaxe de configuration du fichier
Bash
~/.bashrc export HISTSIZE=-1 export HISTFILESIZE=-1 export HISTTIMEFORMAT="%F %T " export PROMPT_COMMAND="history -a; $PROMPT_COMMAND" shopt -s histappend- Permet de sauvegarder de manière illimitée l’historique bash.
grep -rnw '/path/où/chercher/' -e "string"- Permet de chercher une string de manière récursive dans un dossier voulu.
Proxmox
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/kernel-clean.sh)"- Permet de désinstaller les anciennes versions du noyau Linux qui subsistent en cas de mise à jour Proxmox.
Git
git rebase -i sha256commit(^) EDITOR=nano git rebase -i --root- Permet de lancer un rebase interactif à partir du commit indiqué (^ indique son parent) ou bien à partir de la racine (–root)
git fetch --all git reset --hard origin/main- Permet de forcer git à revenir à la version sur le serveur (pour annuler les modifications locales)
Qemu
qemu-img convert -f vmdk -O qcow2 source.vmdk destination.qcow2- Permet de convertir une image de disque virtuelle VMDK en QCOW2.
virt-sparsify --tmp /tmp_folder_with_disk_size_free_space/ --compress entree.qcow2 sortie.qcow2- Permet de nettoyer une image qcow2, avec zerofree puis compression et export.
VirtualBox
VBoxManage modifymedium disk "/chemin/vers/image/disque" --compact- Permet de compacter un fichier d’image disque
zerofree -v /dev/sdaX- Permet de remplir de zéros les emplacements vides d’un disque dur Linux formaté en ext4.
systemd
systemctl list-jobs systemctl list-units --type=service --state=activatingIdentifier les services qui sont en cours de démarrage, pouvant bloquer le démarrage complet de l’hôte.
systemctl status mon-service.service journalctl -u mon-service.service -f- Permet d’approfondir pourquoi un service ne démarre pas en regardant l’intégralité de ses logs.
systemctl --failedIdentifier les services qui sont en cours d’échec (état général visible via
systemctl status).sudo systemctl reset-failed- Permet de réinitialiser l’état d’une unit considérée comme failed.
systemd-analyze systemd-analyze blame # Liste les services les plus longs à démarrer systemd-analyze critical-chain # Affiche la chaîne critique avec le service précis qui bloque la séquence systemd-analyze plot > boot.svg # exporte au format svg la chaîne de démarrage systemctl list-dependencies nom-du-service # Affiche l'arbre de dépendances d'un service lent- Permet d’analyser le temps de démarrage d’un système Linux.
journalctl # permet de voir du début à la fin journalctl -b # permet de voir les logs du boot journalctl -b -1 # permet de voir les logs du boot précédent journalctl -r # permet de voir de la fin au début journalctl -f # permet de voir en temps réel journalctl -u nomduservice # permet de scoper un service spécifique journalctl -n 50 # permet d'afficher les 50 premières lignes journalctl --since "1 hour ago" --until "2 days ago" # permet de ciber une période de temps journalctl -p err # permet de voir uniquement les erreurs (emerg, alert, crit, err, warning, notice, info, debug) journalctl -k # permet de voir les logs noyau (dmesg) journalctl --no-pager # désactive la pagination journalctl -o json-pretty # active une sortie json pretty- Permet de voir et naviguer dans les logs d’un système Linux.
openssh
~/.ssh/config Host monserveur HostName mon.serveur.fr User utilisateur ForwardAgent yes- Permet de pré-définir / enregistrer des paramètres de session SSH pour voir se connecter en une seule commande rapidement.
ForwardAgent yespermet de passer l’agent SSH du client vers l’hôte pour transférer les clés SSH entre les deux.
Linux
cat /proc/cmdline- Permet d’afficher les arguments de lancement initramfs / dracut du noyau linux actuellement démarré.
/etc/default/keyboard- Permet de modifier le keyboard layout d’une console.
- Il faut ensuite exécuter la commande
setupconpour appliquer.
- Il faut ensuite exécuter la commande
- Permet de modifier le keyboard layout d’une console.
apt install parted -y partprobe /dev/sda- Permet d’actualiser la table de partitions sans avoir à redémarrer le linux.
NetworkManager
systemctl mask NetworkManager-wait-online.service- Permet de désactiver l’attente que NetworkManager ai un réseau de monté pour continuer le boot du linux. Utile sur un serveur mais inutile sur un desktop.
Distrobox
Plein de commandes sans explication pour distrobox. Superbe outil permettant de faire tourner des distributions Linux dans des conteneurs avec le forward X11 etc nativement gérés.
distrobox create --name mabox --image ubuntu:26.04 distrobox create --name mabox2 --clone box distrobox create --home /chemin/home/personnalisé distrobox create --root --name test distrobox create --name unshared --unshare-netns --unshare-dev --unshare-ipc --unshare-process --unshare-all distrobox create --name nopassword --absolutely-disable-root-password-i-am-really-positively-sure distrobox create --name avecsystemd --init --aditionnal-packages "systemd" distrobox enter mabox distrobox enter mabox -- htop distrobox ls distrobox stop mabox distrobox rm mabox distrobox upgrade --all distrobox-export --app vlc distrobox-export --bin /usr/bin/htop --export-path ~/.local/bin distrobox-export --service syncthing distrobox-export --app vlc --delete distrobox-host-exec flatpak run org.mozilla.firefox sudo ln -s /usr/bin/distrobox-host-exec /usr/local/bin/docker distrobox-ephemeral -i alpine:latest