Ligne de commande
Sommaire des commande utiles
# Se déplacer dans le repertoire dir/ cd dir # Se déplacer dans le repertoire parent cd .. # Lister tous les fichiers et répertoire present dans le repertoire courant ls # Afficher le chemin complet du répertoire courant pwd
Ligne de commande: principe et chemins
Une ligne de commande peut être vu comme un "explorateur de fichier" en mode textuel.- - La ligne de commande est positionnée dans un répertoire particulier.
- - Les commandes que l'on execute se réalisent de manière relative à ce répertoire.
- - On se déplace d'un répertoire à l'autre à l'aide de la commande "cd path", où path designe le répertoire de destination.
- - "dir1" désigne le chemin vers dir1 (ou pourra utiliser également "dir1/" indique que dir1 doit être un répertoire et non un fichier)
- - "dir1/dir2" désigne le chemin vers dir2, qui est lui même dans un répertoire dir1
cd dir1/dir2/ # est equivalent à cd dir1 cd dir2
- - "dir1/dir2/dir3/..." se généralise à un nombre arbitraire de répertoires.
- - "dir1/dir2/index.html" désigne le fichier "index.html" présent dans le répertoire dir2, lui même inclu dans le répertoire dir1.
Chemin relatif, ou absolue
Par défaut, les chemins débutant par un nom de répertoire ou fichier sont relatif au répertoire courant.Il est possible de désigner des chemins "absolus" en débuttant celui-ci par le symbole "/". L'utilisation d'un chemin absolu le rend alors indépendant du répertoire courant.
cd /dir1/dir2 # chemin relatif depuis la racine / -> dir1 -> dir2 pwd # indique /dir1/dir2 indépendamment du répertoire d'origine
cd / # amène la ligne de commande sur le répertoire racine
Chemins particuliers
"/" Désigne le répertoire de la racine du système. Chemin absolu."." Désigne le répertoire courant.
".." Désigne le répertoire parent à celui actuel.
"~" Désigne le répertoire "home" de l'utilisateur courant.
Exemple:
cd dir1/dir2/ # va dans le répertoire relatif dir1, puis dir2 cd .. # revient dans le répertoire dir1 cd dir2 # va a nouveau dans dir2
- Il est possible d'enchainer les chemins particuliers
cd ../../ # va dans le répertoire parent du parent cd ../dir1/dir2/ # va dans le répertoire parent, puis dans dir1, puis dir2 cd /dir1/../dir2/ # identique à cd /dir2 cd ~/Download/myFile/examples/ # va dans home, puis Download/, puis myFile, puis examples
- - "home" est un répertoire particulier qui est le "point de départ" classiques des OS lorsqu'on ouvre une ligne de commande ou un explorateur de fichier.
- - C'est à partir du répertoire "home" que les données spécifiques à un utilisateur sont stockées. Les dossiers parents sont supposés être ceux du systèmes, ou partagés avec plusieurs utilisateurs ayant des comptes sur la machine.
- - Sous Linux, le chemin absolu de home est souvent du type "/home/userName/", sous MacOS on pourra avoir "/Users/userName/"
Autocompletion
Tapper des commandes et chemins long est source d'erreur. La ligne de commande dispose d'une autocomplétion des noms de fichiers à partir de la touche "Tabulation".
# Commencez à écrire cd dir1/myVeryL # Tappez tab: autocomplete en cd dir1/myVeryLongDirName/
- 1 appuis sur tab: Autocomplète les noms s'il n'y a pas d'ambiguité
- 2 appuis sur tab: Propose les choix possibles s'il y a une ambiguité.
- - De gagner du temps plutôt que de tout écrire
- - D'assurer l'absence de typos.
Lancement d'un executable
On appel "executable" un fichier qui se lance "en autonomie" sur l'OS. Les exécutables sont dépendant d'un système. Sous Windows ils ce sont des fichiers qui se terminent par l'extension .exe, et ils n'ont souvent pas d'extensions sous Linux/MacOS. Pour lancer un executable il faut le désigner par son chemin soit relatif, soit absolue:# lance le fichier monExecutable depuis le répertoire courant ./monExecutable # lance le fichier monExecutable présent dans le répertoire dir1 dir1/monExecutable # lance l'executable depuis un chemin absolue. /home/monNom/monExecutable
- - Si le programme ne termine pas, tappez "CTRL+c" pour forcer le programme à quiter et récupérer la main sur la ligne de commande.
- - Si vous souhaitez lancez un programme long tout en ne bloquant pas la ligne de commande, terminez l'appel avec "&"
# Le & permet de récupérer la main sur la ligne de commande pendant l'executable du programme ./monExecutableLong &
Autres commandes
Créer un répertoiremkdir pathDirectory
- Attention rm n'envoie par à la "corbeille". Il supprime tout directement.
# Supprimer un fichier rm pathFile # Supprime un répertoire et tout son contenu rm -rf pathDirectory
# Liste les fichier standards ls # Liste également les fichiers cachés (commencant par un .) ls -a
pwd
# Copier un fichier filename vers filenameCopy cp filename filenameCopy # ex. copier un fichier "filename" dans le répertoire dir/ cp filename dir/filenameCopy # filenameCopy est optionnel si le fichier garde le même nom # copier un répertoire dir1 dans un autre dir2 cp -r dir1 dir2
# Déplacer/renommer un fichier mv filenameOrigin filenameDest # Déplacer/renommer un répertoire mv -r filenameOrigin filenameDest
Commandes plus avancées
Utiles pour regarder et analyser des fichiers depuis la ligne de commande
Genère un fichier vide (update sa dernière mises à jour)touch filename
# Affiche sur la ligne de commande le contenu du fichier cat filename # Regarde le contenu d'un fichier (ouvre une fenetre séparée, utile pour les fichiers long, appuis sur 'q' pour sortir) less filename # Affiche le début du fichier head filename head filename -n N # affiche les N premières lignes # Affiche la fin du fichier tail filename tail filename -n N # affiche les N dernières lignes
# Trouver "some lines" dans le fichier "filename" grep "some lines" filename # Trouver "some lines" dans n'importe quel fichier depuis le répertoire courant, et de manière réccursive. grep "some lines" -R .
Utiles pour trouver un fichier depuis le répertoire courant
# Fichier nomé filename find . -name "filename" # Fichier se terminant par .jpg find . -name "*.jpg" # Fichier débutant par scene et se terminant par .hpp find . -name "scene*.hpp"
Utiles pour terminer un programme bloquant:
Raccourcis claviers:- CTRL+c: Tente de terminer le programme en cours.
- CTRL+z: Met le programme en cours en mode "sleep". Récupère la main sur la ligne de commande.
# Commandes lancés depuis cette ligne de commande ps # Commandes lancés depuis toutes les lignes de commande ps -aux
kill -9 PID # permet par exemple de tuer un programme qui aurait été mis en mode "sleep" a posteriori