GUIDE Du Kornshell Sous UNIX
Total Page:16
File Type:pdf, Size:1020Kb
GUIDE du KornShell sous UNIX (HP-UX 8.0, SUNOS 5.1, AIX 3.2) jh Soulier Jean François Pujol août 93 ✆jf pujol, 18 août 1993 page 2 - Guide du KornShell sous UNIX INTRODUCTION Ce document constitue une aide à la programmation du KornShell (ksh), et non un manuel de référence; c’est pourquoi il est destiné aux utilisateurs ayant déjà des connaissances de base d’un shell (sh ou csh). Il contient des exemples qui se veulent instructifs, et pas une base rigide de programmation : vous y piocherez donc ce qui vous semble bon. Tous les exemples ont été exécutés à l’origine sur un hp9000 série 400, sous HP-UX 8.0, avec une version du KornShell datée du 16/11/88. La version HP-UX 9.0 n’a apporté que de légères modifications au niveau des commandes (convergence vers POSIX 1003.2), mais n’a pas été testée ici spécifiquement. Dans le cas où une incompatibilité apparaîtrait, le mieux est de se référer aux spécificités SUN ou IBM: il est probable que l’une d’entre elles permette de comprendre le phénomène. Il faut savoir que HP fournit le shell POSIX (appelé sh, comme le BourneShell) à partir de la version 9.0, et que le shell POSIX est presque une copie conforme du KornShell. Pour tenir compte des utilisateurs travaillant sous SUN-OS 5.X (SOLARIS 2.X), ou AIX 3.2, les exemples ont été testés également dans ces environnements, et les différences qui apparaissent par rapport à la version HP-UX figurent en annexe. Pour SUN-OS 5.1, la plate-forme était une "SparcStation 1+", et pour AIX 3.2, une station RS6000 modèle 340, avec un clavier (et des messages) en version française. voir Dans la suite du document, un symbole dans la colonne signifiera que l’exemple en cours n’est pas directement adaptable dans l’environnement SUN-OS: il faudra se reporter au chapitre adéquat pour y retrouver les particularités; voir De la même façon, un symbole correspondra à une remarque spécifique à AIX. Le fait que la version de base soit écrite pour HP-UX n’est en rien lié à une quelconque norme ou référence: le choix est arbitraire. Surtout, n’hésitez pas à me communiquer vos remarques : cela me permettra de corriger les jf pujol, 18 août 1993 imperfections, qui, je n’en doute pas, doivent encore émailler ce document. ✆ Guide du KornShell sous UNIX - page 3 ✆jf pujol, 18 août 1993 page 4 - Guide du KornShell sous UNIX Guide d’utilisation du guide oui non êtes vous pressé(e)? essayez de trouver une solution à votre problème parmi les cas types ou les messages d’erreur courants non est - ce oui suffisant? bye un renvoi vous indique où trouver des informations supplémentaires commencez par vous non êtes - vous oui intéresser à la complètement manipulation des désoeuvré(e)? fichiers, aux redirections, aux droits d’accès, à la manière d’écrire un programme shell “propre” lisez tout jf pujol, 18 août 1993 ✆ Guide du KornShell sous UNIX - page 5 ✆jf pujol, 18 août 1993 page 6 - Guide du KornShell sous UNIX Table des matières Table des Matières INTRODUCTION ..................................................................................................... 3 Guide d’utilisation du guide ...................................................................................... 5 Table des Matières ..................................................................................................... 7 I. Description ...........................................................................................13 I.1. Introduction : qu’est ce que le shell? ............................................................. 14 I.1.1. Description ....................................................................................................................14 I.1.2. Algorithme simplifié ....................................................................................................14 I.1.3. Les différents shells disponibles ...................................................................................15 I.2. Qu’est ce qu’un processus UNIX ? ............................................................... 16 I.3. Format d’une commande UNIX élémentaire ................................................ 17 I.3.1. Description ....................................................................................................................17 I.3.2. Exemples ......................................................................................................................17 I.4. Les entrées-sorties d’une commande UNIX élémentaire .............................. 19 I.5. La manipulation des fichiers ......................................................................... 21 I.5.1. Description ....................................................................................................................21 I.5.2. Exemple ........................................................................................................................21 I.5.3. Les droits et la manipulation des fichiers .....................................................................23 I.5.4. Les liens ........................................................................................................................27 1.5.4.1. Les liens physiques ...............................................................................................................................27 1.5.4.2. Les liens symboliques ..........................................................................................................................31 I.6. Interprétation d’une commande shell ............................................................ 34 I.6.1. Etape 1 : Interprétation des séparateurs .......................................................................34 I.6.2. Etape 2 : Le caractère spécial quote ’ ........................................................................35 I.6.3. Etape 3 : Les variables et le caractère spécial anti-quote ou $() .................................35 1.6.3.1. Etape 3.1 : Les variables .....................................................................................................................35 1.6.3.2. Etape 3.2 : Le caractère spécial anti-quote ‘ ou $( ) ...........................................................................41 I.6.4. Etape 4 : Le caractère spécial double-quote " ............................................................42 I.6.5. Etape 5 : Les caractères spéciaux * [] ? ~ \ ................................................................43 I.6.6. Etape 6 : les séquences () et {} ...................................................................................46 jf pujol, 18 août 1993 ✆ I.6.7. Etape 7 : Les caractères spéciaux ; | && & | ..........................................................47 Guide du KornShell sous UNIX - page 7 Table des matières 1.6.7.1. caractère ; ..............................................................................................................................................47 1.6.7.2. séquence || .............................................................................................................................................47 1.6.7.3. séquence && ........................................................................................................................................48 1.6.7.4. caractère & ............................................................................................................................................48 1.6.7.5. le caractère | ou “pipe” ..........................................................................................................................48 I.6.8. Etape 8 : Les redirections ............................................................................................49 I.6.9. Etape 9 : La localisation de la commande ..................................................................55 1.6.9.1. Les alias ................................................................................................................................................55 1.6.9.2. Les fonctions .........................................................................................................................................55 1.6.9.3. Le path ..................................................................................................................................................58 I.7. Le contrôle des processus ............................................................................. 60 I.7.1. La commande ps ...........................................................................................................60 I.7.2. Le contrôle des processus par le clavier .......................................................................61 I.7.3. La commande jobs ........................................................................................................62 I.7.4. Les commandes fg et bg ...............................................................................................63 I.7.5. La commande kill .........................................................................................................65 II. Les Expressions ...................................................................................69 II.1. Les expressions du KornShell ..................................................................... 70 II.1.1. L’expression arithmétique ...........................................................................................70 II.1.2. L’expression générique ................................................................................................70 II.1.3. L’expression conditionnelle ........................................................................................71