Page 1 sur 1

[tuto][linux][débutant] Commandes et notions de base

Publié : 10 décembre 2023, 15:49
par N4T0R4
Commandes 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>
Pour avoir les manuels en français, installer manpages-fr :

Code : Tout sélectionner

sudo apt install manpages-fr
1. Syntaxe d'une commande Unix

Une commande Unix est formée sur la syntaxe suivante :

Code : Tout sélectionner

commande [options]... [arguments]...
Les options sont souvent de la forme -char ; de manière générale différentes options peuvent être regroupées :

Code : Tout sélectionner

ls -l -a 
est équivalent à

Code : Tout sélectionner

ls -la
2. Principales commandes

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
Notions de base

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
2. Se déplacer dans le système de fichier

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>/)
3. Lister le contenu d'un dossier

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
Cette commande accepte les méta-caractères afin de n'afficher que les fichiers qui répondent à certaines contraintes lexicographique.

Syntaxe : ls expression-régulière

Exemple :

Code : Tout sélectionner

ls *.c
amoi.c           tp1.c           tp3.c
monprog.c        tp2.c
On peut afficher toutes les informations relatives à un fichier : type, droits, numéro d'inode, nom, UID, GID, taille, date et heure de création... avec l'attribut -l.

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
Voir : Les droits d'accès aux fichiers

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
3. Créer un fichier

Créer un fichier est très simple avec la commande touch.

Code : Tout sélectionner

$ touch roman.txt
$ ls
roman.txt
La commande a bien créé un fichier nommé roman.txt dans le dossier où je me trouve.

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$
Il est aussi possible de créer plusieurs dossiers en même temps, en spécifiant plusieurs arguments.

Code : Tout sélectionner

user@serveur:~$ mkdir films musiques
Ou encore de créer une arborescence de sous-répertoires d'un seul coup.

Code : Tout sélectionner

user@serveur:~$ mkdir -p documents/factures/gaz
5. Visualiser et éditer les fichiers

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
Avec un éditeur de texte :

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. Créer une archive

6.1 Création d'une archive tar.gz

Code : Tout sélectionner

tar -czf archive.tar.gz /home/user1/folder
Lancer et archiver dans le dossier racine

Code : Tout sélectionner

tar -czf archive.tar.gz *
6.2 Création d'une archive zip

Code : Tout sélectionner

apt install zip
zip -r archive.zip /home/user1/folder
Archivage de plusieurs fichiers

Code : Tout sélectionner

zip -q archive.zip file1 file2 file3
7. Déballage de l'archive

Déballage de tar.gz

Code : Tout sélectionner

tar -xzvf archive.tar.gz
Déballage du zip

Code : Tout sélectionner

apt install unzip
unzip archive.zip -d folder
La hiérarchie des fichiers sous Unix

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.