Skip to Content
CLILinux

🐧 Linux

Commandes essentielles pour gérer les permissions, processus et le systÚme.

MaĂźtriser ces commandes Linux permet de gĂ©rer efficacement les droits d’accĂšs, surveiller les processus et administrer son systĂšme.

Permissions

Comprendre les permissions

# Format : rwxrwxrwx # r = read (4), w = write (2), x = execute (1) # 3 groupes : propriétaire, groupe, autres # Exemple de sortie ls -l -rw-r--r-- 1 user group 1234 Dec 01 10:00 fichier.txt drwxr-xr-x 2 user group 4096 Dec 01 10:00 dossier # Premier caractÚre : # - = fichier, d = dossier, l = lien symbolique # Valeurs octales courantes : # 644 = rw-r--r-- (fichiers) # 755 = rwxr-xr-x (exécutables, dossiers) # 700 = rwx------ (privé) # 600 = rw------- (fichiers privés)

Modifier les permissions (chmod)

# Mode symbolique chmod u+x script.sh # ajouter exécution au propriétaire chmod g-w fichier.txt # retirer écriture au groupe chmod o+r fichier.txt # ajouter lecture aux autres chmod a+x script.sh # ajouter exécution à tous (a = all) # Mode octal chmod 644 fichier.txt # rw-r--r-- chmod 755 script.sh # rwxr-xr-x chmod 700 secret.txt # rwx------ chmod 600 config.ini # rw------- # Récursif chmod -R 755 dossier/ # applique à tous les fichiers/sous-dossiers # Copier les permissions d'un fichier chmod --reference=ref.txt fichier.txt

Modifier le propriétaire (chown)

# Changer le propriétaire chown user fichier.txt # Changer propriétaire et groupe chown user:group fichier.txt # Récursif chown -R user:group dossier/ # Changer uniquement le groupe chgrp group fichier.txt chgrp -R group dossier/ # Voir les propriétaires ls -l fichier.txt stat fichier.txt

Permissions spéciales

SUID, SGID

# SUID (Set User ID) - le fichier s'exécute avec les droits du propriétaire chmod u+s /usr/bin/passwd # 4755 chmod 4755 fichier # SGID (Set Group ID) - le fichier s'exécute avec les droits du groupe chmod g+s dossier/ # 2755 chmod 2755 dossier # Les deux chmod ug+s fichier # 6755 # Vérifier ls -l fichier # -rwsr-xr-x (SUID activé - 's' à la place de 'x') # -rwxr-sr-x (SGID activé)

Umask

# Voir l'umask actuel umask umask -S # format symbolique # Définir un umask umask 022 # fichiers créés avec 644, dossiers avec 755 umask 077 # fichiers créés avec 600, dossiers avec 700 # Umask permanent (ajouter dans .bashrc ou .zshrc) echo "umask 022" >> ~/.bashrc

Processus

Lister les processus

# Tous les processus ps aux ps -ef # Processus en arbre ps auxf pstree # Processus d'un utilisateur ps -u username # Processus en temps réel top htop # plus visuel (si installé) # Rechercher un processus ps aux | grep nginx pgrep nginx # retourne uniquement les PIDs pgrep -u user # processus d'un utilisateur

Gérer les processus

# Tuer un processus kill PID # SIGTERM (arrĂȘt propre) kill -9 PID # SIGKILL (arrĂȘt forcĂ©) kill -15 PID # SIGTERM (explicite) # Tuer par nom killall nginx pkill nginx pkill -u username # tous les process d'un user # Tuer interactivement top # puis 'k' et entrer le PID # Voir tous les signaux disponibles kill -l

Priorité des processus

# Nice (lancer avec priorité) # -20 (plus haute priorité) à 19 (plus basse priorité) nice -n 10 command # lancer avec priorité basse # Renice (changer la priorité d'un process en cours) renice -n 5 -p PID renice -n 10 -u username # Voir la priorité ps -l top # colonne NI

Background et foreground

# Lancer en background command & nohup command & # continue aprÚs déconnexion # Mettre en pause (Ctrl+Z) # Puis reprendre en background bg # Reprendre en foreground fg # Lister les jobs jobs jobs -l # avec PIDs # Reprendre un job spécifique fg %1 bg %2 # Tuer un job kill %1

Monitoring avancé

# Voir les ressources d'un processus top -p PID htop -p PID # Infos détaillées ps aux | grep PID cat /proc/PID/status cat /proc/PID/cmdline # Tracer les appels systÚme strace -p PID strace command # Voir les fichiers ouverts lsof -p PID lsof -u username # fichiers ouverts par user # Voir les connexions réseau netstat -tulpn ss -tulpn # plus moderne lsof -i :80 # qui utilise le port 80

SystĂšme

Informations systĂšme

# Infos générales uname -a # toutes les infos uname -r # version du kernel uname -m # architecture # Distribution cat /etc/os-release lsb_release -a # Hostname hostname hostnamectl # détaillé # Uptime uptime uptime -p # format lisible # Date et heure date timedatectl # détaillé

Utilisation des ressources

CPU et RAM

# Vue d'ensemble top htop uptime # load average # RAM free -h # format lisible free -m # en MB free -g # en GB # Détails RAM cat /proc/meminfo vmstat # statistiques mémoire virtuelle vmstat 1 10 # rafraßchir chaque seconde, 10 fois # CPU lscpu # infos CPU cat /proc/cpuinfo mpstat # stats par CPU

Services et systemd

# Lister les services systemctl list-units --type=service systemctl list-units --state=running # Statut d'un service systemctl status nginx systemctl is-active nginx systemctl is-enabled nginx # DĂ©marrer/arrĂȘter un service systemctl start nginx systemctl stop nginx systemctl restart nginx systemctl reload nginx # recharger la config # Activer/dĂ©sactiver au boot systemctl enable nginx systemctl disable nginx # Voir les logs d'un service journalctl -u nginx journalctl -u nginx -f # suivre en temps rĂ©el journalctl -u nginx --since today journalctl -u nginx --since "2025-12-01 10:00" # Recharger systemd systemctl daemon-reload

Logs systĂšme

# Logs avec journalctl (systemd) journalctl # tous les logs journalctl -f # suivre en temps réel journalctl -n 50 # 50 derniÚres lignes journalctl -p err # erreurs uniquement journalctl --since today journalctl --since "1 hour ago" journalctl -u service-name journalctl -b # depuis le dernier boot journalctl --disk-usage # espace utilisé # Logs traditionnels (/var/log) tail -f /var/log/syslog tail -f /var/log/auth.log # authentifications tail -f /var/log/nginx/access.log less /var/log/syslog # Rechercher dans les logs grep -i error /var/log/syslog grep "Failed password" /var/log/auth.log

Gestion des utilisateurs

# Créer un utilisateur useradd username useradd -m username # avec home useradd -m -s /bin/bash username # Définir/changer le mot de passe passwd username # Modifier un utilisateur usermod -aG sudo username # ajouter au groupe sudo usermod -s /bin/zsh username # changer le shell usermod -l newname oldname # renommer # Supprimer un utilisateur userdel username userdel -r username # avec home et mails # Créer un groupe groupadd groupname # Ajouter un user à un groupe usermod -aG groupname username gpasswd -a username groupname # Retirer un user d'un groupe gpasswd -d username groupname # Voir les groupes d'un user groups username id username

Variables d’environnement

# Voir toutes les variables env printenv # Voir une variable spécifique echo $PATH echo $HOME printenv PATH # Définir temporairement export MY_VAR="value" MY_VAR="value" command # pour une commande uniquement # Définir de façon permanente # Dans ~/.bashrc ou ~/.zshrc echo 'export MY_VAR="value"' >> ~/.bashrc source ~/.bashrc # PATH export PATH=$PATH:/new/path echo 'export PATH=$PATH:/new/path' >> ~/.bashrc

Tùches planifiées (cron)

# Éditer le crontab crontab -e # Lister les crontabs crontab -l crontab -l -u username # pour un autre user # Supprimer le crontab crontab -r # Syntaxe : minute heure jour mois jour_semaine commande # * * * * * command # | | | | | # | | | | +-- Jour de la semaine (0-7, 0 et 7 = dimanche) # | | | +---- Mois (1-12) # | | +------ Jour du mois (1-31) # | +-------- Heure (0-23) # +---------- Minute (0-59) # Exemples # Tous les jours Ă  2h30 30 2 * * * /path/to/script.sh # Toutes les heures 0 * * * * /path/to/script.sh # Tous les lundis Ă  9h 0 9 * * 1 /path/to/script.sh # Toutes les 15 minutes */15 * * * * /path/to/script.sh # Raccourcis spĂ©ciaux @reboot /path/to/script.sh @daily /path/to/script.sh @hourly /path/to/script.sh @weekly /path/to/script.sh @monthly /path/to/script.sh

Astuces

Alias utiles

# À ajouter dans .bashrc ou .zshrc alias ll='ls -lah' alias la='ls -A' alias l='ls -CF' alias ..='cd ..' alias ...='cd ../..' alias h='history' alias df='df -h' alias free='free -h' alias ports='netstat -tulpn' alias psg='ps aux | grep -v grep | grep -i -e VSZ -e' alias mkdir='mkdir -pv' alias wget='wget -c'

One-liners pratiques

# Trouver les 10 plus gros fichiers find / -type f -exec du -h {} + | sort -rh | head -10 # Trouver les fichiers modifiés dans les 24h find /path -type f -mtime -1 # Compter le nombre de fichiers dans un dossier find /path -type f | wc -l # Remplacer du texte dans plusieurs fichiers find . -type f -name "*.txt" -exec sed -i 's/old/new/g' {} + # Voir les connexions par IP netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n # Voir l'utilisation CPU par processus ps aux | sort -nrk 3,3 | head -10 # Voir l'utilisation RAM par processus ps aux | sort -nrk 4,4 | head -10 # Archive avec date tar -czf backup-$(date +%Y%m%d-%H%M%S).tar.gz /path/to/dir # Créer un fichier de taille spécifique (pour tests) dd if=/dev/zero of=testfile bs=1M count=100 # 100MB # Vider un fichier sans le supprimer > fichier.log truncate -s 0 fichier.log

Raccourcis clavier

Ces raccourcis fonctionnent dans la plupart des shells (bash, zsh).

# Navigation Ctrl+A # dĂ©but de ligne Ctrl+E # fin de ligne Ctrl+U # effacer jusqu'au dĂ©but Ctrl+K # effacer jusqu'Ă  la fin Ctrl+W # effacer le mot prĂ©cĂ©dent Alt+B # reculer d'un mot Alt+F # avancer d'un mot # Historique Ctrl+R # rechercher dans l'historique Ctrl+P / ↑ # commande prĂ©cĂ©dente Ctrl+N / ↓ # commande suivante !! # rĂ©pĂ©ter la derniĂšre commande !$ # dernier argument de la commande prĂ©cĂ©dente !* # tous les arguments de la commande prĂ©cĂ©dente # ContrĂŽle Ctrl+C # interrompre Ctrl+Z # suspendre Ctrl+D # EOF / dĂ©connexion Ctrl+L # clear screen