Page 1 Page 2 Généralités sur le shell Page 3 Il existe plusieurs types de she
Page 1 Page 2 Généralités sur le shell Page 3 Il existe plusieurs types de shell Bourne shell (sh) Bash (Bourne Again SHell : bash) Korn Shell (kornell university ksh) Tcsh (Terminal C shell : csh) COMMAND.EXE (MS-DOS), CMD.EXE (Windows) Sous Windows : PowerShell (à partir 2008) Sous Linux, on peut choisir son shell Le shell bash domine le marché actuellement Open Source Software Page 4 Il s’agit d’une interface texte entre l’utilisateur et le système Tout se fait au clavier Pas de clic de souris L’utilisateur tape des commandes qui sont exécutées par le système Le shell est donc un « interpréteur de commandes » Chaque commande a une syntaxe particulière Il existe des milliers de commandes différentes Les commandes peuvent aussi provenir d’un fichier Le fichier contient les commandes à exécuter L’utilisateur appel le fichier plutôt que de taper toutes les commandes • Utile pour les tâches répétitives Le shell reste le moyen le plus efficace pour contrôler le système C’est aussi le plus utilisé sous Linux/Unix Page 5 Le shell est un véritable environnement de programmation Variables, boucles, structures de contrôle « if » Programmes Les programmes écrits pour le shell sont interprétés au moment de l’exécution Aucune compilation préalable n’est utile Les performances n’égalent pas un programme en C Les programmes écrits pour le shell sont des « scripts » : Page 6 Commandes et ligne de commandes Page 7 Le shell affiche qu’il est prêt à exécuter une commande par un prompt prenant cette forme: Il suffit alors de taper une ligne de commandes pour qu’elle soit exécutée. Une ligne de commandes est une ou plusieurs commandes (reliées entre elle par un caractère spécial par exemple « ; » ou encore « | ») root@foulen:/home/moi# | Utilisateur courant Nom de la machine Répertoire courant # : Superutilisateur $ : Utilisateur normal Page 8 Une simple commande peut être appelée : En tapant son nom ses options et ses éventuels arguments Exemple1 permettant d’afficher la date et l’heure système (sans paramètre particulier) Exemple2 permettant de rechercher dans le répertoire courant les fichiers dont la taille est supérieure à 2Mo Exemple3 permettant d’afficher la liste détaillée des programmes C se trouvant dans le répertoire /home/moi/prog root@foulen:/home/moi# find ./ -size +2M root@foulen:/home/moi# date root@foulen:/home/moi# ls –il /home/moi/prog/*.c Page 9 Chaque commande dispose d’entrées/sorties : Comme l’écran (sortie) ou le clavier (entrée) 3 types différents: L’entrée standard définie par le symbole « stdin » et le descripteur 0 • Provenant du clavier par défaut La sortie standard « stdout » et le descripteur 1 • Dirigée vers l’écran par défaut La sortie d’erreurs « stderr » et le descripteur 2 • Egalement redirigée vers l’écran par défaut Possibilité de modifier le comportement par défaut En utilisant les redirections d’entrées/sorties stdin stdout Commande stderr Fichier log Page 10 Chaque commande a une syntaxe particulière Elle est composée d’options et de paramètres Les paramètres permettent de fournir les données nécessaires à l’exécution de la commande • Ils sont souvent obligatoires Les options permettent d’offrir des fonctionnalités supplémentaires qui s’adaptent à des besoins spécifiques • Exemple : Commande « ls -a » qui liste aussi les fichiers cachés Exemples de syntaxe (SYNOPSIS de la commande « cp ») Les options sont précédées de signe « - » : cp [OPTION]... SOURCE... DIRECTORY commande Options facultatives Paramètre 1 obligatoire Paramètre 2 obligatoire cp –r /etc/apache.conf apache.conf.bckp Page 11 « ls » liste les fichiers d’un répertoire donné SYNOPSIS : Quelques options utiles (Attention à la casse) : a : Liste les fichiers cachés l : Listing long (Plus d’infos sur les fichiers) S : Classement par taille de fichiers t : Classement par date de modification Exemples : Listing long avec répertoires cachés et fichiers plus gros en 1er Listing long avec fichiers plus récents en 1er : ls [OPTION]... [FILE]... ls –alS /etc ls –lt Page 12 Manuel des commandes Page 13 La commande « man » (Manual) permet d’obtenir de l’aide sur la syntaxe d’une commande Très souvent en Anglais et rarement en français L’aide est en générale très complète • Parfois difficile de trouver l’information manquante Une page de manuel se décompose en plusieurs parties distinctes NAME : Nom et description rapide de la commande SYNOPSIS : Syntaxe(s) de la commande DESCRIPTION : Description complète de la commande OPTIONS : La description des options AUTHOR : Un mot sur l’auteur BUGS : bugs connus SEE ALSO : Autres commandes connexes à consulter également … (Dépend des commandes) Page 14 Syntaxe : Exemple : Obtenir l’aide en ligne pour la commande « cp » man commande ~# man cp CP(1) User Commands CP(1) NAME cp - copy files and directories SYNOPSIS cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... DESCRIPTION Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too… Page 15 Il existe plusieurs sections dans une page de manuel 9 au maximum Pour obtenir une section donnée Les n° de sections correspondent à un usage particulier : N° Signification 1 Commandes disponibles pour les utilisateurs 2 Appels systèmes (en langage C) 3 Bibliothèque de fonctions (API en C) 4 Pilotes et protocoles réseau 5 Format de fichiers (Syntaxe des fichiers de configuration) 6 Jeux 7 Divers 8 Commandes disponibles pour les administrateurs 9 Appels noyau man 2 fork Page 16 Entrées/Sorties standards Redirections des E/S Filtres entre commandes Page 17 Capacité de rediriger les entrées/sorties d’une commande « stdout » ou « stderr » vers un fichier plutôt qu’à l’écran « stdin » depuis un fichier plutôt que le clavier Utilisation des opérateurs suivants : > : Redirection de la sortie vers un fichier >> : Redirection de la sortie à la fin du fichier (concaténation) < : Redirection de l’entrée depuis un fichier Exemple de redirection de la sortie vers un fichier : Le listing est écrit dans le fichier « listing-etc.txt » Redirection de l’entrée de la commande « wc » depuis un fichier Compte le nb de lignes du fichier « listing-etc.txt » ls –l /etc > listing-etc.txt ls « /etc » tapé au clavier listing-etc.txt wc -l < listing-etc.txt Page 18 2 syntaxes supplémentaires possibles pour les redirections n : Numéro du descripteur à rediriger m : Numéro du descripteur vers lequel on va rediriger fichier : Fichier vers lequel s’effectuera la redirection Rappel : 0 (entrée standard), 1 (sortie standard), 2 (sortie erreur) Exemple : Rediriger la sortie d’erreur vers un fichier Les messages d’erreurs seront écrits dans « erreurs.log » Exemple : Rediriger la sortie standard vers la sortie d’erreur Exemple : Rediriger stdout ET stderr vers un fichier n>&m ou n>fichier cp /home/moi /home/lui 2>erreurs.log cp /home/moi /home/lui 1>&2 commande > fichier.txt 2>&1 Page 19 Il s’agit de rediriger la sortie d’une commande vers l’entrée d’une autre avec l’opérateur « | » Élaborer des commandes complexes en une seule ligne Exemple : Filtrer le résultat de la commande « ls » avec « grep » • On obtient la liste des fichiers contenant « mp3 » commande1 commande2 stdout stdin stdin stdout ls –l /etc | grep „mp3‟ ls –l /etc grep ‘mp3’ stdout stdin stdin stdout rout@foulen:~$ ls –l /etc | grep „mp3‟ -rw-r--r-- 1 rout rout 0 2008-08-27 15:16 morceau1.mp3 -rw-r--r-- 1 rout rout 0 2008-08-27 15:16 morceau2.mp3 -rw-r--r-- 1 rout rout 0 2008-08-27 15:16 morceau3.mp3 -rw-r--r-- 1 rout rout 0 2008-08-27 15:16 morceau4.mp3 Page 20 Exécution d’une ligne de commandes Page 21 Pour exécuter une seule commande, rien de plus simple Taper son nom au clavier Pour exécuter plusieurs commandes à la suite L’exemple suivant crée un répertoire, s’y déplace et crée un fichier L’exécution conditionnelle de commandes est possible Les commandes s’exécutent les unes après les autres sous condition Utilisation des opérateurs && et || • L’exemple suivant exécute commande1 et commande2 seulement si le résultat renvoyé par commande1 est égal à 0 • Même chose mais si le résultat de commande1 est différent de 0 mkdir toto ; cd toto ; touch alire.txt commande1 && commande2 commande1 || commande2 Page 22 Une commande renvoie toujours une valeur 0 si la commande s’est exécutée correctement 1 ou différent de zéro dans le cas contraire Exemple La variable « $? » correspond à la valeur renvoyée par la dernière commande exécutée (Donc la commande « cd ») Cette valeur peut-être exploitée dans un script pour connaître le résultat d’une commande avant d’exécuter la suite # cd toto Bash : cd toto : Le répertoire n‟existe pas # echo $? 1 Page 23 Copier le fichier « /etc/syslog.conf » vers son répertoire home A l’aide de la commande « cat », filtrer les lignes contenant le mot « internet » dans le fichier « toto.txt » Renommer le répertoire « rapports » vers « rapport2017 » et stocker les messages d’erreurs dans un fichier « mv-rapport.log » Créer le fichier « rap2019 dans le répertoire « rapports » seulement s’il existe Page 24 Copier uploads/Industriel/ linux-chap5-shell-pdf.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 26, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 2.1899MB