Full Transcript

Système d’exploitation Présentation du GNU BASH Shell Pour aller plus loin : manuel de référence du bash Environnement Informatique et Internet Didier Puzenat [email protected] Université Lumière Lyon 2...

Système d’exploitation Présentation du GNU BASH Shell Pour aller plus loin : manuel de référence du bash Environnement Informatique et Internet Didier Puzenat [email protected] Université Lumière Lyon 2 Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 1/90 Système d’exploitation Présentation du GNU BASH Shell Pour aller plus loin : manuel de référence du bash Objectifs du cours Objectifs : bases de fonctionnement d’un système d’exploitation ; bases de réseau (LAN et WAN) ; configuration d’un environnement GNU/Linux en salle de TD ; connaissances suffisantes pour utiliser Linux en ligne de commandes (BASH). Volume horaire : 5 séances de cours 7 séances de ≪ TD sur machine ≫ (bâtiment D). Évaluation : trois QCM de 30 minutes sur Moodle : durant les séances de TD ; sur tout ce qui a été vu en CM et TD. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 2/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus 1 Système d’exploitation Définition d’un système d’exploitation Notions de compte et de ≪ droits ≫ Notion de processus et manipulation de processus 2 Présentation du GNU BASH Shell A quoi sert la ligne de commandes ? Les variables d’environnement du shell et quelques commandes indipensables Enchaı̂nement de commandes, tubes et re-directions 3 Pour aller plus loin : manuel de référence du bash Bashref ? Boucles until, while et for ; les tests (conditions) Les ≪ expansions ≫ du shell Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 3/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Définition Définition d’un système d’exploitation (SE), en anglais Operating System (OS) : ensemble de programmes assurant l’interface entre les ressources matérielles d’un ordinateur et les applications de l’utilisateur. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 4/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Définition Définition d’un système d’exploitation (SE), en anglais Operating System (OS) : ensemble de programmes assurant l’interface entre les ressources matérielles d’un ordinateur et les applications de l’utilisateur. un SE assure notamment le démarrage de l’ordinateur et fournit aux programmes applicatifs des points d’entrée génériques pour les périphériques. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 4/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Définition Définition d’un système d’exploitation (SE), en anglais Operating System (OS) : ensemble de programmes assurant l’interface entre les ressources matérielles d’un ordinateur et les applications de l’utilisateur. un SE assure notamment le démarrage de l’ordinateur et fournit aux programmes applicatifs des points d’entrée génériques pour les périphériques. ⇒ le SE permet de s’affranchir de la machine physique : on n’écrit pas une application pour une machine donnée, mais pour un SE donnée ; on ne se forme pas à une machine mais à un SE. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 4/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Composition typique d’un SE Un système d’exploitation est typiquement composé : d’un noyau (kernel en anglais) : fournit des mécanismes d’abstraction du matériel : mémoire, processeur(s), etc ; permet l’abstraction des échanges entre logiciels et périphériques matériels ; facilite la communication entre les processus... Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 5/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Composition typique d’un SE Un système d’exploitation est typiquement composé : d’un noyau (kernel en anglais) : fournit des mécanismes d’abstraction du matériel : mémoire, processeur(s), etc ; permet l’abstraction des échanges entre logiciels et périphériques matériels ; facilite la communication entre les processus... d’un système de gestion de fichiers ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 5/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Composition typique d’un SE Un système d’exploitation est typiquement composé : d’un noyau (kernel en anglais) : fournit des mécanismes d’abstraction du matériel : mémoire, processeur(s), etc ; permet l’abstraction des échanges entre logiciels et périphériques matériels ; facilite la communication entre les processus... d’un système de gestion de fichiers ; de bibliothèques dynamiques (chargées ≪ à la volée ≫) ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 5/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Composition typique d’un SE Un système d’exploitation est typiquement composé : d’un noyau (kernel en anglais) : fournit des mécanismes d’abstraction du matériel : mémoire, processeur(s), etc ; permet l’abstraction des échanges entre logiciels et périphériques matériels ; facilite la communication entre les processus... d’un système de gestion de fichiers ; de bibliothèques dynamiques (chargées ≪ à la volée ≫) ; d’un ensemble d’outils système ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 5/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Composition typique d’un SE Un système d’exploitation est typiquement composé : d’un noyau (kernel en anglais) : fournit des mécanismes d’abstraction du matériel : mémoire, processeur(s), etc ; permet l’abstraction des échanges entre logiciels et périphériques matériels ; facilite la communication entre les processus... d’un système de gestion de fichiers ; de bibliothèques dynamiques (chargées ≪ à la volée ≫) ; d’un ensemble d’outils système ; de programmes applicatifs de base. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 5/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Le noyau du système Rôles du noyau : gestion des périphériques (au moyen de pilotes) ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 6/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Le noyau du système Rôles du noyau : gestion des périphériques (au moyen de pilotes) ; gestion des processus : attribution de la mémoire aux processus ; ordonnancement des processus ; synchronisation et communication entre processus... Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 6/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Le noyau du système Rôles du noyau : gestion des périphériques (au moyen de pilotes) ; gestion des processus : attribution de la mémoire aux processus ; ordonnancement des processus ; synchronisation et communication entre processus... gestion des fichiers (via le système de gestion de fichiers) ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 6/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Le noyau du système Rôles du noyau : gestion des périphériques (au moyen de pilotes) ; gestion des processus : attribution de la mémoire aux processus ; ordonnancement des processus ; synchronisation et communication entre processus... gestion des fichiers (via le système de gestion de fichiers) ; gestion des protocoles réseau (par exemple TCP/IP). Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 6/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Les bibliothèques dynamiques Définition d’une bibliothèque dynamique Les bibliothèques dynamiques servent à regrouper les opérations les plus utilisées dans les programmes informatiques. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 7/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Les bibliothèques dynamiques Définition d’une bibliothèque dynamique Les bibliothèques dynamiques servent à regrouper les opérations les plus utilisées dans les programmes informatiques. réduction de la taille d’un exécutable : le code est chargé à la volée ; utilisation de fonctions validées : fonctionnement, sécurité, performances... efficacité des mises à jour : correction de bug, trous de sécurité, améliorations.... Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 7/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Les bibliothèques dynamiques Définition d’une bibliothèque dynamique Les bibliothèques dynamiques servent à regrouper les opérations les plus utilisées dans les programmes informatiques. réduction de la taille d’un exécutable : le code est chargé à la volée ; utilisation de fonctions validées : fonctionnement, sécurité, performances... efficacité des mises à jour : correction de bug, trous de sécurité, améliorations.... Exemple sous : Windows : les fichiers.dll (pour Dynamic Link Library) ; Unix / Linux : les très nombreux fichiers.so (pour shared object). Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 7/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Les outils du système et programmes applicatifs de base Les outils système d’un OS permettent : de configurer le système : gérer les comptes des utilisateurs ; configuration des paramètres réseau ; démarrage automatique des services... de passer le relais aux applications. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 8/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Les outils du système et programmes applicatifs de base Les outils système d’un OS permettent : de configurer le système : gérer les comptes des utilisateurs ; configuration des paramètres réseau ; démarrage automatique des services... de passer le relais aux applications. Les applicatifs de base ne font pas strictement partie du SE, mais beaucoup d’applications tierces comptent sur leur présence. Exemples : éditeur, client ftp, outil d’archivage... outils de visualisation (images, postscript, pdf...) client de courriel, navigateur web, voire suite bureautique... Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 8/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Systèmes multi-utilisateurs Système multi-utilisateurs Un système multi-utilisateurs est conçu pour que plusieurs utilisateurs puissent profiter des mêmes ressources simultanément. ⇒ l’accès aux ressources et aux données est protégé par un ≪ compte utilisateur ≫. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 9/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Systèmes multi-utilisateurs Système multi-utilisateurs Un système multi-utilisateurs est conçu pour que plusieurs utilisateurs puissent profiter des mêmes ressources simultanément. ⇒ l’accès aux ressources et aux données est protégé par un ≪ compte utilisateur ≫. le compte assure l’équité d’accès aux ressources ; le compte permet la confidentialité des données ; le compte permet une bonne protection du système : les fichiers de configuration et les commandes sensibles ne sont accessibles qu’aux ≪ administrateurs ≫. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 9/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (1/3) Les fichiers (et répertoires) d’un système multi-utilisateurs Unix : appartiennent tous à un utilisateur donné ; sont protégés par des droits d’accès, modifiables uniquement par le propriétaire du fichier (et par l’administrateur). Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 10/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (1/3) Les fichiers (et répertoires) d’un système multi-utilisateurs Unix : appartiennent tous à un utilisateur donné ; sont protégés par des droits d’accès, modifiables uniquement par le propriétaire du fichier (et par l’administrateur). Sous Unix, les droits possibles sont : pour un fichier (non répertoire) : lecture (r), modification (w), exécution (x) ; pour un répertoire : listage du contenu (r), création et suppression de fichiers (et répertoires) dans le répertoire (w), traversée du répertoire (x). Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 10/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (2/3) Les droits sont décrits via 9 caractères : 3 pour le propriétaire ; 3 pour un groupe d’utilisateurs ; 3 pour les autres utilisateurs. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 11/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (2/3) Les droits sont décrits via 9 caractères : 3 pour le propriétaire ; 3 pour un groupe d’utilisateurs ; 3 pour les autres utilisateurs. Exemple : si un fichier (non répertoire) a comme droits : rw-r--r-- Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 11/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (2/3) Les droits sont décrits via 9 caractères : 3 pour le propriétaire ; 3 pour un groupe d’utilisateurs ; 3 pour les autres utilisateurs. Exemple : si un fichier (non répertoire) a comme droits : rw-r--r-- le propriétaire peut lire et modifier le fichier, mais pas l’exécuter ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 11/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (2/3) Les droits sont décrits via 9 caractères : 3 pour le propriétaire ; 3 pour un groupe d’utilisateurs ; 3 pour les autres utilisateurs. Exemple : si un fichier (non répertoire) a comme droits : rw-r--r-- le propriétaire peut lire et modifier le fichier, mais pas l’exécuter ; les membres du groupe ne peuvent que lire, mais ni y écrire ni l’exécuter ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 11/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (2/3) Les droits sont décrits via 9 caractères : 3 pour le propriétaire ; 3 pour un groupe d’utilisateurs ; 3 pour les autres utilisateurs. Exemple : si un fichier (non répertoire) a comme droits : rw-r--r-- le propriétaire peut lire et modifier le fichier, mais pas l’exécuter ; les membres du groupe ne peuvent que lire, mais ni y écrire ni l’exécuter ; idem pour les “autres” utilisateurs. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 11/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Exemple : accès aux fichiers sous Linux (3/3) Sous Linux, la commande ≪ ls -l ≫ permet de lister les fichiers d’un répertoire : On retrouve les informations relatives aux droits d’accès au début de chaque ligne. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 12/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Syntaxe : chmod options modes fichiers Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Syntaxe : chmod options modes fichiers 1 on précise à qui s’applique la modification des droits : au propriétaire du fichier aux utilisateurs dans le groupe du fichier à tous les autres utilisateurs à tout le monde Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Syntaxe : chmod options modes fichiers 1 on précise à qui s’applique la modification des droits : au propriétaire du fichier, noté u pour user ; aux utilisateurs dans le groupe du fichier, noté g pour group ; à tous les autres utilisateurs, noté o pour other ; à tout le monde, noté a pour all ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Syntaxe : chmod options modes fichiers 1 on précise à qui s’applique la modification des droits : au propriétaire du fichier, noté u pour user ; aux utilisateurs dans le groupe du fichier, noté g pour group ; à tous les autres utilisateurs, noté o pour other ; à tout le monde, noté a pour all ; 2 on précise comment on modifie : opérateurs de changement + opérateurs de changement - opérateurs de changement = Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Syntaxe : chmod options modes fichiers 1 on précise à qui s’applique la modification des droits : au propriétaire du fichier, noté u pour user ; aux utilisateurs dans le groupe du fichier, noté g pour group ; à tous les autres utilisateurs, noté o pour other ; à tout le monde, noté a pour all ; 2 on précise comment on modifie : opérateurs de changement + → ajout de droits ; opérateurs de changement - → retrait de droits ; opérateurs de changement = → affectation de droits ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Commande chmod (change mode) : changer les permissions d’accès Commande chmod : change les permissions d’accès sur un fichier (ou un répertoire). Syntaxe : chmod options modes fichiers 1 on précise à qui s’applique la modification des droits : au propriétaire du fichier, noté u pour user ; aux utilisateurs dans le groupe du fichier, noté g pour group ; à tous les autres utilisateurs, noté o pour other ; à tout le monde, noté a pour all ; 2 on précise comment on modifie : opérateurs de changement + → ajout de droits ; opérateurs de changement - → retrait de droits ; opérateurs de changement = → affectation de droits ; 3 on précise le droit : r, ou w, ou x, ou toute combinaison ! Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 13/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; chmod -R a+rx mon dossier Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; chmod -R a+rx mon dossier pour tout ce qui est dans mon dossier (récursivement) : donne... à tous les fichiers les droits en lecture et en exécution pour tous les utilisateurs ; à tous les répertoires les droits en listage et en traversée à tous les utilisateurs. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; chmod -R a+rx mon dossier pour tout ce qui est dans mon dossier (récursivement) : donne... à tous les fichiers les droits en lecture et en exécution pour tous les utilisateurs ; à tous les répertoires les droits en listage et en traversée à tous les utilisateurs. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principales options de chmod et exemples Option les plus utilisées : -R : récursivité → traite récursivement les éventuels répertoires ; -v : verbeux → affiche la liste de tous les fichiers en cours de modification. Exemples : chmod u+rw mon fichier donne au propriétaire les droits en lecture et écriture sur mon fichier ; chmod -R a+rx mon dossier pour tout ce qui est dans mon dossier (récursivement) : donne... à tous les fichiers les droits en lecture et en exécution pour tous les utilisateurs ; à tous les répertoires les droits en listage et en traversée à tous les utilisateurs. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 14/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (version simplifiée) On peut affecter directement des droits avec une suite de 3 chiffres compris entre 0 et 7 pour respectivement les droits du propriétaire, du groupe et des autres utilisateurs ; chaque chiffre est une somme de droits : +4 pour r ; +2 pour w ; +1 pour x. Beaucoup plus simple avec un exemple : chmod 755 mon dossier Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 15/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (version simplifiée) On peut affecter directement des droits avec une suite de 3 chiffres compris entre 0 et 7 pour respectivement les droits du propriétaire, du groupe et des autres utilisateurs ; chaque chiffre est une somme de droits : +4 pour r ; +2 pour w ; +1 pour x. Beaucoup plus simple avec un exemple : chmod 755 mon dossier 7 = 4 + 2 + 1 pour le propriétaire, donc r, w et x ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 15/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (version simplifiée) On peut affecter directement des droits avec une suite de 3 chiffres compris entre 0 et 7 pour respectivement les droits du propriétaire, du groupe et des autres utilisateurs ; chaque chiffre est une somme de droits : +4 pour r ; +2 pour w ; +1 pour x. Beaucoup plus simple avec un exemple : chmod 755 mon dossier 7 = 4 + 2 + 1 pour le propriétaire, donc r, w et x ; 5 = 4 + 1 pour le groupe, donc r et x ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 15/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (version simplifiée) On peut affecter directement des droits avec une suite de 3 chiffres compris entre 0 et 7 pour respectivement les droits du propriétaire, du groupe et des autres utilisateurs ; chaque chiffre est une somme de droits : +4 pour r ; +2 pour w ; +1 pour x. Beaucoup plus simple avec un exemple : chmod 755 mon dossier 7 = 4 + 2 + 1 pour le propriétaire, donc r, w et x ; 5 = 4 + 1 pour le groupe, donc r et x ; 5 = 4 + 1 pour les autres utilisateurs, donc encore r et x. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 15/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (version simplifiée) On peut affecter directement des droits avec une suite de 3 chiffres compris entre 0 et 7 pour respectivement les droits du propriétaire, du groupe et des autres utilisateurs ; chaque chiffre est une somme de droits : +4 pour r ; +2 pour w ; +1 pour x. Beaucoup plus simple avec un exemple : chmod 755 mon dossier 7 = 4 + 2 + 1 pour le propriétaire, donc r, w et x ; 5 = 4 + 1 pour le groupe, donc r et x ; 5 = 4 + 1 pour les autres utilisateurs, donc encore r et x. ⇒ donne au propriétaire tous les droits, et au groupe ainsi qu’aux autres utilisateurs les droits de lecture et de traversée ; équivalent à ≪ chmod u=rwx mon dossier ; chmod go=rx mon dossier ≫ ; c’est un droit utilisé traditionnellement sur les répertoires. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 15/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (suite) Autre exemple : chmod 644 mon fichier ⇒ donne au propriétaire les droits de modification et lecture (4+2=6), et au groupe ainsi qu’aux autres utilisateurs uniquement les droits de lecture (4) ; équivalent à ≪ chmod u=rw mon fichier ; chmod go=r mon fichier ≫ ; c’est un droit utilisé traditionnellement sur les fichiers. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 16/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Syntaxe octale des droits sous Unix (suite) Autre exemple : chmod 644 mon fichier ⇒ donne au propriétaire les droits de modification et lecture (4+2=6), et au groupe ainsi qu’aux autres utilisateurs uniquement les droits de lecture (4) ; équivalent à ≪ chmod u=rw mon fichier ; chmod go=r mon fichier ≫ ; c’est un droit utilisé traditionnellement sur les fichiers. Autre usage : mkdir -m 700 rapports secrets → création d’un répertoire en précisant les droits, en l’occurrence : rwx pour le propriétaire (4+2+1=7), rien pour le groupe et ≪ les autres ≫. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 16/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Particularités de l’arborescence de GNU/Linux Les Unix ont une arborescence de fichiers avec quelques particularités, notamment : la base s’appelle la racine, notée ≪ / ≫, on la représente en haut (arbre à l’envers) ; chaque utilisateur dispose d’un répertoire qui lui appartient, son ≪ home ≫ ; la fonction des répertoires de la racine est relativement normalisée, par exemple les homes sont généralement dans le répertoire /home ; l’arborescence est indépendante des périphériques présents (̸= Windows) ce qui présente des avantages : l’arborescence peut être répartie sur plusieurs périphériques et sur le réseau, par exemple /home peut être sur un serveur de fichiers sécurisé ; une modification matérielle n’a pas d’incidence sur les programmes. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 17/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Les principaux répertoires et leur rôle /bin : exécutables des commandes essentielles utilisables en ligne de commandes ; /boot : ensemble des fichiers nécessaires au démarrage de Linux ; /dev : fichiers de liaison avec les périphériques (devices en anglais) ; /etc : fichiers textes de configuration (programmes, services, système, etc.) ; etc. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 18/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Notion de processus Processus = ≪ programme en exécution ≫ Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 19/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Notion de processus Processus = ≪ programme en exécution ≫, plus formellement : Définition d’un processus Un processus (en anglais, process), en informatique, est défini par : un ensemble d’instructions à exécuter (un programme) ; un espace mémoire pour les données de travail ; éventuellement, d’autres ressources comme des ≪ descripteurs de fichiers ≫, des ≪ ports réseau ≫... Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 19/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Système multitâches Multi-tâches : plusieurs processus s’exécutent ≪ en même temps ≫ sur la machine. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 20/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Système multitâches Multi-tâches : plusieurs processus s’exécutent ≪ en même temps ≫ sur la machine. Le système alloue le(s) processeurs(s) disponible(s) aux différents processus pour de petites tranches de temps : on parle de ≪ temps partagé ≫ ou ≪ time sharing ≫. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 20/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Système multitâches Multi-tâches : plusieurs processus s’exécutent ≪ en même temps ≫ sur la machine. Le système alloue le(s) processeurs(s) disponible(s) aux différents processus pour de petites tranches de temps : on parle de ≪ temps partagé ≫ ou ≪ time sharing ≫. Le multitâches est dit : ≪ coopératif ≫ (désuet), si les processus se passent le processeur ; ≪ préemptif ≫, si le système confie le processeur aux processus, et le reprend sans l’avis du processus le moment venu ! Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 20/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Système multitâches Multi-tâches : plusieurs processus s’exécutent ≪ en même temps ≫ sur la machine. Le système alloue le(s) processeurs(s) disponible(s) aux différents processus pour de petites tranches de temps : on parle de ≪ temps partagé ≫ ou ≪ time sharing ≫. Le multitâches est dit : ≪ coopératif ≫ (désuet), si les processus se passent le processeur ; ≪ préemptif ≫, si le système confie le processeur aux processus, et le reprend sans l’avis du processus le moment venu ! OS préemptifs : Windows après 3.11, MacOS depuis MacOS X, Unix depuis que les processeurs sont préemptifs ! Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 20/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principaux états d’un processus Les principaux états d’un processus sont : prêt ; élu, il s’exécute sur le processeur ; bloqué, en attente d’une ressource ou suspendu. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 21/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Principaux états d’un processus Les principaux états d’un processus sont : prêt ; élu, il s’exécute sur le processeur ; bloqué, en attente d’une ressource ou suspendu. Remarque : la priorité est de maximiser l’usage du ou des processeurs. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 21/90 Système d’exploitation Définition d’un système d’exploitation Présentation du GNU BASH Shell Notions de compte et de ≪ droits ≫ Pour aller plus loin : manuel de référence du bash Notion de processus et manipulation de processus Manipulation de processus depuis le shell Il est facile de manipuler les processus depuis un interpréteur de commandes, par exemple le bash shell. Les commandes à connaı̂tre : ps : liste les processus (voir les options), donne notamment les PID (pour Process ID) ; kill : permet d’envoyer un signal à un processus, par exemple pour tuer un processus (signal 9) ; top : affiche un classement des processus, en fonction de leur gourmandise en temps processeur ; pstree : affiche les processus sous une forme arborescente. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 22/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions 1 Système d’exploitation Définition d’un système d’exploitation Notions de compte et de ≪ droits ≫ Notion de processus et manipulation de processus 2 Présentation du GNU BASH Shell A quoi sert la ligne de commandes ? Les variables d’environnement du shell et quelques commandes indipensables Enchaı̂nement de commandes, tubes et re-directions 3 Pour aller plus loin : manuel de référence du bash Bashref ? Boucles until, while et for ; les tests (conditions) Les ≪ expansions ≫ du shell Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 23/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Pourquoi ne peut-on pas tout faire via la souris en 2024 ? La souris c’est bien mais : Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 24/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Pourquoi ne peut-on pas tout faire via la souris en 2024 ? La souris c’est bien mais : un Linux de base s’installe avec des milliers de programmes → il faudrait un ≪ menu démarrer ≫ gigantesque ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 24/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Pourquoi ne peut-on pas tout faire via la souris en 2024 ? La souris c’est bien mais : un Linux de base s’installe avec des milliers de programmes → il faudrait un ≪ menu démarrer ≫ gigantesque ; on s’exprime mieux avec des mots qu’avec des gestes : dire ≪ navigateur ≫ plutôt que de le chercher dans des menus interminables ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 24/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Pourquoi ne peut-on pas tout faire via la souris en 2024 ? La souris c’est bien mais : un Linux de base s’installe avec des milliers de programmes → il faudrait un ≪ menu démarrer ≫ gigantesque ; on s’exprime mieux avec des mots qu’avec des gestes : dire ≪ navigateur ≫ plutôt que de le chercher dans des menus interminables ; on s’exprime encore mieux avec des phrases (syntaxe) : dire ≪ copier les fichiers images vers la clé usb ≫ ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 24/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Pourquoi ne peut-on pas tout faire via la souris en 2024 ? La souris c’est bien mais : un Linux de base s’installe avec des milliers de programmes → il faudrait un ≪ menu démarrer ≫ gigantesque ; on s’exprime mieux avec des mots qu’avec des gestes : dire ≪ navigateur ≫ plutôt que de le chercher dans des menus interminables ; on s’exprime encore mieux avec des phrases (syntaxe) : dire ≪ copier les fichiers images vers la clé usb ≫ ; on peut écrire des recettes avec des phrases (algorithmique) : création automatique d’un site web à partir de photos de vacances ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 24/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Pourquoi ne peut-on pas tout faire via la souris en 2024 ? La souris c’est bien mais : un Linux de base s’installe avec des milliers de programmes → il faudrait un ≪ menu démarrer ≫ gigantesque ; on s’exprime mieux avec des mots qu’avec des gestes : dire ≪ navigateur ≫ plutôt que de le chercher dans des menus interminables ; on s’exprime encore mieux avec des phrases (syntaxe) : dire ≪ copier les fichiers images vers la clé usb ≫ ; on peut écrire des recettes avec des phrases (algorithmique) : création automatique d’un site web à partir de photos de vacances ; on n’a parfois pas d’accès graphique : travail à distance, machine sans écran, etc. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 24/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Qu’est-ce qu’un shell ? En français, shell (coquille), se dit ≪ Interpréteur de commandes ≫. Définition d’un interpréteur de commandes (wikipédia) logiciel traitant les lignes de commandes tapées au clavier. Ces commandes, une fois traitées, interprétées, auront pour effet de réaliser telle ou telle tâche d’administration, ou bien de lancer l’exécution d’un autre logiciel. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 25/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Qu’est-ce qu’un shell ? En français, shell (coquille), se dit ≪ Interpréteur de commandes ≫. Définition d’un interpréteur de commandes (wikipédia) logiciel traitant les lignes de commandes tapées au clavier. Ces commandes, une fois traitées, interprétées, auront pour effet de réaliser telle ou telle tâche d’administration, ou bien de lancer l’exécution d’un autre logiciel. Quelques interpréteurs : ≪ command.com ≫, le shell de MS-DOS (obsolète) ; ≪ cmd.exe ≫, le shell de Windows NT /XP (peu puissant) ; ≪ Windows PowerShell ≫, à partir de Microsoft Windows 7 ; ≪ BASH Shell ≫, un shell libre (GPL) et donc multi-OS. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 25/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Le BASH Shell Le BASH Shell est un Logiciel libre sous licence GPL ⇒ a été porté sur de nombreux systèmes : les systèmes libres, notamment GNU Linux ; le système d’Apple, a même été un temps le shell par défaut de Mac OS X, les Windows de Microsoft, par le projet Cygwin, le ≪ Windows Subsystem for Linux ≫ de Windows 10, etc. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 26/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Le BASH Shell Le BASH Shell est basé sur le ≪ Bourne shell ≫ (écrit par Steve Bourne) avec de nombreuses améliorations provenant notam- ment du ≪ Korn shell ≫ et du ≪ C shell ≫. Définition du BASH Shell Interpréteur de commandes libre du projet GNU, son nom est un jeu de mots (Bourne again / born again, ≪ né de nouveau ≫) sur le shell historique d’Unix, le Bourne shell (du nom de son auteur). Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 27/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions La boucle d’interprétation du BASH Shell Le travail de l’interpréteur se résume à un algorithme très simple : TANT QUE l’utilisateur ne ferme pas la session FAIRE : 1 émettre un signe d’invite (prompt) ; 2 lire la ligne courante ; 3 exécuter la commande indiquée sur cette ligne. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 28/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions La boucle d’interprétation du BASH Shell Le travail de l’interpréteur se résume à un algorithme très simple : TANT QUE l’utilisateur ne ferme pas la session FAIRE : 1 émettre un signe d’invite (prompt) ; 2 lire la ligne courante ; 3 exécuter la commande indiquée sur cette ligne. Fermeture de session : commande exit ; ou un combinaison ≪ ctrl-d ≫, la marque de fin de fichier sous Unix. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 28/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Syntaxe générale d’une commande sous BASH Chaque ligne de commandes respecte les contraintes suivantes : Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 29/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Syntaxe générale d’une commande sous BASH Chaque ligne de commandes respecte les contraintes suivantes : 1 le premier mot est interprété comme le nom de la commande, les autres mots en sont les paramètres ou options, Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 29/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Syntaxe générale d’une commande sous BASH Chaque ligne de commandes respecte les contraintes suivantes : 1 le premier mot est interprété comme le nom de la commande, les autres mots en sont les paramètres ou options, exemple : cp -r toto titi commande cp, option -r, arguments toto et titi ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 29/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Syntaxe générale d’une commande sous BASH Chaque ligne de commandes respecte les contraintes suivantes : 1 le premier mot est interprété comme le nom de la commande, les autres mots en sont les paramètres ou options, exemple : cp -r toto titi commande cp, option -r, arguments toto et titi ; 2 chaque mot est séparé par un/des caractère(s) de séparation, par défaut l’espace et la tabulation ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 29/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Syntaxe générale d’une commande sous BASH Chaque ligne de commandes respecte les contraintes suivantes : 1 le premier mot est interprété comme le nom de la commande, les autres mots en sont les paramètres ou options, exemple : cp -r toto titi commande cp, option -r, arguments toto et titi ; 2 chaque mot est séparé par un/des caractère(s) de séparation, par défaut l’espace et la tabulation ; 3 la fin de la commande est marquée ; soit par un saut de ligne ; soit par un ≪ ; ≫pour placer plusieurs commandes sur la même ligne. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 29/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Évaluation d’une commande Il existe plusieurs sortes de commandes, avec différents types de priorité. Dans l’ordre décroissant de priorité : Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 30/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Évaluation d’une commande Il existe plusieurs sortes de commandes, avec différents types de priorité. Dans l’ordre décroissant de priorité : 1 un alias, un mot défini comme synonyme d’un autre éventuellement synonyme d’un groupe de mots → l’interprète commence par remplacer l’alias ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 30/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Évaluation d’une commande Il existe plusieurs sortes de commandes, avec différents types de priorité. Dans l’ordre décroissant de priorité : 1 un alias, un mot défini comme synonyme d’un autre éventuellement synonyme d’un groupe de mots → l’interprète commence par remplacer l’alias ; 2 une commande interne (appelée built-in en anglais), = une commande exécutée par l’interpréteur (lui-même), elle ne fait pas l’objet d’un programme séparé ; Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 30/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Évaluation d’une commande Il existe plusieurs sortes de commandes, avec différents types de priorité. Dans l’ordre décroissant de priorité : 1 un alias, un mot défini comme synonyme d’un autre éventuellement synonyme d’un groupe de mots → l’interprète commence par remplacer l’alias ; 2 une commande interne (appelée built-in en anglais), = une commande exécutée par l’interpréteur (lui-même), elle ne fait pas l’objet d’un programme séparé ; 3 une commande externe, = un programme exécutable (ou un fichier script) stocké sur le système de fichiers. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 30/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Évaluation d’une commande Il existe plusieurs sortes de commandes, avec différents types de priorité. Dans l’ordre décroissant de priorité : 1 un alias, un mot défini comme synonyme d’un autre éventuellement synonyme d’un groupe de mots → l’interprète commence par remplacer l’alias ; 2 une commande interne (appelée built-in en anglais), = une commande exécutée par l’interpréteur (lui-même), elle ne fait pas l’objet d’un programme séparé ; 3 une commande externe, = un programme exécutable (ou un fichier script) stocké sur le système de fichiers. Attention lorsque vous nommez un script ou un exécutable ! Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 30/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp cd /tmp cd.. cd../tmp cd ~/ cd ~/tmp cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp cd.. cd../tmp cd ~/ cd ~/tmp cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp → on va dans le répertoire tmp de la racine cd.. cd../tmp cd ~/ cd ~/tmp cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp → on va dans le répertoire tmp de la racine cd.. → on remonte, dans le répertoire parent cd../tmp cd ~/ cd ~/tmp cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp → on va dans le répertoire tmp de la racine cd.. → on remonte, dans le répertoire parent cd../tmp → on va dans le tmp du répertoire parent cd ~/ cd ~/tmp cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp → on va dans le répertoire tmp de la racine cd.. → on remonte, dans le répertoire parent cd../tmp → on va dans le tmp du répertoire parent cd ~/ → on va dans son home cd ~/tmp cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp → on va dans le répertoire tmp de la racine cd.. → on remonte, dans le répertoire parent cd../tmp → on va dans le tmp du répertoire parent cd ~/ → on va dans son home cd ~/tmp → on va dans le répertoire tmp de son home cd ~dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande interne : la commande cd Commande cd, change directory → pour changer le répertoire courant ⇒ pour se déplacer dans l’arborescence Exemples : cd tmp → on va dans le répertoire tmp cd /tmp → on va dans le répertoire tmp de la racine cd.. → on remonte, dans le répertoire parent cd../tmp → on va dans le tmp du répertoire parent cd ~/ → on va dans son home cd ~/tmp → on va dans le répertoire tmp de son home cd ~dpuzenat → on va dans le répertoire home de dpuzenat Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 31/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande externe : la commande ls Commande externe ls (en fait /bin/ls) : permet lister le contenu d’un répertoire Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 32/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande externe : la commande ls Commande externe ls (en fait /bin/ls) : permet lister le contenu d’un répertoire Option les plus utilisées : -l : affichage long → précise les droits d’accès, la date de mise à jour, etc. -a : affichage complet (en anglais, all) → liste également les fichiers cachés -h : affichage ≪ humain ≫ → utilisation pertinente des unités (ko, Mo, Go...) Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 32/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Exemple de commande externe : la commande ls Commande externe ls (en fait /bin/ls) : permet lister le contenu d’un répertoire Option les plus utilisées : -l : affichage long → précise les droits d’accès, la date de mise à jour, etc. -a : affichage complet (en anglais, all) → liste également les fichiers cachés -h : affichage ≪ humain ≫ → utilisation pertinente des unités (ko, Mo, Go...) Exemple : ls -la → listage long de tous les fichiers du répertoire. Remarque : un fichier caché est juste un fichier dont le nom commence par un point. Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 32/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 33/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Syntaxe : alias nom= ”commandes” alias Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 33/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Syntaxe : alias nom= ”commandes” → création d’un alias alias → listage des alias existants Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 33/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Syntaxe : alias nom= ”commandes” → création d’un alias alias → listage des alias existants Exemples : alias dir="ls -lha" alias rm="rm -rvi" Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 33/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Syntaxe : alias nom= ”commandes” → création d’un alias alias → listage des alias existants Exemples : alias dir="ls -lha" → création de l’alias dir alias rm="rm -rvi" Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 33/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Syntaxe : alias nom= ”commandes” → création d’un alias alias → listage des alias existants Exemples : alias dir="ls -lha" → création de l’alias dir alias rm="rm -rvi" → sécurisation de l’effacement (remove) Didier Puzenat [email protected] Environnement informatique et internet – 2024-2025 33/90 Système d’exploitation A quoi sert la ligne de commandes ? Présentation du GNU BASH Shell Les variables d’environnement du shell et quelques commandes indipensables Pour aller plus loin : manuel de référence du bash Enchaı̂nement de commandes, tubes et re-directions Commande alias, création d’un alias dir Commande interne alias → permet la création d’alias → permet de lister les alias existants Syntaxe : alias nom= ”commandes” → création d’un alias alias → listage des alias existants Exemples : alias dir="ls -lha" → création de l’alias dir alias rm="rm -rvi" → sécurisation de l’effacement (remove) Remarque : on peut ≪ court-circuiter ≫ l’alias en précisant le chemin : /bin/rm toto Didier Puzenat dpuzenat@univ-lyon2

Use Quizgecko on...
Browser
Browser