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

  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager