Aide-mémoire des commandes Linux pour Debian : administration, réseau et diagnostic
Référence pratique des commandes Linux pour administrer Debian ou Ubuntu : système, fichiers, droits, processus, réseau et journaux. À garder sous la main.

Tu as toujours rêvé de devenir un super administrateur Linux ? Avoue-le.
Ce guide rassemble les commandes essentielles pour administrer un système Debian ou Ubuntu et garder le contrôle total de ta machine: système, fichiers, utilisateurs, droits, processus, réseau et services.
La liste n’est pas exhaustive, mais elle couvre ce qu’un administrateur utilise vraiment. Certaines de ces commandes ont 40 ans. D’autres sont récentes. Toutes cohabitent dans le même terminal, comme si le temps n’avait pas de prise sur un bon man. Plus qu’un guide, c’est un voyage dans le temps où passé, présent et futur se retrouvent au même prompt.
Munis-toi de ton terminal et c’est parti.
Les prérequis #
Un système Debian ou Ubuntu. Un accès sudo. Et l’envie de ne plus jamais avoir à googler une commande à 2h du matin.
Rappel aux “Substitute Users” :
su= Tu empruntes le badge d’un collègue pour te faire passer pour lui dans le bâtiment. Tu as besoin de son code secret.sudo= Tu gardes ton propre badge, mais tu as reçu une autorisation spéciale de la direction pour ouvrir certaines portes réservées, et tu utilises ton propre code.
Dernier point avant d’entrer dans le vif : les commandes de gestion des services dépendent du système d’init de ta distribution. Deux écoles cohabitent.
- SystemD (Debian 8+, Ubuntu 15.04+) : tu utilises
systemctletjournalctl - SysV Init (systèmes plus anciens) : tu utilises
/etc/init.d/etservice
Pour savoir lequel tourne sur ta machine : ps --pid 1. Si tu vois systemd, la réponse est là.
Obtenir des informations sur le système d’exploitation #
Avant d’agir, connais ton terrain. Noyau, RAM, processeur, version de l’OS : un root god ausculte sa machine avant de toucher quoi que ce soit.
lsb_release -a || uname -a || cat /etc/issue: obtenir des informations sur le systèmescreenfetch || neofetch: obtenir des informations sur l’OS (noyau, nom de machine)echo "${XDG_CURRENT_DESKTOP}": connaître la version du bureauhelp <commande>: afficher le guide sur l’utilisation d’une commandeman <commande>: afficher le manuel d’une commandeman -L en <commande>: afficher le manuel en Anglais
info <commande>: afficher le guide sur l’utilisation d’une commandeinfo --apropos <commande>: trouver toutes les pages infos se rapportant à un mot cléinfo --show-options <commande>: Plus de détails sur les options
apropos <commande>: afficher seulement une courte description d’une commandewhatis <commande>: afficher une courte description d’une commande dans le terminal<commande> --help: afficher l’aide d’une commande dans le terminaleg <commande>: fournir des exemples d’utilisationjournalctl || cat /var/log/syslog: consulter le journal système systemdvmstat: info ram, swap, CPUfree: indique l’allocation de la ram et la mémoire libre restante/proc/: système de fichiers virtuel du noyau, tout y est exposé en lecturecat /proc/version: informations sur l’OS (noyau, nom de machine)cat /proc/meminfo: fichier qui contient de nombreuses informations sur la mémoire. Il suffit d’en afficher la sortir avec cat/proc/meminfocat /proc/cpuinfo: fichier qui contient des infos sur le processeurcat /proc/version: fichier qui contient des infos sur le noyau|cat /proc/mounts: informations sur les systèmes de fichiers déjà montéscat /proc/devices: informations sur les périphériques disponiblescat /proc/modules: informations sur les modules activés dans le noyaucat /proc/cmdline: informations sur les paramètres donnés au noyau lors de la mise en route
Gérer les fichiers et les dossiers #
Sur Linux, tout est fichier. Répertoires, permissions, liens symboliques : maîtriser l’arborescence, c’est tenir les rênes du système.
pwd: afficher le répertoire courantls: afficher le contenu du répertoire courantls -lahF --color=auto
Information
voiralias ll=ls -lahFls -a: afficher tous les fichiers et répertoires cachésls -F: indique le type d’élémentls -l: liste détailléels -h: afficher la taille en Ko, Mo, Go…ls -t: trier par date de dernière modification
tree: lister les fichiers sous forme d’arborescencetree -a: ajouter les fichiers caché à la liste
cd: changer de répertoire On peut « compléter » un chemin avec TABtouch: créer un fichiermkdir: créer un répertoiremkdir -p: Il sert à créer tous les répertoires intermédiairesmkdir -p animaux/vertebres/chat: Créer 3 répertoires
du: Connaître la tailledu -abh /home/du -a: afficher la taille des répertoires, des sous-répertoires ET des fichiersdu -b: afficher la taille précisedu -h: séparateur de millierdu -s: afficher juste le grand total
Par défaut du affiche la taille en Ko les répertoires (soit 4096 octets la taille par défaut pour les répertoires vides)
cat: Lire un fichiercat -n: afficher des numéros de lignecat -A: lire le fichier et afficher les caractères invisibles
tac: lire le fichier à l’enversless: lire un fichier page à page
Navigation dans less :
ENTREE ou y OU ↑ ou ↓: faire défiler ligne par ligneESPACE ou b OU PAGIN UP ou PAGIN DOWN: faire défiler les pagesq: arrête la lecture du fichier. Cela met fin à la commande less.=: indique où tu en es dans le fichier (numéro des lignes affichées et pourcentage).h: affiche l’aide (toutes les commandes que je t’apprends ici, je les tire de là). Tapeqpour sortir de l’aide./: tape/suivi du texte que tu recherches pour lancer le mode recherche. Fais Entrée pour valider. Pour ceux qui savent s’en servir, sache que les expressions régulières sont acceptées.n: après avoir fait une recherche avec/, la touche n te permet d’aller à la prochaine occurrence de ta recherche. C’est un peu comme si tu cliquais sur le bouton « Résultat suivant ».N: pareil que n, mais pour revenir en arrière.most: lire les fichiers commeless, mais avec la coloration syntaxique activée par défauthead: afficher les premières ligne d’un fichierhead -n <nombre>: afficher un nombre de ligne
tail: afficher les dernières ligne d’un fichiertail -n <nombre>: afficher un nombre de lignetail -f -s 3 <fichier>: recherchera les changements toutes les trois secondestail -f: synchroniser toutes les n secondestail -f /var/log/auth.log
cp: copier un fichiercp -R: copier un répertoiremv: déplacer ou renommer
Pas de distinction entre les fichiers et les répertoire, ça marche pour les 2
rm: supprimer un fichierrm -i: demander confirmationrm -r: supprimer un répertoirerm -f: forcer la suppressionrm -v: mode verbeux
rmdir: effacer les dossiers videsln: créer un lien (ou raccourci)ln -s: créer un lien symboliqueln -s <répertoire_cible> <nom_du_lien>ln -s /opt/node/bin/node /usr/local/bin/node: rendre une commande accessible globalementln -s ~/Documents ~/Desktop/Docs: raccourci vers un dossier
Lien symbolique = (un peu comme les raccourcis Windows) (panneau de direction)
Information
Lien physique (lien directe) = 2 noms (inodes) pour un même fichier (Lien physique pas possible sur les répertoire) = CLONE
Lien symbolique = (un peu comme les raccourcis Windows) (panneau de direction)
Extra :
pushd<->popd: aller dans un dossier et y revenir facilement (pile de navigation)od -c: afficher les caractères invisibles d’un fichierxargs: construire et exécuter des commandes depuis l’entrée standard (chaîne les résultats d’un pipe)
Administrer des utilisateurs #
Tu décides qui a le droit d’exister sur ton système. Crée les comptes, distribue les badges d’accès, révoque-les. Le root god ne fait pas de sentiment.
cat /etc/passwd: consulter la liste des utilisateurs
Information
/etc/shadowid: obtenir des informations sur l’utilisateur (UID et GUID)sudo: passer en mode administrateur de manière permanentesudo visudo: éditer/etc/sudoerssudo -k: termine une session sudo éventuellement ouverte, cela assure que la prochaine instruction sudo demandera bien un mot de passe.sudo -s: ouvre le shell spécifié dans/etc/passwdpour l’utilisateur cible (root par défaut)sudo -i: simule un login initial et ouvre le shell spécifié dans/etc/passwdpour l’utilisateur cible (root par défaut). Cela signifie que des fichiers spécifiques tels que .login ou .profile seront lus par le shell ainsi lancésudo -E: préserve l’environnement du shell depuis lequel la commande est lancéesudo -u <user>: lancer la commande en tant que l’utilisateursudo -g <group>: lancer la commande avec le groupe bar spécifié (le groupe spécifié est le groupe primaire de l’utilisateur cible indiqué dans/etc/passwd)sudo -i -u <user>: permet de se connecter en tant que l’utilisateur toto (ne pas utiliser ces options pour root)
su <user>: se connecter avec un autre compte utilisateursu root
adduser <user>: ajouter un nouvel utilisateur + créer répertoire homesudo adduser <user> <group>: ajouter un utilisateur à un groupe
usermod: modifier un utilisateursudo usermod -l: renommer l’utilisateursudo usermod -l <nouveau user> -d <nouveau répertoire home> -m <ancien user>: renommer l’utilisateur (le nom de son répertoire personnel ne sera pas changé par contre)sudo usermod -g: changer de groupesudo usermod -g <group> <user>: changer de groupe mais supprime l’anciensudo usermod -aG <group> <user>: ajouter un groupe sans supprimer l’anciensudo usermod -d /home/<nouveau-répertoire> -m -l <nouveau-nom> -c <nouveau-nom-complet> <ancien-nom>sudo usermod --expiredate 1 <nom_utilisateur>: verrouiller un comptesudo usermod --expiredate '' <nom utilisateur>: déverrouiller un compte
passwd <user>: changer le mot de passesudo passwd -e <user>: forcer l’utilisateur a changer le mot de passe
deluser <user>: supprimer un comptesudo deluser --remove-home <user>: supprimer un utilisateur + répertoire homesudo deluser --remove-all-files <user>: supprimer un utilisateur + tous les fichiers du système possédés par l’utilisateursudo deluser <user> <group>: supprimer l’utilisateur d’un groupe
Gérer des groupes - créer et administrer des groupes #
Même les simples utilisateurs ont besoin d’organisation. Les groupes, c’est la manière élégante de gérer les accès collectifs sans distribuer des clés à tout le monde.
cat /etc/group: consulter la liste des groupesgroups: afficher les groupes de l’utilisateuraddgroup <group>: créer un groupesudo addgroup <user> <group>: ajouter un utilisateur à un groupe
groupmod: modifier un groupegpasswd: gérer les administrateurs d’un groupedelgroup <group>: supprimer un groupesudo delgroup <user> <group>: supprime l’utilisateur d’un groupe
chgrp <group> <fichier>: Changer le groupe propriétaire d’un fichiernewgrp <group>: changer (switcher) de groupe
Gérer les propriétaires d’un fichier #
Chaque fichier a un propriétaire. Et ce propriétaire, c’est toi qui le désignes. chown est le tampon officiel du root god.
chown <user> <fichier>: changer le propriétaire d’un fichiersudo chown <user>:<group> <fichier>sudo chown -R <user>:<group> <répertoire/>sudo chown <user>:<group> <fichier>: changer le groupe propriétaire d’un fichiersudo chown -R <user>:<group> <répertoire/>: affecter récursivement les sous-répertoires
chgrp <group> <fichier>: changer le groupe propriétaire d’un fichiersudo chgrp -R <group> <fichier>
Modifier les droits d’accès d’un fichier ou d’un dossier #
Lecture, écriture, exécution. Trois bits qui décident qui peut faire quoi. Un chmod bien placé vaut mieux que dix conversations sur la politique de sécurité.
chmod ### <fichier>: réaffecter les droits sur un fichierchmod 755 script.sh: exécutable par tous, modifiable uniquement par le propriétairechmod 644 fichier.txt: lisible par tous, modifiable uniquement par le propriétairechmod 700 cle-privee.key: accessible uniquement par le propriétairechmod -R ### <répertoire/>: réaffecter les droits sur un répertoire
umask: affecter des droits à la création d’un fichier ou d’un répertoireumask u=rwx,g=rwx,o=-
Rechercher des fichiers ou des dossiers sur le disque #
Un fichier peut se cacher n’importe où dans l’arborescence. find est ta lampe torche dans ce labyrinthe. Et il ne manque jamais sa cible.
locate <fichier>: rechercher un fichier par son nom
Information
locate nécessite une base de données à jour. Lance updatedb avant de l’utiliser (ou après un ajout de fichiers).find <ou> <quoi> <comment>: rechercher un fichier sur le disque
find parcours le disque - Ou Quoi Comment
find -name: rechercher par nomfind -iname: rechercher par nom (insensible à la casse)find -size: rechercher à partir de la taille (ex: -size +10M)find -atime: rechercher à partir de la date de dernier accès (ex:-atime -7)find -type d: rechercher uniquement des répertoires (directories) ;find -type f: rechercher uniquement des fichiers (files).find * -type -f -print: permet d’afficher les résultats sans./find -printf "%p - %u\n": Afficher les fichiers de façon formatéefind -delete: supprimer les fichiers trouvésfind <chemin> -name <expression> -ok <commande> {} \;: exécuter une commande sur chaque résultat avec confirmationfind /tmp -name "*.tmp" -ok rm {} \;: supprimer les fichiers.tmpun par un après confirmation
REGEX
find / -regextype "posix-extended" -regex ".*\/a.*a\.txt" 2> /dev/nullAttention dans ce cas de figure -regex remplace -namefind / -regextype "posix-egrep" -iregex ".*\/a.*a\.txt" 2> /dev/null
Voir page find -regex
Attention
Gérer l’affichage des informations #
Les données brutes ne servent à rien si tu ne sais pas les lire. Filtrer, trier, compter, comparer : grep, sort, awk et leurs cousins font de toi un analyste, pas juste un opérateur.
grep <expression> <fichier>: rechercher un mot dans un fichier (compatible regex)grep -i: ignorer la casse (insensible aux majuscules/minuscules)grep -n: afficher le numéro de lignegrep -r: rechercher dans les fichiers du répertoire -rgrepgrep -E: expression régulières,egrepou -e ou -P (Perl)grep -v: inverser la rechercheless /etc/apt/sources.list|grep -v "#"
grep -o: afficher l’expression seulegrep -w: attraper seulement un motgrep -P: utiliser regex perlgrep '^$' <fichier>: afficher les lignes videscat /etc/passwd/:grep -P '10[0-9]{2}': afficher la liste des utilisateurs créés par root
history | grep <commande>
sort: trier les lignes de texte par ordre alphabétique dans un fichiersort -o: écrire le résultat dans un fichiersort -r: trier en ordre inversesort -R: trier aléatoirementsort -n: trier des nombres
wc: compter le nb de lignes, mots et caractères d’un fichier
Attention
wc -l: compter le nombre de ligneswc -w: compter le nombre de motswc -c: compter le nombre d’octetswc -m: compter le nombre de caractèresuniq: supprimer des lignes en double dans un fichieruniq -c: compter le nombre d’occurrenceuniq -d: afficher uniquement les lignes présentes en double
cut: couper les lignes d’un fichier à l’aide d’un délimiteurcut -d: indique quel est le délimiteur dans le fichiercut -f: indique le numéro du ou des champs à coupercut -d <délimiteur> -f <numéro du champ> <fichier>cut -d':' -f1,3 /etc/passwd: extraire le login (col 1) et l’UID (col 3) séparés par:
column: transformer un texte en tableau grace à un délimiteurcolumn -s <délimiteur> -t <fichier>
tr: remplacer des caractères (moins complet quesed)tr "Jean" "Michel" < fichier.txt: remplacer tous les termes Jean par Micheltr -s " " ";" fichier.txt: remplacer les espace blanc consécutif par un point virgule
sed: remplacer des caractères (compatible regex)sed -i: écrire le résultat sur le disquesed [option] 's/<expression à remplacer>/<nouvelle expression>/g': remplace toutes les expressions par la nouvellesed "s/<body>/<body> $a/g" index.html: (doubles quotes pour interpréter les variables et\|car $a contient déjà un slash )sed -z "s/Dupond/Dupont/2" fichier.txtsed -i '1s/^/your text\n/' <file>
awk: traiter et transformer du texte colonne par colonne (plus puissant quegrep, plus lisible quesedpour les données tabulaires)awk '{print $1}' fichier.txt: afficher la première colonneawk -F':' '{print $1}' /etc/passwd: afficher les logins (délimiteur:)awk '{sum += $1} END {print sum}' nombres.txt: sommer une colonne de nombresawk '$3 > 1000' /etc/passwd: filtrer les lignes où la 3e colonne (UID) dépasse 1000ps aux | awk '{print $1, $11}': afficher l’utilisateur et la commande de chaque processus
rename: renommer des fichiersrename -n: tester de manière provisoirerename -n 's/(.*)-(.*)\.txt/$2 - $1.txt/g ' francois-pignon.txtrename -n 'y/-/_/g ' francois-pignon.txty traduit-par_
cmp: comparer deux fichiersdiff: afficher les différences entre 2 fichiers texte (ligne par ligne)diff --color=always -u document1.txt document2.txt
patch: appliquer un fichier diff à un fichier source (l’inverse dediff)join: joindre deux fichiersnl: lire et numéroter les lignes
Gérer les disques #
L’espace disque, c’est fini. Savoir qui l’occupe, comment partitionner et comment monter un lecteur : des réflexes de base que tout administrateur doit avoir.
df: % d’utilisation du disquedf -h: séparateur de millier
fdisk: lister les disques ou partitionsfdisk -l: lister tous les disques avec détails
lsblk: lister les disques ou partitions (permet de voir une clé USB)mount: monter un lecteur pour y accédermkdir /media/<dossier>mount -t <type>: préciser le Système de fichiermount /dev/<sd??> /media/<dossier>mount /dev/<sdb??> /mnt/
umountumount /mnt/: démonter un lecteur (un disque)
Gérer les paquets #
Sur Debian, apt est ton gestionnaire de catalogue. Tu installes, tu mets à jour, tu désinstalles. Proprement, avec ses dépendances. Pas comme sous Windows.
Information
cat /etc/apt/sources.list: afficher la liste les dépôtscat /etc/apt/sources.list | grep -v "#"apt-get update: mettre à jours la liste des paquets disponibles et les maj disponiblesapt-get list --upgradable: afficher la liste des paquets à mettre à jourapt-get upgrade: mettre a jour les paquetsdo-release-upgrade: mettre à jour le systèmedo-release-upgrade -d: forcer la mise à niveaudo-release-upgrade --check-dist-upgrade-only: vérifier une proposition de mise à niveaudo-release-upgrade --sandbox: tester la mise à niveau avant de la déployer
apt-cache <commande>apt-cache search <paquet>: rechercher un paquetapt-cache search <paquet> | grep <expression>apt-cache madison <paquet>: afficher les différentes versions de paquetapt-cache policy <paquet>: savoir si un paquet est installéapt-cache depends <paquet>: afficher la liste de toutes les dépendances d’un paquet et la liste de tous les paquets possibles qui satisfont ces dépendances
apt-get install <paquet>: installer un paquetsudo apt-get install -d <paquet>: installer un paquet avec ses dépendances
apt-get autoremove <paquet>: désinstaller un paquetsudo apt-get autoremove --purge <paquet>: désinstaller un paquet et supprimer aussi les fichiers de config
dpkg: gérer les paquets en localdpkg-reconfigure <paquet>: reconfigurer un paquetdpkg -l: lister tous les paquets installésdpkg --status <paquet>: savoir si un paquet est installédpkg --get-selections: savoir si des paquets sont installés
gdebi <paquet.deb>: installer des paquets .deb en source externe
REDHAT yum update
Information
Autre système DEBIAN aptitude apt-get && aptitude full-upgrade
REDHAT yum update
Transferer des données #
SSH, SCP, rsync : la sainte trinité du transfert sécurisé. Parce que copier avec une clé USB en 2024, c’est non.
ssh <user>@<host>(IP local ou public) : se connecter au serveur en SSH (port 22 par défaut)ssh <user>@<host> -p <port>: se connecter au serveur en SSH avec un port spécifique
Attention
ssh <user>@<host> 'ls -a > ~/test.txt': exécuter une commande sur le serveur- Interdire ou autoriser des utilisateurs
vi /etc/ssh/sshd_configAllowUsers user1 user2: Autorise seulement ces utilisateursAllowGroups group1 group2: idem pour les groupesDenyUsers user1 user2DenyGroups group1 group2
- Interdire ou autoriser des utilisateurs
wget <url>: télécharger un fichierwget -c <url>: reprendre un téléchargement annuléwget -P <répertoire de destination> <url>: pour spécifier un répertoire de destinationnohup wget <url>: lancer un téléchargement en tâche de fondwget --background <url>: lancer un téléchargement en tâche de fond
scp <source> <user>@<host>:<destination/>: copier des fichiers sur une machine distante (commande sécurisée par SSH)scp -r <dossier> <user>@<host>:~/<dossier>/: copier un dossier sur une machine distantescp <user>@<host>:~/<fichier> <fichier-copie>: SCP opération inverse - Copier un fichier d’un autre ordinateur vers le tien
Attention
scp -P 16296 <fichier> <user>@<host>:<fichier-copie>
La commande SSH a aussi une option pour indiquer un port ; tu t’en souviens peut-être, c’est -p ! Faites donc attention car avec SSH c’est un « p » minuscule qu’il faut utiliser alors qu’avec SCP c’est un « P » majuscule !
ftp <host>: transférer des fichiers via le protocole ftpftp> <commande>ftp> get <fichier>: télécharge un fichierftp> put <fichier>: téléverse un fichier
! Pour executer les commandes chez soi
Ex : ftp> !ls
sftp <user>@<host>: transférer des fichiers via le protocole SSH
Pour se connecter en SFTP, on utilise le même port que SSH (soit 22 par défaut). Si ton serveur SSH fonctionne sur un autre port, tu devras le préciser comme ceci
sftp -P27401 <user>@<host>rsync: synchroniser des répertoiresrsync -arv <source> <destination>: synchroniser des répertoiresrsync -arv --delete <source> <destination>: synchroniser des répertoires et enlever les suppressionsrsync -arvz --delete --backup --backup-dir=/home/<user>/<trash> <source> <user>@<host>:<source-copy>
Gérer les processus #
Tout ce qui tourne sur ta machine, c’est un processus. Tu peux les voir, les prioriser, les tuer. top, ps, kill : ton panneau de contrôle en temps réel.
<commande> &: exécuter en tache de fond (attaché à la console)nohup <commande>: exécuter en tache de fond (détaché de la console )Ctrl + Z: mettre en pause l’exécution du programmejobs: lister les processus mis en pausejobs -l: lister les processus mis en pause et afficher le PID associé$ [1] job 1 $ [2] job 2fg %1: passer le processus 1 en avant plan (fg= foreground)bg %1: passer le processus 1 en arrière plan (bg= background)kill %1: tuer le processus 1
ps: liste statique des processusps -ef: lister tous les processusps -ejH: afficher les processus en arbreps axf: afficher les processus en arbre ASCII (forest)ps -eo pid,user,argts: afficher sous le formatps -u utilisateur: lister les processus lancés par un utilisateur
pstree: liste les processus sous forme d’arborescencetop: liste dynamique des processusq: ferme toph: afficher l’aide, et donc la liste des touches utilisables.B: mettre en gras certains éléments.f: ajouter ou supprime des colonnes dans la liste.F: changer la colonne selon laquelle les processus sont triés. En général, laisser le tri par défaut en fonction de %CPU est suffisant.u: filtre en fonction de l’utilisateur que tu veux.k: tuer un processus. Ne t’inquiète pas, en général les processus ne souffrent pas. On te demandera le numéro (PID) du processus à tuer.s: changer l’intervalle de temps entre chaque rafraîchissement de la liste (par défaut, c’est toutes les trois secondes).
Ctrl + C: arrêter un processus lancé en consolekill: tuer un processuskill -lliste des signauxkill <pid>
killall <process_name>: tuer tous les processus portant ce nomkillall -u <user>: tuer tous les processus d’un utilisateur (met fin à sa session)
Gérer les services #
Un daemon qui plante en silence, un serveur web qui ne démarre pas au boot : systemctl te donne la main sur tout ce qui tourne en arrière-plan.
systemctl: gérer les processus et services systemdsystemctl list-units: lister toutes les unitéssystemctl list-units -t service: lister toutes les unités de type servicesystemctl status <service>.service: Affiche le statut du servive (actif ou inactif)systemctl start <service>.service: démarrer un servicesystemctl restart <service>.service: redémarrer un servicesystemctl reload <service>.service: redémarrer un servicesystemctl stop <service>.service: arrêter un servicesystemctl enable <service>.service: activer un servicesystemctl disable <service>.service: désactiver un serviceInformation
Le prefixe.servicen’est pas obligatoire
/etc/init.dinit/etc/init.d/<service> start/etc/init.d/<servive> restart/etc/init.d/<servive> stop/etc/init.d/<servive> status
service: gérer les services (wrapper compatible les deux) systemd initservice --status-all: lister tous les services du systèmeservice <service> startservice <service> restartservice <service> reloadservice <service> stop
Paquet upstart init : (Ubuntu pre-systemd)
start <serviceName>stop <serviceName>status <serviceName>
Information
restart = stop + start / reload = reste actif et relit la configurationGérer le réseau #
Ports ouverts, IP assignées, connexions actives : maîtriser le réseau, c’est savoir exactement ce qui entre et ce qui sort de ta machine.
w: afficher qui est connecté et ce qu’il faituptime: afficher la charge CPUwho: afficher qui est connectéwho -uH: afficher qui est connecté et le numéro de processus Bash associé
last: afficher les dernières informations de connexions d’un utilisateurlast <user>
host <ip>: afficher l’IP ou le domainewhois <host>: informations sur le propriétaire d’un siteifconfig: connaitre la configuration réseau de la machinevi /etc/network/interfaces: modifier ce fichier pour configurer une IP fixeifup: activer une interface réseauifup wlan0
ifdown: désactiver une interface réseauip|ip aip -c -4 a show wifi0ip -o -c -4 a show wifi0
ping <ip adress>ping -c: nombre de ping lancéping -c 1 -i 0.2 <host>ping -i: donner l’intervalle en ms
hostname: afficher le nom de la machinehostname -I: retourne l’IP de la machine
netstat: informations sur le réseau (port)netstat -utancnetstat -tlnp: afficher les ports TCP en écoute avec le processus associé (le plus utile en pratique)netstat -u: afficher les connexions UDP (jeux en réseau, VoIP)netstat -t: afficher les connexions TCP ;netstat -a: afficher toutes les connexions quel que soit leur étatnetstat -n: avoir les numéros des ports plutôt qu’une description en toutes lettresnetstat -c: synchronise la réponsenetstat -p: afficher le PID et le nom du processus associé à chaque connexion
Chaque connexion a un état et de nombreux états sont possibles
ESTABLISHED : la connexion a été établie avec l’ordinateur distant
TIME_WAIT : la connexion attend le traitement de tous les paquets encore sur le réseau avant de commencer la fermeture
CLOSE_WAIT : le serveur distant a arrêté la connexion de lui-même (peut-être parce que tu es resté inactif trop longtemps ?)
CLOSED : la connexion n’est pas utilisée
CLOSING : la fermeture de la connexion est entamée mais toutes les données n’ont pas encore été envoyées
LISTEN : à l’écoute des connexions entrantes.
iptables: configurer les règles du pare-feu (filtrage des paquets entrants, sortants et routés)sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT: autoriser SSHsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT: autoriser HTTPsudo iptables -A INPUT -j DROP: bloquer tout le reste (à mettre en dernier)sudo iptables -L -v: lister les règles actives
traceroute <host>: afficher le chemin réseau vers un hôte, saut par saut (utile pour diagnostiquer où ça bloque)curl: transférer des données depuis ou vers une URL (HTTP, FTP, API REST) — couteau suisse du réseau en ligne de commandecurl ifconfig.me: connaitre son adresse IP publique
Information
nmtui et nmcli. Sur RedHat : ss -tpn.Archiver et compresser des fichiers et dossiers #
Sauvegarder, compresser, transférer : tar et ses amis transforment un répertoire entier en un seul fichier transportable. Et ça date de 1979.
tartar -cvf <archive.tar> <dossier/>: Assembler des fichiers dans une archivetar -c: signifie créer une archive tar ;tar -v: signifie afficher le détail des opérations ;tar -f: signifie assembler l’archive dans un fichier.tar -tf: afficher le contenu de l’archive sans l’extrairetar -tf <archive.tar>tar -rvf: ajouter un fichiertar -rvf <archive.tar> <fichier_supplementaire.txt>tar -xvf: extraire les fichiers de l’archivetar -xvf <archive.tar>
gzip <archive.tar>: compresser en GZIPgunzip <archive.tar.gz>: décompresserbzip2 <archive.tar>: compresser en BZIP2bunzip2 <archive.tar.bz2>: décompresserAutres opérations de compression :
tar -zcvf <dossier/>: archiver et compresser engztar -zxvf <archive.tar.gz>: extrairetar -ztf <archive.tar.gz>: lire le contenu d’une archive « gzippée »tar -jcvf <dossier/>: archiver et compresser en bz2tar -jxvf <archive.tar.bz2>: extrairetar -jtf <archive.tar.bz2>: lire le contenu d’une archive « bzippée »
zcat: lire un fichier compressé
Quand il n’y a qu’un seul fichier compressé directement avec GZIP ou BZIP2
zless: idemzmore: idemzipetunzip: compresser ou décompresser un fichier zipzip -r <fichier.zip> <dossier/*>unzip <fichier.zip> -d [dossier/]
Divers #
Les commandes qui ne rentrent dans aucune case, mais qu’on finit toujours par utiliser.
which: connaître l’emplacement d’une commandewhereis: connaître l’emplacement d’une commandewatch: rafraîchir une commande à intervalle régulierclear: nettoyer le terminalreset: reboot du terminalshutdown: éteindre la machineshutdown nowshutdown -rhaltreboot
convert: transformer des imagesconvert image_source.jpg -thumbnail '200x200>' miniatures/image_copy.jpgiconv: permet de changer l’encodage d’un fichier.-f: préciser l’encodage d’origine,-tpour celui de destination
Par défaut, ICONV renvoie tout sur la sortie standard, donc si tu veux directement envoyer les résultats dans un fichier, il suffit de faire une petite redirection :
iconv -f UTF-8 -t UTF-17 fichier.txt >> new-encodage.txtwhoami: afficher ton nom d’utilisateur actuelfinger <user>: afficher des informations sur un utilisateur
Information
chfnfile: déterminer le type d’un fichier indépendamment de son extension. Il suffit de lui fournir en paramètre le fichier à évaluer.stat: afficher les métadonnées détaillées d’un fichier (taille, droits, dates de création, modification et accès)env || printenv: afficher toutes les variables d’environnementshasum: vérifier l’intégrité d’un fichieradd-apt-repository: permet d’ajouter des dépôts alternatifs aux dépôts officielsselect-editor: changer éditeur par defaultsudo VISUAL=/usr/bin/vim visudosudo EDITOR=/usr/bin/vim visudoupdate-alternatives --config editor: changer l’éditeur par défautupdate-alternatives --config pager: changer la liseuse par défaut (most)
Nettoyer le système #
Un root god garde son système propre. Paquets orphelins, caches périmés : un peu d’hygiène évite les mauvaises surprises.
sudo apt-get autoremove: supprimer les paquets installés comme dépendances et devenus inutilessudo apt-get autoclean: supprimer les fichiers de cache des paquets trop anciens pour être téléchargéssudo apt-get clean: vider tout le cache des paquets téléchargés (/var/cache/apt/archives/)
build-essential : compiler un programme #
Quand le paquet n’existe pas dans les dépôts, tu le compiles toi-même. Trois étapes, une commande make.
- Décompresser
<fichier>.tar.gzavec la commandetar zxvf - Se rendre dans le répertoire
- Lancer
./configure
- Installer les paquets manquants
makemake install
Ces commandes t’ont accompagné tout au long de ce guide. Certaines ont 40 ans, d’autres sont récentes : toutes cohabitent dans le même terminal. C’est ça, le root god. Pas un super-héros en cape, juste quelqu’un qui sait exactement où taper.
Mention spéciale à Richard Stallman et Linus Torvalds. Sans eux, on apprendrait l’informatique à crédit.
Catégories
Commentaires
Connexion via GitHub, gratuite et sans collecte de données par ce site.


