Maîtriser les commandes de base sous Linux
Identifiez-vous, et c'est parti !
1. Se déplacer dans le système de fichiers
- cd chemin : Se déplacer vers un répertoire spécifique.
- cd sans argument retourne dans le répertoire personnel de l'utilisateur courant.
- cd .. remonte d'un niveau dans l'arborescence.
- cd ../.. remonte de deux niveaux.
- cd - revient au dernier répertoire dans lequel on se trouvait.
- cd ~ ou cd $HOME va dans le répertoire personnel.
Ces déplacements sont importants pour naviguer efficacement dans la hiérarchie des dossiers.
2. Lister le contenu d'un répertoire
- ls : Affiche le contenu du répertoire courant.
- ls /chemin/dossier/ : Affiche le contenu d'un autre répertoire spécifié.
- ls -l : Affichage détaillé (permissions, propriétaire, groupe, taille, date).
- ls -h : Affiche les tailles dans un format lisible (Ko, Mo...)
- ls -a : Affiche également les fichiers et dossiers cachés (commençant par un point).
- ls -shla : Combine les options s (taille en blocs), h (format humain), l (détaillé), a (tous les fichiers). C'est mon option préférée !
Les options combinées (ls -lsh, ls -la etc.) permettent d'obtenir des informations précises sur les fichiers.
3. Créer une ressource
- mkdir nom_dossier : Crée un répertoire.
- mkdir -p chemin/dossier/sous-dossier : Crée toute la hiérarchie de répertoires si elle n'existe pas.
- touch nom_fichier : Crée un fichier vide ou met à jour la date de modification d'un fichier existant.
- nano, vi, vim : Éditeurs de texte en ligne de commande.
- nano fichier.txt : Éditeur simple et intuitif.
- vi fichier.txt ou vim fichier.txt : Éditeur plus puissant, mais nécessitant un apprentissage rigoureux. Il est complexe !
L'utilisation d'éditeurs en CLI est primordiale pour éditer rapidement des fichiers de configuration ou de script.
4. Afficher le contenu d'un fichier
- cat fichier : Affiche le contenu complet du fichier à l'écran.
- less fichier : Affiche le contenu page par page, permet de naviguer avec les flèches haut/bas, barre d'espace, touche q pour quitter.
- more fichier : Similaire à less, mais moins flexible.
less est souvent préféré à more en raison de ses fonctionnalités de navigation plus avancées.
5. Supprimer une ressource
- rm fichier : Supprime un fichier.
- rm -r dossier : Supprime un répertoire et tout son contenu de manière récursive.
- rm -i : Demande confirmation avant chaque suppression.
- rm -f : Force la suppression sans demander confirmation (à manier avec précaution).
Attention, rm ne va pas dans une corbeille, la suppression est définitive.
6. Renommer une ressource
- mv ancien_nom nouveau_nom : Renomme un fichier ou un dossier.
mv sert également au déplacement. Si la destination est un chemin différent, le fichier sera déplacé et non simplement renommé. Il s'agît d'une des commandes les plus dangereuses qui soit !
7. Rechercher une ressource
- find /chemin -name "motif" : Recherche récursive depuis un répertoire donné.
- Exemple : find / -name "fichier.txt"
- locate motif : Recherche rapide basée sur une base de données pré-indexée.
- Avant utilisation, mettre à jour la base (index) : sudo updatedb.
find est plus exhaustif et travaille en temps réel, locate est plus rapide mais nécessite une base mise à jour.
8. Faire une recherche récursive dans les fichiers
- grep -r "motif" /chemin : Recherche un motif (mot, expression régulière) dans tous les fichiers du répertoire spécifié.
- grep -ri "motif" /chemin : Ignore la casse.
- grep -rn "motif" /chemin : Affiche le numéro de ligne.
Très utile pour retrouver du contenu dans des fichiers de configuration ou de code.
9. Copier une ressource
- cp fichier destination : Copie un fichier.
- cp -r dossier destination : Copie un répertoire de façon récursive.
- cp -p : Conserve les permissions, l'horodatage et le propriétaire.
- cp -v : Mode verbeux, affiche les fichiers copiés.
10. Déplacer une ressource
- mv fichier destination : Déplace un fichier dans un autre dossier.
- Utilisé également pour renommer, comme vu plus haut.
11. Télécharger un fichier
- wget URL : Télécharge un fichier depuis une URL et le stocke dans le répertoire courant.
- Options utiles :
- wget -c URL : Reprend un téléchargement interrompu.
- wget -O nom_fichier URL : Sauvegarde sous le nom spécifié.
12. Tester l'accès à internet
- ping adresse (ex: ping google.com) : Envoie des paquets ICMP à l'hôte spécifié et mesure le temps de réponse.
- curl -I URL : Vérifie les en-têtes de réponse HTTP pour s'assurer qu'un site est accessible.
ping permet de vérifier la connectivité réseau de base, tandis que curl est très utile pour tester l'accessibilité d'un service web.
13. Compresser/Décompresser
- tar -cvzf archive.tar.gz dossier/ : Crée une archive tar.gz du répertoire spécifié.
- c = créer, v = verbeux, z = compresser avec gzip, f = fichier spécifié.
- tar -xvzf archive.tar.gz : Décompresse une archive tar.gz.
- Pour les archives zip :
- zip -r archive.zip dossier/ : Crée un zip.
- unzip archive.zip : Décompresse un zip.
Posséder ces réflexes est essentiel pour gérer des backups, des transferts de données, etc.
14. Gameshell !!
Il s'agît d'un jeu en vogue pour l'apprentissage des commandes de base.
Je vous encourage à y jouer, au jusqu'au niveau 25 (au-delà, laissez tomber).
- Installer des jeux textuels : sudo apt install bsdgames (sur Debian/Ubuntu) pour accéder à des jeux rétro en terminal.
- Autre exemple : nethack (jeu roguelike), moon-buggy (petit jeu de plateformes), ou encore cowsay (pas un jeu, mais fun).
Les jeux en ligne de commande ne servent qu'à l'apprentissage. Point.
Commandes supplémentaires pertinentes
- head fichier : Affiche les premières lignes d'un fichier. (head -n 5 fichier : affiche les 5 premières lignes)
- tail fichier : Affiche les dernières lignes d'un fichier (très utile pour lire les logs en direct avec tail -f).
- du -sh fichier_ou_dossier : Montre la taille totale occupée par un fichier ou un dossier.
- df -h : Affiche l'espace disque disponible et utilisé sur tous les systèmes de fichiers.
- chmod et chown : Modifier les permissions (chmod) et les propriétaires (chown) d'un fichier ou d'un dossier.
- ps -ef, top, htop : Pour surveiller les processus, leur utilisation CPU/RAM, etc.
- kill, killall, pkill : Pour terminer des processus.
- service nom_du_service start/stop/restart ou systemctl start/stop/restart nom_du_service : Gérer les services système.
- apt (Debian/Ubuntu), yum/dnf (RedHat/Fedora), zypper (SUSE) : Installation et mise à jour de logiciels.