Navigation dans le système (Linux et Windows)
Définition
Savoir se déplacer, lister, créer, modifier, supprimer fichiers et répertoires en ligne de commande (CLI) et interface graphique (GUI) est la compétence de base de tout administrateur système.
Linux : shell (Bash) et système de fichiers
Arborescence standard (FHS - Filesystem Hierarchy Standard)
/ Racine
├── bin/ Binaires utilisateur essentiels (ls, cp, bash)
├── boot/ Chargeur de démarrage (grub, vmlinuz, initrd)
├── dev/ Fichiers périphériques (sda, tty, null, zero)
├── etc/ Configuration système (passwd, fstab, nginx/, ssh/)
├── home/ Répertoires utilisateurs (/home/alice, /home/bob)
├── lib/ lib64/ Bibliothèques partagées essentielles
├── media/ Points de montage amovibles (USB, CD)
├── mnt/ Montages temporaires manuels
├── opt/ Logiciels tiers additionnels
├── proc/ Système de fichiers virtuel processus/noyau
├── root/ Home de root (superutilisateur)
├── run/ Données d'exécution temporaires (depuis /var/run)
├── sbin/ Binaires système (ip, fdisk, systemctl)
├── srv/ Données services (web, ftp)
├── sys/ Sysfs : informations noyau/périphériques
├── tmp/ Fichiers temporaires (nettoyé au boot)
├── usr/ Programmes utilisateurs (bin, lib, share, src)
└── var/ Données variables (logs, spool, cache, lib)
Commandes de navigation essentielles
| Commande |
Rôle |
Exemples |
pwd |
Répertoire courant |
pwd → /home/alice |
ls |
Lister |
ls -la (détail, cachés), ls -lh (tailles humain) |
cd |
Changer répertoire |
cd /etc, cd .., cd ~, cd - (précédent) |
mkdir |
Créer répertoire |
mkdir -p a/b/c (parents), mkdir -m 750 dir |
rmdir |
Supprimer répertoire vide |
rmdir dir |
cp |
Copier |
cp -r src/ dst/, cp -a (archive: permissions, dates) |
mv |
Déplacer / renommer |
mv old new, mv file /tmp/ |
rm |
Supprimer |
rm -i (interactif), rm -r (récursif), rm -f (forcer) |
find |
Rechercher |
find /etc -name "*.conf" -type f, find . -size +100M |
locate |
Recherche indexée (rapide) |
locate nginx.conf (après updatedb) |
Chemins absolus vs relatifs
- Absolu : commence par
/ (/etc/nginx/nginx.conf)
- Relatif : depuis le répertoire courant (
../nginx.conf, ./script.sh)
~ = home utilisateur (/home/alice), ~bob = home de bob
Permissions (rwx, octal, ACL)
ls -l : -rw-r--r-- = type + user + group + other
chmod : chmod 755 script.sh, chmod u+x, chmod g-w,o-rwx
chown : chown user:group file, chown -R (récursif)
umask : masque défaut (ex: 022 → 755 dir, 644 fichier)
- ACL :
getfacl, setfacl -m u:alice:rwx file
Fichiers spéciaux
- Liens durs :
ln fichier lien (même inode, même FS)
- Liens symboliques :
ln -s /chemin/cible lien (pointeur, cross-FS)
/dev/null : trou noir, /dev/zero : zéros, /dev/random : entropie
Windows : PowerShell, CMD et Explorateur
Arborescence typique
C:\
├── Windows\ Système (System32, SysWOW64, WinSxS)
├── Program Files\ Programmes 64 bits
├── Program Files (x86)\ Programmes 32 bits
├── Users\ Profils (Public, Default, Alice, Bob)
│ └── Alice\
│ ├── Desktop, Documents, Downloads, Pictures...
│ └── AppData\ Local, LocalLow, Roaming (configs apps)
├── ProgramData\ Données applications toutes users
├── PerfLogs\ Journaux performance
└── $Recycle.Bin\ Corbeille par utilisateur (SID)
PowerShell (recommandé) vs CMD
| Action |
PowerShell |
CMD (héritage) |
| Lister |
Get-ChildItem / ls / dir |
dir |
| Répertoire courant |
Get-Location / pwd |
cd |
| Changer répertoire |
Set-Location / cd |
cd |
| Créer répertoire |
New-Item -ItemType Directory / md |
mkdir / md |
| Copier |
Copy-Item / cp / cpi |
copy / xcopy / robocopy |
| Déplacer/renommer |
Move-Item / mv / mi |
move / ren |
| Supprimer |
Remove-Item / rm / ri |
del / rmdir / rd |
| Contenu fichier |
Get-Content / cat / gc |
type |
| Rechercher fichier |
Get-ChildItem -Recurse -Filter |
dir /s /b |
| Aide |
Get-Help cmdlet -Examples |
cmd /? |
Chemins PowerShell
- Lecteurs :
C:, D:, HKLM:, HKCU:, Env:, Alias:, Function:, Cert:, WSMan:
~ = $HOME = C:\Users\Alice
- Variables :
$env:PATH, $PSVersionTable, $_ (objet pipeline)
Permissions Windows (ACL, NTFS)
icacls : icacls file /grant Alice:(R,W), icacls dir /inheritance:r
Get-Acl, Set-Acl (PowerShell)
- Héritage : activé par défaut, propagé parent → enfants
- Propriétaire :
Takeown, icacls /setowner
Comparatif rapide Linux ↔ Windows
| Concept |
Linux |
Windows |
| Séparateur |
/ |
\ (mais / accepté PowerShell) |
| Racine |
/ |
C:\ (par lecteur) |
| Home user |
/home/alice |
C:\Users\Alice |
| Config système |
/etc/ |
Registre (regedit), C:\Windows\System32\config\ |
| Logs |
/var/log/ |
Event Viewer (eventvwr), C:\Windows\Logs\ |
| Temporaire |
/tmp/ |
%TEMP% (C:\Users\Alice\AppData\Local\Temp) |
| Exécutables |
/bin, /usr/bin, ~/bin |
C:\Windows\System32, PATH |
| Fichier config user |
~/.bashrc, ~/.config/ |
%APPDATA%, %LOCALAPPDATA% |
| Superutilisateur |
root (UID 0), sudo |
Administrateur, UAC, Run as administrator |
Raccourcis et productivité
- Linux : Tab (complétion),
!! (dernière cmd), Ctrl+R (historique), alias ll='ls -la'
- Windows : Tab, F7 (historique),
Ctrl+R (PowerShell 7+), $PROFILE (persistant)
- Les deux : historique (
history, Get-History), scripts (.sh, .ps1)