1. GENERALITES SUR LE système UNIX - Free

1.2 UNIX: System, Version, Unix like, Unix based... 1.3 Historique. 1.3.1 Les ...
2.10 Exercices: connexion et commandes de base .... 5.11 Corrigés des
exercices.

Part of the document



UNIX


COMMANDES DE BASE ET OUTILS

Jacques PHILIPP



Copyright: Systèmes Ouverts Conseils

25 septembre 2002

TABLE DES MATIERES

1. GENERALITES SUR LE système UNIX 9

1.1 L'évolution historique vers les systèmes ouverts 9
1.1.1 Relations entre les utilisateurs et les gros systèmes 9
1.1.2 Contraintes financières des systèmes propriétaires 10
1.1.3 Autres obligations des systèmes propriétaires 10
1.1.4 Révolutions techniques 10
1.1.5 Révolution culturelle 11
1.1.6 Evolution de l'organisation du travail dans l'entreprise 11
1.1.7 Evolutions de la population des utilisateurs 11
1.1.8 La normalisation 11
1.1.9 Portabilité 11
1.1.10 Introduction aux Systèmes Ouverts 12
1.1.11 UNIX et le domaine public 13

1.2 UNIX: System, Version, Unix like, Unix based... 13

1.3 Historique 14
1.3.1 Les pionniers (1969 - 1979) 14
1.3.2 La confusion (1979 - 1984) 14
1.3.3 L'ère industrielle (1984 - 1988) 15
1.3.4 La Normalisation (depuis 1988) 15
1.3.5 Les standards et les normes POSIX 16
1.3.6 Evolutions des outils 17
1.3.7 Unix et les Systèmes Ouverts 17
1.3.8 Le standard actuel 17
1.3.9 Historique d'UNIX 18

1.4 Architecture du système UNIX 19
1.4.1 Architecture 19
1.4.2 Architecture du noyau 19
1.4.3 La machine virtuelle UNIX 20
1.4.4 Performances 21
1.4.5 Règles de conception du Noyau UNIX 21
1.4.6 Génération du noyau 22

1.5 Evolutions d'UNIX 22

1.6 Domaines d'utilisation 24
1.6.1 Universalité d'UNIX 24
1.6.2 Domaines d'utilisation 25

1.7 Quelques systèmes UNIX en 2000 26
1.7.1 Systèmes commerciaux 26
1.7.2 Linux 27

1.8 Perspectives d'avenir et migration 27
1.8.1 Avenir d'Unix 27
1.8.2 Migration 28

1.9 Points communs des systèmes Unix 28
1.9.1 Banalisation de l'utilisation des postes de travail 28

1.10 Bibliographie 29

2. SESsION de travail sous UNIX 30

2.1 Session de travail 30
2.1.1 Ouverture d'une session 30
2.1.2 Mot de passe 30
2.1.3 Caractéristiques d'un utilisateur 31
2.1.4 Mécanisme dit d'aging 31
2.1.5 Caractéristiques d'un groupe 32
2.1.6 Syntaxe générale d'une commande 32
2.1.7 Opérations sur les utilisateurs et les groupes 32
2.1.8 Fin de session 33

2.2 Documentation 33
2.2.1 Manuel de références UNIX 33
2.2.2 Autres documentations 35
2.2.3 Utilisation de la documentation en ligne 35
2.2.4 Localisation des commandes 36
2.2.5 Interface graphique 37

2.3 L'environnement de l'utilisateur 37
2.3.1 Fichiers de configuration d'applicatifs usuels 37
2.3.2 Initialisation du terminal 38
2.3.3 Commandes diverses 39

2.4 Informations relatives aux utilisateurs 40

2.5 Impression 41
2.5.1 Impression (locale) sous SYSTEM V 41
2.5.2 Impression sous BSD 42
2.5.3 Mise en page d'un fichier pour impression 43

2.6 Généralités sur les éditeurs de textes 43

2.7 L'éditeur VI 44
2.7.1 Graphe d'état et modes de fonctionnement de vi 44
2.7.2 Appel de vi 45
2.7.3 Commandes de vi 45

2.8 l'éditeur ligne ED 49
2.8.1 Présentation 49
2.8.2 Principales commandes de ed 49

2.9 La commande script 50

2.10 Exercices: connexion et commandes de base 50
2.10.1 Ouverture de session 50
2.10.2 Commandes de base 50
2.10.3 L'éditeur vi 51

3. Systeme de gESTION DE FICHIERS 52

3.1 Conception orientée objet du système de gestion des entrées/sorties
52

3.2 Types de fichiers 52
3.2.1 Fichier ordinaire 52
3.2.2 Répertoire 52
3.2.3 Fichiers standards 53
3.2.4 Fichiers spéciaux 53
3.2.5 Lien matériel et lien symbolique 55
3.2.6 Commandes d'informations générales 56

3.3 Nommage des fichiers 57
3.3.1 Règles 57
3.3.2 Caractères spéciaux élémentaires du shell 57
3.3.3 Chemins d'accès 58

3.4 Opérations sur les fichiers standards 59
3.4.1 Redirection 59
3.4.2 Tube 61

3.5 Opérations sur les répertoires 62

3.6 Opérations sur les fichiers ordinaires 63
3.6.1 Copie 63
3.6.2 Renommage ou déplacement 64
3.6.3 Suppression 64
3.6.4 Comparaison 64
3.6.5 Concaténation 65
3.6.6 Contenu 65
3.6.7 L'heure de dernière modification 66
3.6.8 La commande fuser 66
3.6.9 Recherche récursive avec condition et traitement 67
3.6.10 Nettoyage et commande find 69
3.6.11 Recherche d'une chaîne de caractères dans un fichier 69
3.6.12 Tri d'un fichier texte 70
3.6.13 Autres commandes 70

3.7 Attributs de propriété et de sécurité 71

3.8 Gestion des attributs de propriété 72

3.9 Gestion des attributs de sécurité 73
3.9.1 La commande chmod 73
3.9.2 Masque de définition des droits d'accès par défaut 73
3.9.3 Les bits s et S 74
3.9.4 Gestion du bit suid 74
3.9.5 Le bit t 75

3.10 L'arborescence UNIX 75
3.10.1 Répertoires sous la racine 77
3.10.2 Commandes publiques 77
3.10.3 Fichiers temporaires 78
3.10.4 Bibliothèques 78

3.11 Liste de contrôle d'accès 79

3.12 Exercices 81
3.12.1 Commandes de base du SGF 81
3.12.2 Commandes d'affichage 81
3.12.3 Tube 81
3.12.4 Liens et redirection 81
3.12.5 Commandes find, grep et sort 82
3.12.6 Attributs de sécurité 83

4. Gestion des PROCESSUS 84

4.1 Définitions 84
4.1.1 Etats et transitions 85
4.1.2 Statut et transitions 86

4.2 Descripteurs associés a un processus 88
4.2.1 Identificateur 88
4.2.2 Table Proc[] 88
4.2.3 Structure U 89
4.2.4 La commande ps 89

4.3 Principes de fonctionnement des appels systèmes 90

4.4 Appels système de création et terminaison de processus 92
4.4.1 L'appel système fork : présentation externe 92
4.4.2 L'appel système canonique exec* 92
4.4.3 Données limites d'exécution d'un processus 93
4.4.4 L'appel système exit 93

4.5 Synchronisation de processus filiés 94
4.5.1 Généralités 94
4.5.2 L'appel système wait 94
4.5.3 La commande du shell wait 94
4.5.4 La commande du shell sleep 94

4.6 Signaux 95
4.6.1 Emission de signaux 96
4.6.2 Réception de signaux 97

4.7 Contrôle de l'exécution des processus 97
4.7.1 Modes d'exécution d'un processus 97
4.7.2 Commande jobs 97
4.7.3 Commandes de changement d'état 98
4.7.4 Graphe de changement d'état 99
4.7.5 Commande nohup 99
4.7.6 Commande killall 99
4.7.7 Commande lastcomm 100
4.7.8 Commandes nice et renice 100

4.8 Exercices 100
4.8.1 Commande ps 100
4.8.2 Gestion des modes d'exécution (commandes bg &fg) 100
4.8.3 Gestion des priorités 101

5. Les interprètes de commandes korn shell et bash 102

5.1 Généralités sur les interprètes de commandes 102
5.1.1 Fonctionnalités 102
5.1.2 Compatibilité historique 102
5.1.3 Le shell, langage de programmation 103

5.2 Gestion du profil de l'utilisateur 103
5.2.1 Profil de l'utilisateur 103
5.2.2 Alias 104
5.2.3 Rappels sur les caractères spéciaux élémentaires du shell 105
5.2.4 Compléments sur les caractères spéciaux 106

5.3 Variable locale, exportée, typée 109
5.3.1 Variable locale à un processus donné 109
5.3.2 Variable exportée 109
5.3.3 Déclaration de type (commande typeset) 110

5.4 Opérations sur les chaînes de caractères 111

5.5 Variables d'environnement prédefinies 112
5.5.1 Variables d'environnement initialisées par l'interprète de
commandes Korn shell 112
5.5.2 Variables d'environnement utilisées par l'interprète de
commandes Korn shell 112

5.6 SHELLS-SCRIPTS 113
5.6.1 Définition d'un shell script 113
5.6.2 Création d'un shell script 113
5.6.3 Exécution d'un shell-script 113
5.6.4 Mise au point d'un shell script 113
5.6.5 Macros utilisées dans les shell scripts 114
5.6.6 Contexte d'exécution des shell-scripts 115

5.7 Programmation en Korn shell 116
5.7.1 Opérateur test 116
5.7.2 Structure de contrôle if 117
5.7.3 Branchement multiple : la construction case 119
5.7.4 Itérations bornées : la boucle for 119
5.7.5 Itérations non bornées : la boucle while 119
5.7.6 Itérations non bornées : la boucle until 120
5.7.7 Branchements inconditionnels 121
5.7.8 Saisie interactive des données et menu 121
5.7.9 Affectation des variables de position 122
5.7.10 Fonctions en shell 122
5.7.11 Exemple d'un fichier .profile 123
5.7.12 Exemple d'un fichier .kshrc 125

5.8 Présentation sommaire du C-shell 125

5.9 Exercices sur les fichiers d'environnement 127
5.9.1 Définition et suppression d'alias 127
5.9.2 Mécanisme d'historique 127
5.9.3 Variables d'environnement 127
5.9.4 Fichiers de paramétrage 127
5.9.5 Divers 127

5.10 Ecriture d'utilitaires en Shell 128
5.10.1 Macro 128
5.10.2 Changement de la langue de l'affichage de la date 128
5.10.3 Renommage interactif des fichiers 128
5.10.4 Sauvegarde d'un répertoire avec reconstruction de la même
arborescence 129
5.10.5 Affi