Notes de coursM1 E3A
Linux – Commandes et appels systèmes
Hugues Mounier
†† Laboratoire des Signaux et Systèmes Université Paris Sud 11, CNRS, Supélec
3, rue Joliot Curie, 91192 Gif sur Yvette, France
e-mail : [email protected] [email protected]
2017/2018– Document en cours d’élaboration
ver. 1.0N
LA BOR A TOIR E DE S SIGNA UX E T SY STÈ ME S
Table des matières
Table des matières i
A Notions de base 1
B Compléments de C, commandes & shell 3
I Rappels et compléments sur le langage C 5
1 Complements sur les entrées/sorties 5
1.1 Gestion des tampons d’entrées/sorties 6
1.2 Fichiers ouverts à la fois en lecture et en écriture 7
1.3 Accès direct 8
1.4 Fonctions d’entrées/sorties particulières 9
2 Normalisation C ANSI 10
2.1 Modifications introduites par la norme ANSI 10
2.2 Le fichier <sys/limits.h> et la norme POSIX 12
3 La bibliothèque C 13
3.1 Fonctions de traitement de caractères 13
3.2 Traitement des chaînes de caractères 14
3.3 Les fonctions d’allocation dynamique de mémoire 16
3.4 Fonctions complémentaires 17
4 Compléments sur les pointeurs 18
4.1 Les tableaux de pointeurs 18
4.2 Pointeurs, structures et unions 22
4.3 Pointeurs sur fonctions 24
5 Compilation et édition de liens 25
5.1 Compilateur gcc 26
5.2 Arguments sur la ligne de commande 27
5.3 Rappels sur la norme ANSI 28
5.4 L’outil splint 29
5.5 L’outil make 32
i
ii TABLE DES MATIÈRES
5.6 Le générateur de makefile CMake 37
5.7 L’outil valgrind 39
5.8 L’outil de mise au pointgdb 41
II Commandes Linux 43
1 Notions de base 44
1.1 Introduction 44
1.2 Comptes utilisateur – Super utilisateur 45
1.3 Connexion – Déconnexion 45
1.4 Arrêt du système 46
2 Notions fondamentales 47
2.1 Les types de fichiers 47
2.2 Fichiers répertoires 47
2.3 Fichiers ordinaires 48
2.4 Fichiers spéciaux 48
2.5 Le système de fichiers 49
2.6 Accès et partage des fichiers 51
2.7 Répertoires de travail du système 55
3 Commandes 56
3.1 Principes généraux 56
3.2 Le code de retour 56
3.3 Quelques exemples de commandes 56
3.4 Commande :echo 56
3.5 Les entrées/sorties des commandes 57
4 Commandes de manipulation de fichiers 60
4.1 Commandeman 60
4.2 Accès à un répertoire : commande cd 61
4.3 Commandepwd 62
4.4 Création d’un répertoire : commandemkdir 63
4.5 Destruction d’un répertoire : commandermdir 63
4.6 Visualisation du contenu d’un répertoire : commandels 63
4.7 Visualisation : commande cat 64
4.8 Commandemore 65
4.9 Commandeod 66
4.10 Déplacement, changement de nom : commandemv 66
4.11 Copie : commande cp 67
4.12 Destruction : commande rm 68
4.13 Création de liens physiques : commande ln 69
4.14 Création de liens symboliques : commandeln -s 70
4.15 Nature d’un fichier : commandefile 70
TABLE DES MATIÈRES iii
5 Commandes agissant sur les droits d’accès 71
5.1 Permissions par défaut : commande umask 71
5.2 Changement des permissions : commandechmod 72
5.3 Transfert de propriété d’un fichier : commande chown 73 5.4 Transfert de propriété d’un fichier : commande chgrp 73
6 Outils de traitement de fichiers 74
6.1 Commandewc 74
6.2 Recherche de chaînes : commandegrep 74
6.3 Substitution de caractères : commandetr 75
6.4 Extraction de champs : commande cut 76
6.5 Sélection de lignes : commandetail 77
7 Commandes diverses 77
7.1 Commandeclear 77
7.2 Commandesleep 77
7.3 Commandetimes 77
8 Mémento de commandes Linux 78
III Le shell 81
1 Introduction 81
2 L’interface shell-Linux 82
2.1 Commandes et processus 82
2.2 Visualisation des processus : commande ps 83
2.3 Notion d’environnement 85
2.4 Gestion des commandes 92
3 Les procédures de commande 96
3.1 Généralités 96
3.2 Variables prédéfinies 96
3.3 Passage des paramètres (paramètres de position) 97
3.4 Les options du shell (flags d’exécution) 98
3.5 Commandes de test 100
4 Structures de contrôle 103
4.1 La structure if 103
4.2 La structure case 105
4.3 Les structures whileet until 106
4.4 La structure for 107
4.5 Instructions de débranchement,break etcontinue 108
4.6 Instruction select 108
4.7 Sortie 109