Introduction
La ligne de commande a été vue dans Les commandes DOS. Ce cour doit être vu avant de lire celui-ci.
Petit rappel : la ligne de commande permet de faire beaucoup de gestion du système Linux (beaucoup plus que pour DOS).
Il est donc impératif de connaître les mécanismes des commandes de base vues ici, comme par exemple :
mkdir toto // créer le répertoire toto cd toto // changer de répertoire et aller dans toto/ ls // afficher la liste des objets contenus dans toto/ (dir fonctionne aussi ... ) echo "coucou" // afficher le texte écrit
En fin de ce document, Il y a des exemples et exercices expliqués. A voir.
Linux et distribution : Linux propose au minimum un panel de commandes associées à l'interpréteur de shell utilisé.
Nous utilisons le Bourne Again Shell ou Bash.
Cependant, Lunix n'est pas fait d'une seule pièce mais est un patchwork d'une multitude de progrmme élaborés par autant d'éditeurs, d'auteurs différents.
Donc, même si il existe une tendance à l'uniformisation des comportements des commandes, certaines commandes sont gérées différemment de ce qui suit.
Il convient de s'adapter à chacune.
À noter qu'il existe aussi d'autres langages shells : Almquist shell (ash), C shell (csh), dash, ksh, zsh, fish, ...
Les commandes suivantes sont à apprendre selon la priorité : +++ = impérative, ++ = très utile, + = à connaître, - = peuvent se retrouver mais les connaître facilite la vie.
Noms des fichiers utilisés dans les commandes (+++)
Les noms sont écrits soit avec un chemin relatif, soit un chemin absolu. Noter que le nom du disque n'eststepas, nous n'avons qu'une seule racine !
Pour représenter plusieurs fichiers en une seuls fois, on peut utiliser des jokers : ? ou *.
Exemples
ls # lister tous les objets du dossier ls test.txt # lister l'objet demandé ls test.* # idem, nommés test, peu importe leur extension : test.txt, test.doc, test/, etc... ls te?t.txt # idem, dont le nom débute par te suivi d'un car. et terminé par t : test.txt, text.txt, teat.txt, ... ls test*.txt # idem, dont le nom débute par test : test.txt, test1.txt, test2.txt, test abcdexxx123.txt, ... ls test?.txt # idem, dont le nom débute par test suivi d'un seul car : test1.txt, test2.txt ; mais pas test.txt ni testxyz.txt, ...
Rem : car = caractère.
Noter que la syntaxe est identique au DOS ! Seule différence, l'extension est optionnelle
Répertoires (+++)
Commande | Description | Exemple |
---|---|---|
man | aide sur une commande | man ls, man dir, parfoir commande ? ou commande -help |
ls | Afficher le contenu d'un répertoire. -l affichage en liste détaillée, -a affichage des objets cachés | ls /home/toto/ |
dir | Alias de ls | |
cd | Changer de répertoire. ~ = rep home de l'utilisateur, - = rep précédent, .. = rep parent | cd /home/toto ; cd ~ ; cd - ; cd .. |
mkdir | Créer un répertoire (make directory) | mkdir tutu |
rmdir | Supprimer un répertoire non vide (remove directory) | rmdir tutu |
pwd | Afficher le chemin complet du répertoire courant (savoir où on est) |
Des options permettent de changer le comportement de certaines commandes. Voir dans l'aide (man) pour plus de détails.
Fichiers (+++)
Commande | Description | Exemple |
---|---|---|
grep | (+++) rechercher des lignes dans le contenu d'un fichier ou le résultat d'une commande (voir aide de la commande) | grep "toto" liste.text |
chmod | (+++) (change mode) modifier les permissions d'un fichier (DOS : attrib) | chmod 744 liste.text |
chown | (+++) (change owner) changer le propriétéaire de l'objet, -R= récursif | chown -R www-data /var/www/html/applitest |
cp | (+++) copier un fichier (plusieurs en utilisant les jokers * ou ?) (DOS = copy) | cp FTP/*.* FTP_SAV/ |
mv ou move | (+++) déplacer ou/et renommer un fichier ou répertoire | mv toto.text toutou.text |
rm | (+++) (remove) Supprimer un fichier ou répertoire (…) (plusieurs en utilisant les jokers ou ?) | rm FTP_SAV/*.* |
tail | (++) Afficher la fin d'un fichier | tail -5 liste.text # 5 dernières lignes |
more | (++) Afficher le contenu d'un fichier texte page par page | dir | more |
cat | (++) Afficher le contenu d'un fichier texte | cat liste.text |
find | (+) Chercher un fichier dans l'arborescence | find ./ -name "liste.text" |
touch | (-) créer un fichier vide et bien d'autres choses | toutch new_liste.text |
head | (-) Afficher le début d'un fichier | |
less | (-) Afficher le contenu d'un fichier texte en avant et arrière | less liste.text |
whoami | (Qui suis-je ?) Afficher le nom de l'utilisateur courant | |
wich | Afficher le chemin d'une commande shell | wich python |
whatis | (Qu'est-ce que ... ?) Afficher une description d'une commande | whatis python |
Des options permettent de changer le comportement de certaines commandes. Voir dans l'aide (man) pour plus de détails.
Pour exécuter un fichier shell (.sh), faire précéder le ficher par ./ : ./monscript.sh
Les commandes système (+)
Commande | Description |
---|---|
date | (+) Afficher/changer la date système (du BIOS) |
time | (+) Afficher/changer l'heure système (du BIOS) |
exit | sortir de l'invite de commande (et fermer la fenêtre) |
shutdown now | Éteindre la machine |
halt | Arrêter la machine sans l'éteindre. l'appui d'un touche la relance |
reboot | Redémarrer la machine. |
kill | Arrêter le processus indiqué par son PID (process ID) ou son nom binaire. Avec l'option -9, arrêt immédiat |
history | Afficher l'historique des commandes |
adduser | ajouter un nouvel utilisateur |
useradd | ajouter un nouvel utilisateur |
passwd | changer le mot de passe |
Voici une palette de quelques commandes utiles et utilitaires en ligne de commande :
Commande | Description |
---|---|
top, htop | utilitaire d'affichage des processus (Win : taskmgr) |
ps | utilitaire d'affichage des processus de la session courante (TTY) |
Utilitaires divers (+++)
apt | Gestionnaire de paquets (i.e. de logiciels téléchargés) |
---|---|
yum, pacman, git | Gestionnaires alternatifs de paquets (i.e. de logiciels téléchargés)(*) |
wget | Gestionnaires téléchargement web (*) |
unzip | utilitaire de décompression de fichiers zip (*) |
tar | utilitaire de décompression de fichiers tar et gz |
nano | Éditeur de texte plus convivial que vi ou vim |
(*) logiciel à télécharger et installer
Les commandes réseau (+++)
Commande | Description |
---|---|
ping, | Envoyer une requête ICMP pour tester la communication réseau |
ifconfig ou ip a | Afficher la configuration du réseau ; ip : voir les options |
netstat | (+) (obsolète) Afficher l'état des communications réseau, des connexions |
arp | (+) (obsolète) Afficher la table ARP locale ; gérer la table ARP |
ss | (+++) (new) Afficher différents rapports sur l'état du réseau |
Il existe d'autres commandes moins utiles ou spécifiques. Utiliser la commande help dans l'invite de commande pour les afficher.