Vous êtes sur la page 1sur 19

Ecole Nationale Polytechnique d’Oran- Maurice AUDIN

Département de Génie des Systèmes

Intitulé de la matière: Programmation Système

Commandes Linux de base

Dr. Nawel BENDIMERAD

Année universitaire 2023/2024


1
Introduction
• Linux est un système d’exploitation de type UNIX pour PC, initialement créé en
1991 par Linus Torvalds. Il s’agit du premier système d’exploitation complet
GNU/Linux libre. De nombreuses distributions Linux ont depuis vu le jour.
Avec un code source disponible, un grand nombre de développeurs bénévoles
ont participé à son développement.

• L’utilisation du système d'exploitation Linux peut principalement se faire de


deux manières:

à l’aide du gestionnaire de fenêtres (interface graphique à la manière de


Microsoft Windows) : l’interface propose un ensemble de fonctionnalités
usuelles;
à l’aide d’un terminal: c'est ce mode qui nous intéressera plus particulièrement
car il offre des possibilités très puissantes.
• Toute application peut aussi bien se lancer à partir d’un terminal qu’à partir du
menu du gestionnaire de fenêtre.
2
Le Shell
• Un shell est l’interpréteur de commande en mode texte qui sert
d’interface entre l’utilisateur et le SE, d’où son nom anglais
« shell » qui signifie « coquille ».
• Par défaut, c’est le shell bash qui est installé avec linux.
• Il peut s’utiliser en mode interactif ou pour exécuter des
programmes écrits dans le langage de programmation du shell
(appelés shell scripts).
• Son rôle consiste à lire la ligne de commande, interpréter sa
signification, exécuter la commande, puis retourner le résultat sur
les sorties.
• En mode interactif, le shell affiche une invite en début de ligne
(prompt), par exemple un caractère $, pour indiquer à l’utilisateur
qu’il attend l’entrée d’une commande.
3
Le Shell
• La commande est interprétée et exécutée après la frappe de la
touche “Entrée”.
• exemple :
$ ls TP
TP1 TP2
• les lignes débutants par $, sont entrées par l’utilisateur, les
autres sont affichées en réponse.

• Chaque ligne entrée par l’utilisateur est interprétée par le shell


comme une commande, dont il lance l’exécution. Le premier
mot de la ligne est le nom de la commande (ex:
ls) ; il est éventuellement suivi d’un certain nombre d’argument
(ex: l).

4
Notion de chemin
Il s’agit de l’emplacement d’un fichier ou d’un répertoire dans
l’arborescence du système de fichier. Les différents types de
chemins que nous pouvons avoir sont les suivants :
• « / »: chemin absolu à partir de la racine.
• « ~ »: chemin relatif au répertoire d’accueil (home).
• « . »: chemin relatif au répertoire courant.
• « .. »: chemin relatif au répertoire père.
• Remarque: les fichiers cachés sous linux commencent par un
point.
• Exemple:
~/.bashrc : est un fichier caché dans le répertoire home de
l’utilisateur, qui contient la configuration de son shell.
5
Définition d’une commande
• Une commande est l’exécution d’un programme dans
l’interprète (shell).
• Elle prend en entrée des options et/ou des paramètres.
• Elle peut afficher de l’information à l’écran ou dans un fichier,
modifier un fichier ou produire un message d’erreur.
• Une description de toutes les commandes est disponible avec la
commande « man » ou « help ».
• Intérêts :
Historiquement : pas d’interface graphique
Commandes complexes : interfaces graphiques peu adaptées
Efficacité : souvent plus rapide d’utiliser une commande que
l’interface graphique.
Gestion à distance
6
Commandes de navigation
Les commandes de navigation sont très utiles pour se retrouver en mode texte, les
plus utilisées sont les suivantes :
• pwd (Print Working Directory): retourne le chemin absolu du répertoire
courant.
• cd (Change Directory): change le répertoire courant. Sans argument, ramène
dans le répertoire de connexion (home).
• ls (List): affiche le contenu du répertoire courant.
Exemples:
cd .. : va dans le répertoire père du répertoire courant
cd nom-rep: le répertoire de travail devient le répertoire nom-rep.
ls –l nom-rep: affiche le contenu du répertoire nom-rep de manière détaillée (nom
des fichiers /sous répertoires, tailles, droits, propriétaire, date de dernière
modification, etc).
ls –a /home/user: affiche le contenu du répertoire courant ainsi que les fichiers
cachés.

7
Commandes de manipulation des fichiers et
des répertoires
Les principales commandes de manipulation des fichiers et des
répertoires sont les suivantes :
• touch: commande de création d’un fichier.
• touch nom-fic: si le fichier existe, mettre à jour la date de la dernière
modification. Sinon, créer un fichier vide avec le nom nom-fic.
• cat nom-fic: affiche le contenu du fichier nom-fic dans le terminal.
• more nom-fic: idem, mais page par page.
• cp (Copy): pour copier un fichier.
• cp ancien-fic nouveau-fic: copier le fichier ancien-fic dans
nouveau-fic.
• mv (move): pour déplacer un fichier.
• mv ancien nouveau: déplacer le fichier ancien dans nouveau, en le
renommant si nouveau désigne un fichier.
• rm (remove): pour effacer un fichier.
8
Création et suppression de répertoire
mkdir (Make Directory): créer un répertoire.
rmdir (Remove Directory): effacer un répertoire s’il est vide.

Exemples:
mkdir /home/user/mesdocuments : crée le répertoire mes
documents dans le sous répertoire home/user.
rmdir /home/user/TP : efface le répertoire TP de home/user si
celui-ci est vide.

9
Méta-caractères du shell
*: Toute chaîne de caractères ne commençant pas par « . »
?: Un caractère quelconque.
[abc]: Un caractère quelconque parmi a, b ou c.
[a-d]: Un caractère quelconque dans la plage allant du caractère a au
caractère d.
{1..4}: Spécifie l’ensemble d’éléments qui vont de 1 à 4.
Exemples:
ls –l *.txt : Affiche seulement les fichiers ayant l’extension txt.
rm td[1-3].pdf : Efface les fichiers td1.pdf, td2.pdf et td3.pdf.
touch td-M11{05,21}.pdf : Met à jour la date (ou crée) les fichiers
td-M1105.pdf et td-M1121.pdf.
cp /tmp/?2018.data : Copie dans le répertoire courant tous les
fichiers qui sont dans le répertoitr /tmp dont le nom est composé
d’une chaîne de cinq caractères qui se termine par 2018 et qui ont
10
l’extension data.
Commandes de recherche
Les commandes de recherche les plus utilisées sont les suivantes :
• find: Trouve un fichier répondant à certains critères.
• grep: recherche une chaîne dans un fichier.
• which: Trouve le répertoire dans le lequel se trouve une
commande.
Exemples:
find /home –name ‘*bash*’ : Trouve tous les fichiers contenant le
mot bash dans leur nom se retrouvant dans le répertoire home.
grep chaine *.txt : Recherche ‘chaine’ dans tous les fichiers dont
l’extension est txt.
which ps : Retourne le nom du répertoire dans lequel se trouve la
commande ps.
11
Redirections des entrées/sorties (1)
• Chaque programme sous linux dispose au moins de deux flux de
données:
l’entrée standard, utilisée en lecture, qui est normalement associée
au clavier du terminal, et
la sortie standard, utilisée en écriture, normalement associée à l’
écran du terminal (ou à la fenêtre de lancement le cas échéant).
• Il est très simple de rediriger l’entrée ou la sortie standard d’un
programme lors de son lancement depuis un shell.
• Pour la sortie, on utilise la commande suivante :
ls > resultat
• Dans ce cas, au lieu d’afficher sur l’écran, la commande ls va créer
un fichier nommé ici résultat et y écrire.
Rien n'apparaît à l’écran (sauf s’il se produit une erreur).

12
Redirections des entrées/sorties (2)
• Si l’on désire ne pas effacer l’ancien contenu du fichier, mais écrire
à sa fin, on peut utiliser >> :
ls >> resultats
• Pour rediriger l’entrée standard, on utilise < :
cat < UnFichier
• Il est possible de rediriger l’entrée et la sortie en même temps :
cat < UnFichier > Resultat
• Il existe aussi un troisième flux standard, utilisé pour l’écriture des
messages d’erreur (nommé stderr en C). Il se redirige avec >& .
• Il est possible de réaliser une redirection vers une autre commande
commande1 | commande2
• Toutes les données affichées en sortie par la commande 1 sont
envoyées à la commande 2 qui les prend comme entrée.
13
Droits d’accès aux fichiers
• On spécifie pour chaque ressource 3 groupes de droits
d’accès:
Les droits du propriétaire: user
Les droits des utilisateurs appartenant au même groupe que le
propriétaire: group
Les autres: others
• Pour chaque groupe, il existe 3 types de droits d’accès:
Le droit de lecture (read) désigné par: r
Le droit d’écriture (write) désigné par: w
Le droit d’exécution (execute) désigné par: x

14
Codage des droits d’accès
• Les droits d’accès sont codés sur 9 bits:

user group others


r w x r w x r w x
22 21 20 22 21 20 22 21 20

• L’expression des droits d’accès en code octal se fait de la


manière suivante:
rw- r-- --- ⬄ 640
rwx rwx r-- ⬄ 774

15
Manipulation des droits d’accès
• chmod droits référence : Changer les droits d’accès de référence.
Les droits d’accès peuvent être exprimés de deux manières:
• code octal : chmod 640 exemple.txt
• code symbolique : chmod cible opérateur droit
cible: u (user), g (group), o (others)
opérateur: + (ajouter), - (enlever), = (attribuer seulement ces droits)
droit: r (read), w (write), x (exécuter)
Exemples:
chmod ug + rw , u + x nom_fic : Le propriétaire et le groupe ont le
droit de lire et de modifier, le propriétaire a le droit d’exécuter. Les
autres droits restent inchangés.
chmod o = g , o - x nom_fic : Les autres ont les mêmes droits que le
groupe mais sans le droit d’exécution.

16
Manipulation des comptes utilisateurs et
des groupes
Les commandes de création et de suppression de compte utilisateur
et de groupe sont les suivantes :
• sudo adduser nom_utilisateur: permet de créer un nouvel utilisateur.
• sudo addgroup nom_groupe: permet d’ajouter un nouveau groupe.
• sudo adduser nom_utilisateur nom_groupe: permet d’affecter un
compte utilisateur au nouveau groupe.
Remarque: le fichier /etc/passwd contient des informations sur les
comptes utilisateurs (nom_utilisateur, mot de passe, uuid, guid, etc.)
• sudo deluser nom_utilisateur: permet de supprimer un compte
utilisateur et son groupe primaire.
• sudo delgroup nom_groupe: permet de supprimer un groupe.

17
Les Scripts
• Les scripts sont des programmes écrits dans un langage interprété
(langage du shell).
• Un script peut être une simple liste de commandes.
• La première ligne du script doit préciser l’interpréteur utilisé, elle
commence par les deux caractères #!, suivis du chemin absolu de
l’interpréteur.
Exemple : #!/bin/bash
• Le script doit être entré à l’aide d’un éditeur de texte, enregistré
dans un fichier, puis rendu exécutable grâce à la
commande chmod.
Remarque: Il est possible aussi d’écrire des scripts plus sophistiqués
(avec arguments, tests, boucles, etc.)

18
Les Scripts
Exemple
Le script suivant affiche le contenu du répertoire courant:
#!/bin/bash
echo Contenu du repertoire courant
ls -l
echo Fin de la commande
• Si le script précédent est nommé par exemple « liste » donc il faut
d’abord le rendre exécutable à l’aide de la commande suivante :
$ chmod a+x liste
• Exécution du script :
$ liste

19

Vous aimerez peut-être aussi