[tuto][linux][débutant] Commandes et notions de base
Ce document présente rapidement les commandes Unix de base nécessaire pour débuter dans l'environnement Unix. Des détails supplémentaires sont disponibles dans le manuel en ligne, accessible en ajoutant "man" devant la commande :
Code : Tout sélectionner
man <nom de commande>
Code : Tout sélectionner
sudo apt install manpages-fr
Une commande Unix est formée sur la syntaxe suivante :
Code : Tout sélectionner
commande [options]... [arguments]...
Code : Tout sélectionner
ls -l -a
Code : Tout sélectionner
ls -la
Code : Tout sélectionner
whoami Affiche le compte avec lequel on travaille
Code : Tout sélectionner
su user Changer de compte et se connecter en tant que "user"
su Bascule sur le compte administrateur (root)
Code : Tout sélectionner
pwd Affiche le répertoire de travail courant
Code : Tout sélectionner
ls Liste le contenu d'un répertoire
Options :
-a Affiche tous les fichiers, y compris les fichiers cachés
-l Affiche un listing détaillé
-R Affiche les fichiers récursivement (c'est-à-dire dans les sous-répertoires)
-d Affiche uniquement les répertoires et non leur contenu
-S Trie par taille
-t Trie par date de dernière modification
-t Trie par version
-X Trie par ordre alphabétique de l'extension
-r Trie en ordre inverse
Code : Tout sélectionner
cd rep1 Change de répertoire et va dans rep1
cd Revient au répertoire de l'utilisateur (/home/<user>/)
cd - Revient au répertoire précédent
cd .. Accède au répertoire parent
Code : Tout sélectionner
mkdir Crée un nouveau répertoire
Code : Tout sélectionner
rmdir Supprime un répertoire
-f Force la suppression
-R Supprime récursivement (c'est-à-dire le répertoire et ses sous-répertoires)
Code : Tout sélectionner
touch Création d'un fichier vide
Code : Tout sélectionner
cp Copie de fichier
Code : Tout sélectionner
mv Déplacement de fichier
Code : Tout sélectionner
rm Supprime le fichier
-f Force la suppression
-R Supprime récursivement (c'est-à-dire le répertoire et ses sous-répertoires)
Code : Tout sélectionner
pwd "print working directory" affiche le chemin complet du répertoire de travail en cours
Code : Tout sélectionner
passwd Change le mot de passe de l'utilisateur
Code : Tout sélectionner
cat Concatène deux fichiers et affiche le résultat sur la sortie standard
Code : Tout sélectionner
more Affiche le contenu du fichier avec des pauses
Code : Tout sélectionner
file Affiche le type présumé du fichier spécifié
Code : Tout sélectionner
lpr Imprime le fichier demandé
Code : Tout sélectionner
chmod Change l'attribut d'un fichier
chmod XXX fichier
XXX = Utilisateur|Groupe|Autres ou X représente un entier compris entre 1 et 7
Lecture=4, Ecriture=2, Execution=1
Code : Tout sélectionner
clear efface les lignes affichées sur le terminal
Code : Tout sélectionner
finger, who liste des utilisateurs en ligne
Code : Tout sélectionner
traceroute trace le chemin entre la machine locale et la machine visée
Code : Tout sélectionner
ping outil de diagnostic permettant de savoir si une machine répond sur le réseau
Code : Tout sélectionner
ftp [machine] [port]
Code : Tout sélectionner
telnet [machine] effectue un telnet
Code : Tout sélectionner
talk permet de parler à un utilisateur connecté
talk user
Code : Tout sélectionner
exit Déconnexion
1. Les chemins
Les chemins de fichiers et de dossiers sous Unix utilisent le slash "/" pour séparer les noms des dossiers.
Exemples :
Code : Tout sélectionner
/ dossier "racine"
/home dossier "home" (sous-dossier du dossier "racine")
/home/user "user" est un sous-dossier de /home
La commande unix de navigation dans le système de fichier est : cd pour Change Directory.
Code : Tout sélectionner
Exemple Description
cd . Se déplace vers le répertoire courant c'est-à-dire ne change pas de place!
cd .. Va dans le réperoire parent.
cd / Saute vers le réperoire racine, à la base de tout le système.
cd /home Se déplace vers le répertoire home fils de la racine.
cd /home/h-etie00 Parcours l'arbre jusqu'au répertoire h-etie00 en passant par la racine, puis par home.
cd ../Mail Remonte l'arbre d'un cran, puis va dans le répertoire Mail
cd ../.. Remonte de deux crans.
cd - revient au dossier précédent (annule le dernier changement de dossier)
cd ~ revient au dossier de base de l'utilisateur (en général : /home/<user>/)
Une commande essentielle de tout système d'exploitation est le listage des fichiers et sous-répertoires du répertoire courant.
L'équivalent sous Unix de la commande dir du Dos est ls.
Syntaxe : ls
Exemple :
Code : Tout sélectionner
ls
amoi.c montage.jpg tp3.c
lettre.doc tp1.c zizitop.mp3
monprog.c tp2.c
Syntaxe : ls expression-régulière
Exemple :
Code : Tout sélectionner
ls *.c
amoi.c tp1.c tp3.c
monprog.c tp2.c
Syntaxe : ls -l
Exemple :
Code : Tout sélectionner
ls -l
-rwxr--r-- 1 root univ 106 Apr 10 15:09 amoi.c
drwxr-xr-x 1 root univ 1024 Jan 5 20:54 DATA
-rwx------ 1 root univ 5160 Feb 23 09:22 lettre.doc
lrwxrwxrwx 1 root univ 3 Jan 24 12:16 tp -> TpK
Pour afficher les fichiers cachés, utiliser l'attribut -a (all). Très pratique pour lister les fichiers de configuration.
Syntaxe : ls -a
Exemple :
Code : Tout sélectionner
ls -a
.bash lettre.doc tp2.c
.netscape monprog.c tp3.c
.profile montage.jpg zizitop.mp3
amoi.c tp1.c
Créer un fichier est très simple avec la commande touch.
Code : Tout sélectionner
$ touch roman.txt
$ ls
roman.txt
4. Créer un dossier
Créer un dossier est tout aussi simple qu'un fichier, on utilise simplement la commande mkdir.
Code : Tout sélectionner
user@serveur:~$ mkdir photos
user@serveur:~$ ls -F
photos roman.txt
Code : Tout sélectionner
user@serveur:~$ cd photos
user@serveur:~$/photos$
Code : Tout sélectionner
user@serveur:~$ mkdir films musiques
Code : Tout sélectionner
user@serveur:~$ mkdir -p documents/factures/gaz
Avec une des commandes suivantes :
Code : Tout sélectionner
cat fichier affiche le contenu du fichier à l'écran en ASCII
more fichier affiche progressivement un fichier à l'écran : Entrer = descend d'une ligne, Espace = descend d'une page, q = quitte
less fichier comme more, mais on peut utiliser la touche Page Précédente. Pas disponible sur tous les systèmes.
head fichier affiche par défaut les 10 premières lignes d'un fichier
head -n{N} fichier affiche les N premières lignes d'un fichier
tail fichier affiche par défaut les 10 dernières lignes d'un fichier
tail -n{N} fichier affiche les N dernières lignes d'un fichier
Code : Tout sélectionner
vi fichier éditer un fichier avec l'éditeur vi. Tous les systèmes Unix ont un éditeur vi (ECHAP et taper :q! pour quitter)
nano fichier éditer un fichier avec l'éditeur nano. Tous les systèmes Unix ont un éditeur nano (CTRL+X pour quitter).
emacs fichier éditer un fichier avec l'éditeur emacs. Pas disponible sur tous les systèmes (CTRL+X pour quitter).
6.1 Création d'une archive tar.gz
Code : Tout sélectionner
tar -czf archive.tar.gz /home/user1/folder
Code : Tout sélectionner
tar -czf archive.tar.gz *
Code : Tout sélectionner
apt install zip
zip -r archive.zip /home/user1/folder
Code : Tout sélectionner
zip -q archive.zip file1 file2 file3
Déballage de tar.gz
Code : Tout sélectionner
tar -xzvf archive.tar.gz
Code : Tout sélectionner
apt install unzip
unzip archive.zip -d folder
Pour assurer la compatibilité et la portabilité, les systèmes UNIX respectent la norme FHS (File Hierarchy Standard). La hiérarchie de base d'un système Unix est la suivante :
Code : Tout sélectionner
/ la racine, elle contient les répertoires principaux
/bin Contient les exécutables essentiels au système, employés par tous les utilisateurs.
/boot Contient les fichiers de chargement du noyau, dont le chargeur d'amorce.
/dev Contient les points d'entrée des périphériques.
/etc Contient les fichiers de configuration nécessaires à l'administation du système (fichiers passwd, group, inittab, ld.so.conf, lilo.conf, ...).
/etc/X11 contient les fichiers spécifiques à la configuration de X (contient XF86Config par exemple)
/home Contient les répertoires personnels des utilisateurs. Dans la mesure où les répertoires situés sous /home sont destinés à accueillir les fichiers des utilisateurs du système, il est conseillé de dédier une partition spécifique au répertoire /boot afin de limiter les dégats en cas de saturation de l'espace disque.
/lib Contient les bibliothèques standards partagées entre les différentes application du système.
/mnt Permet d'accueillir les points de montage des partitions temporaires (cd-rom, disquette, ...).
/proc Regroupe un ensemble de fichiers virtuels permettant d'obtenir des informations sur le système ou les processus en cours d'exécution.
/root Répertoire personnel de l'administrateur root. Le répertoire personnel de l'administrateur est situé à part des autres répertoires personnels car il se trouve sur la partition racine, afin de pouvoir être chargé au démarrage, avant le montage de la partition /home.
/sbin Contient les exécutables système essentiels (par exemple la commande adduser).
/tmp contient les fichiers temporaires
/usr Hiérarchie secondaire
/usr/X11R6 ce répertoire est réservé au système X version 11 release 6
/usr/X386 utilisé avant par X version 5, c'est un lien symbolique vers /usr/X11R6
/usr/bin contient la majorité des fichiers binaires et commandes utilisateurs
/usr/include contient les fichiers d'en-tête pour les programmes C et C++
/usr/lib contient la plupart des bibliothèques partagées du système
/usr/local contient les données relatives aux programmes installés sur la machine locale par le root
/usr/local/bin Binaires des programmes locaux
/usr/local/include Fichiers d'en-tête C et C++ locaux
/usr/local/lib Bibliothèques partagées locales
/usr/local/sbin binaires système locaux
/usr/local/share hiérarchie indépendante
/usr/local/src Fichiers sources locaux
/usr/sbin contient les fichiers bianires non essentiels au système réservés à l'administrateur système
/usr/share réservé aux données non dépendantes de l'architecture
/usr/src contient des fichiers de code source
/var contient des données versatiles telles que les fichiers de bases de données, les fichiers journaux (logs), les fichiers du spouleur d'impression ou bien les mails en attente.