▼
Scroll to page 2
of
330
Bull AIX 5L Guide de l’utilisateur Système d’exploitation et unités AIX REFERENCE 86 F2 24EF 02 Bull AIX 5L Guide de l’utilisateur Système d’exploitation et unités AIX Logiciel Octobre 2002 BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE REFERENCE 86 F2 24EF 02 L’avis juridique de copyright ci–après place le présent document sous la protection des lois de Copyright des États–Unis d’Amérique et des autres pays qui prohibent, sans s’y limiter, des actions comme la copie, la distribution, la modification et la création de produits dérivés à partir du présent document. Copyright Bull S.A. 1992, 2002 Imprimé en France Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues. Une feuille destinée à recevoir vos remarques se trouve à la fin de ce document. Pour commander d’autres exemplaires de ce manuel ou d’autres publications techniques Bull, veuillez utiliser le bon de commande également fourni en fin de manuel. Marques déposées Toutes les marques déposées sont la propriété de leurs titulaires respectifs. AIXR est une marque déposée d’IBM Corp. et est utilisée sous licence. UNIX est une marque déposée licenciée exclusivement par Open Group. La loi du 11 mars 1957, complétée par la loi du 3 juillet 1985, interdit les copies ou reproductions destinées à une utilisation collective. Toute représentation ou reproduction intégrale ou partielle faite par quelque procédé que ce soit, sans consentement de l’auteur ou de ses ayants cause, est illicite et constitue une contrefaçon sanctionnée par les articles 425 et suivants du code pénal. Ce document est fourni à titre d’information seulement. Il n’engage pas la responsabilité de Bull S.A. en cas de dommage résultant de son application. Des corrections ou modifications du contenu de ce document peuvent intervenir sans préavis ; des mises à jour ultérieures les signaleront éventuellement aux destinataires. Préface Ce manuel s’adresse aux utilisateurs novices qui souhaitent approfondir leur connaissance du système d’exploitation. Il traite les thèmes suivants : exécution des commandes, traitement des processus, gestion des fichiers et répertoires et impression. Il présente, en outre, des tâches telles que la sécurisation de fichiers, l’utilisation de support de stockage, la personnalisation des variables d’environnement (.profile, .Xdefaults, .mwmrc), et l’écriture de scripts shell. Les utilisateurs DOS y trouveront les procédures permettant d’exploiter les fichiers DOS dans cet environnement. Les utilisateurs travaillant dans un environnement réseau qui souhaitent de familiariser avec les commandes de communication des systèmes d’exploitation doivent lire le manuel AIX 5L Version 5.2 System User’s Guide : Communications et Réseau. A qui s’adresse ce manuel ? Ce manuel s’adresse à tous les utilisateurs du système. Conventions typographiques Les conventions typographiques suivantes sont utilisées dans ce guide : Gras Commandes, mots-clés, fichiers, répertoires et autres éléments dont le nom est prédéfini par le système. Italique Permet d’identifier les paramètres dont les noms ou les valeurs doivent être indiqués par l’utilisateur. Espacement fixe Permet d’identifier les exemples de données spécifiques, les exemples de textes similaires aux textes affichés, les exemples de parties de code similaires au code que vous serez susceptibles de rédiger en tant que programmeur, les messages système ou les informations que vous devez saisir. Distinction majuscules/minuscules dans AIX La distinction majuscules/minuscules s’applique à toutes les données entrées dans le système d’exploitation AIX. Vous pouvez, par exemple, utiliser la commande ls pour afficher la liste des fichiers. Si vous entrez LS, le système affiche un message d’erreur indiquant que la commande entrée est introuvable. De la même manière, FICHEA, FiChea et fichea sont trois noms de fichiers distincts, même s’ils se trouvent dans le même répertoire. Pour éviter toute action indésirable, vérifiez systématiquement que vous utilisez la casse appropriée. Préface iii ISO 9000 Des systèmes de qualité homologuée et de la fabrication de ce produit. ISO 9000 ont été utilisés lors du développement Bibliographie Les manuels suivants contiennent des informations pertinentes : • AIX 5L Version 5.2 System User’s Guide: Communications and Networks • AIX 5L Version 5.2 System Management Guide: Operating System and Devices • AIX 5L Version 5.2 System Management Concepts: Operating System and Devices • AIX 5L Version 5.2 Imprimantes et impression – Guide de l’utilisateur • AIX 5L Version 5.2 Commands Reference • AIX 5L Version 5.2 Files Reference iv AIX Guide de l’utilisateur - Système d’exploitation et unités Table des matières Préface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A qui s’adresse ce manuel ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distinction majuscules/minuscules dans AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ISO 9000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii iii iii iii iv iv Chapitre 1. Noms de connexion, ID système et mots de passe . . . . . . . . . . . . Connexion et déconnexion : généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connexion au système d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connexions multiples (commande login) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Passage à un autre nom d’utilisateur (commande su) . . . . . . . . . . . . . . . . . . . . . . Suppression des messages de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déconnexion du système d’exploitation (commandes exit et logout) . . . . . . . . . Arrêt du système d’exploitation (commande shutdown) . . . . . . . . . . . . . . . . . . . . Identification utilisateur et système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage du nom de connexion (commandes whoami et logname) . . . . . . . . . . Utilisation de la commande whoami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande who am i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande logname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage du nom du système d’exploitation (commande uname) . . . . . . . . . . . . Affichage du nom de votre système (commande uname) . . . . . . . . . . . . . . . . . . . Affichage des utilisateurs connectés (commande who) . . . . . . . . . . . . . . . . . . . . . Affichage de l’ID d’un utilisateur (commande id) . . . . . . . . . . . . . . . . . . . . . . . . . . . Mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Directives concernant les mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification du mot de passe (commande passwd) . . . . . . . . . . . . . . . . . . . . . . . . Annulation du mot de passe (commande passwd) . . . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes relatives aux noms de connexion, aux ID système et aux mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de connexion et de déconnexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes d’identification utilisateur et système . . . . . . . . . . . . . . . . . . . . . . . . . Commande de mot de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 1-2 1-3 1-3 1-4 1-5 1-5 1-6 1-6 1-6 1-6 1-6 1-7 1-7 1-7 1-8 1-9 1-9 1-10 1-10 Table des matières 1-11 1-11 1-11 1-11 1-11 1-11 v Chapitre 2. Système et environnement utilisateur . . . . . . . . . . . . . . . . . . . . . . . . Liste des unités système (commande lscfg) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage du nom de votre console (commande lscons) . . . . . . . . . . . . . . . . . . . . . . Affichage du nom de votre terminal (commande tty) . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des écrans disponibles (commande lsdisp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des polices disponibles (commande lsfont) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des mappes de clavier programmable en cours chargées sur le système (commande lskbd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des logiciels disponibles (commande lslpp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des affectations de touches du terminal (commande stty) . . . . . . . . . . . . . . . . Liste de toutes les variables d’environnement (commande env) . . . . . . . . . . . . . . . . Affichage de la valeur d’une variable d’environnement (commande printenv) . . . . Travail avec des langues bidirectionnelles (commande aixterm) . . . . . . . . . . . . . . . Récapitulatif des commandes relatives à l’environnement utilisateur et aux informations système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3. L’environnement CDE AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Démarrage/arrêt du CDE Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activation/désactivation du démarrage automatique . . . . . . . . . . . . . . . . . . . . . . . Conditions préalables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Démarrage manuel du CDE Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Démarrage manuel du gestionnaire de connexion . . . . . . . . . . . . . . . . . . . . . . . Arrêt manuel du CDE Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arrêt manuel du gestionnaire de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification des profils du Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout/suppression d’écrans et de terminaux dans l’environnement CDE AIX . . . . . Exploitation d’une station comme terminal X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression d’un écran local, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout d’un terminal ASCII ou caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout d’une console ASCII ou caractères sans affichage bitmap . . . . . . . . . . Ajout d’une console caractères avec affichage bitmap . . . . . . . . . . . . . . . . . . . Personnalisation des écrans e Common Desktop Environment . . . . . . . . . . . . . . . . Démarrage du serveur sur chaque écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration par défaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition d’un écran différent d’ITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition d’un nom d’écran dans Xconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestionnaire de connexion distinct pour chaque écran . . . . . . . . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Script distinct pour chaque écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition de variables d’environnement à l’échelle du système distinctes pour chaque écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi AIX Guide de l’utilisateur – Système d’exploitation et unités 2-1 2-2 2-3 2-3 2-4 2-4 2-5 2-5 2-6 2-6 2-7 2-8 2-8 2-8 3-1 3-2 3-2 3-2 3-2 3-2 3-2 3-2 3-3 3-3 3-4 3-5 3-5 3-5 3-5 3-6 3-6 3-6 3-6 3-6 3-6 3-7 3-7 3-7 3-7 3-7 3-8 3-8 3-8 Chapitre 4. Commandes et process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntaxe des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nom d’une commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indicateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lecture des lignes de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de Web-based System Manager, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Localisation d’une commande ou d’un programme (commande whereis) . . . . . Affichage des informations sur une commande (commande man) . . . . . . . . . . . Affichage de la fonction d’une commande (commande whatis) . . . . . . . . . . . . . . Liste des commandes précédemment entrées (commande history du Shell) . . Répétition des commandes à l’aide de la commande history du Shell . . . . . . . . Substitution des chaînes à l’aide de la commande history du Shell . . . . . . . . . . . Edition de la commande history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création d’une commande alias (commande alias du Shell) . . . . . . . . . . . . . . . . Travail avec les commandes de formatage de texte . . . . . . . . . . . . . . . . . . . . . . . Formatage de texte en caractères internationaux . . . . . . . . . . . . . . . . . . . . . . . Entrée de caractères étendus mono-octets . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatage de texte en caractères multi-octets . . . . . . . . . . . . . . . . . . . . . . . . . Entrée de caractères multi-octets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process : généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process d’avant et d’arrière-plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Démons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process zombie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lancement d’un process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lancement en avant–plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lancement d’un process en arrière–plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification des process (commande ps) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition de la priorité initiale d’un process (commande nice) . . . . . . . . . . . . . . . Commande nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification de la priorité d’un process en cours d’exécution (commande renice) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A partir de la ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interruption d’un process d’avant-plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arrêt d’un process d’avant-plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relance d’un process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planification d’un process pour une opération ultérieure (commande at) . . . . . . Commande at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste de tous les process planifiés (commande at ou atq) . . . . . . . . . . . . . . . . . . . Commande at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande atq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression d’un process du planning (commande at) . . . . . . . . . . . . . . . . . . . . . A partir de la ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression d’un process d’arrière–plan (commande kill) . . . . . . . . . . . . . . . . . . Commande kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes pour les commandes et les process . . . . . . . . . . . . . Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table des matières 4-1 4-3 4-3 4-4 4-4 4-4 4-5 4-5 4-6 4-6 4-6 4-7 4-7 4-9 4-9 4-9 4-10 4-11 4-11 4-11 4-12 4-12 4-13 4-13 4-13 4-14 4-14 4-14 4-14 4-15 4-15 4-16 4-16 4-16 4-17 4-17 4-17 4-17 4-18 4-19 4-19 4-19 4-19 4-20 4-20 4-20 4-20 4-22 4-22 4-22 4-22 vii viii Chapitre 5. Réacheminement des entrées/sorties . . . . . . . . . . . . . . . . . . . . . . . . . Entrées, sorties et erreurs standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des sorties standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des sorties vers un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des sorties avec ajout à un fichier . . . . . . . . . . . . . . . . . . . . . . . . . Création d’un fichier texte avec réacheminement à partir du clavier . . . . . . . . . . . . Concaténation de fichiers texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des entrées standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elimination des sorties via le fichier /dev/null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des erreurs standard et autres sorties . . . . . . . . . . . . . . . . . . . . . . Utilisation des documents entrée en ligne (Here) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des tubes et filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage de la sortie d’un programme avec copie dans un fichier (commande tee) Effacement de l’écran (commande clear) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Envoi d’un message vers la sortie standard (commande echo) . . . . . . . . . . . . . . . . Ajout d’une ligne de texte à un fichier (commande echo) . . . . . . . . . . . . . . . . . . . . . . Copie de l’écran dans un fichier (commandes capture et script) . . . . . . . . . . . . . . . . Affichage de texte en gros caractères (commande banner) . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes relatives au réacheminement des entrées/sorties . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-2 5-2 5-3 5-3 5-3 5-4 5-4 5-4 5-5 5-5 5-6 5-7 5-8 5-8 5-8 5-8 5-9 5-10 5-10 Chapitre 6. Système de fichiers et répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types de systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure des systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Espace disponible sur un système de fichiers (commande df) . . . . . . . . . . . . . . . Répertoires : Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types de répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organisation des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conventions d’appellation des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chemins d’accès aux répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abréviations propres aux répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procédures de gestion des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création d’un répertoire (commande mkdir) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déplacement ou changement de nom d’un répertoire (commandemvdir) . . . . . Affichage du répertoire courant (commande pwd) . . . . . . . . . . . . . . . . . . . . . . . . . Passage à un autre répertoire (commande cd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copie d’un répertoire (commande cp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage du contenu d’un répertoire (commandes ls) . . . . . . . . . . . . . . . . . . . . . . commande ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression ou retrait d’un répertoire (commande rmdir) . . . . . . . . . . . . . . . . . . . Comparaison entre répertoires (commande dircmp) . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes pour les File Systems et les répertoires . . . . . . . . . . File Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abréviations des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procédures de gestion des répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Voir aussi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 6-2 6-2 6-3 6-4 6-6 6-6 6-7 6-7 6-7 6-8 6-9 6-9 6-9 6-10 6-10 6-11 6-11 6-11 6-13 6-14 6-15 6-15 6-15 6-15 6-15 AIX Guide de l’utilisateur – Système d’exploitation et unités Chapitre 7. Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers répertoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conventions d’appellation des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chemins d’accès aux fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caractères génériques et métacaractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation du caractère générique * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation du caractère générique ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Métacaractères shell [ ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recherche générique et expressions régulières . . . . . . . . . . . . . . . . . . . . . . . . . . . Procédures de gestion de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression de fichiers (commande rm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déplacement et changement de nom d’un fichier (commande mv) . . . . . . . . . . . Déplacer un fichier avec la commande mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Renommer un fichier avec la commande mv . . . . . . . . . . . . . . . . . . . . . . . . . . . Copie de fichiers (commande cp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recherche de fichiers (commande find) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage du type d’un fichier (commande file) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage du contenu d’un fichier (commandes pg, more, page et cat) . . . . . . . Commande pg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande more ou page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recherche de chaînes dans un fichier texte (commande grep) . . . . . . . . . . . . . . Tri des fichiers texte (commande sort) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparaison de fichiers (commande diff) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Décompte des mots, des lignes et des octets d’un fichier (commande wc) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage des premières lignes d’un fichier (commande head) . . . . . . . . . . . . . . Affichage des dernières lignes d’un fichier (commande tail) . . . . . . . . . . . . . . . . . Coupe de sections de fichiers texte (commande cut) . . . . . . . . . . . . . . . . . . . . . . Collage de sections de fichiers texte (commande paste) . . . . . . . . . . . . . . . . . . . Numérotation des lignes d’un fichier texte (commande nl) . . . . . . . . . . . . . . . . . . Suppression de colonnes dans un fichier texte (commande colrm) . . . . . . . . . . . Liaison entre fichiers et répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types de liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liaison de fichiers (commande ln) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression de fichiers liés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copie les fichiers DOS dans des fichiers de système d’exploitation de base . . Copie des fichiers de système d’exploitation de base dans des fichiers DOS . . Suppression de fichiers DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contenu d’un répertoire DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes relatives aux fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . Procédures de gestion de fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liaison entre fichiers et répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table des matières 7-1 7-3 7-3 7-3 7-3 7-3 7-3 7-4 7-4 7-4 7-4 7-5 7-5 7-6 7-7 7-7 7-8 7-8 7-8 7-8 7-9 7-11 7-11 7-11 7-12 7-12 7-12 7-13 7-14 7-14 7-15 7-15 7-15 7-16 7-17 7-17 7-18 7-18 7-19 7-20 7-21 7-21 7-21 7-22 7-22 7-23 7-23 7-23 7-24 7-24 ix Chapitre 8. Imprimantes, travaux d’impression et files d’attente . . . . . . . . . . . Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lancement d’un travail d’impression (commande qprt) . . . . . . . . . . . . . . . . . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annulation d’un travail d’impression (commande qcan) . . . . . . . . . . . . . . . . . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande qcan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification de l’état d’un travail (commande qchk) . . . . . . . . . . . . . . . . . . . . . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Raccourci Web-based System Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande qchk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Etat de l’imprimante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Définition de la priorité d’un travail (commande qpri) . . . . . . . . . . . . . . . . . . . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande qpri (commande qpri) . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Blocage et libération d’un travail d’impression (commande qhld) . . . . . . . . . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Raccourci Web-based System Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande qhld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déplacement d’un travail vers une autre file d’attente (commande qmov) . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande qmov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatage des fichiers à imprimer (commande pr) . . . . . . . . . . . . . . . . . . . . . . . . . . . Impression de fichiers ASCII sur une imprimante PostScript . . . . . . . . . . . . . . . . . . Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisation de la conversion ASCII–PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . Annulation de la détermination automatique des types de fichier d’impression . . . Récapitulatif des commandes relatives à l’impression . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x AIX Guide de l’utilisateur – Système d’exploitation et unités 8-1 8-2 8-4 8-4 8-4 8-7 8-8 8-8 8-8 8-8 8-9 8-9 8-9 8-9 8-10 8-10 8-11 8-11 8-11 8-11 8-12 8-12 8-12 8-12 8-13 8-14 8-14 8-14 8-14 8-15 8-17 8-17 8-18 8-19 8-19 8-19 Chapitre 9. Fichiers de sauvegarde et supports de stockage . . . . . . . . . . . . . . Etablissement d’une stratégie de sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supports de stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Disquettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatage de disquettes (commande format ou fdformat) . . . . . . . . . . . . . . . . . . . . Vérification de l’intégrité du système de fichiers (commande fsck) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copie vers et à partir de disquettes (commande flcopy) . . . . . . . . . . . . . . . . . . . . . . Copie de fichiers sur bande ou disque (commande cpio –o) . . . . . . . . . . . . . . . . . . . Copie de fichiers à partir d’une bande ou d’un disque (commande cpio –i) . . . . . . Copie de et sur des bandes (commande tcopy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification de l’intégrité d’une bande (commande tapechk) . . . . . . . . . . . . . . . . . . . Compression des fichiers (commandes compress et pack) . . . . . . . . . . . . . . . . . . . . Utilisation de la commande sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Décompression de fichiers (commandes uncompress et unpack) . . . . . . . . . . . . . . Utilisation de la commande uncompress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande unpack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sauvegarde de fichiers (commande backup) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Restauration de fichiers (commande restore) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Archivage de fichiers (commande tar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes relatives à la sauvegarde . . . . . . . . . . . . . . . . . . . . . . Voir aussi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 9-7 9-7 9-8 9-9 9-9 9-10 9-10 9-11 9-12 9-12 9-12 9-14 9-14 9-15 9-16 9-16 9-17 9-18 9-19 9-19 Chapitre 10. Sécurité du système et des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . Menaces sur la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sécurité de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sauvegardes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Identification et authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ID de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminaux sans surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propriété des fichiers et groupes d’utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changement du propriétaire d’un fichier ou d’un répertoire (commande chown) Modes d’accès aux fichiers et aux répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . Représentation symbolique des droits d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . Représentation numérique des droits d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage d’informations sur le groupe (commande lsgroup) . . . . . . . . . . . . . . . . Liste de tous les groupes du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste d’attributs spécifiques de tous les groupes . . . . . . . . . . . . . . . . . . . . . . . . Affichage des attributs d’un groupe spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 10-2 10-2 10-2 10-2 10-3 10-3 10-4 10-4 10-4 10-5 10-6 10-6 10-6 10-7 10-7 Table des matières 9-1 9-2 9-3 9-3 9-4 9-5 xi Liste d’attributs spécifiques d’un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification des droits d’accès aux fichiers et aux répertoires (commande chmod) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste de contrôle d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Droits de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Droits étendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de liste de contrôle des accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Autorisations d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Affichage des informations de contrôle des accès (commande aclget) . . . . . . . . Définition du contrôle des accès (commande aclput) . . . . . . . . . . . . . . . . . . . . . . . Modification des informations de contrôle des accès (commande acledit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verrouillage du terminal (commande lock ou xlock) . . . . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes relatives à la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii 10-8 10-8 10-10 10-10 10-10 10-11 10-11 10-12 10-13 10-13 10-14 10-14 10-15 10-15 Chapitre 11. Personnalisation de l’environnement utilisateur . . . . . . . . . . . . . . Fichiers de lancement du système : généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier /etc/profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier /etc/environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier .profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier .env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers de lancement AIXwindows : généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier .xinitrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier .Xdefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier .mwmrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procédures de personnalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exportation de variables shell (commande shell export) . . . . . . . . . . . . . . . . . . . . Changement de la police d’affichage (commande chfont) . . . . . . . . . . . . . . . . . . . Commande chfont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changement de l’affectation des touches de contrôle (commande stty) . . . . . . . Changement de l’invite système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Récapitulatif des commandes de personnalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers de lancement du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichiers de lancement AIXwindows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procédures de personnalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 11-2 11-2 11-3 11-3 11-4 11-5 11-5 11-6 11-7 11-9 11-9 11-10 11-10 11-10 11-10 11-11 11-12 11-12 11-12 11-12 Chapitre 12. Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caractéristiques des shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shells disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologie des shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création et exécution d’un script shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spécification d’un shell pour un fichier script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes du shell Korn ou POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes composées du shell Korn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des commandes composées du shell Korn ou POSIX . . . . . . . . . . . . . . Lancement du shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Environnement shell Korn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions du shell Korn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Historique des commandes (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . Substitution de l’historique des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déclaration de caractères (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mots réservés (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 12-3 12-4 12-5 12-8 12-8 12-9 12-10 12-11 12-13 12-13 12-14 12-15 12-15 12-16 12-19 AIX Guide de l’utilisateur – Système d’exploitation et unités Alias de commandes (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alias de trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de paramètres (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres (shell Korn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres spéciaux prédéfinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables définies par le shell Korn ou POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables utilisées par le shell Korn ou POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de commandes (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluation arithmétique (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Séparation de zones (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de noms de fichiers (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . Suppression des caractères de déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des entrées/sorties (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . Fonction coprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des entrées/sorties du coprocess . . . . . . . . . . . . . . . . . . . . . . . Etat de sortie (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes intégrées du shell Korn ou POSIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des commandes intégrées spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . Description des commandes intégrées standard . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des commandes intégrées du shell Korn ou POSIX . . . . . . . . . . . . . . . . . . . . . Commandes intégrées spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes intégrées standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expressions conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrôle des travaux (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traitement des signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edition en ligne (shell Korn ou POSIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode d’édition emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode d’édition vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de déplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de modification de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes diverses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell Korn avancé (ksh93) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Environnement du shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell restreint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes du shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déclaration de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traitement des signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes composées (shell Bourne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mots réservés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes intégrées (shell Bourne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des commandes spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de commandes (shell Bourne). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de variables et de noms de fichiers (shell Bourne) . . . . . . . . . . . . . . . . Substitution de variables (shell Bourne) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables définies par l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables utilisées par le shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Table des matières 12-20 12-21 12-21 12-22 12-22 12-23 12-24 12-25 12-26 12-28 12-29 12-31 12-32 12-33 12-34 12-35 12-36 12-37 12-38 12-38 12-45 12-51 12-51 12-51 12-53 12-55 12-56 12-57 12-57 12-61 12-61 12-61 12-62 12-63 12-64 12-66 12-71 12-71 12-73 12-74 12-75 12-75 12-76 12-76 12-77 12-78 12-83 12-84 12-84 12-84 12-85 12-87 xiii xiv Interprétation des blancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres positionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de noms de fichiers (shell Bourne) . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des entrées/sorties (shell Bourne) . . . . . . . . . . . . . . . . . . . . . . . . . Liste des commandes intégrées du shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règles d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traitement des signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes du shell C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes intégrées (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expressions et opérateurs du shell C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de commandes (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exécution des commandes Shell C non intégrées . . . . . . . . . . . . . . . . . . . . . . . . . Substitution d’historique (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste d’historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spécification d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Guillemets et apostrophes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution d’alias (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de variables et de noms de fichiers (shell C) . . . . . . . . . . . . . . . . . . . . . Substitution de variables (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Substitution de nom de fichier (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Développement de nom de fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abréviation de nom de fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables d’environnement (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Réacheminement des entrées/sorties (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flux de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrôle des travaux (shell C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des commandes intégrées du shell C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell Korn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shell C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-88 12-88 12-89 12-89 12-90 12-91 12-92 12-93 12-94 12-94 12-95 12-95 12-96 12-106 12-107 12-108 12-109 12-109 12-110 12-111 12-112 12-113 12-113 12-115 12-115 12-116 12-117 12-118 12-121 12-122 12-123 12-124 12-126 12-126 12-126 12-127 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X-1 AIX Guide de l’utilisateur – Système d’exploitation et unités Chapitre 1. Noms de connexion, ID système et mots de passe Le système d’exploitation ne peut vous fournir un environnement correct que s’il a le moyen de vous identifier. Pour vous identifier auprès du système d’exploitation, connectez–vous en entrant votre nom de connexion (aussi appelé ID utilisateur ou nom d’utilisateur) et votre mot de passe. Les mots de passe constituent une première sécurité. Personne ne peut accéder à votre système sans connaître à la fois votre nom de connexion et votre mot de passe. Si le système est multi–utilisateur, chaque utilisateur autorisé se voit attribuer un compte, un mot de passe et un nom de connexion. Le système d’exploitation conserve une trace des ressources utilisées par chaque utilisateur. On appelle cela compte système. Chaque utilisateur est également doté d’un espace de stockage sur le système, appelé système de fichiers. Lorsque vous vous connectez, ce système de fichiers semble ne contenir que vos propres fichiers, même si des milliers d’autres fichiers se trouvent sur le système. Vous pouvez, sur un même système, disposer de plusieurs noms de connexion. Pour passer de l’un à l’autre, il est inutile de vous déconnecter. Vous pouvez les utiliser simultanément dans des shells distincts ou successivement dans un même shell. En outre, si votre système fait partie d’un réseau connecté à d’autres systèmes, vous avez accès à tous les systèmes sur lesquels un nom de connexion vous a été attribué. On appelle cela une connexion éloignée. A la fin de votre travail, déconnectez–vous : vous serez ainsi assuré que vos fichiers et vos données sont en sécurité. Ce chapitre comporte les sections suivantes : • • • • Connexion et déconnexion : généralités, page 1-2 – Connexion au système d’exploitation, page 1-2 – Connexions multiples (commande login), page 1-3 – Passage à un autre nom d’utilisateur (commande su), page 1-3 – Suppression des messages de connexion, page 1-4 – Déconnexion du système d’exploitation (commandes exit et logout), page 1-5 – Arrêt du système d’exploitation (commande shutdown), page 1-5 Système et environnement utilisateur, page 1-6 – Affichage du nom de connexion (commandes whoami et logname), page 1-6 – Affichage du nom du système d’exploitation (commande uname), page 1-7 – Affichage du nom de votre système (commande uname), page 1-7 – Affichage des utilisateurs connectés (commande who), page 1-7 – Affichage de l’ID d’un utilisateur (commande id), page 1-8 Mots de passe, page 1-9 – Directives concernant les mots de passe, page 1-9 – Modification du mot de passe (commande passwd), page 1-10 – Annulation du mot de passe (commande passwd), page 1-10 Récapitulatif des commandes relatives aux noms de connexion, aux ID système et aux mots de passe, page 1-11 Noms de connexion, ID système et mots de passe 1-1 Connexion et déconnexion : généralités Pour accéder au système d’exploitation, votre système doit être lancé et vous devez y être connecté. Lorsque vous ouvrez une session, vous êtes invité à décliner votre identité : le système peut alors configurer votre environnement. Cette section décrit les procédures suivantes : • Connexion au système d’exploitation, page 1-2 • Connexions multiples (commande login), page 1-3 • Passage à un autre nom d’utilisateur (commande su), page 1-3 • Suppression des messages de connexion, page 1-4 • Déconnexion du système d’exploitation (commandes exit et logout), page 1-5 • Arrêt du système d’exploitation (commande shutdown), page 1-5 Connexion au système d’exploitation Le système peut être configuré pour que vous ne puissiez y accéder qu’à certaines heures de la journée ou certains jours de la semaine : l’accès vous sera refusé si vous tentez une connexion en dehors des plages autorisées. Renseignez–vous auprès de votre administrateur système. Vous vous connectez à l’affichage de l’invite de connexion. La connexion établie, vous êtes automatiquement placé dans votre répertoire personnel (également appelé répertoire de connexion). Après avoir mis votre système sous tension, établissez une connexion pour démarrer une session. 1. Entrez votre nom de connexion après l’invite login: puis appuyez sur Entrée : login : NomConnexion Par exemple, si votre nom utilisateur est denise : login : denise 2. Si l’invite password : s’affiche, tapez votre mot de passe et appuyez sur Entrée. (Ce dernier ne s’affiche pas.) PASSWORD : [votre mot de passe] Si l’invite password ne s’affiche pas, c’est que vous n’avez pas de mot de passe défini. Vous pouvez commencer à travailler. Si votre machine n’est pas mise sous tension, effectuez les étapes suivantes avant de vous connecter : 1. Mettez sous tension toutes les unités raccordées. 2. Mettez l’unité centrale sous tension (I). 3. Consultez l’afficheur. Si les autotests ont abouti, il doit être vide. Si une erreur s’est produite, un code (de 3 chiffres) s’affiche et le système s’arrête. Veuillez contacter votre administrateur système pour plus d’informations sur les codes d’erreur et la reprise. 1-2 AIX Guide de l’utilisateur - Système d’exploitation et unités Les autotests terminés, l’invite de connexion s’affiche : login : Une fois la connexion établie, le système appelle, selon la configuration définie, une interface ligne de commande (shell) ou une interface graphique (par exemple, AIXwindows ou Bureau CDE (CDE)). Si vous avez des questions concernant la configuration de votre mot de passe ou de votre nom d’utilisateur, veuillez consulter votre administrateur système. Connexions multiples (commande login) Si vous travaillez sur plusieurs projets et que vous souhaitez conserver des comptes séparés, vous pouvez avoir plusieurs logins concurrents. Pour cela, vous pouvez utiliser le même nom de connexion ou plusieurs noms de connexion différents pour vous connecter à votre système. Remarque : A chaque système est associé un nombre maximal de noms de connexion pouvant être simultanément actifs. Ce nombre dépend de votre licence et varie selon les installations. Par exemple, si vous vous connectez en tant que denise1 et que votre deuxième nom de connexion est denise2, quand l’invite s’affiche, tapez : login denise2 Si l’invite password : s’affiche, tapez votre mot de passe et appuyez sur Entrée. (Ce dernier ne s’affiche pas.) Vous disposez à présent de deux sessions. Reportez–vous à la commande login dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Passage à un autre nom d’utilisateur (commande su) Vous pouvez modifier l’ID utilisateur associé à une session (si vous connaissez le nom de connexion de l’utilisateur), en utilisant la commande su (commande de commutation d’utilisateur). Si, par exemple, vous voulez devenir l’utilisateur joyce, tapez, à l’invite : su joyce Si l’invite password : s’affiche, tapez le mot de passe associé à joyce et appuyez sur Entrée. Votre ID utilisateur est désormais joyce. Si vous ne connaissez pas le mot de passe, l’accès vous est refusé. Pour vérifier que votre ID utilisateur est joyce, utilisez la commande id. Pour de plus amples informations sur la commande id, reportez–vous à la section Affichage de l’ID d’un utilisateur (commande id) à la page 1-8. Reportez–vous à la commande su dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Noms de connexion, ID système et mots de passe 1-3 Suppression des messages de connexion A l’ouverture d’une session, la commande login affiche la date du jour, le message du jour, la date et l’heure de la dernière tentative de connexion (aboutie ou non), ainsi que le nombre total de connexions inabouties, depuis la dernière mise à jour des données d’authentification (mot de passe, en général). Vous pouvez supprimer ces messages en ajoutant un fichier .hushlogin dans votre répertoire personnel. A l’invite, dans votre répertoire utilisateur, tapez : touch .hushlogin La commande touch crée le fichier vide, .hushlogin s’il n’existe pas encore. A l’ouverture de session suivante, les messages de connexion seront éliminés. Vous pouvez aussi ne conserver que l’affichage de la date du jour à l’exclusion des autres messages. Reportez–vous à la commande touch dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. 1-4 AIX Guide de l’utilisateur - Système d’exploitation et unités Déconnexion du système d’exploitation (commandes exit et logout) Pour déconnecter le système d’exploitation, effectuez l’une des opérations suivantes à l’invite du système : Appuyez sur la combinaison de touches de contrôle fin de fichier (Ctrl–D). OU Tapez exit et appuyez sur Entrée. OU Tapez logout et appuyez sur Entrée. Une fois la session fermée, le système affiche l’invite login. Arrêt du système d’exploitation (commande shutdown) Avertissement : Ne mettez pas le système hors tension avant d’avoir arrêté le système d’exploitation. En effet, vous interrompriez tous les process en cours. Si d’autres utilisateurs sont connectés ou que des travaux sont traités en arrière–plan, des données peuvent être perdues. Exécutez la procédure d’arrêt appropriée avant d’arrêter le système. Si vous possédez les droits d’utilisateurs root, vous pouvez utiliser la commande shutdown pour arrêter le système. Si vous n’êtes pas autorisé à utiliser la commande shutdown, déconnectez–vous simplement du système d’exploitation et laissez–le en marche. A l’invite, entrez : shutdown Lorsque la commande shutdown est exécutée, le système s’arrête avec le message : ....Shutdown completed.... Reportez–vous à la commande shutdown dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Noms de connexion, ID système et mots de passe 1-5 Identification utilisateur et système Cette section traite des commandes permettant d’afficher des informations identifiant les utilisateurs du système et le système utilisé. • Affichage du nom de connexion (commandes whoami et logname), page1-6 • Affichage du nom du système d’exploitation (commande uname), page 1-7 • Affichage du nom de votre système (commande uname), page 1-7 • Affichage des utilisateurs connectés (commande who), page 1-7 • Affichage de l’ID d’un utilisateur (commande id), page 1-8 Affichage du nom de connexion (commandes whoami et logname) Si vous ouvrez plusieurs sessions, il n’est pas toujours évident de se souvenir des noms de connexion utilisés, notamment pour la session active. Utilisation de la commande whoami Pour afficher le nom de connexion utilisé, entrez, à l’invite : whoami Le système affiche un écran semblable à celui-ci : denise Ici, le nom de connexion est denise. Reportez–vous à la commande whoami dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Utilisation de la commande who am i Etant une variante de la commande who la commande who am i vous permet d’afficher le nom de connexion, le nom du terminal et l’heure de la connexion. A l’invite, tapez : who am i Le système affiche un écran semblable à celui-ci : denise pts/0 Jun 21 07:53 Ici, le nom de connexion est denise, le nom du terminal est pts/0 et l’utilisateur s’est connecté à 7:53, le 21 juin. Reportez–vous à la commande who, dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Utilisation de la commande logname Etant une autre variante de la commande who la commande logname affiche les mêmes informations que la commande who. A l’invite, entrez : logname 1-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Le système affiche un écran semblable à celui-ci : denise Ici, le nom de connexion est denise. Affichage du nom du système d’exploitation (commande uname) Pour afficher le nom du système d’exploitation, utilisez la commande uname. Par exemple, entrez, à l’invite : uname Le système affiche un écran semblable à celui-ci : AIX Ici, le nom du système d’exploitation est AIX. Reportez–vous à la commande uname dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage du nom de votre système (commande uname) Pour afficher le nom de votre système si vous êtes sur un réseau, utilisez la commande uname avec l’indicateur –n. Ce nom, qui identifie le système vis–à–vis du réseau, est distinct de votre ID de connexion. Par exemple, entrez, à l’invite : uname –n Le système affiche un écran semblable à celui-ci : barnard Ici, le nom de connexion est barnard. Reportez–vous à la commande uname dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage des utilisateurs connectés (commande who) Pour afficher des informations sur tous les utilisateurs en cours sur le système local, utilisez la commande who. Les informations suivantes s’affichent : nom de connexion, nom système et date/heure de la connexion. Remarque : Cette commande n’identifie que les utilisateurs se trouvant le nœud local. Pour obtenir des informations sur les utilisateurs connectés au nœud local, entrez : who Le système affiche un écran semblable à celui-ci : joe lft/0 Jun 8 08:34 denise pts/1 Jun 8 07:07 Dans cet exemple, l’utilisateur joe, sur le terminal lft/0, s’est connecté à 8:34, le 8 juin. Noms de connexion, ID système et mots de passe 1-7 Reportez–vous à la commande who dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage de l’ID d’un utilisateur (commande id) Pour afficher les identificateurs système (ID) pour un utilisateur spécifié, utilisez la commande id. Les ID système sont des chiffres identifiant utilisateurs et groupes d’utilisateurs vis-à-vis du système. La commande id affiche les informations suivantes, le cas échéant : • le nom et l’ID utilisateur réel ; • le nom du groupe de l’utilisateur et l’ID groupe réel ; • le nom et l’ID des groupes complémentaires, le cas échéant. Par exemple, entrez, à l’invite : id Le système affiche un écran semblable à celui-ci : uid=1544(sah) gid=300(build) euid=0(root) egid=9(printq) groups=0(system),10(audit) Dans cet exemple, l’utilisateur possède le nom sah avec un numéro ID de 1544; un nom de groupe principal build avec un numéro ID de 300; un nom d’utilisateur effectif root avec un numéro ID de 0; un nom de groupe effectif printq avec un numéro ID de 9; et deux noms de groupes supplémentaires system et audit, de numéros ID respectifs 0 et 10. Par exemple, entrez, à l’invite : id denise Le système affiche un écran semblable à celui-ci : uid=2988(denise) gid=1(staff) Dans cet exemple, l’utilisateur denise a un numéro ID de 2988 et seulement un nom de groupe principal, staff de numéro ID égal à 1. Reportez–vous à la commande id dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. 1-8 AIX Guide de l’utilisateur - Système d’exploitation et unités Mots de passe Votre système associe un mot de passe à chaque compte. Ce mot de passe unique offre une certaine sécurité système à vos fichiers. La sécurité est une partie importante des systèmes informatiques parce qu’elle évite que des personnes non autorisées n’accèdent au système et n’exploitent de manière frauduleuse les fichiers des autres utilisateurs. La sécurité permet également d’accorder des privilèges exclusifs à certains utilisateurs, en définissant les commandes qu’ils peuvent exécuter et les fichiers auxquels ils peuvent accéder. Par mesure de protection, certains administrateurs système ne permettent aux utilisateurs d’accéder qu’à certaines commandes ou fichiers. Cette section décrit les procédures suivantes : • Directives concernant les mots de passe, page 1-9 • Modification du mot de passe (commande passwd), page 1-10 • Annulation du mot de passe (commande passwd), page 1-10 Directives concernant les mots de passe Vous devez disposer d’un mot de passe exclusif. Les mots de passe ne doivent pas être partagés. Protégez les mots de passe comme toute autre valeur de la société. Lors de la création de mots de passe, veillez à ce qu’ils soient difficiles à deviner, mais pas au point que vous deviez les écrire pour vous en souvenir. L’utilisation de mots de passe obscurs garantit la sécurité de votre ID utilisateur. Les mots de passe reposant sur des informations personnelles, telles que votre nom ou votre date de naissance, sont de mauvais mots de passe. Les mots courants également peuvent être facilement devinés. Les bons mots de passe comportent au moins six caractères et comprennent des caractères non alphabétiques. Les combinaisons de mots étranges et les mots sciemment mal orthographiés conviennent également. Remarque : Si votre mot de passe est si difficile à mémoriser que vous devez l’écrire, ce n’est pas un bon mot de passe. Suivez les directives ci–après lors de la sélection d’un mot de passe : • N’utilisez pas votre ID utilisateur comme mot de passe. Ne l’utilisez pas inversé, doublé ou modifié de toute autre façon. • Ne réutilisez pas les mots de passe. Le système peut être configuré pour refuser la réutilisation d’un mot de passe. • N’utilisez pas le nom d’une autre personne comme mot de passe. • N’utilisez pas comme mot de passe des termes figurant dans le dictionnaire de vérification orthographique en ligne. • N’utilisez pas de mots de passe inférieurs à six caractères. • N’utilisez pas de mots obscènes ; ce sont les premiers recherchés lorsque l’on tente de deviner les mots de passe. • Utilisez un mot de passe facile à mémoriser, de manière à ne pas être obligé de l’écrire. • Utilisez des mots de passe dans lesquels lettres et chiffres sont combinés, et comportant des majuscules et des minuscules. • Utilisez deux mots, séparés par un chiffre, comme mot de passe. • Vous pouvez utiliser des mots de passe prononçables. Ils sont plus faciles à mémoriser. • N’écrivez pas les mots de passe. Toutefois, si vous devez les écrire, placez–les dans un lieu protégé, comme une armoire fermant à clé. Noms de connexion, ID système et mots de passe 1-9 Modification du mot de passe (commande passwd) Pour modifier votre mot de passé, utilisez la commande passwd. 1. A l’invite, entrez : passwd Si vous ne possédez pas de mot de passe, ignorez l’étape 2. 2. Le message suivant s’affiche : Modification du mot de passe pour l’ID utilisateur ancien mot de passe de IDutilisateur : Cette demande évite qu’un utilisateur non autorisé ne modifie votre mot de passe lorsque vous n’êtes pas à proximité du système. Tapez votre mot de passe actuel et appuyez sur Entrée. 3. Le message suivant s’affiche : Nouveau mot de passe Tapez le nouveau mot de passe que vous souhaitez définir et appuyez sur Entrée. 4. Le message suivant s’affiche, vous demandant de ressaisir votre nouveau mot de passe. Enter the new password again: Cette demande vous évite de définir comme mot de passe une chaîne de caractères mal saisie que vous ne seriez plus en mesure de reproduire. Reportez–vous à la commande passwd dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Annulation du mot de passe (commande passwd) Si vous ne souhaitez pas saisir un mot de passe chaque fois que vous vous connectez, vous pouvez l’annuler. Pour annuler (vider) votre mot de passe, tapez : passwd Lorsque vous êtes invité à saisir le nouveau mot de passe, appuyez sur Entrée ou sur Ctrl–D. La commande passwd ne vous invite pas à nouveau à saisir un mot de passe. Un message de vérification de l’annulation du mot de passe s’affiche. Reportez–vous à la commande passwd dans le manuel AIX 5L Version 5.2 Commands Reference pour obtenir de plus amples informations ainsi que la syntaxe exacte. 1-10 AIX Guide de l’utilisateur - Système d’exploitation et unités Récapitulatif des commandes relatives aux noms de connexion, aux ID système et aux mots de passe Commandes de connexion et de déconnexion login Ouvre la session. logout Arrête tous les process. shutdown Met fin aux opérations du système su Modifie l’ID utilisateur associé à une session touch Met à jour l’heure d’accès et de modification d’un fichier, ou crée un fichier vide Commandes d’identification utilisateur et système id Affiche les identifications système d’un utilisateur logname Affiche le nom de connexion. uname Affiche le nom du système d’exploitation who Identifie les utilisateurs actuellement connectés whoami Affiche votre nom de connexion Commande de mot de passe passwd Modifie le mot de passe de l’utilisateur Informations connexes Pour de plus amples informations sur ce sujet, veuillez vous reporter à : • Commandes et process, page 4-1 • Sécurité du système et des fichiers, page 10-1 • Système et environnement utilisateur, page 2-1 • Personnalisation de l’environnement utilisateur, page 11-1 Informations connexes Commandes et process, page 4-1 Sécurité du système et des fichiers, page 10-1 Système et environnement utilisateur, page 2-1 Personnalisation de l’environnement utilisateur, page 11-1 Les Shells, page 12-1 Shell Korn ou POSIX, page 12-9 Shell Bourne, page 12-71 Shell C, page 12-93 Noms de connexion, ID système et mots de passe 1-11 1-12 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 2. Système et environnement utilisateur Chaque nom de connexion est associé à un environnement système. Il s’agit d’une zone où sont enregistrées les informations communes à tous les processus en cours dans une session. Vous pouvez utiliser plusieurs commandes pour afficher des informations sur votre système. Ce chapitre traite des procédures suivantes pour afficher des informations sur votre environnement : • Liste des unités système (commande lscfg), page 2-2 • Affichage du nom de votre console (commande lscons), page 2-3 • Affichage du nom de votre terminal (commande lscons), page 2-3 • Liste des écrans disponibles (commande lsdisp), page 2-4 • Liste des polices disponibles (commande lsfont), page 2-4 • Liste des mappes de clavier programmable en cours chargées sur le système (commande lskbd), page 2-5 • Liste des logiciels disponibles (commande lslpp), page2-5 • Liste des affectations de touches du terminal (commande stty), page 2-6 • Liste des variables d’environnement (commande env), page 2-6 • Affichage de la valeur d’une variable d’environnement (commande printenv), page 2-7 • Travail avec des langues bidirectionnelles (commande aixterm), page 2-8 • Récapitulatif des commandes relatives à l’environnement utilisateur et aux informations système, page 2-8 Système et environnement uitlisateur 2-1 Liste des unités système (commande lscfg) La commande lscfg affiche le nom, la position et la description de chaque unité de la configuration courante. La liste est triée en fonction de l’emplacement des unités. Par exemple, pour répertorier les unités configurées dans votre système, saisissez à l’invite de commande : lscfg Appuyez sur Entrée. Le système affiche une sortie semblable à l’exemple suivant : LISTE DES RESSOURCES INSTALLEES Les ressources suivantes sont installées sur la machine. +/– = Ajoutée/Supprimée de la Liste des ressources testées. * = NON prise en charge par le programme de diagnostics. Architecture du modèle : chrp Mise en oeuvre du modèle : Processeur multiple, bus PCI + + + + + + + – sysplanar0 fpa0 mem0 mem1 ioplanar0 rs2320 tty0 tty1 .. .. .. 00–00 00–00 00–0A 00–0B 00–00 00–01 00–01–0–01 00–01–0–02 CPU Planar Processeur calcul virgule flottante Carte mémoire Carte mémoire Carte d’E/S Carte RS232 Port carte RS232 Port carte RS232 La liste des unités n’est pas seulement triée en fonction de l’emplacement des unités. L’ordre fait également intervenir la notion de hiérarchie parent/enfant. Si le parent a plusieurs enfants, ces derniers sont triés en fonction de l’emplacement de l’unité. Si les enfants ont le même emplacement d’unité, ils sont affichés dans l’ordre dans lequel ils ont été obtenus par les logiciels. Pour afficher des informations sur une unité particulière, vous disposez de l’indicateur –l. Ainsi, pour afficher les informations sur l’unité sysplanar0, entrez, à l’invite : lscfg –l sysplanar0 Appuyez sur Entrée. Le système affiche une sortie semblable à l’exemple suivant : DEVICE sysplanar0 LOCATION 00–00 DESCRIPTION CPU Planar Lancez également la commande lscfg pour afficher les données techniques essentielles (VPD), telles que références des pièces, numéros de série et niveaux d’EC. Dans le cas de certaines unités, les données techniques essentielles sont collectées automatiquement, puis sont ajoutées à la configuration du système. Pour d’autres unités, ces données sont saisies manuellement. Les données sont alors précédées de l’abréviation ME (entrée manuelle). Par exemple, pour répertorier les données techniques essentielles des unités configurées dans votre système, entrez à l’invite de commande : lscfg –v Appuyez sur Entrée. 2-2 AIX Guide de l’utilisateur - Système d’exploitation et unités Le système affiche une sortie semblable à l’exemple suivant : LISTE DES RESSOURCES INSTALLEES AVEC VPD Les ressources suivantes sont installées sur votre machine. Architecture du modèle : chrp Mise en oeuvre du modèle : Processeur multiple, bus PCI sysplanar0 00–00 CPU Planar Référence..................342522 Niveau modif technique.....254921 Numéro de série............353535 fpa0 mem0 00–00 00–0A Processeur calcul virgule flottante Carte mémoire Niveau modif technique.....254921 . . . Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande lscfg dans le manuel AIX 5L Version 5.2 Commands Reference. Affichage du nom de votre console (commande lscons) La commande lscons envoie le nom de l’unité de console en cours vers la sortie standard (généralement votre écran). Par exemple, entrez : lscons Appuyez sur Entrée. Le système affiche une sortie semblable à l’exemple suivant : /dev/lft0 Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande lscons dans le manuel AIX 5L Version 5.2 Commands Reference. Affichage du nom de votre terminal (commande tty) Pour afficher le nom de votre terminal, utilisez la commande tty. Par exemple, entrez : tty Appuyez sur Entrée. Le système affiche des informations similaires à l’exemple suivant : /dev/tty06 Dans cet exemple, tty06 est le nom du terminal, et /dev/tty06 est le fichier de périphérique qui contient l’interface avec ce terminal. Système et environnement uitlisateur 2-3 Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande tty dans le manuel AIX 5L Version 5.2 Commands Reference. Liste des écrans disponibles (commande lsdisp) La commande lsdisp permet de répertorier les écrans en cours disponibles sur le système et fournit le nom d’identification, le numéro d’emplacement, le nom de l’écran et la description pour chacun des écrans. Par exemple, pour répertorier tous les écrans disponibles, entrez : lsdisp Appuyez sur Entrée. La sortie est semblable à l’exemple ci–après. La liste s’affiche dans l’ordre croissant des numéros d’emplacement. Name ppr0 gda0 ppr1 Slot 00–01 00–03 00–04 Name POWER_G4 colorgda POWER_Gt3 Description Midrange Graphics Adapter Color Graphics Display Adapter Midrange Entry Graphics Adapter Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande lsdisp dans le manuel AIX 5L Version 5.2 Commands Reference. Liste des polices disponibles (commande lsfont) La commande lsfont permet d’afficher la liste des polices disponibles pour l’affichage. Par exemple, pour répertorier toutes les polices disponibles pour l’affichage sous forme de liste, entrez la commande : lsfont Appuyez sur Entrée. La sortie est semblable à l’exemple ci–après. L’identificateur de police, le nom du fichier, la taille de glyphe et la codage de la police sont indiqués : FONT FILE GLYPH FONT ID NAME SIZE ENCODING ==== ============== ===== ========= 0 Erg22.iso1.snf 12x30 ISO8859–1 1 Erg11.iso1.snf 8x15 ISO8859–1 Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande lsfont dans le manuel AIX 5L Version 5.2 Commands Reference. 2-4 AIX Guide de l’utilisateur - Système d’exploitation et unités Liste des mappes de clavier programmable en cours chargées sur le système (commande lskbd) La commande lskbd permet d’afficher le nom du chemin d’accès absolu de la mappe de clavier programmable en cours chargée sur le système. Par exemple, pour répertorier les mappes de clavier en cours, saisissez la commande : lskbd Appuyez sur Entrée. La liste affichée par la commande lskbd est similaire à l’exemple suivant : The current software keyboard map = /usr/lib/nls/loc/C.lftkeymap Liste des logiciels disponibles (commande lslpp) La commande lslpp affiche des informations sur les logiciels disponibles sur le système. Par exemple, pour répertorier tous les logiciels du système, entrez : lslpp –l –a Appuyez sur Entrée. Voici un exemple de sortie : Fileset Level State –––––––––––––––––––– ––––––– –––––––– Path: /usr/lib/objrepos X11_3d.gl.dev.obj APPLIED X11fnt.oldX.fnt X11mEn_US.msg files APPLIED APPLIED Description ––––––––––––––––– AIXwindows/3D GL Development Utilities Fonts AIXwindows Miscellaneous X Fonts AIXwindows NL Message . . . Si la liste est très longue, la première partie peut défiler hors de l’écran. Pour afficher la liste une page (écran) à la fois, associez la commande lslpp à la commande pg. A l’invite, entrez : lslpp | pg Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande lslpp dans le manuel AIX 5L Version 5.2 Commands Reference. Système et environnement uitlisateur 2-5 Liste des affectations de touches du terminal (commande stty) Pour afficher les paramètres de votre terminal, utilisez la commande stty. Cela vous permet ainsi de savoir quelles touches le terminal utilise comme touches de contrôle. Par exemple, entrez : stty –a Appuyez sur Entrée. Le système affiche des informations similaires à l’exemple suivant : . . . intr = ^C; quit = ^ erase = ^H; kill = ^U; eof = ^D; eol = ^@ start = ^Q; stop = ^S; susp = ^Z; dsusp = ^Y; reprint = ^R discard = ^O; werase = ^W; lnext = ^V . . . Dans cet exemple, les lignes intr = ^C; quit = ^\; erase = ^H; représentent les paramètres des touches de contrôle. La touche ^H est la touche Retour arrière, qui exécute la fonction de suppression. Si la liste est très longue, la première partie peut défiler hors de l’écran. Pour afficher la liste une page (écran) à la fois, associez la commande stty à la commande pg. A l’invite, entrez : stty –a | pg Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande stty dans le manuel AIX 5L Version 5.2 Commands Reference. Liste de toutes les variables d’environnement (commande env) Toutes les variables (avec leurs valeurs) connues d’une commande lors de son lancement constituent son environnement : Cet environnement comprend les variables dont une commande hérite de son processus parent et les variables spécifiées sous forme de paramètres mots clés sur la ligne de commande à l’origine de l’appel de la commande. Le shell interagit avec l’environnement de différentes manières. A son lancement, le shell balaye l’environnement et, chaque fois qu’il trouve un nom, crée un paramètre auquel il affecte la valeur correspondante et qu’il marque pour exportation. Les commandes exécutées héritent de l’environnement. Pour afficher les variables d’environnement courants, utilisez la commande env. Une variable accessible à tous les processus est dite variable globale. Par exemple, pour répertorier toutes les variables d’environnement, entrez la commande : env Appuyez sur Entrée. 2-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Voici un exemple de sortie : TMPDIR=/usr/tmp myid=denise LANG=En_US UNAME=barnard PAGER=/bin/pg VISUAL=vi PATH=/usr/ucb:/usr/lpp/X11/bin:/bin:/usr/bin:/etc:/u/denise:/u/denise/bin:/ u/bin1 MAILPATH=/usr/mail/denise?denise has mail !!! MAILRECORD=/u/denise/.Outmail EXINIT=set beautify noflash nomesg report=1 showmode showmatch EDITOR=vi PSCH=> HISTFILE=/u/denise/.history LOGNAME=denise MAIL=/usr/mail/denise PS1=denise@barnard:${PWD}> PS3=# PS2=> epath=/usr/bin USER=denise SHELL=/bin/ksh HISTSIZE=500 HOME=/u/denise FCEDIT=vi TERM=lft MAILMSG=**YOU HAVE NEW MAIL. USE THE mail COMMAND TO SEE YOUR PWD= /u/denise ENV=/u/denise/.env Si la liste est très longue, la première partie défile hors de l’écran. Pour afficher la liste une page (écran) à la fois, associez la commande env à la commande pg. A l’invite, entrez : env | pg Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande env dans le manuel AIX 5L Version 5.2 Commands Reference. Affichage de la valeur d’une variable d’environnement (commande printenv) Pour afficher les variables d’environnement courants, utilisez la commande printenv. Si vous précisez le paramètre Nom, le système affiche la valeur de la variable concernée. Si vous ne précisez pas le paramètre Nom, la commande printenv affiche toutes les variables d’environnement courantes, présentant une séquence Nom = Valeur par ligne. Ainsi, pour afficher la valeur de la variable MAILMSG, entrez : printenv MAILMSG Appuyez sur Entrée. La commande renvoie la valeur de la variable MAILMSG. Par exemple : YOU HAVE NEW MAIL Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande printenv dans le manuel AIX 5L Version 5.2 Commands Reference. Système et environnement uitlisateur 2-7 Travail avec des langues bidirectionnelles (commande aixterm) La commande aixterm prend en charge les langues bidirectionnelles que sont l’arabe et l’hébreu. Les langues bidirectionnelles peuvent s’écrire et se lire de droite à gauche et de gauche à droite. Vous pouvez travailler avec des applications en arabe ou en hébreu en ouvrant une fenêtre dans laquelle vous spécifiez un environnement local arabe ou hébreu. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande aixterm dans le manuel AIX 5L Version 5.2 Commands Reference. Récapitulatif des commandes relatives à l’environnement utilisateur et aux informations système aixterm Permet de travailler dans des langues bidirectionnelles. env Affiche l’environnement courant ou définit l’environnement d’exécution d’une commande. lscfg Affiche des informations de diagnostic sur une unité. lscons Affiche le nom de la console courante. lsdisp Liste les écrans disponibles sur le système. lsfont Liste les polices disponibles sur l’écran. lskbd Liste les mappes clavier chargées sur le système. lslpp Liste les logiciels disponibles. printenv Affiche la valeur des variables d’environnement. stty Affiche les paramètres du système. tty Affiche le chemin d’accès complet à votre terminal. Informations connexes 2-8 • Commandes et processus, page 4-1 • Réacheminement des entrées/sorties, page 5-1 • Système et environnement utilisateur, page 1-6 • Personnalisation de l’environnement utilisateur, page 11-1 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 3. L’environnement CDE AIX Avec l’environnement CDE AIX, vous avez accès aux unités et aux outils en réseau sans vous soucier de leur emplacement. Vous pouvez échanger des données entre applications tout simplement en faisant glisser et en déplaçant des objets. Les administrateurs système trouvent que nombre de commandes complexes sont à présent aisément exécutables et sont en outre identiques d’une plateforme à l’autre. Vous pouvez optimiser les coûts de vos investissements en matériel et logiciel avec une configuration centralisée et des applications distribuées aux utilisateurs. Il est aussi possible de centraliser la gestion de la sécurité, de la disponibilité et des échanges d’informations entre applications. Remarque : L’environnement CDE Desktop (CDE) 1.0. Dans l’aide et dans la documentation, cet environnement peut être appelé Environnement CDE AIX, Desktop AIXwindows, Desktop CDE, AIX CDE 1.0 ou tout simplement Desktop. Les sujets traités dans ce chapitre sont les suivants : • Démarrage et arrêt du CDE Desktop, page 3-2 • Modification des profils du Desktop, page 3-3 • Ajout/suppression d’écrans et de terminaux CDE Desktop, page 3-3 • Personnalisation des écrans pour CDE Desktop, page3-6 L’environnement CDE AIX 3-1 Démarrage/arrêt du CDE Desktop Vous pouvez configurer le lancement automatique de CDE Desktop au démarrage du système ou lancer CDE Desktop manuellement. Pour exécuter ces tâches, vous devez être utilisateur racine. • Activation/désactivation du démarrage automatique, page 3-2 • Démarrage manuel du CDE Desktop, page 3-2 • Arrêt manuel du CDE Desktop, page 3-2 Activation/désactivation du démarrage automatique Vous pouvez configurer le lancement automatique du CDE Desktop au démarrage du système. Vous pouvez utiliser le Web-based System Manager (tapez wsm, puis sélectionnez Système ), via SMIT (System Management Interface Tool) ou une ligne de commande. Conditions préalables Vous devez être utilisateur racine. Tâche Raccourci SMIT Commande ou fichier Activation du démarrage automatique du Desktop 1 smit dtconfig /usr/dt/bin/dtconfig –e Désactivation du démarrage automatique du Desktop 1 smit dtconfig /usr/dt/bin/dtconfig –d 1 Remarque : Après exécution de la tâche, redémarrez la machine. Démarrage manuel du CDE Desktop Vous pouvez démarrer CDE Desktop manuellement. Démarrage manuel du gestionnaire de connexion 1. Connectez-vous en tant qu’utilisateur racine. 2. Sur une ligne de commande, entrez : /usr/dt/bin/dtlogin –daemon L’écran Desktop Login s’affiche. Quand vous vous connectez, vous démarrez une session Desktop. Arrêt manuel du CDE Desktop Vous pouvez arrêter CDE Desktop manuellement. Arrêt manuel du gestionnaire de connexion Quand vous arrêtez manuellement le gestionnaire de connexion, tous les serveurs X et les sessions Desktop démarrés par les gestionnaires de connexion sont arrêtés. 1. Ouvrez une fenêtre d’émulation de terminal et connectez-vous en tant qu’utilisateur racine. 2. Accédez à l’ID processus du gestionnaire de connexion en tapant : cat /var/dt/Xpid 3. Arrêtez le gestionnaire de connexion en tapant : kill –term id_processus 3-2 AIX Guide de l’utilisateur - Système d’exploitation et unités Modification des profils du Desktop Quand un utilisateur se connecte au Desktop, la lecture du fichier d’environnement shell (.profile ou .login) n’est pas automatique. Le bureau exécute X–server avant que l’utilisateur ne se connecte. Ainsi la fonction recherchée dans .profile ou .login doit être fournie par le gestionnaire de connexion du Desktop. Les variables d’environnement spécifiques de l’utilisateur sont définies dans /Home Directory/.dtprofile. Un modèle de ce fichier se trouve dans /usr/dt/config/sys.dtprofile. Placez les variables et les commandes shell dans le .dtprofile applicable au seul Desktop. Ajoutez les lignes à la fin de .dtprofile pour incorporer le fichier d’environnement shell. Les variables d’environnement à l’échelle du système peuvent être définies dans les fichiers de configuration du gestionnaire de connexion. Pour plus d’informations sur la configuration des variables d’environnement, reportez–vous à Common Desktop Environment 1.0: Advanced User’s and System Administrator’s Guide. Ajout/suppression d’écrans et de terminaux dans l’environnement CDE AIX Le gestionnaire de connexion peut être lancé depuis un système doté d’une console locale graphique ou de type bitmap (mode point). Il existe nombre de méthodes de démarrage (voir la figure suivante). Vous pouvez démarrer l’environnement CDE AIX depuis : • les consoles locales, • les consoles distantes, • les écrans d’affichage caractères et en mode point, • les terminaux X exploités sur un hôte du réseau. Figure 1. Points d’interface CDE Cette illustration montre les points de liaison entre une console, un réseau, un affichage en mode point, un affichage caractère et une station de travail. L’environnement CDE AIX 3-3 Un terminal X comprend une unité d’affichage, un clavier et une souris qui ne s’exécute que sur le serveur X. Les clients, notamment l’environnement CDE AIX, s’exécutent sur un ou plusieurs systèmes hôtes sur les réseaux. Les sorties client sont dirigées sur le terminal X. Pour les tâches de configuration suivantes, nombre de configurations sont admises : • Suppression d’un volume logique page 3-5 • Ajout d’un terminal ASCII ou caractères page 3-5 Exploitation d’une station comme terminal X Sur la ligne de commande, entrez : /usr/bin/X11/X –query hostname Le serveur X de la station que vous souhaitez exploiter comme un terminal X doit : • prendre en charge XDMCP et l’option ligne de commande –query, • fournir à l’hôte du terminal l’autorisation hôte X (dans /etc/X*.hosts). 3-4 AIX Guide de l’utilisateur - Système d’exploitation et unités Suppression d’un écran local, Pour supprimer un écran local, supprimez l’enregistrement correspondant dans le fichier Xservers du répertoire /usr/dt/config. Ajout d’un terminal ASCII ou caractères Une console d’affichage de caractères est une configuration sans unité bitmap (mode point). Ajout d’une console ASCII ou caractères sans affichage bitmap 1. Si le fichier /etc/dt/config/Xservers est inexistant, copiez le fichier /usr/dt/config/Xservers dans le répertoire /etc/dt/config. 2. Si vous devez copier Xservers dans /etc/dt/config, modifiez la ligne Dtlogin.servers: de /etc/dt/config/Xconfig comme suit : Dtlogin*servers: /etc/dt/config/Xservers 3. Modifiez dans /etc/dt/config/Xservers la ligne qui démarre le serveur X. Cela entraîne la désactivation du menu des options de connexion. # * Local local@console /path/X :0 4. Relisez les fichiers de configuration du gestionnaire de connexion. Ajout d’une console caractères avec affichage bitmap 1. Si le fichier /etc/dt/config/Xservers est inexistant, copiez le fichier /usr/dt/config/Xservers dans le répertoire /etc/dt/config. 2. Si vous devez copier Xservers dans /etc/dt/config, modifiez la ligne Dtlogin.servers: de /etc/dt/config/Xconfig comme suit : Dtlogin*servers: /etc/dt/config/Xservers 3. Modifiez dans /etc/dt/config/Xservers la ligne qui démarre le serveur X comme suit : * Local local@none /path/X :0 4. Relisez les fichiers de configuration du gestionnaire de connexion. L’environnement CDE AIX 3-5 Personnalisation des écrans e Common Desktop Environment Vous pouvez configurer le gestionnaire de connexion d’e Common Desktop Environment pour l’exploiter sur des systèmes dotés de deux écrans ou plus. Sur un système comportant plusieurs écrans : • Un serveur doit être démarré sur chacun d’eux. • Le mode Windows ne doit pas être configuré. Pour chaque écran, il peut s’avérer nécessaire d’utiliser des ressources dtlogin distinctes. Pour chaque unité d’affichage, il peut également s’avérer nécessaire d’utiliser des variables d’environnement distinctes à l’échelle du système. Démarrage du serveur sur chaque écran 1. Si le fichier /etc/dt/config/Xservers est inexistant, copiez le fichier /usr/dt/config/Xservers dans le répertoire /etc/dt/config. 2. Si vous devez copier Xaccess dans /etc/dt/config, modifiez la ligne Dtlogin.servers: de /etc/dt/config/Xconfig comme suit : Dtlogin*servers: /etc/dt/config/Xservers 3. Modifez /etc/dt/config/Xservers pour démarrer un serveur X sur chaque terminal. Syntaxe La syntaxe de démarrage de serveur est la suivante : NomEcran ClasseEcran TypeEcran [ @ite ] Commande Les écrans connectés à un émulateur ITE (Internal Terminal Emulator) sont les seuls écrans exploitables en mode No Windows. Ce mode désactive temporairement le Desktop sur l’écran et exécute un processus getty si un tel processus n’est pas déjà en cours. Ainsi, vous pouvez vous connecter et exécuter des tâches qu’il n’est normalement pas possible d’effectuer sous l’environnement CDE AIX. Quand vous vous déconnectez, le Desktop est redémarré sur l’écran. Si le processus getty n’est pas déjà en cours sur un terminal, le gestionnaire de connexion en lance un au démarrage du mode No Windows. Configuration par défaut Si ITE n’est pas défini, display : 0 lui est associé (/dev/console). Définition d’un écran différent d’ITE • Sur l’écran ITE, donnez à ITE la valeur character device. • Sur tous les autres écrans, donnez à ITE la valeur none. Exemples Dans Xservers, les entrées suivantes lancent un serveur sur trois écrans locaux sur sysaaa:0. L’écran :0 correspond à la console (ITE). sysaaa:0 Local local /usr/bin/X11/X :0 sysaaa:1 Local local /usr/bin/X11/X :1 sysaaa:2 Local local /usr/bin/X11/X :2 Sur l’hôte sysbbb, l’écran en mode point :0 n’est pas un écran ITE ; l’ITE est associé à /dev/ttyi1. Dans Xservers, les entrées suivantes lancent des serveurs sur les deux écrans en mode point avec le mode No Windows activé sur :1. sysaaa:0 Local local@none /usr/bin/X11/X :0 sysaaa:1 Local local@ttyi1 /usr/bin/X11/X :1 3-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Définition d’un nom d’écran dans Xconfig Dans /etc/dt/config/Xconfig, vous ne pouvez pas utilisez la syntaxe habituelle hostname:0 pour le nom d’écran. • Remplacez les deux points (:) par un caractère souligné (_). • Pour un nom d’hôte entièrement qualifié, remplacez les points par des caractères soulignés. Exemple Dtlogin.claaa_0.resource: value Dtlogin.sysaaa_prsm_ld_edu_0.resource: value Gestionnaire de connexion distinct pour chaque écran 1. Si le fichier /etc/dt/config/Xconfig est inexistant, copiez le fichier /usr/dt/config/Xconfig dans le répertoire /etc/dt/config. 2. Utilisez les ressources qui se trouvent dans /etc/dt/config/Xconfig pour spécifier un autre fichier de ressources pour chaque affichage : Dtlogin.DisplayName.resources: chemin / fichier où chemin désigne le nom du chemin d’accès aux fichiers Xresource à utiliser et fichier, le nom de fichier des fichiers Xresource à utiliser. 3. Créez chaque fichier de ressource spécifié dans le fichier Xconfig. Un fichier Xresources relatif à la langue utilisée est installé dans /usr/dt/config/<LANG>. 4. Placez les ressources dtlogin pour cet écran dans chaque fichier. Exemple Dans Xconfig, les lignes suivantes spécifient un fichier de ressource différent par écran : Dtlogin.sysaaa_0.resources: /etc/dt/config/Xresources0 Dtlogin.sysaaa_1.resources: /etc/dt/config/Xresources1 Dtlogin.sysaaa_2.resources: /etc/dt/config/Xresources2 Script distinct pour chaque écran 1. Si le fichier /etc/dt/config/Xconfig est inexistant, copiez le fichier /usr/dt/config/Xconfig dans le répertoire /etc/dt/config. 2. Utilisez les ressources startup, reset et setup dans /etc/dt/config/Xconfig pour spécifier un script différent par écran (qui seront exécutés à la place des fichiers Xstartup, Xreset et Xsetup) : Dtlogin*DisplayName*startup: / Dtlogin*DisplayName*reset: / Dtlogin*DisplayName*sarttup: / chemin / chemin / chemin / fichier fichier fichier où chemin désigne le nom du chemin d’accès du fichier à utiliser et fichier, le nom de fichier du fichier à utiliser. Le script de démarrage est défini comme racine une fois que l’utilisateur s’est connecté et avant le lancement de la session e Common Desktop Environment. Le script /usr/dt/config/Xreset peut être utilisé pour inverser la définition du fichier Xstartup. Le fichier Xreset est exécuté quand l’utilisateur se déconnecte. L’environnement CDE AIX 3-7 Exemple Dans le fichier Xconfig, les lignes suivantes spécifient différents scripts pour les deux écrans. Dtlogin.sysaaa_0*startup: Dtlogin.sysaaa_1*startup: Dtlogin.sysaaa_0*setup: Dtlogin.sysaaa_1*setup: Dtlogin.sysaaa_0*reset: Dtlogin.sysaaa_1*reset: /etc/dt/config/Xstartup0 /etc/dt/config/Xstartup1 /etc/dt/config/Xsetup0 /etc/dt/config/Xsetup1 /etc/dt/config/Xreset0 /etc/dt/config/Xreset1 Définition de variables d’environnement à l’échelle du système distinctes pour chaque écran 1. Si le fichier /etc/dt/config/Xconfig est inexistant, copiez le fichier /usr/dt/config/Xconfig dans le répertoire /etc/dt/config. 2. Donnez une définition distincte pour chaque écran dans la ressource environnement de /etc/dt/config/Xconfig : Dtlogin*DisplayName*environment: value Appliquez les règles suivantes aux variables d’environnement : • Séparez les affectations de variables par un espace ou une tabulation. • Ne vous servez pas de la ressource d’environnement pour définir TZ et LANG. • Dans Xconfig, le traitement de shell n’existe pas. Exemple Dans Xconfig, les lignes suivantes définissent des variables différentes pour deux écrans. Dtlogin*syshere_0*environment:EDITOR=vi SB_DISPLAY_ADDR=0xB00000 Dtlogin*syshere_1*environment: EDITOR=emacs \ SB_DISPLAY_ADDR=0xB00000 3-8 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 4. Commandes et process Une commande est une demande de réalisation d’une opération ou d’exécution d’un programme. L’utilisation des commandes permet d’indiquer au système d’exploitation quelle tâche il doit effectuer. Lorsque les commandes sont entrées, elles sont déchiffrées par un interpréteur de commande (aussi appelé shell) et cette tâche est traitée. Un programme ou une commande en cours d’exécution sur votre poste est appelé process. Le système d’exploitation peut exécuter plusieurs process différents simultanément. Le système d’exploitation permet de gérer les entrées et les sorties (E–S) de données par le biais de commandes et de symboles spécifiques. Vous pouvez contrôler les entrées en indiquant où lire les données. Vous pouvez ainsi définir l’origine des entrées : clavier (entrée standard) ou fichier. Vous pouvez aussi contrôler la sortie en spécifiant l’emplacement d’affichage ou de stockage des données : par exemple, l’écran (sortie standard) ou un fichier. Ce chapitre traite des points suivants : • • Présentation des commandes, page 4-3 – Syntaxe des commandes, page 4-3 – Lecture des lignes de syntaxe, page 4-5 – Utilisation Web-based System Manager, page 4-5 – Utilisation de la commande smit, page 4-6 – Localisation d’une commande ou d’un programme (commande whereis), page 4-6 – Affichage des informations sur une commande (commande man), page 4-6 – Affichage de la fonction d’une commande (commande whatis), page 4-7 – Liste des commandes précédemment entrées (commande history du Shell), page 4-7 – Répétition des commandes à l’aide de la commande history du Shell, page 4-9 – Substitution des chaînes à l’aide de la commande history du Shell, page 4-9 – Edition de la commande history, page 4-9 – Création d’une commande Alias (commande alias du Shell), page 4-10 – Travail avec les commandes de formatage de texte, page 4-11 Présentation des process, page 4-13 – Process d’avant–plan et d’arrière–plan, page 4-13 – Démons, page 4-13 – Process zombie, page 4-14 – Démarrage d’un process, page 4-14 – Vérification des process (commande ps), page 4-15 – Définition de la priorité initiale d’un process (commande nice), page 4-16 – Modification de la priorité d’un process en cours d’exécution (commande renice), page 4-16 – Interruption d’un process d’avant–plan, page 4-17 Commandes et process 4-1 • 4-2 – Arrêt d’un process d’avant–plan, page 4-17 – Relance d’un process arrêté, page 4-17 – Planification d’un process pour une opération ultérieure (commande at), page 4-18 – Liste de tous les process planifiés (commande at ou atq), page 4-19 – Suppression d’un process du planning (commande at), page 4-20 – Suppression d’un process d’arrière–plan (commande kill), page 4-20 Récapitulatif des commandes pour les commandes et les process, page 4-22 AIX Guide de l’utilisateur - Système d’exploitation et unités Présentation des commandes Certaines commandes peuvent être entrées en tapant simplement un mot. Vous pouvez également combiner des commandes pour que la sortie d’une commande devienne l’entrée d’une autre commande. On appelle cela traitement pipeline. Pour plus d’informations sur le traitement pipeline, reportez–vous à Fonctions du Shell, page 12-3. Les indicateurs définissent plus précisément les actions des commandes. L’ indicateur est un modificateur utilisé avec le nom de commande sur la ligne de commande, généralement précédé d’un tiret. Les commandes peuvent également être regroupées et stockées dans un fichier. Ceci est connu sous le nom de procédures shell ou scripts shell. Au lieu d’exécuter les commandes individuellement, vous pouvez exécuter le fichier contenant les commandes. Pour plus d’informations sur les scripts et les procédures, reportez–vous à Création et execution d’un script shell, page 12-8. Pour entrer une commande, à l’invite, entrez le nom de la commande et appuyez sur Entrée. $ NomCommande Cette section décrit les procédures suivantes : • Syntaxe des commandes, page 4-3 • Lecture des lignes de syntaxe, page 4-5 • Utilisation Web-based System Manager, page 4-5 • Utilisation de la commande smit, page 4-6 • Localisation d’une commande ou d’un programme (commande whereis), page 4-6 • Affichage des informations sur une commande (commande man), page 4-6 • Affichage de la fonction d’une commande (commande whatis), page 4-7 • Liste des commandes précédemment entrées (commande history du Shell), page 4-7 • Répétition des commandes à l’aide de la commande history du Shell, page 4-9 • Substitution des chaînes à l’aide de la commande history du Shell, page 4-9 • Edition de la commande history, page 4-9 • Création d’une commande alias (commande alias du Shell), page 4-10 • Travail avec les commandes de formatage de texte, page 4-11 Syntaxe des commandes Bien que certaines commandes puissent être entrées en tapant simplement un mot, d’autres utilisent des indicateurs et des paramètres. Chaque commande possède une syntaxe désignant les indicateurs et les paramètres requis et en option. Voici le format général d’une commande : NomCommande indicateur(s) paramètre(s) Voici quelques règles générales concernant les commandes : • Les espaces entre les commandes, les indicateurs et les paramètres sont significatifs. • Deux commandes peuvent être entrées sur la même ligne en les séparant par un point–virgule (;). Par exemple : $ Commande1 ; Commande2 Le shell exécute les commandes de manière séquentielle. Commandes et process 4-3 • Les commandes respectent la distinction minuscules–majuscules. Le shell fait la distinction entre les lettres majuscules et les lettres minuscules. Pour le shell, print est différent de PRINT ou Print. • Une commande très longue peut être entrée sur plusieurs lignes à l’aide du caractère barre oblique inversée (\). Pour le shell, une barre oblique inversée signifie une suite de ligne. L’exemple suivant est une commande qui s’étend sur deux lignes : $ ls Mail info temp \ (appuyez sur Entrée) > diary (l’invite > s’affiche) Le caractère > est l’invite secondaire ($ étant l’invite principale par défaut de l’utilisateur non root), indiquant que la ligne courante est la suite de la précédente. Veuillez noter que csh (C shell) ne génère pas d’invite secondaire, que la coupure doit intervenir à la fin d’un mot, et que l’invite principale est %. Nom d’une commande Le premier mot d’une commande est obligatoirement son nom. Pour certaines commandes, ce nom est unique. Indicateurs Plusieurs indicateurs peuvent suivre le nom de la commande. Les indicateurs modifient l’opération d’une commande et sont parfois appelés options. Un indicateur est encadré d’espaces ou de tabulations, et il est généralement précédé d’un tiret (–). Les exceptions sont ps, tar et ar qui ne nécessitent pas de tiret avant certains indicateurs. Par exemple, dans la commande : ls –a –F ls est le nom de la commande et ls –a –F sont les indicateurs. Lorsque des indicateurs sont associés à une commande, ils doivent suivre immédiatement son nom. Les indicateurs comportant un seul caractère peuvent être combinés à un tiret, dans une commande. Ainsi, la commande précédente peut également s’écrire : ls –aF Certains paramètres doivent parfois être également précédés d’un tiret (–). Dans ce cas, utilisez le délimiteur constitué de deux tirets (––) avant le paramètre. Le signe –– indique à la commande qu’il s’agit d’un paramètre et non d’un indicateur. Par exemple, si vous souhaitez créer un répertoire–tmp et que vous entrez la commande suivante : mkdir –tmp Un message d’erreur semblable au suivant s’affiche : mkdir : n’est pas un indicateur reconnu : t Syntaxe : mkdir [–p] [–m mode] Répertoire ... Il convient en effet de spécifier : mkdir –– –tmp Votre nouveau répertoire –tmp est à présent créé. Paramètres des commandes A la suite du nom de la commande, peuvent se trouver un ou plusieurs indicateurs, suivis de paramètres. Les paramètres sont parfois appelés arguments ou opérandes. Les paramètres précisent les informations requises pour l’exécution de la commande. Certains paramètres sont dotés d’une valeur par défaut, adoptée si vous n’en précisez pas d’autre. Par exemple, dans la commande : ls –a temp 4-4 AIX Guide de l’utilisateur - Système d’exploitation et unités ls est le nom de la commande, –a est l’indicateur et temp est le paramètre. La commande affiche tous (–a) les fichiers du répertoire temp. Dans l’exemple : ls –a en l’absence de paramètres, ce sont les fichiers du répertoire courant qui sont affichés par défaut. Dans l’exemple : ls temp mail aucun indicateur n’est donné, et temp et mail sont les paramètres. Dans ce cas, temp et mail sont deux noms de répertoires distincts. La commande ls affiche tous les fichiers de chacun de ces répertoires, mais pas les fichiers masqués. Lorsqu’un paramètre ou l’argument–option est constitué ou contient une valeur numérique, le nombre est interprété comme un entier décimal – sauf spécification contraire. Les nombres dans l’intervalle de 0 à INT_MAX, comme défini dans le fichier /usr/include/sys/limits.h, sont syntaxiquement reconnus comme des valeurs numériques. Si une commande que vous souhaitez utiliser accepte les nombres négatifs comme paramètre ou arguments–options, vous pouvez utiliser les nombres de l’intervalle INT_MIN à INT_MAX, comme défini dans le fichier /usr/include/sys/limits.h. Ce qui ne signifie pas que tous les nombres de cet intervalle sont sémantiquement corrects. Certaines commandes (commandes d’impression notamment) sont limitées à un intervalle plus restreint. Le message d’erreur généré dans ce cas précise qu’il s’agit d’un problème de dépassement des limites de l’intervalle, et non de syntaxe incorrecte. Lecture des lignes de syntaxe Les instructions d’usage permettent de représenter la syntaxe d’une commande et sont constituées de symboles, tels que les parenthèses ( ), les accolades ({ }) et les barres verticales (|). Voici un exemple concernant la commande unget : unget [ –r SID ] [ –s ] [ –n ] Fichier ... En outre : • Les éléments devant être entrés littéralement sur la ligne de commande sont en gras. Ces éléments comprennent le nom de la commande, les indicateurs et les caractères littéraux. • Les éléments représentant les variables devant être remplacés par un nom sont en italique. Ces éléments comprennent les paramètres qui suivent les indicateurs et les paramètres que la commande lit, tels que Fichiers et Répertoires. • Les paramètres entre crochets sont facultatifs. • Les paramètres entre accolades sont obligatoires. • Les paramètres isolés sont obligatoires. • Une barre verticale signifie que vous ne pouvez sélectionner plus d’un élément. Par exemple, [ a | b ] indique que vous pouvez choisir entre a, b ou rien. De même, { a | b } indique que vous devez choisir entre a ou b. • Les points de suspension (...) signifient que le paramètre peut être répété sur la ligne de commande. • Le tiret (–) représente un entrée standard. Utilisation de Web-based System Manager, Web-based System Manager, est une interface GUI de gestion du système, soit à partir d’un écran rattaché en local ou à distance, depuis un autre système AIX ou depuis un ordinateur personnel équipé d’un navigateur Web. Vous pouvez démarrer Web-based System Manager, de plusieurs façons : • A partir d’une ligne de commande de terminal dans Common Desktop Environment (CDE) en tapant la commande wsm. Commandes et process 4-5 • A partir d’une ligne de commande de terminal dans AIXwindows en tapant la commande wsm. • A partir du gestionnaire d’application Common Desktop Environment (CDE) en cliquant sur l’icône Management Console. • A partir d’un navigateur Web compatible HTML 3.2, sur un poste configuré comme décrit dans AIX 5L Version 5.2 Web-based System Manager, Administration Guide. Utilisation de la commande smit La commande smit est un outil permettant de lancer d’autres commandes. Les noms de commande entrés comme paramètres dans la commande smit peut vous emmener dans un sous–menu ou un panneau de commande. Par exemple, la commande smit lsuser vous emmène directement à List All Usersqui permet d’afficher les attributs des utilisateurs sur votre système. Reportez–vous à la commande smit dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Localisation d’une commande ou d’un programme (commande whereis) La commande whereis localise la source, binaires et les sections de manuels pour les fichiers spécifiés. Elle procède à la recherche à partir d’une liste d’emplacements standard. Par exemple, pour rechercher les fichiers du répertoire courant non documentés, entrez : whereis –m –u * Appuyez sur Entrée. Pour rechercher tous les fichiers contenant le nom Mail, tapez : whereis Mail Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : Mail : /usr/bin/Mail /usr/lib/Mail.rc Reportez–vous à la commande whereis dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage des informations sur une commande (commande man) La commande man affiche des informations sur les commandes, les sous–programmes et les fichiers. Le format général de la commande man est le suivant : man NomCommande Pour obtenir des informations sur la commande pg, tapez : man pg Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : 4-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Commande pg Utilisation Formate les fichiers à l’affichage. Syntaxe pg [ – Nombre ] [ –c ] [ –e ] [ –f ] [ –n ] [ –p chaîne ] [ –s ] [ +Ligne | +/Forme/ ] [ Fichier ... ] Description La commande pg lit un nom de fichier à partir du paramètre Fichier et écrit le fichier dans la sortie standard, un écran à la fois. Si vous spécifiez un – (tiret) comme paramètre Fichier ou exécutez la commande pg sans options, la commande pg lit l’entrée standard. Chaque écran est suivi d’une invite. Si vous appuyez sur Entrée, une autre page s’affiche. Les sous–commandes utilisées avec la commande pg vous permettent d’afficher le fichier et d’y effectuer des recherches. Reportez–vous à la commande man dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage de la fonction d’une commande (commande whatis) La commande whatis recherche une commande donnée, un appel système, une fonction de bibliothèque ou un nom de fichier particulier comme spécifié par le paramètre Command à partir d’une base de données que vous avez créée à l’aide de la commande catman –w. La commande whatis l’en-tête de section correspondant. Vous pouvez émettre la commande man pour obtenir des informations supplémentaires. L’utilisation de la commande whatis revient à celle de la commande man –f. Pour savoir ce que fait la commande ls, tapez : whatis ls Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : ls(1) –Affiche le contenu d’un répertoire. Reportez–vous à la commande whatis dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Liste des commandes précédemment entrées (commande history du Shell) La commande history est une commande intégrée du shell Korn, qui répertorie les 16 dernières commandes émises. Ce shell enregistre ces commandes dans un fichier d’historique, généralement appelé $HOME/.sh_history. $HOME/.sh_history. Cette fonction permet de gagner du temps lorsque vous devez répéter une commande. Par défaut, le shell Korn sauvegarde le texte des 128 dernières commandes. La taille du fichier d’historique (spécifié par la variable d’environnement HISTSIZE) n’est pas limitée, bien qu’une taille de fichier d’historique très grande puisse être la cause d’un démarrage lent du shell Korn. Remarque : Le shell Bourne ne prend pas en charge l’historique des commandes. Pour de plus amples informations sur les shells, veuillez vous reporter à Shells, page 12-1. Commandes et process 4-7 Par exemple, pour afficher la liste des commandes précédentes, entrez, à l’invite : history Appuyez sur Entrée. La commande history liste les 16 dernières commandes. Le système affiche un écran semblable à celui-ci : 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 ls mail printenv MAILMSG whereis Mail whatis ls cd /usr/include/sys ls man pg cd ls | pg lscons tty ls *.txt printenv MAILMSG pwd history La liste affiche d’abord la position de la commande dans le fichier $HOME/.sh_history suivie de la commande Par exemple, pour afficher les 5 dernières commandes, entrez, à l’invite : history –5 Appuyez sur Entrée. Une liste semblable à la suivante s’affiche : 939 940 941 942 943 944 tty ls *.txt printenv MAILMSG pwd history history –5 La commande history suivie d’un numéro affiche les commandes émises, à partir de ce numéro. Par exemple, pour afficher les dernières commandes depuis 938, entrez, à l’invite : history 938 Appuyez sur Entrée. Une liste semblable à la suivante s’affiche : 938 939 940 941 942 943 944 945 4-8 lscons tty ls *.txt printenv MAILMSG pwd history history –5 history 938 AIX Guide de l’utilisateur - Système d’exploitation et unités Répétition des commandes à l’aide de la commande history du Shell Utilisez l’alias shell Korn r pour répéter les commandes précédentes. Tapez r et appuyez sur Entrée, suivi éventuellement du numéro ou du (des) premier(s) caractère(s) de la commande. Si vous souhaitez afficher l’affichage actuellement disponible sur le système, tapez lsdisp et appuyez sur Entrée à l’invite. L’invite système affiche les informations à l’écran : Si vous souhaitez qu’il les réaffiche, entrez, à l’invite : r Appuyez sur Entrée. Le système réexécute la dernière commande. Dans cet exemple, la commande lsdisp est exécutée. Pour répéter la commande ls *.txt, à l’invite, entrez : r ls Appuyez sur Entrée. L’alias shell Korn r localise la dernière commande commençant par le(s) caractère(s) spécifié(s). Substitution des chaînes à l’aide de la commande history du Shell Vous pouvez également utiliser l’alias shell Korn r pour modifier une commande avant son exécution. Dans ce cas, un paramètre de substitution de la forme Old = New peut être utilisé pour modifier la commande avant son exécution. Par exemple, si la ligne de commande 940 est ls *.txt, et que vous voulez exécutez ls *.exe, à l’invite, entrez : r txt=exe 940 Appuyez sur Entrée. Ceci exécute la commande 940, en remplaçant txt par exe. Par exemple, si la commande de la ligne 940 est la commande la plus récente commençant par une lettre minuscule l, vous pouvez également taper : r txt=exe l Appuyez sur Entrée. Remarque : Seule la première occurrence de la chaîne Old est remplacée par la chaîne New. En entrant l’alias shell Korn r sans numéro de commande ou lettre d’identification effectue la substitution dans la dernière commande spécifiée. Edition de la commande history L’utilisation de la commande intégrée du shell Korn fc permet d’afficher et de modifier tout ou partie du fichier d’historique. Le cas échéant, précisez le numéro ou l’intervalle de numéros (ou encore les premiers caractères) des commandes qui vous intéressent. Vous pouvez spécifier une ou plusieurs commandes. Si vous ne spécifiez pas un programme d’édition comme argument dans la commande intégrée du shell Korn fc, l’éditeur spécifié par la variable FCEDIT est utilisé. Si la variable FCEDIT n’est pas définie, l’éditeur /usr/bin/ed est utilisé. Les commandes modifiées sont affichées et exécutées dès que vous quittez l’éditeur. Utilisez la commande printenv pour afficher la valeur de la variable FCEDIT. Par exemple, pour lancer la commande : cd /usr/tmp très proche de la ligne de commande 933, entrez, à l’invite : fc 933 Commandes et process 4-9 Appuyez sur Entrée. L’éditeur par défaut est appelé affichant la ligne de commande 933. Vous pourrez changer include/sys en tmp, et lorsque vous fermez l’éditeur, la commande éditée est exécutée. Vous pouvez également choisir l’éditeur que vous souhaitez utiliser dans la commande fc. Par exemple, pour modifier une commande à l’aide de l’éditeur /usr/bin/vi, à l’invite, entrez : fc –e vi 933 Appuyez sur Entrée. L’éditeur vi est appelé affichant la ligne de commande 933. Vous pouvez également indiquer un intervalle de commandes à modifier. Par exemple, pour modifier les commandes 930 à 940, entrez, à l’invite : fc 930 940 Appuyez sur Entrée. L’éditeur par défaut est appelé, affichant les lignes de commande 930 à 940. Lorsque vous quittez l’éditeur, toutes les commandes affichées sont exécutées en séquence. Création d’une commande alias (commande alias du Shell) Un alias permet d’attribuer un mnémonique à une commande, à un nom de fichier ou à tout texte shell. Vous pouvez ainsi accélérer le lancement des tâches que vous exécutez fréquemment. La commande intégrée du shell Korn alias permet de définir un mot comme alias de certaines commandes. Vous avez le droit de redéfinir par un alias les commandes intégrées, mais non les mots réservés. L’initiale d’un alias peut être n’importe quel caractère imprimable (non spécial). Les autres caractères doivent respecter les règles applicables aux noms de fichiers. Format de création d’un alias : alias Nom = Chaîne dans laquelle le paramètre Nom indique le nom de l’alias et le paramètre Chaîne indique une chaîne de caractères. Si la Chaîne comporte des espaces, mettez-la entre guillemets. Pour créer un alias pour la commande rm –i (affiche une invite avant la suppression de fichiers), à l’invite, tapez : alias rm=”/usr/bin/rm –i” Appuyez sur Entrée. Dans cet exemple, si vous entrez la commande rm et que vous appuyez sur Entrée, la commande réalisée est /usr/bin/rm –i. Pour créer un alias pour la commande ls –alF | pg (affiche des informations détaillées sur tous les fichiers du répertoire courant, y compris les fichiers invisibles ; marque les fichiers exécutables avec un * et les répertoires avec une / ; et fait un défilement écran par écran), à l’invite, tapez : alias dir=”/usr/bin/ls –alF | pg” Appuyez sur Entrée. Dans cet exemple, si vous entrez la commande dir et que vous appuyez sur Entrée, la commande réalisée est /usr/bin/ls –alF | pg. Pour afficher tous les alias définis, entrez, à l’invite : alias Appuyez sur Entrée. 4-10 AIX Guide de l’utilisateur - Système d’exploitation et unités Le système affiche un écran semblable à celui-ci : rm=”/usr/bin/rm –i” dir=”/usr/bin/ls –alF | pg” Travail avec les commandes de formatage de texte Vous disposez de commandes de formatage pour les textes composés avec le jeu de caractères internationaux utilisé pour les langues européennes. Formatage de texte en caractères internationaux Le jeu étendu de caractères internationaux comporte les caractères et les symboles utilisés par nombre de langues européennes, avec un sous–ensemble ASCII composé de caractères, de chiffres et de signes de ponctuation anglais. Tous les caractères du jeu étendu ont une forme ASCII, qui permet de représenter le caractères en entrée. Les caractères peuvent également être entrés directement au clavier (sous réserve que celui–ci prenne en charge le jeu étendu de caractères européens). Les commandes suivantes permettent de traiter des textes dans différentes langues, si tous les caractères sont mono–octets. Ces commandes se trouvent dans /usr/bin. (Celles suivies d’un astérisque (*) permettent de traiter les textes composés dans les langues multi-octets). Pour de plus amples informations sur les langues multi-octets, reportez–vous à Formatage de texte en caractères multi-octets, page 4-12.) addbib* checkmm checknr* col* colcrt deroff* enscript eqn* grap* hplj hyphen ibm3812 ibm3816 ibm5587G* ibm5585H–T* indxbib* lookbib* makedev* neqn* nroff* pic* ps4014 ps630 psbanne psdit psplot psrev psroff psrv pstext refer* roffbib* soelim* sortbib* tbl* troff* vgrind xpreview* Les commandes de formatage et les macros non citées ne s’appliquent pas aux caractères internationaux. Entrée de caractères étendus mono-octets Si votre unité d’entrée prend en charge les caractères du jeu étendu de caractères européens, vous pouvez les entrer directement. Sinon, passez par la séquence d’échappement ASCII : La forme \[ N ], où N est un code hexadécimal de 2 ou de 4 chiffres pour le caractère. Remarque : La forme NCesc \<xx> n’est plus prise en charge. Les textes comportant des caractères étendus sont émis en sortie selon les conventions de formatage de la langue utilisée. Les caractères non définis pour l’interface d’une unité ne génèrent ni sortie ni notification d’erreur. Bien que la plupart des noms de demandes, des macros et des commandes soient basés sur l’anglais, ils acceptent presque toutes les entrées (noms de fichiers, paramètres, etc.) comportant des caractères du jeu européen étendu. Quant aux commandes nroff et troff, et à leurs préprocesseurs, l’entrée de la commande doit être en ASCII, ou une erreur de syntaxe irrémédiable peut survenir. Les caractères internationaux, mono ou multi-octets, peuvent être entrés entre guillemets, éventuellement à l’intérieur de texte à formater. Par exemple, à l’aide des macros de la commande pic : define foobar % Texte % Après la directive define, le premier nom foobardoit être en ASCII. Toutefois, le texte de remplacement Textepeut contenir des caractères non ASCII. Commandes et process 4-11 Formatage de texte en caractères multi-octets Certaines commandes permettent de traiter des textes dans des langues multi-octets. Ces commandes peuvent être identifiées par un astérisque (*) dans la liste sous Formatage de texte en caractères internationaux, page 4-11. Les commandes de formatage de texte qui ne sont pas répertoriées dans cette liste ne peuvent pas traiter les caractères internationaux. Entrée de caractères multi-octets Si votre unité d’entrée prend en charge les caractères multi-octets, vous pouvez les entrer directement. Sinon, vous pouvez entrer un caractère multi-octet sous forme ASCII \[ N ], où N est un code hexadécimal de 2, 4, 6, 7, ou 8 chiffres pour le caractère. Bien que la plupart des noms de demandes, des macros et des commandes soient basées sur l’anglais, elles acceptent presque toutes des entrées (noms de fichiers, paramètres, etc.) comportant des caractères multi-octets. Pour les familiers du formatage de texte en caractères mono-octets, la liste suivante récapitule les caractéristiques remarquables ou propres aux environnements multi-octets : • Il n’y a pas de césure du texte. • Des types de formats spéciaux sont requis pour une sortie numérique multi-octets. Des types de formats japonais sont disponibles. • La sortie est effectuée en lignes horizontales, remplies de gauche à droite. • Les caractères sont automatiquement alignés en colonnes. • Les caractères non définis pour l’interface d’une unité ne génèrent ni sortie ni notification d’erreur. 4-12 AIX Guide de l’utilisateur - Système d’exploitation et unités Process : généralités Un programme ou une commande en cours d’exécution est appelé un process. Les process sont structurés selon une hiérarchie parent-enfant. Un process lancé par un programme ou une commande est un process parent ; le process résultant étant un process enfant. Un process parent peut engendrer plusieurs process enfants, tandis qu’un process enfant ne peut avoir qu’un seul parent. Le système attribue un numéro d’identification (PID) à chaque process, au moment de son lancement : si vous lancez plusieurs fois le même process, un PID différent lui est associé à chaque fois. Un process lancé mobilise une partie des ressources système. Lorsque plusieurs process sont simultanément en cours, un répartiteur (partie intégrante du système d’exploitation) assure le partage du temps machine, en fonction des priorités définies. Pour modifier ces priorités, vous disposez des commandes nice et renice. Remarque : Pour attribuer à un process une priorité supérieure, vous devez détenir les droits de l’utilisateur root. Tout utilisateur peut, en revanche, attribuer à un process une priorité moindre, via la commande nice (ou renice pour un process déjà en cours). Cette section décrit les procédures suivantes : • Process d’avant et d’arrière-plan, page 4-13 • Démons, page 4-13 • Process zombie, page 4-14 • Lancement d’un process, page 4-14 • Vérification des process (commande ps), page 4-15 • Définition de la priorité initiale d’un process (commande nice), page 4-16 • Modification de la priorité d’un process en cours d’exécution (commande renice), page 4-16 • Interruption d’un process d’avant-plan, page 4-17 • Arrêt d’un process d’avant-plan, page 4-17 • Relance d’un process, page 4-17 • Planification d’un process pour une opération ultérieure (commande at), page 4-18 • Liste de tous les process planifiés (commande at ou atq), page 4-19 • Suppression d’un process du planning (commande at), page 4-20 • Suppression d’un process d’arrière–plan (commande kill), page 4-20 Process d’avant et d’arrière-plan Les process qui nécessitent un utilisateur pour les lancer ou pour interagir ave eux sont appelés process d’avant–plan. Les process exécutés indépendamment de l’utilisateur sont appelés process d’arrière–plan. Par défaut, programmes et commandes sont exécutés en avant-plan. Pour exécuter un process en arrière-plan, placez une perluète (&) à la fin du nom de la commande de lancement du process. Démons Les démons sont des process exécutés sans contrôle. Ils se trouvent en permanence à l’arrière–plan et sont toujours disponibles. Ils sont généralement lancés et arrêtés en même temps que le système. Un démon, qui exécute des tâches système, peut être appelé par plusieurs tâches ou utilisateurs. Les démons sont démarrés par l’utilisateur ou le shell root et arrêtés exclusivement par l’utilisateur root. Par exemple, le process qdaemon donne Commandes et process 4-13 accès aux ressources système, telles que les imprimantes. Le démon sendmail est un autre démon commun. Process zombie Un process zombie est un process mort qui n’est plus en cours d’exécution, mais qui est toujours reconnu dans la table des process (autrement dit, qui possède un PID). Aucun autre espace système ne lui est attribué. Ces process se sont ou ont été arrêtés, mais continuent d’exister jusqu’à l’arrêt de leur process parent ou jusqu’à l’arrêt puis la relance du système. Les process zombie s’affichent comme <defunct> lorsqu’ils sont affichés par la commande ps. Lancement d’un process Pour lancer un process d’avant–plan à partir d’une station de travail, entrez le nom du programme ou de la commande à l’invite du système. Une fois démarré, le process entre en interaction avec vous. Vous ne pouvez envisager d’autres interactions (entrer une autre commande, par exemple) tant que le process n’a pas pris fin. Un utilisateur peut lancer simultanément plusieurs process (par défaut, 40 au maximum). Lancement en avant–plan Pour lancer un process d’avant–plan, entrez le nom du programme ou de la commande, assorti des paramètres et indicateurs appropriés : $ NomCommande Appuyez sur Entrée. Lancement d’un process en arrière–plan Pour lancer un process d’arrière-plan, entrez le nom du programme ou de la commande, assorti des paramètres et indicateurs appropriés, et suivi d’une perluète ( & ): $ NomCommande & Appuyez sur Entrée. Pendant que le process s’exécute en arrière–plan, vous avez toute latitude pour lancer d’autres commandes ou programmes à partir de votre station de travail. Les process en arrière–plan sont fort utiles pour les commandes longues à exécuter. Toutefois, dans la mesure où ils accroissent la charge du processeur, l’ensemble des opérations du système est ralenti. La plupart des process, même exécutés en arrière–plan, dirigent leurs sorties vers la sortie standard. Sauf s’ils ont été explicitement réacheminés, ils se dirigent vers l’écran. Pour éviter toute interférence entre les résultats d’un process en arrière-plan et votre travail en cours, nous vous conseillons de réacheminer les sorties des process d’arrière-plan vers un fichier ou une imprimante. Vous pourrez les consulter à votre guise quand vous serez disponible. Remarque : Dans certains cas, la séquence des sorties d’un process peut différer selon que le process est exécuté en avant ou en arrière–plan. Les programmeurs voudront peut–être utiliser le sous–programme fflush pour s’assurer que la sortie s’affiche dans l’ordre correct indépendamment du fait que le process est exécuté en avant ou en arrière-plan. Tant qu’un process d’arrière-plan est en cours, vous pouvez vérifier son état via la commande ps. 4-14 AIX Guide de l’utilisateur - Système d’exploitation et unités Vérification des process (commande ps) Lorsque le système est en cours de fonctionnement, plusieurs process sont également en cours d’exécution. Vous pouvez également utiliser la commande ps pour savoir quels process sont en cours d’exécution et pour afficher les informations qui leur sont relatives. Commande ps La commande ps possède plusieurs indicateurs permettant d’indiquer quels process et quelles informations il faut afficher. Ainsi, pour afficher tous les process en cours, entrez, à l’invite : ps –ef Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : USER root root root mary mary mary mary mary PID 1 1588 2280 2413 11632 16260 16469 19402 PPID 0 6963 1 16998 16998 2413 1 16260 C 0 0 0 2 0 1 0 20 STIME Jun 28 Jun 28 Jun 28 07:57:30 07:57:31 07:57:35 07:57:12 09:37:21 TTY TIME CMD – 3:23 /etc/init – 0:02 /usr/etc/biod 6 – 1:39 /etc/syncd 60 – 0:05 aixterm lft/1 0:01 xbiff pts/1 0:00 /bin/ksh lft/1 0:00 ksh /usr/lpp/X11/bin/xinit pts/1 0:00 ps –ef Les colonnes des sorties précédentes sont définies comme suit : USER nom de connexion de l’utilisateur PID ID process PPID ID process parent C utilisation CPU du process STIME heure de début du process TTY contrôle de la station de travail TIME durée d’exécution totale du process CMD commande Dans l’exemple précédent, l’ID process de la commande ps –ef est 19402. Son ID process parent est 16260 et la commande est /bin/ksh. Si la liste est très longue, le début défile et n’est plus visible. Pour afficher la liste page par page (écran par écran), utilisez la commande ps avec la commande pg. A l’invite, tapez : ps –ef | pg Appuyez sur Entrée. Pour afficher les informations d’état de tous les process en cours d’exécution sur votre système, à l’invite, tapez : ps gv Appuyez sur Entrée. Commandes et process 4-15 Cette commande affiche des statistiques sur chaque process actif. La sortie de cette commande est similaire à celle–ci : PID TTY STAT 0 – A 1 – A 771 – A 1028 – A 1503 – A 1679 – A 2089 – A 2784 – A 2816 – A 3115 – A 3451 – A 3812 – A usr/lib/lpd/ 3970 – A 4267 – A 4514 lft/0 A 4776 pts/3 A 5050 – A 5322 – A 5590 – A 5749 – A 6111 – T TIME PGIN SIZE 0:44 7 8 1:29 518 244 1:22 0 16 0:00 10 16 0:33 127 16 1:03 282 192 0:22 918 72 0:00 9 16 5:59 6436 2664 0:27 955 264 0:00 0 16 0:00 21 128 0:00 0 0:01 169 0:00 60 0:02 250 0:09 1200 0:27 1299 0:00 2 0:00 0 0:00 66 16 132 200 108 424 156 100 208 108 RSS LIM TSIZ 8 xx 0 140 xx 21 16 xx 0 8 xx 0 8 xx 0 12 32768 130 28 xx 1 8 xx 0 616 8 852 128 xx 39 8 xx 0 12 32768 34 8 72 72 280 132 192 12 12 12 xx 32768 xx 8 32768 xx 32768 xx 32768 0 16 39 303 243 24 11 13 47 TRS %CPU %MEM COMMAND 0 0.0 0.0 swapper 24 0.1 1.0 /etc/init 0 0.0 0.0 kproc 0 0.0 0.0 kproc 0 0.0 0.0 kproc 0 0.7 0.0 pcidossvr 4 0.0 0.0 /etc/sync 0 0.0 0.0 kproc 156 0.4 4.0 /usr/lpp/ 36 0.0 1.0 /usr/lib/ 0 0.0 0.0 kproc 0 0.0 0.0 0 16 60 268 56 24 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 1.0 1.0 0.0 0.0 0.0 kproc /etc/sysl /etc/gett –ksh /usr/sbin /etc/cron /etc/writ /usr/lpp/ /usr/lpp/ Reportez–vous à la commande ps dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Définition de la priorité initiale d’un process (commande nice) Pour attribuer à un process une priorité inférieure, lancez–le via la commande nice pour démarrer le process. Remarque : Pour attribuer à un process une priorité supérieure, vous devez détenir les droits de l’utilisateur root. Commande nice Pour définir la priorité initiale d’un process, entrez : nice –n Numéro ChaîneCommande où Numéro se trouve dans l’intervalle de 0 à 39, 39 étant la priorité inférieure. La valeur nice est la valeur décimale de la priorité de planification du système d’un process. Plus la valeur est élevée, plus la priorité est faible. La valeur zéro conserve la priorité de planification initiale. ChaîneCommande est la chaîne de commande du process à exécuter. Reportez–vous à la commande nice dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Vous pouvez également utiliser la commande smit nice pour réaliser cette tâche. Modification de la priorité d’un process en cours d’exécution (commande renice) Pour modifier la priorité d’un process en cours, lancez la commande renice à partir de la ligne de commande. Cette commande modifie la valeur nice d’un process. Remarque : Pour attribuer à un process (que vous n’avez pas lancé) une priorité supérieure, vous devez détenir les droits de l’utilisateur root. 4-16 AIX Guide de l’utilisateur - Système d’exploitation et unités A partir de la ligne de commande Pour modifier la priorité initiale d’un process en cours, entrez : renice Priorité –p IDProcess où Priorité est un nombre compris entre –20 et 20 (plus le nombre est élevé, plus la priorité est basse). La valeur zéro conserve la priorité de planification initiale. IDProcess est l’ID process pour lequel vous souhaitez modifier la priorité. Vous pouvez également utiliser la commande smit renice pour réaliser cette tâche. Interruption d’un process d’avant-plan Si vous lancez un process d’avant-plan et que vous ne voulez pas qu’il se termine, vous pouvez l’interrompre en appuyant sur INTERRUPTION. Pour cela, utilisez Ctrl–C ou Ctlr–Supp. Pour savoir quelle est votre touche d’INTERRUPTION, reportez–vous à Liste des affectations de touches du terminal (commande stty), page 2-6. Remarque : La touche d’INTERRUPTION (Ctrl–C) n’arrête pas les process d’arrière–plan. Pour annuler un process d’arrière–plan, vous devez utiliser la commande kill. Les commandes les plus simples ne constituent pas de bons exemples d’interruption de process. En effet, ils s’exécutent de manière si rapide qu’ils se terminent avant que vous n’ayez le temps de les interrompre. Les exemples de cette section utilisent donc une commande qui s’exécutent en plusieurs secondes : find / –type f. Cette commande affiche le nom des chemins d’accès de tous les fichiers du système. Vous ne devez pas étudier la commande find pour comprendre cette section ; ici, elle est simplement utilisée pour montrer comment gérer les process. Dans l’exemple suivant, la commande find démarre un process. Quelques secondes après le démarrage du process, vous pouvez l’interrompre en appuyant sur la touche d’INTERRUPTION : $ find / –type f /usr/sbin/acct/lastlogin /usr/sbin/acct/prctmp /usr/sbin/acct/prdaily /usr/sbin/acct/runacct /usr/sbin/acct/sdisk /usr/sbin/acct/shutacct INTERRUPT (Ctrl–C) $ _ L’invite système est réaffichée. Vous pouvez lancer d’autres commandes. Arrêt d’un process d’avant-plan Il est possible d’arrêter un process sans que son PID soit supprimé de la table des process. Le process peut être arrêté par Ctrl–Z, par exemple. Remarque : La combinaison de touches Ctrl–Z fonctionne bien dans le shell Korn (ksh) et dans le shell C (csh), mais pas dans le shell Bourne (bsh). Relance d’un process Cette procédure explique comment relancer un process arrêté par Ctrl-Z. Remarque : La combinaison de touches Ctrl–Z fonctionne bien dans le shell Korn (ksh) et dans le shell C (csh), mais pas dans le shell Bourne (bsh). Pour relancer un process arrêté, vous devez soit l’avoir lancé, soit être un utilisateur root. 1. Pour afficher tous les process en cours ou arrêtés, mais non tués (commande kill), entrez : ps –ef Commandes et process 4-17 Vous voulez peut–être appliquer pipe à cette commande par une commande grep afin de réduire la liste des process que vous voulez relancer. Par exemple, si vous souhaitez relancer une session vi, vous pouvez taper : ps –ef | grep vi Appuyez sur Entrée. Cette commande affichera uniquement les lignes de la sortie de la commande ps contenant le mot vi. Une sortie semblable à la suivante est affichée : UID root root PID PPID C 1234 13682 0 14277 13682 1 STIME 00:59:53 01:00:34 TTY – – TIME COMMAND 0:01 vi test 0:00 grep vi 2. Dans la sortie de la commande ps, recherchez le process que vous souhaitez relancer et notez son ID process. Dans cet exemple, l’ID process est 1234. 3. Pour transmettre le signal de continuation au process arrêté, entrez : kill –19 1234 Modifiez l’ID de votre process, 1234. La commande –19 indique le signal CONTINUE, qui relance le process en arrière-plan. Si le process peut être exécuté en arrière-plan, vous avez terminé la procédure. Si le process doit être exécuté en avant-plan (comme dans une session vi ), vous devez réaliser l’étape suivante. 4. Pour amener le process à l’avant–plan, entrez : fg 1234 Modifiez à nouveau l’ID de votre process, 1234. Votre process doit à présent être exécuté en avant-plan. (Vous êtes à présent dans votre session d’édition vi). Planification d’un process pour une opération ultérieure (commande at) Vous pouvez configurer un process comme étant un batch process (traitement par lots) pour qu’il fonctionne en arrière-plan à une heure définie. Les commandes at et smit vous permettent d’entrer des noms de commandes à exécuter à un moment ultérieur et de spécifier quand ces commandes doivent être lancées. Remarque : Les fichiers /var/adm/cron/at.allow et /var/adm/cron/at.allow vérifient si vous pouvez utiliser la commande at. Un utilisateur root peut créer, éditer ou supprimer ces fichiers. Leurs entrées comprennent un nom de connexion utilisateur par ligne. Voici un exemple d’ACL d’un fichier at.allow : root nick dee sarah Si le fichier at.allow exite, seuls les utilisateurs dont les noms de connexion y sont répertoriés peuvent utiliser la commande at. Un administrateur système peut explicitement interdire à un utilisateur d’utiliser la commande at en répertoriant le nom de connexion de cet utilisateur dans le fichier at.deny. Si seul le fichier at.deny existe, n’importe quel utilisateur dont le nom ne figure pas dans ce fichier peut utiliser la commande at. Vous pouvez également utiliser la commande at si l’une des conditions suivantes est vraie : • Le fichier at.allow et le fichier at.deny n’existent pas (utilisateur root autorisé uniquement). • Le fichier at.allow existe mais le nom de connexion utilisateur n’y figure pas. • Le fichier at.deny existe et le nom de connexion utilisateur y apparaît. Si le fichier at.allow n’existe pas et que le fichier at.deny n’existe pas non plus ou qu’il est vide, seul un utilisateur root peut soumettre un travail avec la commande at. 4-18 AIX Guide de l’utilisateur - Système d’exploitation et unités La syntaxe de la commande at vous permet de spécifier une chaîne date et heure, ou encore une chaîne incrément pour définir le moment d’exécution du process. Elle vous autorise également à préciser le shell ou la file d’attente à utiliser. Voici quelques exemples. Commande at Si votre nom de connexion est joyce et que vous disposez d’un script appelé WorkReport que vous voulez exécuter à minuit, procédez comme suit. 1. Entrez l’heure à laquelle démarrer le programme. at midnight 2. Entrez le nom des programmes à exécuter, en appuyant sur Entrée après chaque nom. Appuyez ensuite sur Ctrl-D (fin de fichier) pour terminer. WorkReport^D Un message semblable au suivant s’affiche : job joyce.741502800.a at Fri Jul 6 00:00:00 CDT 2002. Un numéro de travail est attribué au programme WorkReport joyce.741502800.a et le travail sera exécuté à minuit le 6 juillet. Pour afficher la liste des programmes qui seront exécutés en différé, entrez : at –l Le système affiche un écran semblable à celui-ci : joyce.741502800.a Fri Jul 6 00:00:00 CDT 2002 Reportez–vous à la commande at dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe exacte. Liste de tous les process planifiés (commande at ou atq) Vous pouvez afficher tous les process planifiés en utilisant l’indicateur –l avec la commande at ou avec la commande atq. Les deux commandes fournissent la même sortie, mais la commande atq peut ordonner les process par heure démission de la commande at et elle peut afficher uniquement le nombre de process dans la file d’attente. Pour afficher tous les process planifiés, vous lancez : • la commande at à partir de la ligne de commande. • la commande atq. Pour limiter les utilisateurs de la commande at, reportez–vous à la Remarque dans Planification d’un process pour une opération ultérieure (commande at), page 4-18. Commande at Pour afficher la liste des process planifiés, entrez : at –l Cette commande affiche la liste des process planifiés dans votre file d’attente. Si vous êtes utilisateur root, elle affiche tous les process planifiés de tous les utilisateurs. Pour en savoir plus sur la syntaxe, reportez-vous à la commande at. Commande atq Pour afficher la liste des process planifiés de la file d’attente, entrez : atq Si vous êtes utilisateur root, vous pouvez afficher les process planifiés d’un utilisateur en entrant : atq NomUtilisateur Commandes et process 4-19 Pour afficher le nombre de process de la file d’attente, entrez : atq –n Suppression d’un process du planning (commande at) Vous pouvez supprimer un process planifié avec la commande at en utilisant l’indicateur –r. Pour limiter les utilisateurs de la commande at, reportez–vous à la Remarque dans Planification d’un process pour une opération ultérieure (commande at), page 4-18. A partir de la ligne de commande 1. Pour déprogrammer un process, vous devez connaître son numéro. Vous pouvez obtenir le numéro de process en utilisant la commande at –l ou la commande atq. Reportez–vous à Liste de tous les process planifiés (commande at ou atq), page 4-19 pour plus de détails. 2. Lorsque vous connaissez le numéro du process à déprogrammer, entrez : at –r NuméroProcess Vous pouvez également utiliser la commande smit rmat pour réaliser cette tâche. Suppression d’un process d’arrière–plan (commande kill) Si la touche d’INTERRUPTION n’a pas eu l’effet escompté sur le process d’avant-plan ou si vous souhaitez arrêter un process d’arrière-plan, vous pouvez recourir à la commande kill. Avant d’arrêter un process à l’aide de la commande kill, vous devez connaître son ID process. Le format général de la commande kill est le suivant : kill IDProcess Remarque : Pour supprimer un process, vous devez soit l’avoir lancé, soit être un utilisateur root. Le signal par défaut d’un process suite à la commande kill est –15 (SIGTERM). Commande kill Remarque : Pour supprimer un process zombie, vous devez supprimer son parent. 1. Utilisez la commande ps pour déterminer le PID du process à supprimer. Vous voulez peut–être appliquer pipe à cette commande par une commande grep pour afficher uniquement le process que vous souhaitez. Ainsi, pour obtenir le PID d’une session vi, entrez : ps –l | grep vi 2. Dans l’exemple suivant, la commande find permet de faire une exécution en arrière–plan. Vous pouvez alors décider d’arrêter le process. Emettez la commande ps pour lister les numéros de PID. $ find / –type f > dir.paths & [1] 21593 $ ps PID TTY TIME COMMAND 1627 pts3 0:00 ps 5461 pts3 0:00 ksh 17565 pts3 0:00 –ksh 21593 pts3 0:00 find / –type f $ kill 21593 $ ps PID TTY TIME COMMAND 1627 pts3 0:00 ps 5461 pts3 0:00 ksh 17565 pts3 0:00 –ksh [1] + Terminated 21593 find / 4-20 AIX Guide de l’utilisateur - Système d’exploitation et unités –type f > dir.paths & La commande kill 21593 arrête le process d’arrière–plan find et la deuxième commande ps renvoie un état sans informations sur le PID 21593. Le système n’affichera pas le message d’arrêt avant que vous n’entriez la commande suivante, à moins que la commande soit cd. La commande kill vous permet d’arrêter les process d’arrière–plan. Vous voulez peut–être réaliser cette tâche si vous avez, par erreur, lancé un process en arrière-plan ou que vous vous apercevez qu’il est trop long, par exemple. Reportez–vous à la commande kill dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. La commande kill peut également être utilisée dans smit en tapant : smit kill Commandes et process 4-21 Récapitulatif des commandes pour les commandes et les process Commandes alias La commande shell imprime une liste d’alias sur une sortie standard history à la page 12-98 La commande shell affiche la liste des événements de l’historique man Affiche les informations sur les commandes, les sous–programmes et les fichiers en ligne wsm Effectue une gestion de système à partir d’un navigateur web whatis Décrit la fonction d’une commande whereis Localise la source, binaire ou manuelle, des programmes installés at Exécute des commandes à un moment ultérieur, liste tous les process planifiés ou supprime un process du planning atq Affiche la file de travaux en attente de l’exécution kill Envoie un signal aux process en cours d’exécution nice Exécute une commande à un niveau de priorité inférieur ou supérieur ps Affiche l’état en cours des process. renice Modifie la priorité des process en cours d’exécution Process Informations connexes Présentation des commandes, page 4-3 Présentation des process, page 4-13 Les Shells, page 12-1 Shell Korn ou POSIX, page 12-9 Shell Bourne, page 12-71 Shell C, page 12-93 4-22 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 5. Réacheminement des entrées/sorties Le système d’exploitation permet la gestion des entrées et sorties (E–S) de données de et vers votre système en utilisant des commandes et symboles spécifiques E–S. Vous pouvez gérer les entrées en indiquant l’emplacement à partir duquel les données sont rassemblées. Vous pouvez par exemple indiquer de lire les entrées quand les données sont entrées sur le clavier (entrées standard) ou de lire les sorties à partir d’un fichier. Vous pouvez gérer les sorties en indiquant où les données s’affichent et sont enregistrées. Vous pouvez indiquer d’envoyer les données de sortie à l’écran (sortie standard) ou de les envoyer vers un fichier. Le système d’exploitation multitâches est conçu pour gérer les process les uns avec les autres. Ce chapitre aborde les avantages du réacheminement des entrées et sorties et de l’association des process. Cette section décrit les points suivants : • Entrées, sorties et erreurs standard, page 5-2 • Réacheminement des sorties standard, page 5-2 • Réacheminement des sorties vers un fichier, page 5-3 • Réacheminement des sorties avec ajout à un fichier, page 5-3 • Création d’un fichier texte avec réacheminement à partir du clavier, page 5-3 • Concaténation de fichiers texte, page 5-4 • Réacheminement des entrées standard, page 5-4 • Elimination des sorties via le fichier /dev/null, page 5-4 • Réacheminement des erreurs standard et autres sorties, page 5-5 • Utilisation des documents entrée en ligne (Here), page 5-5 • Utilisation des tubes et filtres, page 5-6 • Affichage de la sortie d’un programme avec copie dans un fichier (commande tee), page 5-7 • Effacement de l’écran (commande clear), page 5-8 • Envoi d’un message vers la sortie standard (commande echo), page 5-8 • Ajout d’une ligne de texte à un fichier (commande echo), page 5-8 • Copie de l’écran dans un fichier (commandes capture et script), page 5-8 • Affichage de texte en gros caractères (commande banner), page 5-9 • Réacheminement des entrées/sorties, page 5-10 Réacheminement des entrées/sorties 5-1 Entrées, sorties et erreurs standard Lorsqu’une commande est lancée, elle attend normalement que les fichiers suivants soient ouverts : entrées, sorties et erreurs standards (appelés parfois sortie erreur ou sortie diagnostic Un descripteur de fichier est un nombre associé à chacun de ces fichiers comme suit : Descripteur de fichier 0 Entrée standard Descripteur de fichier 1 Sortie standard Descripteur de fichier 2 Sortie erreur standard (diagnostic) Un processus enfant hérite normalement de ces fichiers de son parent. Les trois fichiers sont initialement attribués au poste de travail (0 pour le clavier, 1 et 2 pour l’écran). Le shell leur permet d’être réacheminé vers un autre emplacement avant que le contrôle ne soit passé sur une commande. Lorsque vous entrez une commande, si aucun nom de fichier n’est précisé, votre clavier représente l’entrée standard, parfois appelée stdin. A la fin d’une commande, les résultats s’affichent sur votre écran. Votre écran représente la sortie standard, parfois appelée stdout. Par défaut, les commandes gardent leur entrée à partir de l’entrée standard et envoie les résultats à la sortie standard. Les messages d’erreur sont acheminés aux erreur standard, parfois appelées stderr. Par défaut, il s’agit de votre écran. Ces actions d’entrées et de sorties par défaut peuvent varier. Vous pouvez utiliser un fichier comme entrées et envoyer les résultats d’une commande à un fichier. Il s’agit du réacheminement des entrées/sorties. La sortie d’une commande qui normalement s’affiche à l’écran peut être aisément réacheminée vers un fichier. Il s’agit du réacheminement des sorties. Cette fonction est utile lorsque vous avez beaucoup de sorties difficiles à envoyer à l’écran ou lorsque vous voulez assembler les fichiers afin de créer un fichier plus gros. Bien qu’elle ne soit pas autant utilisée que le réacheminement des sorties, les entrées d’une commande normalement issues du clavier peuvent être également réacheminées à partir d’un fichier. Il s’agit du réacheminement des entrées. Le réacheminement des entrées permet de préparer un fichier à l’avance ; ainsi la commande peut lire le fichier. Réacheminement des sorties standard Lorsque la mention >nomfichier est indiquée à la fin d’une commande, la sortie de la commande est ajoutée au nom du fichier indiqué. Le > symbole est connu comme l’opérateur de réacheminement des sorties. Toute commande dont les résultats apparaissent à l’écran peut envoyer ses sorties vers un fichier. 5-2 AIX Guide de l’utilisateur - Système d’exploitation et unités Réacheminement des sorties vers un fichier Il est possible de réacheminer la sortie d’un processus vers un fichier en saisissant la commande suivie du nom d’un fichier. Pour envoyer par exemple les résultats de la commande who à un fichier appelé users, entrez : who > users Appuyez sur Entrée. Remarque : Si le fichier users existe déjà, il est supprimé et remplacé sauf si l’option noclobber des commandes (shell C) intégrées set ksh (Korn shell) ou csh est indiquée. Pour afficher le contenu du fichier users, entrez : cat users Appuyez sur Entrée. Une liste similaire à l’exemple ci–après s’affiche : denise marta endrica lft/0 May 13 08:05 pts/1 May 13 08:10 pts/2 May 13 09:33 Réacheminement des sorties avec ajout à un fichier Lorsque la mention > > nomfichier est indiquée à la fin d’une commande, les sorties de la commande sont ajoutées au nom du fichier indiqué, plutôt que d’écraser les données existantes. Le >> symbole est connu comme l’opérateur de réacheminement. Par ajouter par exemple file2 à file1, entrez : cat file2 >> file1 Appuyez sur Entrée. Remarque : Si le fichier file1 n’existe pas, il est créé sauf si l’option noclobber de la commande (shell C) intégrée set ksh (Korn shell) ou csh est indiquée. Création d’un fichier texte avec réacheminement à partir du clavier Utilisée seule, la commande cat considère comme entrées toutes les saisies clavier. Vous pouvez réacheminer ces entrées vers un fichier. Entrez Ctrl–D sur une nouvelle ligne pour indiquer la fin du texte. A l’invite système, entrez : cat > nomfichier This is a test. ^D Réacheminement des entrées/sorties 5-3 Concaténation de fichiers texte L’association de plusieurs fichiers en un seul fichier s’appelle la concaténation. A l’invite système, entrez par exemple : cat file1 file2 file3 > file4 Appuyez sur Entrée. L’exemple précédent crée file4 qui comprend file1, file2 et file3 dans l’ordre donné. L’exemple suivant affiche une erreur communément rencontrée à la concaténation de fichiers : cat file1 file2 file3 > file4 Attention : Dans cet exemple, la commande cat peut ajouter file1, file2 et file3 dans file1. La commande cat crée tout d’abord le fichier de sorties, elle supprime donc le contenu de file1 et lui ajoute file2 et file3. Réacheminement des entrées standard Lorsque la mention < nomfichier est indiquée à la fin d’une commande, les entrées de la commande sont ajoutées au nom du fichier indiqué. Le < symbole est connu comme l’opérateur réacheminement des entrées. Remarque : Seules les commandes qui normalement gardent leurs entrées à partir du clavier peuvent subir un réacheminement de leurs entrées. Par exemple pour envoyer le fichier message letter1 à l’utilisateur denise à l’aide de la commande mail, entrez : mail denise < letter1 Appuyez sur Entrée. Elimination des sorties via le fichier /dev/null Le fichier /dev/null est un fichier particulier. Ce fichier a une propriété unique, il est toujours vide. Toutes les données envoyées à /dev/null sont supprimées. Cette fonction s’avère utile lorsque vous exécutez un programme qui génère des sorties que vous voulez ignorer. Vous disposez par exemple d’un programme appelé myprog qui accepte les entrées de l’écran et qui, pendant son exécution, crée des messages que vous préférez ignorer. Pour lire les entrées issues du fichier myscript et éliminer les messages de sorties standard, entrez : myprog < myscript >/dev/null Appuyez sur Entrée. Dans cet exemple, myprog utilise le fichier myscript comme entrées et toutes les sorties standard sont éliminées. 5-4 AIX Guide de l’utilisateur - Système d’exploitation et unités Réacheminement des erreurs standard et autres sorties Outre l’entrée standard et la sortie standard, les commandes génèrent souvent d’autres types de sortie comme les messages d’erreur ou d’état connus sous le nom de sortie de diagnostic. Tout comme la sortie standard, la sortie erreur standard apparaît à l’écran, à moins qu’elle ne soit réacheminée. Si vous souhaitez réacheminer la sortie erreur standard ou une autre sortie, vous devez utiliser un descripteur de fichier. Un descripteur de fichier est un nombre associé à chacun des fichiers d’entrée–sortie généralement utilisés par une commande. Il est également possible de spécifier des descripteurs de fichiers pour réacheminer l’entrée standard et la sortie standard, mais elles disposent déjà de valeurs par défaut. Les nombres ci–après sont associés à l’entrée standard, la sortie standard et l’erreur standard : 0 Entrée standard (clavier) 1 Sortie standard (écran) 2 Erreur standard (écran) Pour réacheminer la sortie erreur standard, saisissez le descripteur de fichier numéro 2 devant la sortie ou ajoutez les symboles de réacheminement (> ou > >) suivis d’un nom de fichier. Par exemple, la commande suivante prend la sortie d’erreur standard de la commande cc à l’emplacement où elle est utilisée pour compiler le fichier testfile.c et l’ajoute à la fin du fichier ERRORS : cc testfile.c 2 >> ERRORS Il est également possible de réacheminer d’autres types de sortie à l’aide des descripteurs de fichiers allant de 0 à 9. Ainsi, si la commande cmd consigne la sortie vers le descripteur de fichier numéro 9, vous pouvez réacheminer cette sortie vers le fichier savedata à l’aide de la commande suivante : cmd 9> savedata Si une commande génère plusieurs sorties, vous pouvez les réacheminer indépendamment les unes des autres. Ainsi, si cette commande envoie sa sortie standard vers le descripteur de fichier numéro 1, sa sortie erreur standard vers le descripteur de fichier numéro 2 et génère un fichier de données sur le descripteur de fichier numéro 9, saisissez la ligne de commande suivante pour réacheminer chacune de ces sorties vers un fichier différent : command > standard 2> error 9> data Utilisation des documents entrée en ligne (Here) Si une commande se présente sous la forme suivante : command << eofstring et eofstring est une chaîne qui ne contient pas de métacaractères, alors le shell considère la ligne suivante comme entrée standard de la commande jusqu’à ce que le shell envoie une ligne comprenant uniquement eofstring (précédé si possible d’une ou plusieurs tabulations). Les lignes entre la première et la seconde commande eofstring sont fréquemment signalées comme une entrée en ligne ou un document here. Si un tiret (–) suit immédiatement les caractères de réacheminement <<, le shell enlève les tabulations principales de chaque ligne du document here avant de renvoyer la ligne à la commande. Le shell crée un fichier temporaire contenant le document here et remplace les variables et les commandes dans le contenu avant de renvoyer le fichier à la commande. Il effectue le contrôle de forme sur les noms de fichiers qui font partie des lignes de commande dans les substitutions de commandes. Pour empêcher toutes substitutions, indiquez tous les caractères de eofstring : Réacheminement des entrées/sorties 5-5 command << \eofstring Le document here s’avère particulièrement utile pour une quantité minime des données d’entrée qui trouve plus sa place dans la procédure shell que dans un fichier séparé (tel les scripts d’éditeur). Vous pouvez par exemple entrer : cat <<– xyz Ce message s’affiche sur l’écran ; les tabulations principales sont supprimées. xyz Appuyez sur Entrée. Utilisation des tubes et filtres Vous pouvez connecter deux ou plusieurs commandes pour que la sortie standard d’une commande soit utilisée comme entrée standard d’une autre commande. Les commandes connectées de telle sorte s’appellent une pipeline. La connexion qui accompagne les commandes s’appelle un tube. Les tubes sont utiles car ils permettent d’associer plusieurs commandes à but unique en une commande puissante. Un pipeline permet d’acheminer la sortie à partir d’une commande pour devenir l’entrée d’une autre commande. Les commandes sont connectées par un symbole tube (|). Lorsqu’une commande garde son entrée à partir d’une autre commande, la modifie et envoie les résultats à la sortie standard, elle s’appelle un filtre. Les filtres peuvent être utilisés seuls mais ils s’avèrent très utiles dans les pipelines. Les filtres les plus fréquents sont les suivants : • sort • plus • pg La commande ls écrit par exemple le contenu du répertoire courant à l‘écran dans l’un des flots de données déroulant. Lorsque plusieurs écrans d’informations sont présentés, certaines données sont perdues à l’affichage. Pour contrôler la sortie de sorte que le contenu s’affiche écran par écran, vous pouvez utiliser une pipeline pour acheminer la sortie de la commande ls vers la commande pg qui contrôle le format de sortie vers l’écran comme indiqué dans l’exemple suivant : ls | pg Dans cet exemple, la sortie de la commande ls est l’entrée de la commande pg. Appuyez sur Entrée pour passer à l’écran suivant. Les pipelines n’opèrent que dans un sens (de la gauche vers la droite). Chaque commande dans une pipeline s’exécute comme un processus séparé et tous les processus peuvent être exécutés simultanément. Un processus effectue une pause lorsque aucune entrée ne doit être lue ou lorsque le tube dirigé vers le prochain processus est plein. Les tubes peuvent également être utilisés avec la commande grep. La commande grep cherche dans un fichier les lignes qui contiennent des chaînes d’un format particulier. Pour afficher tous les fichiers créés ou modifiés en juillet, entrez : ls –l | grep Jul Appuyez sur Entrée. Dans cet exemple, la sortie de la commande ls est l’entrée de la commande grep. 5-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Affichage de la sortie d’un programme avec copie dans un fichier (commande tee) La commande tee, utilisée en combinaison avec une autre commande, lit l’entrée standard, consigne la sortie d’un programme vers la sortie standard et la copie simultanément dans le ou les fichiers spécifiés. La commande tee permet de visualiser immédiatement la sortie et de la conserver en vue d’utilisations ultérieures. Par exemple, entrez : ps –ef | tee program.ps Appuyez sur Entrée. La sortie standard de la commande ps –ef s’affiche à l’écran et une copie est sauvegardée dans le fichier program.ps. Si le fichier program.ps existe déjà, il est supprimé et remplacé, sauf si l’option noclobber de la commande intégrée set est indiquée. Pour visualiser et sauvegarder la sortie d’une commande dans un fichier existant, entrez : ls –l | tee –a program.ls La sortie standard de la commande ls –l s’affiche à l’écran et une copie est sauvegardée dans le fichier program.ps. Le système affiche des informations similaires à l’exemple ci–après. Ces mêmes informations figurent dans le fichier program.ls. –rw–rw–rw– –rw–rw–rw– –rw–rw–rw– 1 jones 1 jones 1 jones staff staff staff 2301 6317 5550 Sep 19 Aug 31 Sep 10 08:53 161414 13:17 def.rpt 14:13 try.doc Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande tee dans le manuel AIX 5L Version 5.2 Commands Reference. Réacheminement des entrées/sorties 5-7 Effacement de l’écran (commande clear) Vous pouvez vider l’écran de messages et l’entrée clavier grâce à la commande clear. A l’invite, entrez : clear Appuyez sur Entrée. Le système efface l’écran et affiche l’invite. Envoi d’un message vers la sortie standard (commande echo) Vous pouvez afficher des messages sur l’écran à l’aide de la commande echo. Pour par exemple écrire un message vers la sortie standard dans l’invite de commande, entrez : echo Please insert diskette. . . Appuyez sur Entrée. Le système affiche les informations suivantes : Please insert diskette. . . Pour utiliser par exemple la commande echo avec les mégacaractères à l’invite, entrez : echo The back–up files are: *.bak Appuyez sur Entrée. Le système affiche le message Les fichiers de sauvegarde sont : suivi des noms de fichier dans le répertoire courant terminé par .bak. Ajout d’une ligne de texte à un fichier (commande echo) Vous pouvez ajouter une seule ligne de texte à un fichier grâce à la commande echo utilisée avec l’opérateur de réacheminement. Par exemple, entrez : echo Remember to backup mail files by end of week. > >remarques Appuyez sur Entrée. Le message Remember to backup mail files by end of week. est ajouté à la fin du fichier notes. Copie de l’écran dans un fichier (commandes capture et script) Vous pouvez copier tout ce qui apparaît sur votre écran dans un fichier à l’aide de la commande capture qui émule un terminal VT100. La commande script permet de copier tout ce qui apparaît sur votre écran dans un fichier, sans émulation de terminal VT100. Les deux commandes sont utiles pour imprimer les enregistrements des boîtes de dialogue affichées à l’écran. 5-8 AIX Guide de l’utilisateur - Système d’exploitation et unités Par exemple, pour prendre une capture d’écran avec une émulation d’un terminal VT100, entrez la commande suivante sur la ligne de commande : capture screen.01 Appuyez sur Entrée. Le système affiche des informations similaires à l’exemple suivant : Capture command is started. The file is screen.01. Use ^P to dump screen to file screen.01. You are now emulating a vt100 terminal. Press Any Key to continue. Après avoir saisi les données souhaitées et vidé le contenu de l’écran, mettez fin à la commande capture en appuyant sur les touches Ctrl–D ou en saisissant exit. Appuyez ensuite sur la touche Entrée. Le système affiche des informations similaires à l’exemple suivant : Capture command is complete. The file is screen.01. You are NO LONGER emulating a vt100 terminal. La commande cat permet d’afficher le contenu de votre fichier. Pour prendre une capture d’écran, saisissez la commande suivante sur la ligne de commande : script Appuyez sur Entrée. Le système affiche des informations similaires à l’exemple suivant : Script command is started The file is typescript Tout ce qui s’affiche sur cet écran est maintenant copié dans le fichier typescript. Pour mettre fin à la commande script, appuyez sur exit, puis sur Entrée. Le système affiche des informations similaires à l’exemple suivant : Script command is complete. The file is typescript. La commande cat permet d’afficher le contenu de votre fichier. Pour obtenir des détails sur la syntaxe, reportez–vous à la description des commandes capture et script dans le manuel AIX 5L Version 5.2 Commands Reference. Affichage de texte en gros caractères (commande banner) ) La commande banner affiche les caractères ASCII en gros caractères. Chaque ligne de sortie peut compter 10 chiffres (ou des caractères en majuscules ou en minuscules). Par exemple, entrez : banner GOODBYE! Appuyez sur Entrée. Le système affiche GOODBYE! en gros caractères. Réacheminement des entrées/sorties 5-9 Récapitulatif des commandes relatives au réacheminement des entrées/sorties > Réacheminement des sorties standard, page 5-2 < Réacheminement des entrées standard, page 5-4 >> Réacheminement des sorties avec ajout à un fichier, page 5-3 | Utilisation des tubes et filtres, page 5-6 banner Permet d’envoyer des chaînes de caractères ASCII en gros caractères vers la sortie standard. capture Permet de vider le contenu de l’écran dans un fichier. clear Permet d’effacer l’écran du terminal. echo Permet d’envoyer des chaînes de caractères vers la sortie standard. script Permet de copier des sorties et entrées standard dans un fichier. tee Permet d’afficher la sortie standard d’un programme et d’en effectuer une copie dans un fichier. Informations connexes Présentation des commandes, page 4-3 Présentation des process, page 4-13 Shells, page 12-1 Commandes du shell Korn ou POSIX, page 12-9 Bourne Shells, page 12-71 Shells C, page 12-93 Fichiers, page 7-1 5-10 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 6. Système de fichiers et répertoires Un système de fichiers est constitué d’un groupe de répertoires et des fichiers qu’ils contiennent. Il est généralement représenté par une arborescence : le répertoire racine, symbolisé par une barre oblique(/), définit un système de fichiers et apparaît au sommet de l’arborescence. Les branches descendantes, issues du répertoire racine, contiennent des fichiers ou des sous–répertoires. Ces ramifications définissent des chemins d’accès uniques à tous les objets du système de fichiers. Les fichiers sont regroupés dans des répertoires. Ces derniers sont rarement indépendants les uns des autres : les structurer en système de fichiers permet de les organiser. Un fichier est un ensemble de données, susceptible d’être lu et dans lequel il est possible d’écrire. Un programme, un texte, des données, une unité, etc., constituent des fichiers. Commandes, imprimantes, terminaux, courrier et programmes d’application y sont stockés. L’accès à ces divers éléments est de ce fait uniformisé: le système y gagne en souplesse et en simplicité. Ce chapitre traite des points suivants : • • • • Système de fichiers à la page, 6-2 – Types de systèmes de fichiers, page 6-2 – Structure des systèmes de fichiers, page 6-3 – Espace disponible sur un système de fichiers (commande df), page 6-4 Répertoires : généralités, page 6-6 – Types de répertoires, page 6-6 – Répertoires : Organisation, page 6-7 – Conventions d’appellation des répertoires, page 6-7 – Chemins d’accès aux répertoires, page 6-7 – Répertoires : Abréviations, page 6-8 Procédures de gestion des répertoires, page 6-9 – Création d’un répertoire (commande mkdir), page 6-9 – Déplacement ou changement de nom d’un répertoire (commande mvdir), page 6-9 – Affichage du répertoire courant (commande pwd), page 6-10 – Passage à un autre répertoire (commande cd), page 6-10 – Copie d’un répertoire (commande cp), page 6-11 – Affichage du contenu dun répertoire (commande ls), page 6-11 – Suppression ou retrait d’un répertoire (commande rmdir), page 6-13 – Comparaison entre répertoires (commande dircmp), page 6-14 Récapitulatif des commandes relatives aux Système de fichiers et aux répertoires, page 6-15 Système de fichiers et répertoires 6-1 Système de fichiers Un système de fichiers est une structure hiérarchique (arborescence de fichiers) de fichiers et de répertoires. Ce type de structure ressemble à un arbre renversé avec les racines au sommet et les branches en bas. Cette arborescence des fichiers organise les données et programmes en groupes, ce qui permet de manipuler simultanément plusieurs fichiers et répertoires. Certaines tâches sont exécutées de façon plus efficace sur un système de fichiers que sur chaque répertoire d’un système de fichiers. Par exemple, vous pouvez sauvegarder, déplacer ou protéger tout un système de fichiers. Le type de système de fichiers de base s’appelle système de fichiers journalisé (JFS). Ce système de fichiers utilise des techniques de consignation dans des bases de données afin d’assurer une cohérence au niveau de la structure. Cela empêche que le système de fichiers soit endommagé lors d’un arrêt anormal. Nombre de tâches de gestion du système sont liées aux systèmes de fichiers, notamment : • l’affectation d’espace aux systèmes de fichiers sur les volumes logiques, • la création de systèmes de fichiers, • la mise à la disposition des utilisateurs de l’espace du système de fichiers, • le contrôle de l’utilisation de l’espace du système de fichiers, • la sauvegarde des systèmes de fichiers pour protéger les données en cas de panne du système, • le maintien de la cohérence des systèmes de fichiers. Ces tâches incombent à l’administrateur du système. Types de systèmes de fichiers Prend en charge plusieurs types de systèmes de fichiers. Par exemple : 6-2 Système de fichiers journalisé (JFS) Type de base. Il accepte l’ensemble des commandes relatives aux systèmes de fichiers. Système de fichiers journalisé avancé (JFS2) Type de base. Il accepte l’ensemble des commandes relatives aux systèmes de fichiers. Système de fichiers réseau Type de système de fichiers permettant d’accéder aux fichiers résidant sur des machines distantes comme s’il s’agissaient de fichiers locaux. Système de fichiers CD-ROM Type de système de fichiers permettant d’accéder au contenu d’un CD-ROM via les interfaces habituelles du système (ouverture, lecture et fermeture). AIX Guide de l’utilisateur - Système d’exploitation et unités Structure des systèmes de fichiers Sur les systèmes autonomes, les systèmes de fichiers suivants résident, par défaut, sur les unités associées : / Système de fichiers / Unité / dev / hd1 / home / dev / hd2 / usr / dev / hd3 / tmp / dev / hd4 / (racine) / dev / hd9var / var / proc / proc / dev / hd10opt / opt L’arborescence des fichiers présente les caractéristiques suivantes : • Les fichiers partageables par les machines de la même architecture matérielle se trouvent dans le système de fichiers /usr. • Les fichiers texte partageables, indépendants de l’architecture (pages de manuel, par exemple) se trouvent dans le répertoire /var. • Le système de fichiers /(root) contient les fichiers et les répertoires essentiels à l’exploitation du système. Par exemple : – répertoire des unités (/dev) ; – points de montage des systèmes de fichiers sur le système de fichiers racine, /mnt, par exemple. • Le système de fichiers /home est le point de montage des répertoires personnels de l’utilisateur. • Pour les serveurs, le répertoire /export contient les fichiers de pagination d’espace, les systèmes de fichiers racine client (non partagés), les répertoires de vidage, personnels et /usr/share des clients sans disque, ainsi que les répertoires /usr exportés. • Le système de fichiers /proc contient des informations sur l’état des processus et des unités d’exécution dans le système. • Le système de fichiers /opt contient les logiciels en option, comme les applications. La liste suivante propose des informations sur le contenu de certains sous–répertoires du système de fichiers / (racine). /bin Lien symbolique au répertoire /usr/bin. /dev Contient les noeuds unité pour les fichiers spéciaux des unités locales. Le répertoire /dev contient les fichiers spéciaux des unités de bande, des imprimantes, des partitions de disque et des terminaux. /etc Contient les fichiers de configuration propres à chaque machine. Exemples : • /etc/hosts • /etc/passwd /export Contient les répertoires et les fichiers d’un serveur, réservés aux clients distants. Système de fichiers et répertoires 6-3 /home Sert de point de montage au système de fichiers contenant les répertoires personnels de l’utilisateur. Le système de fichiers /home contient les fichiers et les répertoires utilisateur. Sur les machines autonomes, un système de fichiers distinct est monté sur le répertoire /home. Dans un réseau, un serveur peut contenir des fichiers utilisateur qui doivent être accessibles par plusieurs machines. Dans ce cas, la copie serveur du répertoire /home est télémontée sur un système de fichiers /home local. /lib Lien symbolique au répertoire /usr/lib- qui comprend les bibliothèques indépendantes de l’architecture au format lib*.a. /sbin Contient les fichiers requis pour l’amorçage de la machine et le montage du système de fichiers /usr. La plupart des commandes utilisées au moment de l’amorçage proviennent du système de fichiers du disque RAM de l’image d’amorçage. De ce fait, très peu de commandes se trouvent dans le répertoire /sbin. /tmp Sert de point de montage du système de fichiers contenant les fichiers temporaires générés par le système. /u Lien symbolique au répertoire /home. /usr Sert de point de montage au système de fichiers contenant les fichiers invariables partageables par les machines (fichiers exécutables et documentation ASCII, par exemple). Les machines autonomes montent un système de fichiers local séparé sur le répertoire /usr. Les machines sans disque ou à faible capacité disque montent un répertoire, à partir d’un serveur distant, sur le système de fichiers /usr. /var Sert de point de montage des fichiers variables (dépendant de la machine). Le système de fichiers /var est configuré comme un système de fichiers dans la mesure où les fichiers qu’il contient tendent à grossir. Par exemple, c’est un lien symbolique au répertoire /usr/tmp qui contient les fichiers de travail temporaires. Espace disponible sur un système de fichiers (commande df) La commande df permet d’afficher les informations relatives à l’espace total et disponible sur un système de fichiers. Spécifiez, dans le paramètre SystèmeFichiers, le nom de l’unité où réside le système de fichiers, le répertoire sur lequel il est monté ou son chemin d’accès relatif. A défaut, la commande affiche des informations sur tous les systèmes de fichiers montés. Si vous indiquez un fichier ou un répertoire, elle affiche des informations sur le système de fichiers sur lequel réside le fichier. Normalement, la commande df se sert des comptes libres du superbloc. Dans certaines circonstances exceptionnelles, ces comptes peuvent être en erreur. C’est ce qui se produit si un système de fichiers est activement modifié pendant l’exécution de la commande df, par exemple. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande df dans le manuel AIX 5L Version 5.2 Commands Reference. Remarque : 6-4 Dans certains systèmes de fichiers éloignés, tels que les NFS (Network File Systems), les colonnes représentant l’espace disponible sur l’écran restent vierges si le serveur ne fournit pas l’information demandée. AIX Guide de l’utilisateur - Système d’exploitation et unités Les exemples ci–après illustrent les différentes utilisations de la commande df : 1. Pour afficher les informations relatives à tous les systèmes de fichiers montés, entrez: df Appuyez sur Entrée. Si votre système est configuré de sorte que les répertoires /, /usr, /site et /usr/venus résident sur des systèmes de fichiers distincts, la commande df génère un résultat semblable au suivant : Filesystem 512–blocks /dev/hd4 20480 /dev/hd2 385024 /dev/hd9var 40960 /dev/hd3 20480 /dev/hd1 4096 free 13780 15772 38988 18972 3724 %used 32% 95% 4% 7% 9% Iused %Iused 805 13% 27715 28% 115 1% 81 1% 44 4% Mounted on / /usr /var /tmp /home 2. Pour afficher l’espace disponible du système de fichiers dans lequel réside le répertoire en cours, saisissez : df . Appuyez sur Entrée. Système de fichiers et répertoires 6-5 Répertoires : Généralités Un répertoire est un fichier qui ne contient que les informations d’accès à d’autres fichiers et répertoires. Par conséquent, il occupe moins d’espace que les autres types de fichiers. Les répertoires permettent de regrouper des fichiers et d’autres répertoires, ce qui vous permet d’organiser le système de fichiers selon une hiérarchie modulaire et d’assurer une souplesse et une profondeur au niveau de la structure de ce dernier. A la différence des autres types de fichiers, les répertoires ont leur propre jeu de commandes. Les répertoires contiennent des entrées. Chacune d’entre elles contient le nom et le numéro d’i–node (index node) du fichier. Pour optimiser l’utilisation de l’espace disque, les données d’un fichier sont réparties sur plusieurs zones de la mémoire. L’i-node indique les adresses et l’enchaînement de tous les blocs de données associés à un fichier. L’i–node enregistre également d’autres informations : date et heure de la dernière ouverture/modification, droits d’accès, nombre de liens, propriétaire, type de fichier, etc. Vous pouvez, via la commande ln, associer plusieurs noms d’un fichier à un même i-node. Les répertoires contenant souvent des informations réservées à certains utilisateurs, l’accès aux répertoires peut être protégé. Vous pouvez, en définissant des droits d’accès, contrôler et limiter l’accès aux répertoires, et désigner les utilisateurs autorisés à en modifier le contenu. Pour en savoir plus, reportez-vous à la section Modes d’accès aux fichiers et aux répertoires, page10-4. Ce chapitre traite des points suivants : • Types de répertoires, page 6-6 • Répertoires : Organisation, page 6-7 • Conventions d’appellation des répertoires, page 6-7 • Chemins d’accès aux répertoires, page 6-7 • Répertoires : Abréviations, page 6-8 • Procédures de gestion des répertoires, page 6-9 Types de répertoires Les répertoires peuvent être définis par le système d’exploitation, l’administrateur ou les utilisateurs. Les répertoires système contiennent des fichiers système particuliers (commandes, par exemple). Le répertoire /(root), défini par le système, constitue le sommet de la hiérarchie du système de fichiers. Il est en général composé des répertoires suivants : /dev Fichiers spéciaux pour unités d’E–S. /etc Fichiers d’initialisation et d’administration du système. /home Répertoires de connexion des utilisateurs du système. /tmp Fichiers temporaires, supprimés à l’issue d’un nombre de jours donné. /usr Répertoires lpp, include et programmes système. /usr/bin Programmes exécutables utilisateur. Certains répertoires, comme le répertoire de connexion ou le répertoire personnel ($HOME), sont définis et personnalisés par l’administrateur. Lorsque vous vous connectez au système, vous vous trouvez dans le répertoire de connexion (qui est alors le répertoire courant). Les répertoires que vous créez sont appelés des répertoires utilisateur. Ils vous permettent d’organiser et de maintenir vos fichiers. 6-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Organisation des répertoires Les répertoires contiennent des fichiers, des sous–répertoires ou une combinaison des deux. Un sous–répertoire est un répertoire qui se trouve dans un autre répertoire. Le répertoire contenant le sous–répertoire s’appelle le répertoire parent. Pour que le système puisse localiser chaque répertoire, ceux–ci contiennent une entrée relative à leur répertoire parent, .. (point point), et une entrée pour le répertoire lui–même, . (point). Dans la plupart des listes de répertoires, ces fichiers sont cachés. Arborescence des répertoires La structure d’un système de fichiers peut rapidement devenir complexe : Veillez en outre à donner aux fichiers et aux répertoires des noms ”parlants” : votre travail en sera facilité. Répertoire parent Chaque répertoire, à l’exception du répertoire /(root), a un parent et peut avoir un ou plusieurs enfants. Répertoire personnel Lorsque vous vous connectez au système, vous vous trouvez dans votre répertoire personnel (répertoire de connexion). Il est défini par l’administrateur pour chaque utilisateur. C’est dans ce répertoire que vous conservez vos fichiers. Normalement, les répertoires que vous créez pour votre usage personnel sont des sous–répertoires de votre répertoire personnel. Pour revenir à tout moment à votre répertoire personnel, entrez la commande cd et appuyez sur Entrée à l’invite. Répertoire de travail Vous travaillez toujours dans le cadre d’un répertoire. Ce répertoire, quel qu’il soit, est appelé répertoire courant ou de travail. La commande pwd (present working directory) affiche le nom du répertoire courant. Utilisez la commande cd pour modifier les répertoires de travail. Conventions d’appellation des répertoires Le nom d’un répertoire doit être unique dans le répertoire qui le contient. Ainsi, à chaque répertoire ne correspond qu’un seul chemin d’accès dans le système de fichiers. Les noms de répertoires suivent les mêmes conventions que les fichiers, explicitées à la section Conventions d’appellation des fichiers”, page 7-4. Chemins d’accès aux répertoires L’accès à chaque fichier ou répertoire d’un système de fichiers se fait par un chemin unique, appelé chemin d’accès, qui en indique l’emplacement. Le chemin d’accès spécifie l’emplacement d’un répertoire ou d’un fichier dans le système de fichiers. Remarque : Les chemins d’accès ne peuvent dépasser 1023 caractères. Les types de chemins d’accès suivants sont associés au système de fichiers : chemin d’accès absolu chemin à partir du répertoire /(root). Les chemins d’accès absolus commencent toujours par le signe / (barre oblique). chemin d’accès relatif chemin à partir du répertoire courant vers les sous–répertoires et fichiers en aval. Système de fichiers et répertoires 6-7 Un chemin d’accès absolu est constitué de la liste complète des noms de répertoire ou de fichier situés en amont, à partir du répertoire /(root). Quel que soit l’endroit où vous vous trouvez dans le système de fichiers, vous pouvez atteindre un répertoire ou un fichier en spécifiant son chemin d’accès absolu. Ce chemin doit obligatoirement commencer par le signe / (barre oblique), symbole du répertoire racine. Le chemin d’accès /A/D/9 est le chemin absolu vers 9. La première / (barre oblique) représente le répertoire /(root), point de départ de la recherche. Le reste du chemin oriente la recherche vers A, puis D et enfin 9. Il peut y avoir deux fichiers nommés 9 car le chemin d’accès absolu donne à chaque fichier un nom unique à l’intérieur du système de fichiers. Les chemins /A/D/9 et /C/E/G/9 spécifient deux fichiers distincts appelés (9). En revanche, les chemins d’accès relatifs indiquent l’accès à un répertoire ou à un fichier basé sur le répertoire de travail courant. Pour ce type de chemin d’accès, vous pouvez utiliser la notation .. (point point) pour remonter dans la hiérarchie du système de fichiers. Ces deux points successifs représentent le répertoire parent. De ce fait, les chemins d’accès relatifs ne commencent pas par le signe/ (barre oblique). Ils donnent accès à un fichier du répertoire courant ou à un fichier ou répertoire situé en amont ou en aval du répertoire courant dans le système de fichiers. Si D est le répertoire courant, le chemin relatif d’accès à 10 est F/10, mais le chemin absolu est toujours /A/D/F/10. De même, le chemin d’accès relatif à 3 est ../../B/3. Vous pouvez également utiliser la notation . (point). La notation par point est couramment employée pour exécuter des programmes qui doivent lire le nom du répertoire courant. Abréviations propres aux répertoires Les abréviations sont une façon pratique de spécifier certains répertoires. En voici la liste. 6-8 Abréviation Signification . Répertoire de travail courant .. Répertoire “au–dessus” (parent) du répertoire de travail courant. ~ Répertoire personnel (ce n’est pas le cas pour le shell Bourne. Pour en savoir plus, reportez–vous à Shell Bourne, page 12-71). $HOME Répertoire personnel (valable pour tous les shells). AIX Guide de l’utilisateur - Système d’exploitation et unités Procédures de gestion des répertoires Vous pouvez utiliser les répertoires et leur contenu de plusieurs façons. Cette section présente les différentes commandes, avec des exemples : • Création d’un répertoire (commande mkdir), page 6-9 • Déplacement ou changement de nom d’un répertoire (commande mvdir), page 6-9 • Affichage du répertoire courant (commande pwd), page 6-10. • Passage à un autre répertoire (commande cd), page 6-10 • Copie d’un répertoire (commande cp), page 6-11 • Affichage du contenu dun répertoire (commande ls), page 6-11 • Suppression ou retrait d’un répertoire (commande rmdir), page 6-13 • Comparaison entre répertoires (commande dircmp), page 6-14 Création d’un répertoire (commande mkdir) Vous pouvez utiliser la commande mkdir pour créer un ou plusieurs répertoires spécifiés par le paramètre Répertoire. Chaque répertoire ainsi créé contient les entrées standard. (point) et .., (point point). Vous pouvez préciser des droits d’accès au répertoire via l’indicateur –m mode. Le répertoire est créé dans le répertoire en cours ou le répertoire de travail, à moins que vous ne spécifiez un nom de chemin d’accès absolu pour désigner un autre emplacement du système de fichiers. Les exemples ci–après illustrent les différentes utilisations de la commande mkdir. 1. Pour créer un répertoire appelé Test dans le répertoire de travail en cours et disposant des droits d’accès par défaut, entrez la commande : mkdir Test Appuyez sur Entrée. 2. Pour créer un répertoire appelé Test doté des droits rwxr–xr–x dans le répertoire /home/demo/sub1 créé au préalable, entrez : mkdir –m 755 /home/demo/sub1/Test Appuyez sur Entrée. 3. Pour créer un répertoire appelé Test, doté des droits d’accès par défaut, dans le répertoire /home/demo/sub2, entrez : mkdir –p /home/demo/sub2/Test Appuyez sur Entrée. L’indicateur –p crée les répertoires /home, /home/demo et /home/demo/sub2 s’ils n’existent pas. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande mkdir dans le manuel AIX 5L Version 5.2 Commands Reference. Déplacement ou changement de nom d’un répertoire (commandemvdir) Pour déplacer ou renommer un répertoire, utilisez la commande mvdir. Par exemple, pour déplacer un répertoire, entrez : mvdir book manual Appuyez sur Entrée. Système de fichiers et répertoires 6-9 Le répertoire book est déplacé dans le répertoire manual, si celui-ci existe. Sinon, le répertoire book est renommé manuel. Pour déplacer et renommer un répertoire, entrez : mvdir book3 proj4/manual Appuyez sur Entrée. Le répertoire book3 est déplacé dans le répertoire nommé proj4 et ce dernier est renommé manual (si le répertoire manual n’existait pas déjà). Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande mvdir dans le manuel AIX 5L Version 5.2 Commands Reference. Affichage du répertoire courant (commande pwd) La commande pwd écrit, sur l’unité de sortie standard, le chemin d’accès absolu du répertoire courant (en commençant par le répertoire /(root)). Tous les répertoires sont séparés par une barre oblique (/). Le répertoire /(root) est représenté par la première barre /, le dernier répertoire indiqué étant le répertoire courant. Par exemple, pour afficher le répertoire en cours, entrez : pwd Appuyez sur Entrée. Le nom du chemin d’accès complet du répertoire en cours s’affiche de la manière suivante : /home/thomas Passage à un autre répertoire (commande cd) La commande cd permet de passer du répertoire actuel à un autre répertoire. Vous devez détenir sur ce dernier des droits d’exécution (recherche). Si vous omettez de spécifier le paramètre Répertoire, la commande cd vous ramène à votre répertoire de connexion ($HOME dans les environnements ksh et bsh, $home dans l’environnement csh). Si vous spécifiez un chemin d’accès complet, le répertoire désigné devient le répertoire courant. Un chemin d’accès complet commence par une barre oblique (/) indiquant le répertoire /(root), un point (.) indiquant le répertoire courant ou un double point (..) indiquant le répertoire parent. Si vous spécifiez un chemin d’accès relatif, la commande cd le recherche en fonction des chemins précisés dans la variable shell $CDPATH (ou la variable csh $cdpath). Cette variable a la même syntaxe et sensiblement la même valeur sémantique que la variable shell $PATH (ou la variable csh $path). Les exemples ci–après illustrent les différentes utilisations de la commande cd : 1. Pour accéder à votre répertoire personnel, entrez : cd Appuyez sur Entrée. 2. Pour passer au répertoire /usr/include, entrez : cd /usr/include Appuyez sur Entrée. 3. Pour passer au sous-répertoire sys, entrez : cd sys Appuyez sur Entrée. Si le répertoire courant /usr/include contient bien le sous-répertoire sys, /usr/include/sys devient le répertoire courant. 4. Pour remonter d’un niveau dans l’arborescence, entrez : 6-10 AIX Guide de l’utilisateur - Système d’exploitation et unités cd .. Appuyez sur Entrée. Le nom de fichier spécial, point point (..), désigne le répertoire se trouvant immédiatement au–dessus du répertoire en cours, à savoir son répertoire parent. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande cd dans le manuel AIX 5L Version 5.2 Commands Reference. Copie d’un répertoire (commande cp) La commande cp permet de copier le contenu du fichier ou répertoire spécifié dans les paramètres FichierSource ou RépertoireSource dans le fichier ou répertoire spécifié par les paramètres FichierCible ou RépertoireCible. Si le FichierCible existe, son contenu est écrasé lors de la copie. Pour copier plusieurs fichiers source, la cible doit être un répertoire. Pour copier le FichierSource dans un répertoire, indiquez, dans le paramètre RépertoireCible, un chemin d’accès à ce répertoire. Les fichiers conservent leur nom d’origine, sauf si vous en spécifiez d’autres à la fin du chemin d’accès. Si vous lui associez l’indicateur –r ou –R, la commande cp copie des répertoires entiers dans d’autres. Les exemples ci–après illustrent les différentes utilisations de la commande cp : 1. Pour copier tous les fichiers du répertoire /home/accounts/customers/orders dans le répertoire cible /home/accounts/customers/shipments, entrez la commande : cp /home/accounts/customers/orders/* /home/accounts/customers/shipments Appuyez sur Entrée. Seuls les fichiers de orders sont copiés dans le répertoire shipments. 2. Pour copier un répertoire, ainsi que tous ses fichiers et sous–répertoires, dans un autre répertoire, saisissez la commande suivante : cp –R /home/accounts/customers /home/accounts/vendors Appuyez sur Entrée. Le répertoire customers, avec ses fichiers et ses sous-répertoires (et les fichiers que ces derniers contiennent), est copié dans le répertoire vendors. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande cp dans le manuel AIX 5L Version 5.2 Commands Reference. Affichage du contenu d’un répertoire (commandes ls) Vous pouvez afficher le contenu d’un répertoire à l’aide de la commande ls. commande ls La commande ls écrit, sur l’unité de sortie standard, le contenu des Répertoires ou le nom des Fichiers spécifiés, ainsi que les informations demandées via les indicateurs. A défaut de paramètre Fichier ou Répertoire, elle affiche le contenu du répertoire courant. Par défaut, la commande ls affiche toutes les informations par ordre alphabétique des noms de fichiers. Si la commande est lancée par un utilisateur racine, l’indicateur par défaut est –A, et affiche toutes les entrées sauf le point (.) et le double point (..). Pour afficher toutes les entrées des fichiers, y compris celles commençant par un . (point), utilisez la commande ls –a. Vous pouvez formater la sortie de plusieurs façons : • une entrée par ligne, avec l’indicateur –l ; • plusieurs entrées dans plusieurs colonnes, avec l’indicateur –C ou –x. L’indicateur –C est le format par défaut quand la sortie se fait vers un terminal tty. • des entrées séparées par des virgules, avec l’indicateur –m. Système de fichiers et répertoires 6-11 Pour déterminer le nombre de caractères par ligne sur l’unité de sortie, la commande ls se sert de la variable d’environnement $COLUMNS. Si celle–ci n’est pas définie, la commande lit le fichier terminfo. Si la commande ls ne peut pas déterminer le nombre de positions de caractères à l’aide de ces méthodes, elle adopte par défaut la valeur 80. Les informations affichées avec les indicateurs –e et –l sont interprétées comme suit : Le premier caractère peut être : d l’entrée est un répertoire. b l’entrée est un fichier bloc spécial. c l’entrée est un fichier caractères spécial. l l’entrée est un lien symbolique. p l’entrée est un fichier FIFO (first-in, first-out) spécial. s l’entrée est un socket local. – l’entrée est un fichier ordinaire. Les neuf caractères suivants sont répartis en trois ensembles de trois caractères chacun. Les trois premiers caractères montrent les droits du propriétaire. L’ensemble de caractères suivant affiche les droits des autres utilisateurs du groupe. Le dernier ensemble affiche les droits des autres personnes ayant accès au fichier. Chaque caractère d’un groupe de 3 correspond aux droits d’accès en lecteur, écriture et exécution. Le droit d’exécution sur un répertoire confère le droit d’y rechercher un fichier donné. Les droits sont indiqués comme suit : r accès en lecture. t seul le propriétaire du répertoire ou du fichier peut supprimer ou renommer un fichier dans ce répertoire, même si les autres utilisateurs ont un droit d’écriture sur ce répertoire. w accès en écriture (édition). x accès en exécution (recherche). – accès correspondant refusé. Les informations affichées avec l’indicateur –e sont les mêmes que celles affichées avec l’indicateur –l, sauf qu’un 11ème caractère est ajouté : + Il indique un fichier doté d’informations de sécurité étendues. Par exemple, le fichier peut comporter des attributs ACL, TCB ou TP dans le mode. – Il indique un fichier non doté d’informations de sécurité étendues. Lorsque la taille des fichiers d’un répertoire est affichée, la commande ls affiche le décompte total de blocs, blocs indirects compris. Par exemple, pour afficher la liste de tous les fichiers du répertoire courant, entrez : ls –a Appuyez sur Entrée. Cette liste comporte tous les fichiers, y compris : les fichiers. • . (point), • les fichiers .. (point point), • les autres fichiers commençant ou non par un . (point). Par exemple, pour afficher des informations complètes, entrez : 6-12 AIX Guide de l’utilisateur - Système d’exploitation et unités ls –l chap1 .profile Appuyez sur Entrée. Une longue liste donnant des informations complètes sur chap1 et .profile est affichée. Pour afficher des informations complètes sur un répertoire, entrez : ls –d –l . manual manual/chap1 Appuyez sur Entrée. Une longue liste concernant les répertoires. (point) et manual, et le fichier manual/chap1, s’affiche. Sans indicateur –d, la commande afficherait la liste des fichiers des répertoires . et manual, et non des informations complètes sur les répertoires eux-mêmes. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande ls dans le manuel AIX 5L Version 5.2 Commands Reference. Suppression ou retrait d’un répertoire (commande rmdir) La commande rmdir supprime du système le répertoire spécifié par le paramètre Répertoire. Ce répertoire doit être vide (il ne peut contenir que . et ..) et vous devez avoir accès en écriture à son répertoire parent. Lancez la commande ls –a Répertoire pour vérifier s’il est vide. Les exemples suivants expliquent comment utiliser la commande rmdir : 1. Pour vider et retirer un répertoire, entrez : rm mydir/* mydir/.* rmdir mydir Appuyez sur Entrée. Le contenu de mydir est supprimé, puis le répertoire lui-même. La commande rm affiche un message d’erreur concernant la suppression des répertoires point (.) et double point (..), puis la commande rmdir supprime le répertoire même. Remarque : La commande rm mydir/* mydir/.* supprime d’abord les fichiers dont le nom ne commence pas par un point, puis supprime les fichiers dont le nom commence par un point. Vous ne connaîtrez peut–être pas l’existence de fichiers commençant par un point : la commande ls ne les affiche que si vous utilisez l’indicateur –a. 2. Pour supprimer le répertoire /tmp/jones/demo/mydir et tous les sous–répertoires associés, entrez : cd /tmp rmdir –p jones/demo/mydir Appuyez sur Entrée. Le répertoire jones/demo/mydir est supprimé du répertoire /tmp. Si un répertoire n’est pas vide ou que vous ne détenez pas le droit d’écriture requis, la commande est interrompue et un message d’erreur s’affiche. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande rmdir dans le manuel AIX 5L Version 5.2 Commands Reference. Système de fichiers et répertoires 6-13 Comparaison entre répertoires (commande dircmp) La commande dircmp compare les deux répertoires spécifiés par Répertoire1 et Répertoire2 et écrit des informations relatives à leur contenu sur l’unité de sortie standard. La commande dircmp compare d’abord les noms des fichiers de chaque répertoire. Lorsqu’elle rencontre deux fichiers portant le même nom, elle compare leur contenu. Dans la sortie, la commande dircmp répertorie les fichiers propres à chaque répertoire. Elle dresse ensuite la liste des fichiers portant des noms identiques dans les deux répertoires, mais ayant un contenu différent. Si aucune option n’est spécifiée, la commande répertorie également les fichiers aux contenus et aux noms identiques dans les deux répertoires. Les exemples suivants décrivent comment utiliser la commande dircmp : 1. Pour récapituler les différences entres les fichiers des répertoires proj.ver1 et proj.ver2, entrez : dircmp proj.ver1 proj.ver2 Appuyez sur Entrée. Le récapitulatif généré liste les différences entre les répertoires proj.ver1 et proj.ver2. Il répertorie séparément les fichiers propres à chaque répertoire et les fichiers communs aux deux. Ces derniers sont en outre différenciés selon que leur contenu est identique ou non. 2. Pour afficher en détails les différences entres les fichiers des répertoires proj.ver1 et proj.ver2, entrez : dircmp –d –s proj.ver1 proj.ver2 Appuyez sur Entrée. L’indicateur –s élimine l’affichage des fichiers identiques. L’indicateur –d affiche une liste diff des fichiers différents trouvés dans les deux répertoires. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande dircmp dans le manuel AIX 5L Version 5.2 Commands Reference. 6-14 AIX Guide de l’utilisateur - Système d’exploitation et unités Récapitulatif des commandes pour les Système de fichiers et les répertoires Système de fichiers df Donne des informations sur l’espace disponible dans les systèmes de fichiers. Abréviations des répertoires . Répertoire de travail courant .. Répertoire “au–dessus” (parent) du répertoire de travail courant. ~ Répertoire personnel (ce n’est pas le cas pour le shell Bourne. Pour en savoir plus, reportez–vous à Shell Bourne, page 12-71). $HOME Répertoire personnel (valable pour tous les shells). Procédures de gestion des répertoires cd Passe à un autre répertoire. cp Copie des fichiers ou des répertoires. dircmp Compare deux répertoires, ainsi que le contenu de leurs fichiers communs. ls Affiche le contenu d’un répertoire. mkdir Crée un ou plusieurs répertoires. mvdir Déplace (ou renomme) un répertoire. pwd Affiche le chemin d’accès au répertoire de travail. rmdir Supprime un répertoire. Voir aussi Généralités, page 4-3 Processus : Généralités, page 4-13 Réacheminement des entrées/sorties, page 5-1 Système de fichiers, page 6-2 Répertoires : généralités, page 6-6 Fichiers, page 7-1 Liaison entre fichiers et répertoires, page7-18. Fichiers de sauvegarde et supports de stockage, page 9-1 Sécurité du système et des fichiers, page 10-1 Système de fichiers et répertoires 6-15 6-16 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 7. Fichiers Dans le système d’exploitation, toutes les entrées/sorties (E/S) d’informations passent par des fichiers. Ceci permet de standardiser l’accès aux logiciels et au matériel. On parle d’entrée lorsqu’il y a modification ou écriture dans le contenu d’un fichier. On parle de sortie lorsque le contenu d’un fichier est lu ou transféré vers un autre fichier. Par exemple, lorsque qu’une sortie papier d’un fichier est demandée, le système lit le contenu du fichier et le copie dans le fichier représentant l’imprimante. Ce chapitre traite des points suivants : • Types de fichiers, page 7-3. – Conventions d’appellation des fichiers, page 7-4 – Chemins d’accès aux fichiers, page 7-4 – Caractères génériques et métacaractères, page 7-4 – Recherche générique et expressions régulières, page 7-6 • Procédures de gestion de fichier, page 7-7 • • – Suppression de fichiers (commande rm), page 7-7 – Déplacement et changement de nom d’un fichier (commande mv), page 7-8 – Copie de fichiers (commande cp), page 7-8 – Recherche de fichiers (commande find), page 7-9 – Affichage du type d’un fichier (commande file), page 7-11 – Affichage du contenu d’un fichier (commandes pg, more, page et cat), page 7-11 – Recherche de chaînes dans un fichier texte (commande grep), page 7-12 – Tri des fichiers texte (commande sort), page 7-13 – Comparaison de fichiers (commande diff), page 7-14 – Décompte des mots, des lignes et des octets d’un fichier (commande wc), page 7-14 – Affichage des premières lignes d’un fichier (commande head), page 7-15 – Affichage des dernières lignes d’un fichier (commande tail), page 7-15 – Coupe de sections de fichiers texte (commande cut), page 7-15 – Collage de sections de fichiers texte (commande paste), page 7-16 – Numérotation des lignes d’un fichier texte (commande nl), page 7-17 – Suppression de colonnes dans un fichier texte (commande colrm), page 7-17 Liaison entre fichiers et répertoires, page 7-18 – Types de liens, page 7-18 – Liaison de fichiers (commande ln), page 7-19 – Suppression de fichiers liés, page 7-20 Fichiers DOS, page 7-21 – Copie les fichiers DOS dans des fichiers de système d’exploitation de base, page 7-21 Fichiers 7-1 • 7-2 – Copie des fichiers de système d’exploitation de base dans des fichiers DOS, page 7-21 – Suppression de fichiers DOS, page 7-22 – Contenu d’un répertoire DOS, page 7-22 Récapitulatif des commandes relatives aux fichiers, page 7-23 AIX Guide de l’utilisateur - Système d’exploitation et unités Types de fichiers Voici les types de fichiers de base : standard fichier de données (texte, binaire ou exécutable) répertoire fichier contenant des informations permettant d’accéder à d’autres fichiers spécial fichier de chaînage FIFO (first-in, first-out) ou unité physique Les types de fichier reconnus par le système relèvent obligatoirement d’une de ces trois catégories. Il existe cependant à l’intérieur de ces catégories de nombreuses variantes. Fichiers standard Les fichiers standard sont les fichiers les plus courants, ils sont utilisés pour stocker des données. Les fichiers standard sont de la même forme que les fichiers texte ou binaires : Fichiers texte Les fichiers texte sont des fichiers standard comportant des informations stockées en ASCII et pouvant être lues par l’utilisateur. Vous pouvez les afficher et les imprimer. Les lignes d’un fichier texte ne doivent pas comporter de caractères NUL, et ne doivent pas excéder une longueur de {LINE_MAX} octets, caractère de nouvelle ligne compris. Le terme fichier texte n’interdit pas la présence de caractères de contrôle et autres caractères non imprimables (autres que NUL). En conséquence, les utilitaires standard d’affichage des fichiers texte, en entrée ou en sortie, soit sont capables de traiter ces caractères spéciaux, soit décrivent explicitement les limites de leur action. Fichiers binaires Les fichiers binaires sont des fichiers standard, interprétés par le système. Les fichiers binaires peuvent être des fichiers exécutables donnant des instructions au système. Les commandes et les programmes sont stockées dans des fichiers binaires. La conversion textes ASCII/codes binaires est effectuée par des compilateurs. Les fichiers texte et binaire diffèrent sur un unique point, les fichiers texte contiennent des lignes de longueur inférieure à {LINE_MAX} octets, pas de caractères NUL et chaque ligne se termine par un caractère de nouvelle ligne. Fichiers répertoire Les fichiers répertoire comportent des informations que le système requiert pour accéder à tous les types de fichiers, mais ils ne contiennent pas de données sur le fichier en cours. Par conséquent, il occupe moins d’espace que les autres types de fichiers et confère au système de fichiers souplesse et puissance. Chaque entrée de répertoire représente un fichier ou un sous–répertoire. Chaque entrée comporte le nom du fichier et le numéro de référence du nœud d’index du fichier (i–node number). Le numéro d’i–node désigne l’unique nœud index attribué au fichier. Le numéro d’i–node décrit l’emplacement des données associées au fichier. Les répertoires sont créés et contrôlés par un ensemble de commandes séparées. Fichiers spéciaux Les fichiers spéciaux définissent les unités pour le système, et les fichiers temporaires générés par les process. Les types de fichiers spéciaux de base sont des fichiers FIFO (premier entré, premier sorti), bloc ou caractères. Les fichiers FIFO sont également appelés fichiers de chaînage. Les fichiers de chaînage sont créés par un process afin de permettre une communication temporaire avec un autre process. Ces fichiers cessent Fichiers 7-3 d’exister lorsque le premier process se termine. Les fichiers bloc et caractères définissent des unités. A chaque fichier sont associés des droits d’accès (dits modes d’accès), déterminant les utilisateurs habilités à le lire, le modifier ou l’exécuter. Reportez-vous à ”Modes d’accès aux fichiers et aux répertoires”, page10-4. Conventions d’appellation des fichiers Il ne peut y avoir, dans un même répertoire, deux fichiers enregistrés sous le même nom. Ainsi, à chaque fichier ne correspond qu’un seul chemin d’accès dans le système de fichiers. Pour nommer un fichier, voici quelques règles à respecter : • Le nom ne peut excéder 255 caractères (lettres, chiffres et traits de soulignement). • Le système d’exploitation respecte la disctinction entre les minuscules et les majuscules dans les noms de fichiers. Par conséquent, FICHEA, FiChea et fichea sont trois noms de fichiers distincts, même s’ils se trouvent dans le même répertoire. • Choisissez des noms ”parlants”. • Les noms de répertoires doivent respecter les mêmes conventions. • Certaines caractères ont une signification spéciale pour le système d’exploitation. Evitez de les utiliser dans les noms de vos fichiers. En voici une liste (non exhaustive) : / \ ” ’ * ; – ? [ ] ( ) ~ ! $ { } < > # @ & | • Un nom de fichier est caché de la liste normale d’un répertoire s’il commence par un point (.). Lorsque la commande ls est entrée avec l’indicateur –a, les fichiers cachés sont répertoriés avec les autres fichiers et répertoires. Chemins d’accès aux fichiers Le chemin d’accès à un fichier ou à un répertoire est constitué de la liste des répertoires situés en amont dans l’arborescence des répertoires. Tous les chemins étant issus du répertoire racine /(root), chaque fichier est associé de façon unique à ce répertoire, par un nom de chemin absolu. Un chemin d’accès absolu commence toujours par le symbole / (barre oblique). Par exemple, le nom de chemin absolu du fichier h pourrait être /B/C/h. Veuillez noter que deux fichiers de nom h peuvent exister dans le système. Comme les chemins absolus des deux fichiers sont différents /B/h et /B/C/h, chaque fichier h possède un nom unique dans le système. Chaque composant d’un nom de chemin d’accès est un répertoire, excepté le dernier élément. Le dernier élément du nom de chemin d’accès peut être un nom de fichier. Remarque : Les chemins d’accès ne peuvent dépasser 1023 caractères. Caractères génériques et métacaractères Les caractères génériques permettent de spécifier facilement un ensemble de noms de fichiers ou de répertoires, par le biais d’un seul caractère. Il existe deux caractères génériques : * (astérisque) et ? (point d’interrogation). Les métacaractères sont les crochets ([ ]), le tiret (–) et le point d’exclamation ( !). Utilisation du caractère générique * L’astérisque (*) remplace une séquence ou une chaîne quelconque de caractères. La chaîne peut éventuellement être vide. Si, par exemple, votre répertoire contient les fichiers : 1test 2test afile1 afile2 bfile1 file file1 file10 file2 file3 et que vous voulez référencer les fichiers commençant par file, vous devrez utiliser : file* 7-4 AIX Guide de l’utilisateur - Système d’exploitation et unités La sélection portera sur les fichiers : file file1 file10 file2 file3 Pour référencer les fichiers contenant le mot file, spécifiez : *file* La sélection portera sur les fichiers : afile1 afile2 bfile1 file file1 file10 file2 file3. Utilisation du caractère générique ? Le point d’interrogation ? remplace un caractère quelconque. Il peut s’agir de n’importe quel caractère unique. Pour référencer les fichiers commençant par file, suivi d’un seul caractère, spécifiez : file? La sélection portera sur les fichiers : file1 file2 file3 Pour référencer les fichiers commençant par file suivi de deux caractères, spécifiez : file?? La sélection portera sur le fichier : file10 Métacaractères shell [ ] Les métacaractères sont une alternative aux caractères génériques. Il s’agit d’encadrer les caractères souhaités par des crochets [ ]. La méthode est semblable à l’utilisation de ?, mais là, vous précisez les caractères qui doivent correspondre. Vous pouvez aussi, à l’aide d’un tiret, spécifier un intervalle de valeurs. Pour spécifier toutes les lettres de l’alphabet, indiquez [[:alpha:]]. Pour spécifier toutes les lettres minuscules de l’alphabet, indiquez [[:lower:]]. Pour référencer les fichiers se terminant par 1 ou 2, spécifiez : *file[12] La sélection portera sur les fichiers : afile1 afile2 file1 file2 Pour référencer uniquement les fichiers commençant par un chiffre, spécifiez : [0123456789]* ou [0–9]* La sélection portera sur les fichiers : 1test 2test Pour référencer uniquement les fichiers ne commençant pas par un a, spécifiez : [!a]* La sélection portera sur les fichiers : 1test 2test bfile1 file file1 file10 file2 file3 Fichiers 7-5 Recherche générique et expressions régulières Les expressions régulières permettent de sélectionner des chaînes dans un ensemble spécifique de chaînes de caractères. Leur usage est généralement associé à un traitement de texte. Les expressions régulières peuvent représenter un large éventail de chaînes possibles. Alors que ces expressions peuvent être diversement interprétées selon l’environnement local, les fonctions d’internationalisation assurent l’invariance du contexte au niveau des différents environnements locaux. Veuillez consulter les exemples ci–après dans la comparaison entre les Recherches génériques et les Expressions régulières : Recherche générique Expression régulière * .* ? . [!a] [^a] [abc] [abc] [[:alpha:]] [[:alpha:]] Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande awk dans le manuel AIX 5L Version 5.2 Commands Reference. 7-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Procédures de gestion de fichiers Travailler sur des fichiers couvre de multiples tâches. Le plus souvent, vous créez un fichier texte à l’aide d’un éditeur. Les éditeurs généralement utilisés dans l’environnement UNIX sont vi et ed. Choisissez celui qui vous convient le mieux. Vous pouvez également créer des fichiers à l’aide du réacheminement des entrées/sorties, décrit dans ”Réacheminement des entrées/sorties, page 5-1”. La sortie d’une commande peut ainsi être envoyée dans un nouveau fichier ou ajoutée à un fichier existant. Les fichiers créés et modifiés peuvent ensuite être copiés dans un autre répertoire et, renommés pour en distinguer les différentes versions. Vous serez sans doute également amené à créer des répertoires si vous travaillez sur plusieurs projets. Il vous faudra aussi supprimer certains fichiers. Votre répertoire peut rapidement être encombré de fichiers contenant des informations inutiles ou anciennes. Pour libérer de l’espace sur votre système, assurez vous d’effacer les fichiers qui ne sont plus nécessaires. Ce chapitre traite des points suivants : • Suppression de fichiers (commande rm), page 7-7 • Déplacement et changement de nom d’un fichier (commande mv) à la page 7-8 • Copie de fichiers (commande cp), page 7-8 • Recherche de fichiers (commande find), page 7-9 • Affichage du type d’un fichier (commande file), page 7-11 • Affichage du contenu d’un fichier (commandes pg, more, page et cat), page 7-11 • Recherche de chaînes dans un fichier texte (commande grep), page 7-12 • Tri des fichiers texte (commande sort), page 7-13 • Comparaison de fichiers (commande diff), page 7-14 • Décompte des mots, des lignes et des octets d’un fichier (commande wc), page 7-14 • Affichage des premières lignes d’un fichier (commande head), page 7-15 • Affichage des dernières lignes d’un fichier (commande tail), page 7-15 • Coupe de sections de fichiers texte (commande cut), page 7-15 • Collage de sections de fichiers texte (commande paste), page 7-16 • Numérotation des lignes d’un fichier texte (commande nl), page 7-17 • Suppression de colonnes dans un fichier texte (commande colrm), page 7-17 Suppression de fichiers (commande rm) Lorsque vous n’avez plus besoin d’un fichier, vous pouvez le supprimer à l’aide de la commande rm. La commande rm supprime les entrées du fichier spécifié, d’un groupe de fichiers ou de certains fichiers sélectionnés dans un répertoire. Il n’est pas nécessaire de disposer des droits d’accès en écriture et en lecture sur le fichier et aucune confirmation de l’utilisateur n’est demandée avant la suppression d’un fichier avec la commande rm. Toutefois, vous devez détenir les droits d’accès en écriture au répertoire contenant le fichier. Les exemples suivants décrivent comment utiliser la commande rm : 1. Pour supprimer le fichier monfichier, tapez : rm monfichier Appuyez sur Entrée. 2. Pour supprimer tous les fichiers du répertoire monrep, entrez, l’un après l’autre : Fichiers 7-7 rm –i monrep/* Appuyez sur Entrée. Après l’affichage de chaque nom de fichier, tapez y et appuyez sur Entrée pour supprimer le fichier. Ou, pour conserver le fichier, appuyez seulement sur la touche Entrée. Reportez–vous à la commande rm dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Déplacement et changement de nom d’un fichier (commande mv) Pour déplacer des fichiers et des répertoires d’un répertoire à un autre, ou renommer un fichier ou un répertoire, utilisez la commande mv. Si vous effectuez un déplacement sans spécifier de nouveau nom, les noms d’origine sont conservés. Attention : La commande mv peut remplacer plusieurs fichiers existants à moins que vous ne spécifiez l’indicateur –i. L’indicateur –i vous invite à effectuer une confirmation avant de remplacer un fichier. L’indicateur –f n’affiche pas d’invite. Si les deux indicateurs –f et –i sont combinés, c’est le dernier indicateur spécifié qui a le rôle prépondérant. Déplacer un fichier avec la commande mv Les exemples suivants décrivent comment utiliser la commande mv : 1. Pour déplacer un fichier dans un autre répertoire et lui attribuer un nouveau nom, indiquez : mv intro manual/chap1 Appuyez sur Entrée. Le fichier intro est alors déplacé dans le répertoire manual/chap1. Le nom intro est supprimé du répertoire courant, et le même fichier apparaît avec le nom chap1 dans le répertoire manual. 2. Pour déplacer un fichier dans un autre répertoire en conservant son nom, entrez : mv chap3 manual Appuyez sur Entrée. Le fichier chap3 est déplacé dans le répertoire manual/chap3. Renommer un fichier avec la commande mv Vous pouvez également utiliser la commande mv pour modifier le nom d’un fichier sans le déplacer vers un autre répertoire. Pour renommer un fichier, entrez : mv appendix apndx.a Appuyez sur Entrée. Le fichier appendix est renommé et son nouveau nom est apndx.a. Si un fichier apndx.a existe déjà, son ancien contenu est remplacé avec celui du fichier appendix. Reportez–vous à la commande mv dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Copie de fichiers (commande cp) Vous pouvez également utiliser la commande cp pour créer une copie du contenu du fichier ou du répertoire spécifié par les paramètres FichierSource ou RépertoireSource dans le fichier ou dans le répertoire spécifié par les paramètres FichierCible ou RépertoireCible. Si le fichier spécifié comme FichierCible existe déjà, la copie remplace le contenu original du fichier sans avertissement. Si vous copiez plusieurs FichierSource, la cible doit être un répertoire. 7-8 AIX Guide de l’utilisateur - Système d’exploitation et unités Si un fichier portant le même nom existe dans le répertoire de destination, le fichier copié remplace le fichier existant du répertoire cible. Par conséquent, il est utile d’attribuer un nouveau nom à la copie du fichier pour s’assurer qu’un fichier du même nom n’existe pas encore dans le répertoire de destination. Pour mettre une copie du FichierSource dans un répertoire, spécifiez un chemin d’accès à un répertoire existant pour le paramètre RépertoireCible. Les fichiers conservent leur nom d’origine, sauf si vous en spécifiez d’autres à la fin du chemin d’accès. La commande cp copie également les répertoires entiers dans d’autres répertoires si vous spécifiez les indicateurs –r ou –R. Vous pouvez également copier des fichiers spéciaux d’unités à l’aide de l’indicateur –R. En indiquant –R, les fichiers spéciaux sont recréés sous un nouveau nom de chemin d’accès. En indiquant l’indicateur –r, la commande cp essaie de copier des fichiers spéciaux dans des fichiers standard. Les exemples suivants décrivent comment utiliser la commande cp : 1. Pour copier un fichier du répertoire en cours, saisissez : cp prog.c prog.bak Appuyez sur Entrée. Le fichier prog.c est copié dans le fichier prog.bak. Si le fichier prog.bak n’existe pas, alors la commande cp le crée. S’il existe déjà, alors la commande cp le remplace par une copie du fichier prog.c. 2. Pour copier un fichier du répertoire en cours dans un autre répertoire, entrez : cp jones /home/nick/clients Appuyez sur Entrée. Le fichier jones est copié dans le répertoire /home/nick/clients/jones. 3. Pour copier tous les fichiers d’un répertoire dans un nouveau répertoire, entrez : cp /home/janet/clients/* /home/nick/customers Appuyez sur Entrée. Seuls les fichiers du répertoire clients sont copiés dans le répertoire customers. 4. Pour copier un ensemble spécifique de fichiers dans un autre répertoire, entrez : cp jones lewis smith /home/nick/clients Appuyez sur Entrée. Les fichiers jones, lewiset smith sont copiés de votre répertoire de travail courant vers le répertoire /home/nick/clients. 5. Pour utiliser les métacaractères lors de la copie de fichiers, entrez : cp programs/*.c. Appuyez sur Entrée. Les fichiers du répertoire programs se terminant par.c sont copiés dans le répertoire courant, indiqué par un point (.). Vous devez entrer un espace entre le c et le point final. Reportez–vous à la commande cp dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe exacte. Recherche de fichiers (commande find) Vous pouvez également utiliser la commande find pour effectuer une recherche récursive dans l’arborescence des répertoires pour chaque Chemin d’accès spécifié, pour trouver les fichiers correspondant à l’expression booléenne écrite à l’aide des termes donnés dans le texte ci–après. La sortie de la commande find dépend des termes spécifiés par le paramètre Expression. Fichiers 7-9 Les exemples suivants décrivent comment utiliser la commande find : 1. Pour afficher tous les fichiers du système de fichiers .profile, tapez : find / –name .profile Appuyez sur Entrée. Cette commande permet d’effectuer une recherche dans tout le système de fichiers et écrit les noms de chemins complets de tous les fichiers .profile. La barre oblique indique à la commande find de rechercher dans le répertoire /( root ) et dans tous ses sous–répertoires. Afin de gagner du temps, il est conseillé de limiter la recherche aux répertoires susceptibles de contenir les fichiers recherchés. 2. Pour afficher les fichiers de code de droits d’accès égal à 0600 dans l’arborescence des répertoires courant, tapez : find . –perm 0600 Appuyez sur Entrée. Les noms de fichiers possédant uniquement les droits d’accès en lecture et en écriture du propriétaire sont alors affichés. Le point (.) indique à la commande find de rechercher dans le répertoire courant et dans ses sous–répertoires. Pour obtenir des explications sur les codes d’accès, veuillez vous reporter à la commande chmod. 3. Pour rechercher dans plusieurs répertoires les fichiers dotés de certains codes de droit d’accès, entrez : find manual clients proposals –perm –0600 Appuyez sur Entrée. La commande répertorie ainsi les noms des fichiers dont les droits d’accès en lecture et en écriture sont accordés à leur propriétaire et éventuellement dotés d’autres droits. La recherche est effectuée dans les répertoires manual, clients et proposals ainsi que dans leurs sous–répertoires. Dans l’exemple précédent, –perm 0600 sélectionne uniquement les fichiers dont les codes de droits d’accès correspondent exactement à 0600. Dans cet exemple, –perm –0600 sélectionne les fichiers dont les codes de droits d’accès permettent l’accès indiqué par 0600 et d’autres accès au–dessus du niveau 0600. Les codes 0622 et 2744 sont ainsi également concernés. 4. Pour répertorier tous les fichiers du répertoire en cours ayant été modifiés au cours des dernières 24 heures, saisissez : find . –ctime 1 Appuyez sur Entrée. 5. Pour rechercher les fichiers standard comportant plusieurs liens, entrez : find . –type f –links +1 Appuyez sur Entrée. Les noms de fichiers ordinaires ( –type f ) possédant plusieurs liens ( –links +1 ). Remarque : A chaque répertoire sont associés au moins deux liens : l’entrée dans son répertoire parent et son entrée . (point). Pour plus d’informations sur des liens de fichiers multiples, reportez–vous à la commande ln. 6. Pour rechercher tous les fichiers dont la longueur est exactement de 414 octets, saisissez : find . –size 414c Appuyez sur Entrée. Reportez–vous à la commande find dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. 7-10 AIX Guide de l’utilisateur - Système d’exploitation et unités Affichage du type d’un fichier (commande file) Vous pouvez également utiliser la commande file pour lire les fichiers spécifiés par le paramètre File ou –f FileList, et réaliser une série de tests sur chacun de ces fichiers. La commande tente de classer les fichiers par type. Elle envoie ensuite les types de fichiers vers la sortie standard. Si fichier semble s’afficher en ASCII, la commande file examine les 512 premiers octets et détermine la langue du fichier. Si fichier ne semble pas s’afficher en ASCII, la commande file tente de déterminer s’il s’agit d’un fichier de données binaires ou d’un fichier texte contenant des caractères étendus. Si le paramètre File spécifie un exécutable ou un fichier de module d’objet et que le numéro de version est supérieur à 0, la commande file affiche la version. La commande file utilise le fichier /etc/magic pour identifier des fichiers comportant un nombre magique, à savoir, tout fichier comportant une constante numérique ou une constante de type chaîne définissant le type. Les exemples suivants décrivent comment utiliser la commande file : 1. Pour afficher le type d’informations que contient le fichier monfichier, tapez : file monfichier Appuyez sur Entrée. Le type du fichier monfichier (par exemple, un répertoire, des données, du texte ASCII, une source de programme C, une archive). 2. Pour afficher le type de chaque fichier nommé dans le fichier filenames.lst qui contient une liste de noms de fichiers, tapez : file –f filenames.lst Appuyez sur Entrée. Le type de chaque fichier nommé dans le fichier filenames.lst est affiché. Chaque nom de fichier doit être indiqué sur une ligne distincte. 3. Pour créer le fichier filenames.lst pour qu’il comporte tous les noms de fichiers du répertoire courant, tapez : ls > filenames.lst Appuyez sur Entrée. Editez le fichier nomsfichiers si nécessaire. Reportez–vous à la commande file dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage du contenu d’un fichier (commandes pg, more, page et cat) Les commandes pg, more et page permettent de visualiser le contenu d’un fichier et d’en contrôler l’affichage. Vous pouvez également utiliser la commande cat pour afficher le contenu d’un ou de plusieurs fichiers sur votre écran. En combinant la commande cat avec la commande pg, vous pourrez lire le contenu d’un fichier en plein écran, un écran à la fois. Vous pouvez également consulter le contenu des fichiers via les procédures de réacheminement. Reportez–vous à Réacheminement des entrées/sorties, page 5-1 pour plus de détails sur le réacheminement des entrées/sorties. Commande pg La commande pg lit les noms de fichiers à partir du paramètre File et les écrit dans la sortie standard, un écran à la fois. Si vous indiquez un tiret (–) comme paramètre File ou que vous exécutez la commande pg sans options, la commande pg lira l’entrée standard. Chaque écran est suivi d’une invite. Si vous appuyez sur Entrée, un autre écran s’affiche. Les Fichiers 7-11 sous–commandes utilisées avec la commande pg vous permettent de revisualiser les écrans précédents.. Par exemple, pour visualiser le contenu du fichier monfichier page par page, tapez : pg monfichier Appuyez sur Entrée. Reportez–vous à la commande pg dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Commande more ou page La commande more ou page affiche du texte continu écran par écran. Elle s’arrête après chaque écran et affiche le nom de fichier et le pourcentage réalisé (par exemple, monfichier (7%) ) au bas de l’écran. Si vous appuyez sur Entrée, la commande more affiche une ligne supplémentaire. Si vous appuyez sur la barre d’espacement, la commande more affiche un autre écran de texte. Remarque : Sur certains modèles de terminaux, la commande more vide l’écran au lieu de le faire défiler, avant d’afficher l’écran de texte suivant. Par exemple, pour visualiser un fichier monfichier, tapez : more monfichier Appuyez sur Entrée. Appuyez sur la barre d’espacement pour passer à l’écran suivant. Reportez–vous à la commande more dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Commande cat La commande cat lit chaque paramètre File en séquences et l’écrit dans une sortie standard. Par exemple, pour visualiser le contenu du fichier notes, tapez : cat notes Appuyez sur Entrée. Si le fichier dépasse 24 lignes, le début défile sans que vous ayez le temps de le lire. Pour obtenir un affichage page par page, utilisez la commande pg. Par exemple, pour visualiser le contenu des fichiers notes, notes2 et notes3, tapez : cat notes notes2 notes3 Appuyez sur Entrée. Reportez–vous à la commande cat dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Recherche de chaînes dans un fichier texte (commande grep) La commande grep recherche le modèle spécifié par le paramètre Pattern et écrit chaque ligne correspondante dans la sortie standard. Les exemples suivants décrivent comment utiliser la commande grep : 1. Pour rechercher, dans un fichier pgm.s, un modèle contenant des métacaractères (*, ^, ?, [, ],\, (\), \{ et \}), et dans ce cas, les lignes commençant par une lettre (majuscule ou minuscule), entrez : grep ”^[a–zA–Z]” pgm.s Appuyez sur Entrée. Toutes les lignes du fichier pgm.s commençant par une lettre s’affichent alors. 7-12 AIX Guide de l’utilisateur - Système d’exploitation et unités 2. Pour afficher dans un fichier sort.c toutes les lignes qui ne correspondent pas à un modèle, tapez : grep –v bubble sort.c Appuyez sur Entrée. Toutes les lignes qui ne comportent pas le mot bubble sont alors affichées dans le fichier sort.c. 3. Pour afficher dans la sortie de la commande ls des lignes correspondant à la chaîne staff, tapez : ls –l | grep staff Appuyez sur Entrée. Reportez–vous à la commande grep dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Tri des fichiers texte (commande sort) Vous pouvez également utiliser la commande sort pour classer par ordre alphabétique ou séquencer des lignes dans les fichiers spécifiés par les paramètres File et écrire le résultat dans une sortie standard. Si le paramètre File spécifie plusieurs fichiers, la commande sort concatène les fichiers et les classe par ordre alphabétique dans un seul fichier. Remarque : La commande sort différencie les majuscules des minuscules et place généralement les majuscules avant les minuscules (cela est toutefois susceptible de varier en fonction des paramètres régionaux). Dans les exemples suivants, le contenu du fichier names est : marta denise marthe endrica melanie et le contenu du fichier states est : texas colorado ohio 1. Pour trier le contenu du fichier names, tapez : sort names Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : denise endrica marthe marta melanie 2. Pour trier le contenu des fichiers names et states, tapez : sort names states Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : colorado denise endrica joyce marta melanie ohio texas Fichiers 7-13 3. Pour remplacer le contenu original du fichier names par son contenu trié, tapez : sort –o names names Appuyez sur Entrée. Le contenu du fichier names est alors remplacé par les mêmes données dont l’ordre est trié. Reportez–vous à la commande sort dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Comparaison de fichiers (commande diff) Vous pouvez également utiliser la commande diff pour comparer les fichiers texte. Elle permet de comparer des fichiers isolés ou le contenu de répertoires entiers. Lorsque la commande diff est exécutée sur des fichiers réguliers et lorsqu’elle compare des fichiers texte dans différents répertoires, la commande diff indique quelles lignes doivent être modifiées dans les fichiers afin qu’elles correspondent. Les exemples suivants décrivent comment utiliser la commande diff : 1. Pour comparer deux fichiers, entrez : diff chap1.bak chap1 Appuyez sur Entrée. Les différences entre les fichiers chap1.bak et chap1 s’affichent alors. 2. Pour comparer deux fichiers en ignorant les différences dues au nombre d’espaces, entrez : diff –w prog.c.bak prog.c Appuyez sur Entrée. Si deux fichiers diffèrent seulement par leur nombres d’espaces et de tabulations entre les mots, la commande diff –w considère que les deux fichiers sont identiques. Reportez–vous à la commande diff dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Décompte des mots, des lignes et des octets d’un fichier (commande wc) Par défaut, la commande wc compte le nombre de lignes, de mots et d’octets dans les fichiers spécifiés par le paramètre File. Si aucun fichier n’est spécifié pour le paramètre File, une entrée standard est utilisée. La commande écrit les résultats dans une sortie standard et conserve un nombre total pour tous les fichiers nommés. Si des indicateurs sont spécifiés, leur ordre détermine celui de la sortie. Un mot est défini comme chaîne de caractères délimités par des espaces, des tabulations ou des caractères de saut de ligne. Si vous indiquez des fichiers sur la ligne de commande, leur nom est inscrit avec le décompte. Par exemple, pour afficher les décomptes en lignes, en mots et en octets du fichier chap1, tapez : wc chap1 Appuyez sur Entrée. Le nombre de lignes, de mots et d’octets du fichier chap1 s’affiche. Par exemple, pour afficher seulement le nombre d’octets et de mots, tapez : wc –cw chap* Appuyez sur Entrée. Le nombre d’octets et de mots de chaque fichier dont le nom commence par chap s’affiche ainsi que les totaux. 7-14 AIX Guide de l’utilisateur - Système d’exploitation et unités Reportez–vous à la commande wc dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage des premières lignes d’un fichier (commande head) La commande head écrit dans la sortie standard les premières lignes de chacun des fichiers spécifiés ou de l’entrée standard. Si aucun indicateur n’est spécifié avec la commande head, les 10 premières lignes sont affichées par défaut. Par exemple, pour afficher les cinq premières ligne du fichier Test, tapez : head –5 Test Appuyez sur Entrée. Reportez–vous à la commande head dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Affichage des dernières lignes d’un fichier (commande tail) La commande tail envoie le fichier spécifié par le paramètre File vers la sortie standard en commençant à un endroit spécifique. Par exemple, pour afficher les 10 dernières lignes du fichier notes, tapez : tail notes Appuyez sur Entrée. Par exemple, pour préciser la ligne (en commençant par la fin) à partir de laquelle lire le fichier notes, tapez : tail –20 notes Appuyez sur Entrée. Par exemple, pour afficher le fichier notes page par page, en commençant par le 200ème octet, tapez : tail –c +200 notes | pg Appuyez sur Entrée. Par exemple, pour surveiller la taille du fichier accounts, tapez : tail –f accounts Appuyez sur Entrée. Les 10 dernières lignes du fichier accounts s’affichent. La commande tail continue à afficher les lignes au fur et à mesure qu’elles sont ajoutées au fichier accounts. L’affichage se poursuit tant que vous n’appuyez pas sur Ctrl–C pour l’interrompre. Reportez–vous à la commande tail dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Coupe de sections de fichiers texte (commande cut) Pour envoyer les octets, les caractères ou les champs sélectionnés de chaque ligne d’un fichier vers une sortie standard, utilisez la commande cut. Par exemple, pour afficher plusieurs champs de chaque ligne d’un fichier, tapez : cut –f1,5–d: /etc/passwd Appuyez sur Entrée. Cette commande affiche les champs nom de connexion et nom utilisateur complet du fichier mot de passe du système. Il s’agit du premier et du cinquième champs ( –f1,5 ) séparés par des double points ( –d: ). Fichiers 7-15 Par exemple, le fichier /etc/passwd a la forme suivante : su:*:0:0:User with special privileges:/:/usr/bin/sh daemon:*:1:1::/etc: bin:*:2:2::/usr/bin: sys:*:3:3::/usr/src: adm:*:4:4:System Administrator:/var/adm:/usr/bin/sh pierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/sh joan:*:202:200:Joan Brown:/home/joan:/usr/bin/sh la commande cut génère : su:User with special privileges daemon: bin: sys: adm:System Administrator pierre:Pierre Harper joan:Joan Brown Reportez–vous à la commande cut dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Collage de sections de fichiers texte (commande paste) La commande paste fusionne les lignes de 12 fichiers au maximum dans un seul fichier. Par exemple, si vous avez un fichier names qui contient le texte suivant : rachel jerry mark linda scott un autre fichier places qui contient le texte suivant : New York Austin Chicago Boca Raton Seattle et un autre fichier dates qui contient le texte suivant : 5 février 13 mars 21 juin 16 juillet 4 novembre Pour coller les textes des fichiers names, places et dates ensemble, tapez : paste names places dates > npd Appuyez sur Entrée. Un fichier npd est alors créé, il contient les données du fichier names dans une colonne, celles du fichier places dans une autre colonne et celles du fichier dates dans une troisième colonne. Le fichier npd se présente maintenant de cette façon : rachel jerry mark linda scott New York Austin Chicago Boca Raton Seattle 5 février 13 mars 21 juin 16 juillet 4 novembre Un caractère de tabulation sépare le nom, le lieu et la date sur chaque ligne. Ces colonnes ne sont pas alignées car les taquets de tabulation sont définis toutes les huit colonnes. Pour séparer les colonnes par un caractère autre qu’une tabulation, entrez : paste –d”!@” names places dates > npd 7-16 AIX Guide de l’utilisateur - Système d’exploitation et unités Appuyez sur Entrée. Les caractères ! et @ séparent alternativement les données. Si les fichiers names, places et dates sont les mêmes que dans l’exemple 1, alors, le fichier npd se présente de cette façon : rachel!New York@5 février jerry!Austin@13 mars mark!Chicago@21 juin linda!Boca Raton@16 juillet scott!Seattle@4 novembre Par exemple, pour afficher le répertoire courant en quatre colonnes, entrez : ls | paste – – – – Appuyez sur Entrée. Chaque tiret (–) indique à la commande paste de créer un colonne contenant des données lues à partir de l’entrée standard. La première ligne est affichée dans la première colonne, la deuxième ligne dans la deuxième colonne, etc. Reportez–vous à la commande paste dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Numérotation des lignes d’un fichier texte (commande nl) La commande nl lit le fichier spécifié (entrée standard par défaut), en numérote les lignes et écrit celles-ci sur la sortie standard. Par exemple, pour numéroter uniquement les lignes non vides, tapez : nl chap1 Appuyez sur Entrée. Une liste numérotée de chap1 s’affiche, seules les lignes non vides sont numérotées dans le corps du texte. Par exemple, pour numéroter toutes les lignes, tapez : nl –ba chap1 Appuyez sur Entrée. Toutes les lignes du fichier chap1sont numérotées, y compris les lignes vides. Reportez–vous à la commande nl dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Suppression de colonnes dans un fichier texte (commande colrm) La commande colrm supprime d’un fichier les colonnes spécifiées. L’entrée est lue sur l’unité d’entrée standard. La sortie est envoyée vers l’unité de sortie standard. Lancée avec un seul paramètre, la commande supprime de chaque ligne toutes les colonnes à partir de la colonne spécifiée. Lancée avec deux paramètres, ce sont les colonnes comprises entre les deux colonnes spécifiées qui sont supprimées. Remarque : La numérotation des colonnes commence à 1. Par exemple, pour déplacer des colonnes du fichier text.fil, tapez : colrm 6 < text.fil Appuyez sur Entrée. Si text.fil contient : 123456789 alors la commande colrm affiche 12345 Reportez–vous à la commande colrm dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Fichiers 7-17 Liaison entre fichiers et répertoires Un lien est une connexion entre un nom de fichier et un numéro de référence de nœud d’index (inode), représentation interne d’un fichier. Les entrées de répertoire pouvant comporter des noms de fichiers appariés avec des i-nodes, chaque entrée de répertoire constitue un lien. C’est son numéro d’i-node, et non son nom, qui permet d’identifier un fichier. En utilisant les liens, tout numéro d’i-node ou fichier peut avoir plusieurs noms différents. Par exemple, l’i-node 798 contient un mémo sur les ventes de Juin de l’agence Omaha. L’entrée de répertoire correspondante est la suivante: Numéro d’i–node Nom de fichier 798 memo Comme ces informations font référence à celles stockées dans les répertoires sales et omaha, la liaison permet de partager les informations si nécessaire. A l’aide de la commande ln, des liens sont créés vers ces répertoires. Le fichier est alors référencé sous trois noms : Numéro d’i–node Nom de fichier 798 memo 798 sales/june 798 omaha/junesales Lorsque vous utilisez la commande pg ou cat pour visualiser le contenu d’un des trois noms de fichier, les mêmes informations sont affichées. Si vous modifiez l’un de ces trois fichiers, le contenu des deux autres est modifié en conséquence. Types de liens Les liens sont créés avec la commande ln et sont de types suivants : lien fixe Donne accès aux données d’un fichier par le biais d’un nouveau nom de fichier. Un lien fixe assure l’existence d’un fichier. Lorsqu’un lien fixe est supprimé, le numéro d’i–node et ses données sont également supprimés. Les liens fixes peuvent uniquement être créés entre des fichiers qui sont dans le même système de fichiers. lien symbolique Donne accès aux données d’autres systèmes de fichiers par le biais d’un nouveau nom de fichier. Un lien symbolique est un type particulier de fichier, contenant un chemin d’accès. Lorsqu’un process rencontre un lien symbolique, il recherche éventuellement ce chemin. Les liens symboliques ne protègent pas les fichiers de leur suppression du système de fichiers. Remarque : L’utilisateur qui crée un fichier en reste propriétaire quel que soit le nombre de liens qui y sont rattachés. Seul le propriétaire du fichier ou l’utilisateur root peut définir le mode d’accès à ce fichier. Cependant, des modifications peuvent être apportées au fichier à partir d’un nom de fichier lié avec le mode d’accès approprié. Un fichier ou un répertoire existe tant qu’il existe un lien fixe avec son i–node. Dans la longue liste affichée par la commande ls –l, le nombre de liens fixes vers chaque fichier et 7-18 AIX Guide de l’utilisateur - Système d’exploitation et unités sous–répertoire est fourni. Tous les liens fixes sont équivalents pour le système : l’ordre de leur création est indifférent. Liaison de fichiers (commande ln) La liaison de fichiers avec la commande ln constitue une manière pratique de gérer les mêmes données dans plusieurs endroit. Les liens sont créés en donnant des noms différents au fichier original. L’utilisation de liens permet à un gros fichier, tel qu’une base de données ou un fichier d’adresses, d’être partagé par plusieurs utilisateurs sans faire de copies de ce fichier. Non seulement les liens permettent d’économiser de l’espace disque, mais les modifications apportées à un fichier sont automatiquement prises en compte dans tous les fichiers liés. La commande ln relie le fichier désigné dans le paramètre FichierSource au fichier désigné par le paramètre FichierCible ou au même nom de fichier dans un autre répertoire spécifié par le paramètre RépertoireCible. Par défaut, la commande ln crée des liens fixes. Pour utiliser la commande ln pour créer des liens symboliques, indiquez l’indicateur –s. Vous ne pouvez associer qu’un fichier à un nouveau nom. Vous pouvez cependant en associer plusieurs à un répertoire. Le paramètre FichierCible est optionnel. Si vous n’indiquez pas de fichier cible, la commande ln crée un fichier dans votre répertoire courant. Le nouveau fichier hérite du nom du fichier indiqué dans le paramètre FichierSource. Remarque : Vous ne pouvez lier des fichiers dans des systèmes de fichiers sans utiliser l’indicateur. –s. Par exemple, pour créer un autre lien avec le fichier chap1, tapez : ln –f chap1 intro Appuyez sur Entrée. Ceci permet de lier chap1 au nouveau nom, intro. Lorsque l’indicateur –f est utilisé, le nom de fichier intro est créé s’il n’existe pas encore. Si intro existe déjà, le fichier est remplacé par un lien vers chap1. Les deux noms de fichiers chap1 et intro font alors référence au même fichier. Toute modification apportée à l’un des fichiers est reportée dans l’autre. Par exemple, pour lier un fichier index au même nom dans un autre répertoire nommé manual, tapez : ln index manual Appuyez sur Entrée. Ceci permet de lier index au nouveau nom, manual/index. Par exemple, pour lier plusieurs fichiers à des noms dans d’autres répertoires, entrez : lnchap2jim/chap3/home/manual Appuyez sur Entrée. Ceci permet de lier chap2 au nouveau nom, /home/manual/chap2 et jim/chap3 à /home/manual/chap3. Par exemple, pour utiliser la commande ln avec des métacaractères, tapez : ln manual/*. Remarque : Vous devez séparer l’astérisque du point par un espace. Appuyez sur Entrée. Ceci permet de lier tous les fichiers du répertoire manual dans le répertoire courant, point(.), en leur attribuant les mêmes noms que dans le répertoire manual. Par exemple, pour créer un lien symbolique, entrez : ln –s /tmp/toc toc Fichiers 7-19 Appuyez sur Entrée. Le lien symbolique, toc est créé dans le répertoire courant. Le fichier toc désigne le fichier /tmp/toc. Si le fichier /tmp/toc existe, la commande cat toc affiche son contenu. Pour obtenir des résultas identiques sans indiquer de paramètre FichierCible, tapez : ln –s /tmp/toc Appuyez sur Entrée. Reportez–vous à la commande ln dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Suppression de fichiers liés La commande rm retire le lien du nom de fichier indiqué. Lorsque l’un des noms de fichiers à lien fixe est supprimé, le fichier n’est pas complètement supprimé puisqu’il reste sous l’autre nom. Ce n’est qu’à la suppression du dernier lien à l’i-node que les données sont supprimées. Le numéro d’i-node correspondant est alors libéré. Reportez–vous à la commande rm dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. 7-20 AIX Guide de l’utilisateur - Système d’exploitation et unités Fichiers DOS Le système d’exploitation AIX vous permet de gérer des fichiers DOS sur votre système. Il vous suffit de copier les fichiers DOS voulus sur une disquette. Votre système peut lire ces fichiers dans un répertoire de système d’exploitation de base dans le format approprié, et sur la disquette sous format DOS. Remarque : Les caractères génériques * et ? (astérisque et point d’interrogation) ne sont pas admis pour les commandes concernées dans cette section (bien qu’ils soient acceptés par le shell). Si vous ne spécifiez pas d’extension de nom de fichier, vous aurez une extension vide. Copie les fichiers DOS dans des fichiers de système d’exploitation de base La commande dosread copie le fichier DOS spécifié dans le fichier de système d’exploitation de base indiqué. Remarque : Les conventions d’appellation des fichiers s’appliquent, à une exception près. Comme la barre oblique inversée (\) peut avoir une signification particulière pour le système d’exploitation de base, utilisez la barre oblique (/) comme délimiteur pour spécifier des noms de sous–répertoire dans les noms de chemin DOS. Par exemple, pour copier un fichier texte de nom chap1.doc d’une disquette DOS vers un fichier du système d’exploitation de base, tapez : dosread –a chap1.doc chap1 Appuyez sur Entrée. Le fichier texte DOS \CHAP1.DOC est copié sur l’unité par défaut /dev/fd0 du fichier du système d’exploitation de base chap1 dans le répertoire courant. Par exemple, pour copier un fichier binaire d’une disquette DOS sur un fichier de système d’exploitation de base, tapez : dosread –D/dev/fd0 /survey/test.dta /home/fran/testdata Appuyez sur Entrée. Le fichier de données DOS \SURVEY\TEST.DTA sur /dev/fd0 est copié dans le fichier du système d’exploitation de base /home/fran/testdata. Reportez–vous à la commande dosread dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Copie des fichiers de système d’exploitation de base dans des fichiers DOS La commande doswrite copie le fichier du système d’exploitation de base spécifié dans le fichier DOS spécifié. Remarque : Les conventions d’appellation des fichiers s’appliquent, à une exception près. Comme la barre oblique inversée (\) peut avoir une signification particulière pour le système d’exploitation de base, utilisez la barre oblique (/) comme délimiteur pour spécifier des noms de sous–répertoire dans les noms de chemin DOS. Par exemple, pour copier un fichier texte de nom chap1 d’un fichier du système d’exploitation de base vers une disquette DOS, tapez : doswrite –a chap1 chap1.doc Appuyez sur Entrée. Le fichier du système d’exploitation de base chap1 est copié dans le répertoire courant dans le fichier texte DOS \CHAP1.DOC sur /dev/fd0. Fichiers 7-21 Par exemple, pour copier un fichier binaire de nom /survey/test.dta d’un fichier du système d’exploitation de base vers une disquette DOS, tapez : doswrite –D/dev/fd0 /home/fran/testdata /survey/test.dta Appuyez sur Entrée. Le fichier du système d’exploitation de base /home/fran/testdata est copié dans le fichier DOS \SURVEY\TEST.DTA sur /dev/fd1. Reportez–vous à la commande doswrite dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Suppression de fichiers DOS La commande dosdel supprime le fichier DOS spécifié. Remarque : Les conventions d’appellation des fichiers s’appliquent, à une exception près. Comme la barre oblique inversée (\) peut avoir une signification particulière pour le système d’exploitation de base, utilisez la barre oblique (/) comme délimiteur pour spécifier des noms de sous–répertoire dans les noms de chemin DOS. La commande dosdel convertit en majuscules les minuscules apparaissant dans le nom du fichier ou du répertoires avant de vérifier le disque. Tous les chemins d’accès étant supposés absolus (et non relatifs), la barre oblique (/) initiale est inutile. Par exemple, pour copier un fichier texte de nom file.ext sur l’unité par défaut ( /dev/fd0 ), tapez : dosdel file.ext Appuyez sur Entrée. Reportez–vous à la commande dosdel dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Contenu d’un répertoire DOS La commande dosdir affiche les informations sur les fichiers ou les répertoires DOS spécifiés. Remarque : Les conventions d’appellation des fichiers s’appliquent, à une exception près. Comme la barre oblique inversée (\) peut avoir une signification particulière pour le système d’exploitation de base, utilisez la barre oblique (/) comme délimiteur pour spécifier des noms de sous–répertoire dans les noms de chemin DOS. La commande dosdir convertit en majuscules les minuscules apparaissant dans le nom du fichier ou du répertoires avant de vérifier le disque. Tous les chemins d’accès étant supposés absolus (et non relatifs), la barre oblique initiale (/) est inutile. Par exemple, pour lire un répertoire de fichiers DOS sur /dev/fd0, tapez : dosdir Appuyez sur Entrée. La commande affiche les noms de fichiers, et la taille de l’espace disponible comme suit : PG3–25.TXT PG4–25.TXT PG5–25.TXT PG6–25.TXT Espace libre : 312320 octets Reportez–vous à la commande dosdir dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. 7-22 AIX Guide de l’utilisateur - Système d’exploitation et unités Récapitulatif des commandes relatives aux fichiers * Caractère générique utilisé pour remplacer un ou plusieurs caractères ? Caractère générique utilisé pour remplacer un seul caractère [] Métacaractères utilisés pour remplacer des caractères inclus Procédures de gestion de fichier cat Concatène ou affiche des fichiers cmp Compare deux fichiers colrm Extrait des colonnes d’un fichier cp Copie des fichiers cut Ecrit des octets, des caractères ou des champs sélectionnés de chaque ligne d’un fichier diff Compare des fichiers texte file Détermine le type de fichier find Recherche des fichiers avec une expression correspondant grep Recherche un fichier pour un modèle head Affiche les premières lignes ou les premiers octets d’un ou de plusieurs fichiers more Affiche du texte continu un écran à la fois mv Déplace des fichiers nl Numérote les lignes dans un fichier pg Formate les fichiers à l’affichage rm Retire (délie) des fichiers ou des répertoires paste Fusionne les lignes de plusieurs fichiers ou des lignes qui se suivent dans un fichier page Affiche du texte continu un écran à la fois sort Trie les fichiers, fusionne les fichiers déjà triés et vérifie si les fichiers ont été triés tail Envoie un fichier vers la sortie standard en commençant à un endroit spécifique wc Compte le nombre de lignes, de mots et d’octets dans un fichier Liaison entre fichiers et répertoires ln Relie fichiers et répertoires Fichiers 7-23 Fichiers DOS dosdel Supprime des fichiers DOS dosdir Répertorie le répertoire des fichiers DOS dosread Copie les fichiers DOS dans des fichiers de système d’exécution de base doswrite Copie les fichiers de système d’exécution de base dans des fichiers DOS informations connexes Commandes : généralités à la page 4-3 Process : généralités, page 4-13 Réacheminement des entrées/sorties, page 5-1 Shells, page 12-1 Système de fichiers, page 6-2 Répertoires : généralités, page 6-6 Fichiers,page 7-1 Liaison entre fichiers et répertoires, page 7-18 Imprimantes, travaux d’impression et files d’attente, page 8-1 Fichiers de sauvegarde et supports de stockage, page 9-1 Sécurité du système et des fichiers, page 10-1 7-24 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 8. Imprimantes, travaux d’impression et files d’attente Vous pouvez, en fonction de l’imprimante, contrôler la présentation et les caractéristiques des sorties papier. L’imprimante, d’une part, la console et l’unité centrale, d’autre part, peuvent se trouver dans des lieux distincts. L’imprimante peut être directement connectée à un système local, mais un travail d’impression peut également être envoyé via un réseau à un système distant. Pour gérer les travaux d’impression avec un maximum d’efficacité, le système place chaque travail dans une file d’attente, jusqu’à ce que l’imprimante soit disponible. Un ou plusieurs travaux peuvent ainsi se trouver en file d’attente : Comme l’imprimante produit la sortie à partir d’un fichier, le système traite la prochaine tâche dans la file d’attente. Ce process continue jusqu’à l’impression de chaque tâche dans la file d’attente. Pour des informations détaillées sur les imprimantes, les travaux d’impression ou les files d’attente, reportez–vous au manuel AIX 5L Version 5.2 Imprimantes et impression – Guide de l’utilisateur. Ce chapitre traite des points suivants : • Terminologie, page 8-2 • Lancement d’un travail d’impression (commande qprt), page 8-4 • Annulation d’un travail d’impression (commande qcan), page 8-8 • Vérification de l’état d’un travail (commande qchk), page 8-9 • Conditions de l’état de l’imprimante, page 8-10 • Définition de la priorité d’un travail d’impression (commande qprt), page 8-11 • Blocage et libération d’un travail (commande qhld), page 8-12 • Déplacement d’un travail vers une autre file d’attente (commande qmov), page 8-14 • Formatage des fichiers à imprimer (commande pr), page 8-15 • Impression de fichiers ASCII sur une imprimante PostScript, page 8-17 • Automatisation de la conversion ASCII–PostScript, page 8-18 • Annulation de la détermination automatique du type de fichier, page 8-19 • Récapitulatif des commandes relatives à l’impression, page 8-19 • Informations connexes, page 8-19 Imprimantes, travaux d’impression et files d’attente 8-1 Terminologie Voici une définition des principaux termes relatifs à l’impression. Imprimantes locales Lorsque vous branchez une imprimante sur un nœud ou sur un hôte, elle est dite imprimante locale. Travail d’impression Un travail d’impression est une unité de travail destinée à l’imprimante. Il peut être constitué d’un ou de plusieurs fichiers, selon la demande émise. Le système affecte un numéro unique à chaque travail qu’il exécute. Spouleur d’impression Le spouleur n’est pas réservé aux travaux d’impression. Il offre une fonction de traitement différé générique, permettant la mise en file d’attente de différents types de travaux, y compris bien sûr des travaux d’impression. Le spouleur ne ”sait” normalement pas quel type de travail est mis en attente. Lorsque l’administrateur définit une file d’attente, son objet est déterminé par le programme expéditeur spécifié pour la file d’attente. Par exemple, si le programme expéditeur est la commande piobe (programme d’E–S de l’imprimante), il s’agit d’une file d’attente d’impression. De même, si le programme expéditeur est un compilateur, il s’agit d’une file d’attente de travaux à compiler. Lorsque la commande qdaemon du spouleur sélectionne un travail de la file, il exécute le travail en appelant le programme expéditeur – spécifié par l’administrateur lors de la définition de la file d’attente. Le spouleur principal contrôle la commande enq. Bien que vous puissiez faire directement appel à cette commande pour mettre un travail en file d’attente, vous disposez pour ce faire de trois commandes frontales : lp, lpr et qprt. Une demande émise par le biais d’une de ces commandes est d’abord transmise au programme enq, lequel place les informations sur le fichier dans la file d’attente, en vue de son traitement par le process qdaemon. Programme expéditeur de l’imprimante Le programme expéditeur de l’imprimante est un ensemble de programmes appelés par la commande qdaemon du spouleur pour traiter un travail en attente d’impression. Ce programme : . reçoit de la commande qdaemon la liste des fichiers à imprimer ; . applique les attributs imprimante et de formatage issus de la base de données, éventuellement remplacés par les indicateurs spécifiés sur la ligne de commande ; . initialise l’imprimante avant d’imprimer un fichier ; . lance au besoin les filtres requis pour convertir le flux des données dans un format pris en charge par l’imprimante ; . fournit les filtres requis pour le formatage simple des documents ASCII ; . assure le support des caractères nationaux ; . transmet les données d’impression filtrées au pilote de l’unité d’impression ; . génère les pages de début et de fin ; . génère les exemplaires multiples ; . signale les incidents (absence de papier, intervention requise, erreur imprimante, etc.) ; . signale les incidents décelés par les filtres ; 8-2 AIX Guide de l’utilisateur - Système d’exploitation et unités . effectue un nettoyage après l’annulation d’un travail d’impression ; . fournit un environnement d’impression, personnalisable par l’administrateur système. qdaemon qdaemon est un process d’arrière–plan qui contrôle les files d’attente. Il est généralement activé à la mise sous tension du système. File d’attente La file d’attente est l’endroit vers lequel sont dirigés les travaux d’impression. Il s’agit d’une strophe du fichier /etc/qconfig dont le nom est celui de la file d’attente, qui pointe sur l’unité de file d’attente associée. Voici un exemple : Msa1: device = lp0 Msa1 est le nom de la file d’attente, lp0, le nom de l’unité. Unité de file d’attente La strophe relative à l’unité de file d’attente suit normalement celle relative à la file d’attente locale dans le fichier /etc/qconfig. Elle indique le fichier /dev (unité imprimante) destinataire de l’impression et le programme expéditeur à utiliser. Voici un exemple : lp0: file = /dev/lp0 header = never trailer = never access = both backend = /usr/lpd/piobe lp0 est le nom de l’unité, les autres lignes définissant son mode d’utilisation. Remarque : Plusieurs unités de file d’attente peuvent être associées à une seule file. Imprimante réelle Une imprimante réelle est l’imprimante matérielle connectée à un port série ou parallèle à une adresse matérielle unique. Le pilote de l’unité d’impression dans le noyau communique avec la partie matérielle de l’imprimante et constitue une interface entre l’imprimante réelle et une imprimante virtuelle, mais ne connaît pas le concept d’imprimante virtuelle. Imprimante distante Un système d’impression à distance donne aux noeuds non directement connectés accès à l’imprimante. Pour disposer des fonctions d’impression à distance, les nœuds individuels doivent être connectés à un réseau via le protocole TCP/IP (Transmission Control Protocol/Internet Protocol) et prendre en charge les applications TCP/IP requises. Imprimante virtuelle Une imprimante virtuelle est un ensemble d’attributs qui définissent une vue logicielle d’une imprimante réelle. Cette vue ne référence que les flux de données de haut niveau (ASCII, PostScript, etc.) reconnus par l’imprimante. Elle ne comporte aucune information sur la connexion matérielle entre l’imprimante et l’hôte, ou le protocole de transfert de et vers l’imprimante. Les imprimantes virtuelles sont définies par le gestionnaire du système. Imprimantes, travaux d’impression et files d’attente 8-3 Lancement d’un travail d’impression (commande qprt) Pour demander un travail d’impression, utilisez les commandes qprt ou smit. Pour plus d’informations, reportez–vous aux sections Utilisation de la commande qpr, page 8-4 et Utilisation de la commande smit, page 8-7. Lorsque vous lancez ces commandes, vous devez préciser les points suivants : • le nom du fichier à imprimer, • le nom de la file d’attente d’impression, • le nom du tiroir de sortie, • le nombre d’exemplaires à imprimer, • si une copie du fichier doit être effectuée sur l’hôte distant, • si le fichier doit être effacé après impression, • si une notification sur l’état du travail doit être envoyée, • si une notification sur l’état du travail doit être envoyée via la messagerie, • si l’impression doit être continue ou non, • le nom utilisateur destiné à l’étiquette ”Delivery To”, • le message d’accusé de réception console pour les impressions à distance, • le message d’accusé de réception fichier pour les impressions à distance, • Niveau de priorité Prérequis Avant de lancer un travail d’impression, assurez–vous de points suivants : • Pour les travaux locaux, l’imprimante doit être physiquement reliée à votre système. • Pour les travaux à distance, le système doit être configuré pour communiquer avec le serveur d’impression distant. Utilisation de la commande La commande qprt crée et met en file d’attente un travail pour imprimer le fichier spécifié. Si vous indiquez plusieurs fichiers, l’ensemble de ces fichiers forme un seul travail d’impression. Les fichiers sont imprimés dans l’ordre indiqué sur la ligne de commande. Pour imprimer un fichier, vous devez pouvoir y accéder en lecture. Pour supprimer un fichier après impression, vous devez détenir le droit d’écriture sur le répertoire qui le contient. Les indicateurs les plus utilisés de la commande qprt sont les suivants : 8-4 AIX Guide de l’utilisateur - Système d’exploitation et unités –b Nombre Marge inférieure. Nombre de lignes blanches à réserver en bas de page. –B Valeur Mode de séparation des pages (papier en continu séparé par des perforations). La variable Valeur est constituée de deux caractères. Le premier est relatif aux pages d’en–tête. Le second caractère est relatif aux pages de fin. Ces caractères sont les suivants : a Imprime une page (en–tête ou fin) pour chaque fichier du travail d’impression. n N’imprime pas de page d’en–tête ni de fin. g Imprime une seule page (en–tête ou fin) pour chaque travail (ensemble de fichiers). Par exemple, l’indicateur –B ga imprime une page d’en-tête au début de chaque travail d’impression, et une page de fin à la fin de chaque fichier de chaque travail. Remarque : Dans le cas d’une impression à distance, la valeur par défaut est déterminée par la file d’attente distante sur le serveur. –e Option Impression en gras (double frappe). + L’enrichissement de texte est demandé. ! L’enrichissement de texte n’est pas demandé. –E Option impression en double hauteur + L’impression est demandée en double hauteur. ! L’impression en double hauteur n’est pas demandée. –f FilterType Filtre (1 caractère) à appliquer au(x) fichier(s) avant impression : p qui appelle le filtre pr et n, qui traite les sorties générées par la commande troff. –i Nombre Indentation de lignes (en nombre d’espaces). La variable Nombre doit être inférieure à la largeur de page spécifiée via l’indicateur –w. –K Option Impression condensée + L’impression condensée est demandée. ! L’impression condensée n’est pas demandée. –l Nombre Hauteur de page (en nombre de lignes). Si vous indiquez 0 pour Nombre, la longueur de page est ignorée et la sortie est considérée comme une seule page continue. La hauteur inclut les marges inférieure et supérieure, et indique la hauteur de papier imprimable. –L Option Passage à la ligne ou troncature des lignes plus longues que la largeur de page. + Les longues lignes passent à la ligne suivante. ! Les longues lignes sont tronquées à la marge de droite. –N Nombre Nombre d’exemplaires à imprimer. En l’absence de spécification de cet indicateur, un seul exemplaire est imprimé. –p Nombre Impression au Nombre de caractères par pouce. Les valeurs habituelles de Nombre sont 10 et 12. Le pas réel d’impression dépend également de la valeur des indicateurs –K (condensée) et –W (double largeur). –P FileAttente [: UnitéFileAttente ] Désigne la file d’attente d’impression et (facultatif) l’unité de file d’attente. Sans cette option, l’imprimante désignée est celle définie par défaut. Imprimantes, travaux d’impression et files d’attente 8-5 –Q Valeur Taille du papier. La Valeur à indiquer pour la taille du papier dépend de l’imprimante. Les valeurs classiques sont : 1 pour le format lettre, 2 pour le format ’légal’, etc. Consultez votre manuel d’imprimante pour les valeurs attribuées aux formats de papier spécifiques. –t Nombre Marge supérieure. Nombre de lignes blanches à réserver en tête de page. –w Nombre Largeur de page en nombre de caractères (défini par la variable Nombre). La largeur indiquée doit être supérieure à la valeur d’indentation spécifiée par l’indicateur–i. –W Option impression en double hauteur + L’impression est demandée en double largeur. ! L’impression en double largeur n’est pas demandée. –z Valeur Imprime avec une rotation d’autant de quarts de tour qu’indiqué par Valeur (dans le sens horaire). La hauteur ((–l) et la largeur (–w) de page sont automatiquement modifiées en conséquence. 0 Portrait 1 Paysage à droite 2 Portrait à l’envers 3 Paysage à gauche –= TiroirSortie Spécifie le tiroir de sortie destinataire d’un travail d’impression. La liste des valeurs possibles est indiquée ci–dessous.Toutefois, les tiroirs de sortie autorisés dépendent de l’imprimante. 0 Tiroir supérieur de l’imprimante 1–49 Tiroirs à grande capacité (HCO) bins 1 – 49 49 Tiroirs de sortie des imprimantes –# Valeur Fonction spéciale. j Affiche le numéro du travail spécifié. h Met le travail en file d’attente, mais à l’état HELD (bloqué) jusqu’à sa prochaine libération. v Valide les valeurs des indicateurs du programme expéditeur de l’imprimante. Cette validation sert notamment à détecter les indicateurs légaux, au moment de la soumission d’un travail. A défaut, un travail assorti d’un indicateur incorrect ne sera interrompu qu’ultérieurement, en cours de traitement. Par exemple, pour imprimer le fichier monfichier sur la première imprimante disponible, configurée pour la file d’attente par défaut, avec les valeurs par défaut, entrez : qprt monfichier Par exemple, pour imprimer le fichier fichier_quelconque sur une file d’attente donnée, avec des indicateurs spécifiques, à valider au moment de la soumission, entrez : qprt –f p –e + –Pfastest –# v fichier_quelconque Le fichier fichier_quelconque passe par le filtre de la commande pr (indicateur –f p) et est imprimé en gras (indicateur –e +) sur la première imprimante disponible, configurée pour la file d’attente fastest (indicateur –Pfastest). Par exemple, pour imprimer monfichier sur du papier de taille legal, entrez : qprt –Q2 myfile Pour imprimer trois exemplaires de chacun des fichiers new.index.c, print.index.c et more.c sur la file d’attente Msp1, entrez : qprt –PMsp1 –N 3 new.index.c print.index.c more.c 8-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Pour imprimer trois exemplaires de la concaténation des trois fichiers new.index.c, print.index.c et more.c, entrez : cat new.index.c print.index.c more.c | qprt –PMsp1 –N 3 Remarque : Le système d’exploitation AIX prend également en charge la commande d’impression UNIX BSD (lpr) et celle d’UNIX System V (lp). Pour obtenir des détails sur la syntaxe, reportez–vous à la description des commandes lpr et lp dans le manuel AIX 5L Version 5.2 Commands Reference. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande qprt dans le manuel AIX 5L Version 5.2 Commands Reference. Utilisation de la commande smit Vous pouvez également lancer la commande qprt par le biais de smit. A l’invite, entrez : smit qprt Appuyez sur Entrée. Imprimantes, travaux d’impression et files d’attente 8-7 Annulation d’un travail d’impression (commande qcan) Vous pouvez annuler n’importe quel travail d’impression dans la file d’impression à l’aide des commandes qcan ou smit. Lorsque vous annulez un travail d’impression, vous êtes invité à fournir le nom de la file d’attente où il réside et le numéro du travail à annuler. Cette procédure s’applique aussi bien aux travaux d’impression locaux qu’aux travaux distants. Prérequis • Pour les travaux locaux, l’imprimante doit être physiquement reliée à votre système. • Pour les travaux à distance, le système doit être configuré pour communiquer avec le serveur d’impression distant. Utilisation de la commande qcan La commande qcan annule soit un travail particulier dans une file d’attente locale ou distante, soit tous les travaux dans une file d’attente locale. Pour déterminer le numéro du travail, tapez la commande qchk. La syntaxe de la commande qcan est la suivante : qcan –PQueueName –x JobNumber Par exemple, pour annuler le travail numéro 123, quelle que soit l’imprimante sur laquelle il se trouve, tapez : qcan –x123 Par exemple, pour annuler tous les travaux d’impression mis en file d’attente pour l’imprimante lp0, tapez : qcan –X–Plp0 Remarque :Le système d’exploitation AIX prend également en charge la commande d’annulation d’impression BSD UNIX (lprm) et la commande d’annulation d’impression d’UNIX System V (cancel). Reportez–vous aux commandes lprm et cancel dans le manuel AIX 5L Version 5.2 Commands Reference pour plus d’informations et pour en connaître la syntaxe exacte. Utilisation de la commande smit Pour annuler un travail d’impression à l’aide de SMIT, tapez : smit qcan Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande qcan dans le manuel AIX 5L Version 5.2 Commands Reference. 8-8 AIX Guide de l’utilisateur - Système d’exploitation et unités Vérification de l’état d’un travail (commande qchk) Pour afficher l’état en cours des travaux d’impression, des files d’attente d’impression ou des utilisateurs spécifiés, vous pouvez utiliser la commande Web System Manager Fast Path, qchk ou commande smit. Prérequis • Pour les travaux locaux, l’imprimante doit être physiquement reliée à votre système. • Pour les travaux à distance, le système doit être configuré pour communiquer avec le serveur d’impression distant. Raccourci Web-based System Manager Pour vérifier l’état d’un travail d’impression avec le raccourci Web-based System Manager, tapez : wsm printers Dans le conteneur, sélectionnez le travail d’impression, puis vérifiez son état à l’aide des menus. Utilisation de la commande qchk La commande qchk permet d’afficher l’état en cours des travaux d’impression, des files d’attente d’impression ou des utilisateurs spécifiés. La syntaxe commune de la commande qchk est : qchk –P QueueName –# JobNumber –u OwnerName Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande qchk dans le manuel AIX 5L Version 5.2 Commands Reference. Les exemples suivants décrivent comment utiliser la commande qchk : 1. Pour afficher l’état de la file d’attente par défaut, entrez : qchk –q Appuyez sur Entrée. 2. Pour afficher l’état au format long de toutes les files d’attente jusqu’à ce que tous les travaux soient terminés et pour mettre à jour l’écran toutes les 5 secondes, saisissez : qchk –A –L –w 5 Pour revenir à l’invite de commande, entrez ^C. 3. Pour afficher l’état de la file d’attente lp0, entrez : qchk –P lp0 Appuyez sur Entrée. 4. Pour afficher l’état du travail 123, entrez : qchk –# 123 Appuyez sur Entrée. 5. Pour vérifier l’état de tous les travaux de toutes les files d’attente, saisissez : qchk –A Remarque : Le système d’exploitation AIX prend également en charge la commande de contrôle de file d’attente UNIX BSD (lpq) et celle d’UNIX System V (lpstat). Pour obtenir des détails sur la syntaxe, reportez–vous à la description des commandes lpq et lpstat dans le manuel AIX 5L Version 5.2 Commands Reference. Imprimantes, travaux d’impression et files d’attente 8-9 Utilisation de la commande smit Pour vérifier l’état d’un travail d’impression à l’aide de SMIT, entrez : smit qchk Etat de l’imprimante Certains états qu’une file d’attente d’impression peut avoir sont les suivants : DEV_BUSY Indique que : • plusieurs files d’attente sont affectées à l’unité d’impression (lp0) et une file d’attente utilise actuellement l’unité ; • qdaemon a tenté d’utiliser l’unité d’impression (lp0), mais une autre application l’utilise déjà. Attendez que la file d’attente ou l’application libère l’unité d’impression, ou annulez le travail ou le processus qui utilise le port imprimante pour sortir de l’état DEV_BUSY. 8-10 DEV_WAIT Indique que la file d’attente ne peut disposer de l’imprimante car celle–ci est hors ligne, manque de papier, accuse un bourrage, etc., ou encore que son câble est détaché, endommagé ou mal branché. Pour sortir de l’état DEV_WAIT, remédiez à la cause de l’incident. Vous serez peut–être obligé de retirer au préalable les travaux de la file d’attente. DOWN Une file d’attente à l’état DEV_WAIT passe généralement à l’état DOWN. Cette situation se produit lorsque le pilote d’imprimante ne peut signaler la présence de l’imprimante, par manque de système de signalisation correct. Certaines imprimantes étant incapables de signaler au système de files d’attente qu’elles sont hors ligne transmettent alors le signal hors tension. Or, qu’une unité d’impression soit ou semble hors tension déclenche la mise à l’état DOWN de la file d’attente. Pour sortir de l’état DOWN, remédiez à la cause de l’incident et demandez à l’administrateur système de vous fournir la sauvegarde de la file d’attente. Elle doit être placée manuellement avant toute utilisation. HELD Indique un travail à l’état bloqué. Autrement dit, il ne sera traité par le spouleur qu’une fois libéré. QUEUED Indique qu’un fichier d’impression se trouve en file d’attente, prêt à être imprimé. READY Indique que tout est prêt pour mettre en file d’attente et imprimer un travail. RUNNING Indique qu’un fichier est en cours d’impression. AIX Guide de l’utilisateur - Système d’exploitation et unités Définition de la priorité d’un travail (commande qpri) Pour modifier la priorité d’un travail d’impression, utilisez les commandes qpri ou smit. Vous ne pouvez définir la priorité des travaux que sur des files d’attente locales. Plus le chiffre est élevé, plus la priorité du travail est grande. La priorité par défaut est de 15. La priorité maximale pour la plupart des travaux d’impression utilisateur est de 20. Toutefois, les travaux d’impression issus des utilisateurs ayant les droits utilisateur root ou des membres du groupe printq (groupe 0) peuvent recevoir la priorité 30. Remarque : Vous ne pouvez définir la priorité d’un travail d’impression à distance. Prérequis • Pour les travaux locaux, l’imprimante doit être physiquement reliée à votre système. • Pour les travaux à distance, le système doit être configuré pour communiquer avec le serveur d’impression distant. Utilisation de la commande qpri (commande qpri) La commande qpri permet de modifier la priorité d’un travail que vous avez soumis. Si vous disposez des droits d’utilisateur root ou que vous appartenez au groupe printq, vous pouvez redéfinir la priorité de n’importe quel travail de la file d’attente. Elle respecte la syntaxe : qpri –# NuméroTravail –a Priorité Par exemple, pour passer à 123 la priorité du travail18, tapez : qpri –# 123 –a 18 Pour définir la priorité d’un travail local au moment de sa soumission, entrez : qprt –PFileAttente –R Priorité Fichier Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande qpri dans le manuel AIX 5L Version 5.2 Commands Reference. Utilisation de la commande smit Pour modifier l’état d’un travail d’impression avec SMIT, tapez : smit qpri Imprimantes, travaux d’impression et files d’attente 8-11 Blocage et libération d’un travail d’impression (commande qhld) Lorsque vous avez envoyé une impression à la file d’attente d’impression, vous pouvez mettre en attendre l’impression en utilisant le chemin Web System Manager Fast, la commande qhld ou la commande smit. Web-based System Manager Fast Path, page 8-12, Utilisation de la commande qhld, page 8-12 ou Utilisation de la commande smit, page 8-13. Vous pouvez utiliser les mêmes commandes pour libérer à la suite l’impression pour impression. Prérequis • Pour les travaux locaux, l’imprimante doit être physiquement reliée à votre système. • Pour les travaux à distance, le système doit être configuré pour communiquer avec le serveur d’impression distant. Raccourci Web-based System Manager Pour bloquer ou libérer un travail d’impression avec le raccourci Web-based System Manager, tapez : wsm printers Dans le conteneur, sélectionnez le travail d’impression, puis servez–vous des menus pour le bloquer ou le libérer pour l’impression. Utilisation de la commande qhld La commande qhld permet de bloquer un travail envoyé en file d’attente. Vous pouvez bloquer un travail donné ou l’ensemble des travaux d’une file d’attente. Pour connaître le numéro d’un travail, lancez la commande qchk. La syntaxe commune de la commande qhld est : qhld [ –r ] {[ –# JobNumber ] [ – PQueue ] [ – uUser ]} Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande qhld dans le manuel AIX 5L Version 5.2 Commands Reference. Les exemples suivants décrivent comment utiliser la commande qhld : 1. Pour libérer le travail 452 quelle que soit la file d’attente sur laquelle il se trouve, entrez : qhld –#452 Appuyez sur Entrée. 2. Pour libérer tous les travaux de la file d’attente hp2, entrez : qhld –Php2 Appuyez sur Entrée. 3. Pour libérer le travail 452 quelle que soit la file d’attente sur laquelle il se trouve, entrez : qhld –#452 –r Appuyez sur Entrée. 4. Pour libérer tous les travaux de la file d’attente d’impression hp2, entrez : qhld –Php2 –r Appuyez sur Entrée. 8-12 AIX Guide de l’utilisateur - Système d’exploitation et unités Utilisation de la commande smit Pour bloquer ou libérer un travail d’impression avec SMIT, tapez : smit qhld Imprimantes, travaux d’impression et files d’attente 8-13 Déplacement d’un travail vers une autre file d’attente (commande qmov) Après avoir envoyé un travail d’impression dans une file d’attente, vous pouvez décider de déplacer ce travail vers une autre file d’attente. Vous pouvez le déplacer à l’aide des commandes qmov ou smit. Prérequis • Pour les travaux locaux, l’imprimante doit être physiquement reliée à votre système. • Pour les travaux à distance, le système doit être configuré pour communiquer avec le serveur d’impression distant. Utilisation de la commande qmov Vous pouvez déplacer un travail donné ou tous les travaux d’une file d’attente, ou encore tous les travaux soumis par un utilisateur donné. Pour connaître le numéro d’un travail, lancez la commande qchk. La syntaxe commune de la commande qmov est : qmov –m NewQueue {[ –#JobNumber ] [ –PQueue ] [ –uUser ]} Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande qmov dans le manuel AIX 5L Version 5.2 Commands Reference. Les exemples suivants décrivent comment utiliser la commande qmov : 1. Pour déplacer le travail 280 to print queue hp2, entrez : qmov –mhp2 –#280 Appuyez sur Entrée. 2. Pour déplacer tous les travaux de la file d’attente hp4D en file d’attente hp2, entrez : qmov –mhp2 –Php4D Utilisation de la commande smit Pour déplacer un travail d’impression avec SMIT, tapez : smit qmov 8-14 AIX Guide de l’utilisateur - Système d’exploitation et unités Formatage des fichiers à imprimer (commande pr) La commande pr permet d’effectuer un formatage simple des fichiers à imprimer. Chaînez la sortie de la commande pr à la commande qprt pour formater votre texte. Voici quelques indicateurs de la commande pr : –d Génère une sortie en double espacement. –h ”Chaîne” Affiche la chaîne spécifiée, entre guillemets ( ” ”), au lieu du nom du fichier, comme en–tête de page. Indicateur et chaîne doivent être séparés par un espace. –l Lignes Redéfinit la hauteur de page (66 lignes, par défaut) au nombre de Lignes indiqué. Si ce nombre est inférieur à la somme des lignes de l’en–tête et du bas de page (en nombre de lignes), ces derniers sont supprimés (même effet que l’indicateur –t). –m Fusionne des fichiers. La sortie standard est formatée de sorte que la commande pr écrive une ligne de chaque fichier spécifié par une variable File, côte à côte, en colonnes de texte de même taille (sur la base du nombre total de colonnes). Cet indicateur est incompatible avec l’indicateur – Column. –n [ Largeur ][ Caractère ] Numérote les lignes selon le format spécifié par la variable Largeur. La valeur par défaut est de 5 chiffres. Si Caractère (caractère non numérique quelconque) est spécifié, il est ajouté au numéro de ligne, pour marquer la séparation entre ce numéro et le reste de la ligne. Le caractère de séparation par défaut est le caractère ASCII TAB. –o Décalage Indente chaque ligne du nombre d’espaces indiqué par Décalage. Le nombre total de caractères par ligne est la somme de la largeur de page et du décalage. La valeur par défaut de Décalage est 0. –s Caractère Sépare les colonnes par le Caractère au lieu d’insérer des espaces. Le caractère par défaut est le caractère ASCII TAB. –t N’affiche ni les cinq lignes d’en-tête, ni les cinq lignes de bas de page. S’arrête à la dernière ligne de la page sans créer d’espace jusqu’à la fin de la page. –w Largeur Définit le nombre de colonnes par ligne à la valeur indiquée par la variable Largeur. La valeur par défaut est 72, générant une sortie multi-colonne de même taille. Aucune autre limite n’est imposée. Si l’indicateur –w n’est pas spécifié et que l’indicateur –s l’est, la largeur par défaut est de 512 colonnes. Imprimantes, travaux d’impression et files d’attente 8-15 – Colonne Définit le nombre de colonnes à la valeur de la variable Colonne. La valeur par défaut est 1. Cette option est incompatible avec l’indicateur –m. Les indicateurs –e et –i sont supposés actifs pour les sorties multicolonnes. Une colonne de texte ne doit pas dépasser la largeur de la page (voir indicateur –l). Lorsque cet indicateur est combiné à l’indicateur –t, optez pour le nombre de lignes minimal pour la sortie. + Page Commence par afficher le numéro de page spécifié par Page. La valeur par défaut est 1. Par exemple, pour imprimer le fichier prog.c avec en–têtes et numéros de page, entrez : pr prog.c | qprt Appuyez sur Entrée. La commande pr ajoute par défaut des en–têtes et numéros de page à prog.c et l’envoie à la commande qprt. L’en–tête est constitué de la date de dernière modification du fichier, de son nom et du nombre de pages. Par exemple, pour indiquer le titre du fichier prog.c, entrez : pr –h ”MAIN PROGRAM” prog.c | qprt Appuyez sur Entrée. prog.c est imprimé sous le titre MAIN PROGRAM (à la place du nom de fichier). Date de modification et numéro de page sont toujours imprimés. Par exemple, pour imprimer le fichier word.lst sur plusieurs colonnes, entrez : pr –3 word.lst | qprt Appuyez sur Entrée. Le fichier word.lst est imprimé sur trois colonnes verticales. Pour imprimer plusieurs fichiers côte à côte : pr –m –h ”Members and Visitors” member.lst visitor.lst | qprt Les fichiers member.lst et visitor.lst sont imprimés côte à côte sous le titre Membres et visiteurs. Pour modifier le fichier prog.c en vue d’un usage ultérieur, entrez : pr –t –e prog.c > prog.notab.c Appuyez sur Entrée. Les tabulations du fichier prog.c sont remplacées par des espaces, et le résultat placé dans prog.notab.c. Une tabulation est placée aux colonnes 9, 17, 25, 33 et ainsi de suite. L’indicateur –e indique à la commande pr de remplacer les tabulations, l’indicateur –t supprime les en–têtes de page. Pour imprimer le fichier myfile sur deux colonnes, en texte de 7 points, entrez : pr –l66 –w172 –2 myfile | qprt –z1 –p7 Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande pr dans le manuel AIX 5L Version 5.2 Commands Reference. 8-16 AIX Guide de l’utilisateur - Système d’exploitation et unités Impression de fichiers ASCII sur une imprimante PostScript Le système de formatage de texte comprend le filtre en script qui permet de convertir en PostScript des fichiers d’impression ASCII en vue de les imprimer sur une imprimante PostScript. La commande qprt –da appelle ce filtre lorsqu’un travail d’impression est soumis à la file d’attente d’impression PostScript. Prérequis • L’imprimante doit être connectée physiquement au système. • Elle doit être définie et configurée. • La partie transcript des services de formatage de texte (Text Formatting Services) doit être installée. Différents indicateurs peuvent être spécifiés avec la commande qprt afin de personnaliser la sortie lors de la soumission de fichiers ASCII vers une file d’attente d’impression PostScript. –1+ Ajoute des en–têtes de page. –2+ Formate la sortie en deux colonnes. –3+ Imprime les en–têtes de pages, les dates et les numéros de page dans un style “fantaisiste”. On parle parfois de mode gaudy. –4+ Imprime le fichier, même s’il contient des caractères non imprimables. –5+ Donne la liste des caractères qui ne font pas partie d’une police. –h Chaîne Spécifie une chaîne à utiliser pour les en–têtes de page. Si ce paramètre n’est pas spécifié, l’en–tête se compose du nom de fichier, de la date de modification et du numéro de page. –l valeur Spécifie le nombre maximal de lignes imprimées par page. Selon la taille de caractères en points, le nombre de lignes par page peut être inférieur. –L! Tronque les lignes dépassant la largeur de la page. –p Spécifie la taille de caractères en points. Si ce paramètre n’est pas précisé, le système suppose que la taille de caractères est 10, sauf si le mode pivoté sur deux colonnes (–2+ –z1) est spécifié, auquel cas la valeur 7 est utilisée. –s Spécifie le style de police. Si ce paramètre n’est pas indiqué, c’est la police Courier qui est utilisée. Les valeurs acceptées sont les suivantes : Courier–Oblique Helvetica Helvetica–Oblique Helvetica–Narrow Helvetica–Narrow–Oblique NewCenturySchlbk–Italic Optima Optima–Oblique Palatino–Roman Palatino–Italic Times–Roman Imprimantes, travaux d’impression et files d’attente 8-17 –z1 Times–Italic Remarque : L’imprimante PostScript doit avoir accès à la police spécifiée. Fait pivoter la sortie de 90 degrés (mode à l’italienne). Par exemple, pour envoyer le fichier ASCII monfichier.ascii sur l’imprimante PostScript nommée Msps1, tapez : qprt–da–PMsps1 monfichier.ascii Appuyez sur Entrée. Par exemple, pour envoyer le fichier ASCII monfichier.ascii sur l’imprimante PostScript nommée Msps1 et l’imprimer en police Helvetica, tapez : qprt–da–PMsps1–sHelvetica monfichier.ascii Appuyez sur Entrée. Par exemple, pour envoyer le fichier ASCII monfichier.ascii sur l’imprimante PostScript nommée Msps1 et l’imprimer avec la taille de caractère 9, tapez : qprt–da–PMsps1–p9 monfichier.ascii Appuyez sur Entrée. Automatisation de la conversion ASCII–PostScript La plupart des applications qui génèrent des fichiers d’impression PostScript suivent la convention d’appellation qui veut qu’un fichier d’impression PostScript commence toujours par les caractères %!. Pour configurer le système de sorte qu’il repère les fichiers d’impression ASCII soumis à une file d’attente PostScript et qu’il les convertisse automatiquement en fichiers PostScript avant de les envoyer à l’imprimante PostScript, procédez comme suit : 1. A l’invite, entrez : smit chpq Appuyez sur Entrée. 2. Indiquez une file d’attente PostScript ou sélectionnez–en une à l’aide de la fonction List. 3. Sélectionnez l’option Printer Setup. 4. Basculez la valeur de l’option AUTOMATIC detection of print file TYPE to be done? sur yes. Les commandes suivantes sont alors équivalentes : elles convertissent tout fichier ASCII en fichier PostScript et l’impriment sur une imprimante PostScript. Ainsi, pour convertir et imprimer le fichier monfichier.ascii, entrez l’une des commandes suivantes : qprt –Pps monfichier.ps monfichier.ascii lpr –Pps monfichier.ps monfichier.ascii lp –dps monfichier.ps monfichier.acsii ps étant une file d’attente d’impression PostScript. 8-18 AIX Guide de l’utilisateur - Système d’exploitation et unités Annulation de la détermination automatique des types de fichier d’impression Vous devez remplacer la détermination automatique des types de fichier d’impression pour l’impression PostScript dans les situations suivantes : • Pour imprimer un fichier PostScript nommé monfichier.ps qui ne commence pas par %!, tapez ce qui suit sur la ligne de commande : qprt –ds –Pps monfichier.ps • Pour imprimer le liste des sources d’un fichier PostScript nommé monfichier.ps qui commence par %!, tapez ce qui suit sur la ligne de commande : qprt –da –Pps monfichier.ps Récapitulatif des commandes relatives à l’impression cancel Annule les requêtes adressées à une imprimante ligne lp Envoie une demande à une imprimante ligne. lpq Examine la file d’attente du spouleur. lpr Met en file d’attente les travaux d’impression. lprm Retire les travaux de la file d’attente de l’imprimante ligne. lpstat Affiche des informations sur l’état de l’imprimante ligne. pr Envoie un fichier vers l’unité de sortie standard. qcan Annule un travail d’impression. qchk Affiche l’état d’une file d’attente d’impression. Bloque/libère un travail d’impression. qhld qmov Déplace un travail vers une autre file d’attente. qpri Définit la priorité d’un travail dans la file d’attente. qprt Lance un travail d’impression. Informations connexes Généralités page 4-3 Processus : Généralités, page 4-13 Réacheminement des entrées/sorties, page 5-1 Système de fichiers, page 6-2 Répertoires : généralités, page 6-6 Fichiers, page 7-1 Système et environnement utilisateur, page 2-1 Imprimantes, travaux d’impression et files d’attente 8-19 8-20 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 9. Fichiers de sauvegarde et supports de stockage Une fois que votre système fonctionne, il vous faut réfléchir aux moyens de sauvegarder systèmes de fichiers, répertoires et fichiers. Sachant qu’il est toujours possible d’effacer ou de modifier un fichier – intentionnellement ou accidentellement, adopter une stratégie de sauvegarde efficace s’impose. En cas de problème, vous aurez ainsi toujours la ressource de restaurer la version la plus récente de vos fichiers et systèmes de fichiers. Remarque : Si un disque “plante”, toutes les données qu’il contient sont définitivement détruites. Le seul moyen de recouvrer ces données est de les restaurer à partir d’une copie de sauvegarde. Il existe différentes méthodes de sauvegarde. Le plus souvent, vous opterez pour une sauvegarde simple, c’est–à–dire une copie du fichier, du répertoire ou du système de fichiers, permettant un transfert ou une restauration en cas de destruction ou de modification accidentelle. La sauvegarde d’archivage est une autre méthode de sauvegarde ; elle est utilisée pour un usage ultérieur, à des fins d’historique ou pour recouvrer les données en cas de perte ou de détérioration. Ce chapitre traite des points suivants : • Etablissement d’une tratégie de sauvegarde, page 9-2 • Formatage de disquettes (commande format ou fdformat), page 9-5 • Vérification de l’intégrité du système de fichiers (commande fsck), page 9-6 • Copie de ou sur des disquettes (commande flcopy), page 9-7 • Copie de fichiers sur bande ou disque (commande cpio –o), page 9-7 • Copie de fichiers sur bande ou disque (commande cpio –o), page 9-8 • Copie de ou sur des bandes(commande tcopy), page 9-9 • Vérification de l’intégrité d’une bande (commande tapechk), page 9-9 • Compression des fichiers (commandes compress et pack), page 9-10 • Décompression des fichiers (commandes uncompress et unpack), page 9-12 • Sauvegarde de fichiers (commande backup), page 9-14 • Restauration de fichiers (commande restore), page 9-16 • Archivage de fichiers (commande tar), page 9-18 • Récapitulatif des commandes relatives à la sauvegarde, page 9-19 Fichiers de sauvegarde et supports de stockage 9-1 Etablissement d’une stratégie de sauvegarde Il n’existe pas une, mais plusieurs stratégies de sauvegarde – les utilisateurs ayant chacun leurs impératifs et leurs souhaits. Une approche adaptée à un système mono-utilisateur a peu de chances de convenir sur un système servant 5 ou 10 utilisateurs. De même, une stratégie adaptée à un système où les fichiers sont modifiés quotidiennement sera inefficace sur un système où la fréquence de modification des données est faible. Vous seul êtes à même de déterminer la stratégie qui convient le mieux. Garantissez-vous contre les pertes majeures. Votre système peut-il continuer à fonctionner si un seul disque tombe en panne ? Pouvez-vous recouvrer vos données si tous les disques tombent en panne ? Pouvez-vous reconstituer votre système si vous perdez vos disquettes ou vos bandes de sauvegarde, qu’elles sont brûlées ou volées ? Un tel acharnement du sort paraît peu vraisemblable, mais vous n’êtes à l’abri d’aucune des éventualités évoquées. Réfléchissez donc au moyen de recouvrer l’usage de votre système dans chacun de ces cas de figure. Vérifiez régulièrement vos sauvegardes. Supports et unités de sauvegarde, même les plus fiables, ne sont pas à l’abri d’une défaillance. Une bibliothèque conséquente de bandes ou de disquettes n’est d’aucune utilité si vous ne pouvez les relire et les transférer sur un disque. Pour vérifier que vos sauvegardes sont exploitables, affichez régulièrement leur table des matières (via restore –T, ou tar –t pour les bandes d’archives). Si vous effectuez vos sauvegardes sur disquettes et que vous disposez de plusieurs unités de disquettes, tentez de les lire sur une unité autre que celle qui a servi à créer la sauvegarde. Vous pouvez également créer un second lot de disquettes de sauvegarde de niveau 0. Si vous utilisez un dérouleur en continu, lancez régulièrement la commande tapechk pour effectuer un contrôle de cohérence rudimentaire sur la bande. Conservez les anciens supports de sauvegarde. Prévoyez de recycler régulièrement les supports de sauvegarde, mais pas tous. Il peut parfois s’écouler plusieurs mois avant que vous (ou un autre utilisateur du système) vous aperceviez qu’un fichier important a disparu ou qu’il est endommagé. Vous serez alors soulagé de savoir qu’il en existe une sauvegarde. Voici un exemple de planning de recyclage de disquettes et des bandes de sauvegarde : • Une fois par semaine, recyclage de toutes les disquettes de sauvegarde quotidiennes, excepté celles du vendredi. • Une fois par mois, recyclez toutes les disquettes du vendredi, excepté celle du dernier vendredi du mois. Ainsi, les quatre dernières sauvegardes du vendredi sont toujours disponibles. • Une fois par trimestre, recyclage de toutes les disquettes mensuelles, excepté celles du dernier mois. Conservez indéfiniment la dernière disquette de chaque mois, éventuellement dans un lieu distinct. Vérifiez les systèmes de fichiers avant de les sauvegarder Une sauvegarde effectuée sur un système de fichiers endommagé sera probablement inutilisable. Avant d’effectuer une sauvegarde, prenez l’habitude de vérifier l’intégrité du système de fichiers à l’aide de la commande fsck. Vérifiez que les fichiers que vous sauvegardez ne sont pas en cours d’utilisation. Le système ne doit pas être en cours d’exploitation lorsque vous lancez vos sauvegardes. Si c’est le cas, les fichiers risquent d’être modifiés, et votre sauvegarde de ne pas être à jour. Sauvegardez votre système avant d’y effectuer des changements majeurs. 9-2 AIX Guide de l’utilisateur - Système d’exploitation et unités Il est toujours plus prudent de sauvegarder l’intégralité du système avant de tester un élément matériel, de procéder à une réparation ou d’installer des nouvelles unités, de nouveaux programmes ou autres. Divers Lorsque vous planifiez et implémentez une stratégie de sauvegarde, n’oubliez pas les points suivants : • La fréquence de modification des données. Les données du système d’exploitation ne changent pas très souvent ; il n’est donc pas nécessaire d’en effectuer une sauvegarde régulière. Les données utilisateur, à l’inverse, sont généralement souvent modifiées et vous devez les sauvegarder en conséquence. • Le nombre d’utilisateurs sur le système. Le volume à sauvegarder et la fréquence des sauvegarde en dépendent directement. • La difficulté de recréer les données. Vous devez savoir qu’il est impossible de recréer certaines données s’il n’y a pas de sauvegarde. Ainsi, une stratégie de sauvegarde afin de conserver vos données revêt une importance capitale. En évaluant les besoins de votre site, vous pourrez identifier la méthode de sauvegarde la mieux adaptée à vos besoins. Prévoyez des sauvegardes fréquentes et régulières des données utilisateurs. Recouvrer des données perdues peut s’avérer difficile si vous n’avez pas défini de stratégie de sauvegarde. Supports de stockage Il existe différents types de supports de stockage. Les supports disponibles dépendent de la configuration matérielle et logicielle de votre système. Les supports les plus utilisés sont les disquettes 5 1/4 pouces, les bandes 8 mm, les bandes 9 pistes et les disquettes 3 1/2 pouces. Avertissement : Exécuter la commande backup détruit toutes les données antérieurement stockées sur le support de sauvegarde sélectionné. Disquettes Les disquettes sont le support de sauvegarde standard. C’est-à-dire que, sauf spécification autre de votre part via la commande backup –f, la commande backup envoie automatiquement sa sortie vers l’unité /dev/rfd0, à savoir l’unité de disquette. Pour effectuer une sauvegarde sur l’unité de bande par défaut, indiquez /dev/rmt0 et appuyez sur Entrée. Maniez les disquettes avec soin. Chaque élément d’information occupe un espace tellement infime que la moindre rayure, poussière, miette, particule de tabac... peut rendre l’information inutilisable. N’oubliez pas les points suivants : • Ne touchez pas les surfaces d’enregistrement. • Conservez les disquettes à l’abri de toute source de champ magnétique et électromagnétique (téléphone, dictaphone, calculatrice, etc.). • Evitez les températures extrêmes (plage recommandée : entre 10_C et 60_C). • Prenez soin des disquettes pour prévenir toute perte de données. • Effectuez régulièrement des copies de sauvegarde. Avertissement : Disquettes et unité de disquette doivent être du même type, faute de quoi vous risquez de perdre des données. Si vous introduisez une disquette incorrecte dans l’unité de disquette 3 1/2 pouces, les données de la disquette risquent d’être détruites. Les disquettes 3 1/2 pouces compatibles sont les suivantes : • 1 Mo de capacité (soit 720 Ko de données) • 2 Mo de capacité (soit 1,44 Mo de données) Fichiers de sauvegarde et supports de stockage 9-3 Bandes En raison de leurs grandes capacités et de leur durée de vie importante, elles sont souvent utilisées lorsqu’il s’agit de stocker des fichiers volumineux ou des ensembles de fichiers (archivage de systèmes de fichiers, par exemple). Elles servent également à transférer des fichiers d’un système à un autre. Elles sont en revanche peu adaptées au stockage des fichiers souvent utilisés, d’autres supports offrant des temps d’accès bien inférieurs. Les fichiers bande sont créés via des commandes telles que backup, cpio et tar, qui ouvrent une unité de bande, y écrivent des données et la ferment. 9-4 AIX Guide de l’utilisateur - Système d’exploitation et unités Formatage de disquettes (commande format ou fdformat) Avertissement : Le formatage d’une disquette détruit toutes les données qu’elle contient. Vous pouvez formater des disquettes dans l’unité spécifiée par le paramètre Unité (/dev/rfd0, par défaut) via les commandes format et fdformat. La commande format détermine le type d’unité de disquette : • Disquette 5,25 pouces à faible densité (360 Ko) comprenant 40 x 2 pistes, de 9 secteurs chacune • Disquette 5,25 pouces à haute densité (1,2 Mo) comprenant 80 x 2 pistes, de 15 secteurs chacune • Disquette 3,5 pouces à faible densité (720 Ko) comprenant 80 x 2 pistes, de 9 secteurs chacune • Disquette 3,5 pouces à haute densité (2,88 Mo) comprenant 80 x 2 pistes, de 36 secteurs chacune Tous les secteurs ont une taille de 512 octets (quel que soit le type de disquette). Sauf spécification contraire via le paramètre Unité, la commande format formate une disquette en haute densité. De même, la commande fdformat formate une disquette en faible densité, sauf si l’indicateur –h est spécifié. Le paramètre Unité indique l’unité où se trouve la disquette à formater (/dev/rfd0 pour l’unité 0, par exemple). Avant de formater une disquette, les commandes format et fdformat demandent confirmation. Vous pouvez ainsi annuler l’opération au besoin. Par exemple, pour formater une disquette dans l’unité /dev/rfd0, entrez : format –d /dev/rfd0 Appuyez sur Entrée. Par exemple, pour formater une disquette sans vérifier les secteurs, entrez : format –f Appuyez sur Entrée. Par exemple, pour formater une disquette 360 Ko dans une unité 5 1/4 pouces, 1,2 Mo de l’unité /dev/rfd1, entrez : format –l –d /dev/rfd1 Appuyez sur Entrée. Par exemple, pour forcer le formatage en haute densité d’une disquette avec la commande fdformat, entrez : fdformat –h Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande format dans le manuel AIX 5L Version 5.2 Commands Reference. Fichiers de sauvegarde et supports de stockage 9-5 Vérification de l’intégrité du système de fichiers (commande fsck) La commande fsck permet de vérifier et de remédier interactivement aux incohérences des systèmes de fichiers. Il convient de l’exécuter sur tous les systèmes de fichiers dans le cadre de l’initialisation du système. Vous devez pouvoir lire le fichier unité sur lequel réside le système de fichiers (unité /dev/hd0, par exemple). Généralement, le système de fichiers est cohérent et la commande se contente d’indiquer le nombre de fichiers, de blocs utilisés et de blocs libres. Dans le cas contraire, la commande fsck signale les incohérences et vous demande l’autorisation d’y remédier. La commande fsck tente de corriger l’anomalie en évitant toute action susceptible de provoquer une perte de données valides. Dans certains cas, toutefois, la commande fsck recommande la destruction d’un fichier endommagé. Avertissement : Lancez toujours la commande fsck après un incident système. L’intervention peut détruire quelques données. L’intervention par défaut pour chaque correction consiste à attentre que l’opérateur entre yes ou no. Si vous ne détenez pas le droit d’écriture sur un fichier endommagé, la commande fsck considère que votre réponse est négative (no). Par exemple, pour vérifier tous les systèmes de fichiers par défaut, entrez : fsck Appuyez sur Entrée. Sous cette forme, la commande fsck vous demande confirmation avant toute modification sur un système de fichiers. Par exemple, pour corriger automatiquement les problèmes mineurs sur tous les systèmes de fichiers par défaut, entrez : fsck –p Appuyez sur Entrée. Par exemple, pour vérifier le système de fichiers /dev/hd1, entrez : fsck /dev/hd1 Appuyez sur Entrée. Le système de fichiers non monté se trouvant sur l’unité /dev/hd1 est vérifié. Remarque : La commande fsck n’opère aucune correction sur un système de fichiers monté. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande fsck dans le manuel AIX 5L Version 5.2 Commands Reference. 9-6 AIX Guide de l’utilisateur - Système d’exploitation et unités Copie vers et à partir de disquettes (commande flcopy) Vous pouvez copier une disquette (ouverte en tant que /dev/rfd0) vers un fichier nommé floppy créé dans le répertoire en cours avec la commande flcopy. Le message : Change floppy, hit return when done s’affiche si nécessaire. La commande flcopy copie alors le fichier floppy sur la disquette. Par exemple, pour copier /dev/rfd1 sur le fichier floppy dans le répertoire en cours, tapez : flcopy –f /dev/rfd1 –r Appuyez sur Entrée. Par exemple, pour copier les 100 premières pistes de la disquette, tapez : flcopy –f /dev/rfd1 –t 100 Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande flcopy dans le manuel AIX 5L Version 5.2 Commands Reference. Copie de fichiers sur bande ou disque (commande cpio –o) La commande cpio –o permet de lire les chemins d’accès aux fichiers sur l’unité d’entrée standard et de copier ces fichiers sur l’unité de sortie standard, avec chemins d’accès et informations d’état. Les noms de chemins ne peuvent pas avoir plus de 128 caractères. Evitez de fournir à la commande cpio des noms de chemins composés uniquement de fichiers liés. Pour peu que la mémoire soit insuffisante, les informations de liaison et les noms de chemins risqueraient d’être perdues. Par exemple, pour copier sur disquette les fichiers du répertoire courant, suffixés .c, entrez : ls *.c | cpio –ov >/dev/rfd0 Appuyez sur Entrée. L’indicateur –v affiche le nom de chaque fichier. Par exemple, pour copier sur disquette le répertoire courant et tous ses sous-répertoires, entrez : find . –print | cpio –ov >/dev/rfd0 Appuyez sur Entrée. L’arborescence dont le sommet est le répertoire courant (.) est sauvegardée, avec tous ses sous-répertoires et ses fichiers. Pour utiliser une chaîne de commande plus courte, tapez : find . –cpio /dev/rfd0 –print Appuyez sur Entrée. L’entrée –print affiche le nom de chaque fichier au fur et à mesure qu’il est copié. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande cpio dans le manuel AIX 5L Version 5.2 Commands Reference. Fichiers de sauvegarde et supports de stockage 9-7 Copie de fichiers à partir d’une bande ou d’un disque (commande cpio –i) La commande cpio –i lit à partir de l’entrée standard un fichier d’archive créé par la commande cpio –o et copie à partir de celui–ci les fichiers dont les noms correspondent au paramètre Modèle. Ces fichiers sont copiés dans l’arborescence de répertoires en cours. Il est possible d’indiquer plusieurs paramètre Modèle, en respectant la notation de noms de fichiers décrite dans la commande ksh. La valeur par défaut du paramètre Modèle est un astérisque, qui sélectionne tous les fichiers dans le répertoire en cours. Dans une expression telle que [a–z], le tiret (–) signifie jusqu’à, conformément à la séquence de tri en cours. Remarque : Les modèles ”*.c” et ”*.o” doivent être placés entre guillemets pour éviter que le shell ne traite l’astérisque comme caractère joker. Il s’agit d’un cas particulier dans lequel la commande cpio elle–même décode le caractère joker. Par exemple, pour afficher la liste des fichiers qui ont été enregistrés sur une disquette avec la commande cpio, tapez : cpio –itv </dev/rfd0 Appuyez sur Entrée. Cette commande affiche la table des matières des données préalablement enregistrées dans le fichier /dev/rfd0 dans le format de la commande cpio. La liste est semblable à la liste de répertoire longue produite par la commande ls –l. Pour n’afficher que les noms de chemin des fichiers, n’employez que les paramètres –it. Par exemple, pour copier à partir d’une disquette les fichiers préalablement enregistrés avec la commande cpio, tapez : cpio –idmv </dev/rfd0 Appuyez sur Entrée. Cette commande copie les fichiers préalablement enregistrés dans le fichier /dev/rfd0 par la commande cpio dans le système de fichiers (spécifiez le paramètre –i). Le paramètre –d permet à la commande cpio de créer les répertoires appropriés si une arborescence de répertoires est enregistrée. Le paramètre –m conserve la dernière heure de modification qui était en vigueur au moment de la sauvegarde des fichiers. Le paramètre –v entraîne l’affichage des noms des fichiers au fur et à mesure qu’ils sont copiés. Par exemple, pour copier certains fichiers à partir d’une disquette, tapez : cpio –i ”*.c” ”*.o” </dev/rfd0 Appuyez sur Entrée. Cette commande copie les fichiers se terminant par .c ou .o à partir d’une disquette. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande cpio dans le manuel AIX 5L Version 5.2 Commands Reference. 9-8 AIX Guide de l’utilisateur - Système d’exploitation et unités Copie de et sur des bandes (commande tcopy) La commande tcopy permet de copier des bandes magnétiques. Par exemple, pour copier à partir d’une bande continue sur une bande 9 pistes, entrez : tcopy /dev/rmt0 /dev/rmt8 Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande tcopy dans le manuel AIX 5L Version 5.2 Commands Reference. Vérification de l’intégrité d’une bande (commande tapechk) Vous pouvez effectuer un contrôle de cohérence rudimentaire sur une unité de bande connectée à l’aide de la commande tapechk. Certains dysfonctionnements d’une unité de bande peuvent être détectés simplement en lisant une bande. La commande tapechk offre une solution pour effectuer des lectures de bande au niveau fichier. Par exemple, pour vérifier les trois premiers fichiers sur une unité de bande, tapez : tapechk 3 Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande tapechk dans le manuel AIX 5L Version 5.2 Commands Reference. Fichiers de sauvegarde et supports de stockage 9-9 Compression des fichiers (commandes compress et pack) Vous pouvez comprimer les fichiers à des fins de stockage avec la Commandes compress et pack et utilisation des commandes uncompress et unpack pour décompresser les fichiers restaurés. Le processus de compression et de décompression de fichiers prend du temps mais, une fois compressées, les données prennent moins de place sur le support de stockage. Pour comprimer un système de fichiers, utilisez l’une des méthodes suivantes : • L’option –p associée à la commande backup. • Les commandes compress et pack. La nécessité de comprimer les fichiers est en général due à deux catégories de raisons : • Economie d’espace de stockage et archivage des ressources système : – Compression des systèmes de fichiers avant d’effectuer des sauvegardes pour économiser l’espace sur bande. – Compression des fichiers journaux créés par les shell scripts qui fonctionnent la nuit ; il est simple de faire compresser le fichier par le script avant qu’il ne se termine. – Compression des fichiers ne faisant l’objet d’aucun accès. Par exemple, les fichiers appartenant à utilisateur qui est absent pour une période prolongée peuvent être compressés et placés dans une archive tar sur disque ou sur bande afin d’être restaurés ultérieurement. • Economie financière et gain de temps, du fait de la compression des fichiers avant leur envoi sur un réseau. Remarques : 1. La commande compress peut se trouver à court d’espace de travail dans le système de fichiers pendant la compression. La commande compress crée les fichiers compressés avant de supprimer tout fichier décompressé. Elle a donc besoin d’un espace de travail représentant 50 % de place supplémentaire par rapport à la taille totale des fichiers. 2. La compression d’un fichier peut échouer parce qu’il est déjà compressé. Si la commande compress ne peut réduire la taille des fichiers, elle échoue. Utilisation de la commande sendmail La commande compress réduit la taille des fichiers à l’aide du codage adaptatif Lempel–Zev. Chaque fichier original spécifié par le paramètre Fichier est remplacé par un fichier compressé au nom duquel est ajouté le suffixe .Z. Le fichier compressé conserve les caractéristiques suivantes du fichier original : propriétaire, modes, heures d’accès et de modification. Si aucun fichier n’est spécifié, l’entrée standard est compressée vers la sortie standard. Si la compression ne permet pas de réduire la taille d’un fichier, un message est envoyé vers la sortie d’erreur standard et le fichier d’origine n’est pas remplacé. Les fichiers compressés peuvent être restaurés dans leur forme d’origine à l’aide de la commande uncompress. Le degré de compression dépend de la taille du fichier d’entrée, du nombre de bits par code spécifié par la variable Bits, et de la fréquence de chaînes communes. En général le code source ou le texte anglais sont réduits de 50 à 60 %. La compression produite par la commande compress est généralement plus compacte et nécessite moins de temps de calcul que celle de la commande pack, qui utilise le codage adptatif Huffman. Par exemple, pour compresser le fichier foo et écrire le pourcentage de compression sur la sortie d’erreur standard, tapez : compress –v foo 9-10 AIX Guide de l’utilisateur - Système d’exploitation et unités Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande compress dans le manuel AIX 5L Version 5.2 Commands Reference. Utilisation de la commande pack La commande pack enregistre le ou les fichiers spécifiés par le paramètre Fichier sous une forme compressée, à l’aide du codage Huffman. Le fichier d’entrée est remplacé par un fichier compressé dont le nom est dérivé du nom de fichier d’origine (Fichier.z), et qui possède les mêmes modes d’accès, dates d’accès et de modification, et propriétaire que le fichier d’origine. Le nom du fichier d’entrée ne peut comporter plus de 253 octets, afin de permettre l’ajout du suffixe .z. Si la commande pack réussit, le fichier d’origine est supprimé. Les fichiers compressés peuvent être restaurés dans leur forme d’origine à l’aide de la commande unpack. Si la commande pack ne peut pas créer un fichier plus petit, elle cesse son traitement et signale qu’elle ne peut économiser de l’espace. (L’impossibilité de gagner de la place se produit généralement avec les fichiers de petite taille, ou ceux ayant une distribution de caractères uniforme.) Le gain d’espace réel dépend de la taille du fichier d’entrée et de la fréquence de distribution des caractères. Du fait qu’un arbre de décodage constitue la première partie de chaque fichier .z, vous ne gagnez pas de place avec les fichiers inférieurs à trois blocs. En général, les fichiers texte sont réduits de 25 à 40 %. La valeur de sortie de la commande pack est le nombre de fichiers qu’elle n’a pas pu compresser. La compression n’est pas effectuée dans les cas suivants : • Le fichier est déjà compressé. • Le nom du fichier d’entrée possède plus de 253 octets. • Le fichier contient des liens. • Le fichier est un répertoire. • Le fichier ne peut être ouvert. • La compression n’économise pas de blocs de stockage. • Un fichier nommé Fichier.z existe déjà. • Le fichier.z ne peut pas être créé. • Une erreur d’E/S s’est produite pendant le traitement. Par exemple, pour compresser les fichiers chap1 et chap2, tapez : pack chap1 chap2 Appuyez sur Entrée. Cette commande comprime chap1 et chap2, et les remplace par des fichiers nommés chap1.z et chap2.z. La commande pack affiche le pourcentage de diminution de taille de chaque fichier. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande pack dans le manuel AIX 5L Version 5.2 Commands Reference. Fichiers de sauvegarde et supports de stockage 9-11 Décompression de fichiers (commandes uncompress et unpack) Vous pouvez décompresser des fichiers à l’aide des commandes uncompress et unpack. Utilisation de la commande uncompress La commande uncompress permet de décompresser les fichiers précédemment compressés par la commande compress. Tout fichier compressé spécifié par la variable Fichier est remplacé par sa version développée. Cette version porte le même nom que la version compressée, sans l’extension .Z. Ce fichier conserve les attributs du fichier d’origine (propriétaire, droits d’accès, date et heure de dernière modification, etc.). A défaut de fichier(s) spécifié(s), l’entrée standard est décompressée sur la sortie standard. Semblable à la commande uncompress, la commande zcat écrit toujours la sortie développée sur l’unité de sortie standard. Par exemple, pour décompresser le fichier foo, entrez : uncompress foo Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande uncompress dans le manuel AIX 5L Version 5.2 Commands Reference. Utilisation de la commande unpack La commande unpack décompresse les fichiers créés par la commande pack. Pour chaque fichier spécifié, la commande unpack recherche le fichier Fichier.z compressé. Si le fichier est comprimé, unpack le remplace par sa version décompressée. La commande unpack renomme le nouveau fichier en supprimant le suffixe .z de Fichier. Le nouveau fichier conserve les attributs du fichier d’origine (propriétaire, modes, heures d’accès et de modification, etc.). La commande unpack n’opère que sur les fichiers suffixés .z. Aussi, si vous spécifiez un nom de fichier ne se terminant pas par .z, la commande lui ajoute le suffixe et recherche un fichier avec ce suffixe. La valeur en sortie de la commande unpack est le nombre de fichiers qu’elle n’a pu décompresser. Vous ne pouvez pas décompresser un fichier quand : • Le nom du fichier (hors extension .z) dépasse 253 octets. • Le fichier ne peut être ouvert. • Le fichier n’est pas compressé. • Un fichier décompressé portant le même nom existe déjà. • Le fichier décompressé ne peut être créé. Remarque : La commande unpack inscrit un avertissement sur l’unité de sortie standard si le fichier qu’elle décompresse est doté de liens. Le fichier nouvellement décompressé est affecté d’un numéro d’i–node (nœud d’index) différent du fichier compressé d’origine. Toutefois, les autres fichiers liés à l’i-node du fichier compressé d’origine existent toujours et sont toujours comprimés. 9-12 AIX Guide de l’utilisateur - Système d’exploitation et unités Par exemple, pour décompresser les fichiers chap1.z et chap2, entrez : unpack chap1.z chap2 Appuyez sur Entrée. Les fichiers chap1.z et chap2.z sont décompressés et remplacés par les fichiers chap1 et chap2. Notez que vous pouvez utiliser la commande unpack avec des noms de fichiers comprenant ou pas le suffixe .z. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande unpack dans le manuel AIX 5L Version 5.2 Commands Reference. Fichiers de sauvegarde et supports de stockage 9-13 Sauvegarde de fichiers (commande backup) Avertissement : Toute tentative de sauvegarde d’un système de fichiers monté génère un message d’avertissement. La commande backup poursuit son traitement mais il peut en résulter des incohérences dans le système de fichiers. Cet avertissement ne concerne pas le système de fichiers racine (/). Vous pouvez créer des copies de vos fichiers sur des supports de stockage, tel qu’une bande magnétique ou une disquette, avec la commande backup ou smit. Ces copies respectent l’un des formats de sauvegarde suivants : • Fichiers spécifiques sauvegardés par noms, via l’indicateur –i. • Intégralité de systèmes de fichiers sauvegardés par numéros d’i-node, via les paramètres –Level et FileSystem. Remarques : 1. Il y a toujours un risque d’endommagement des données lorsqu’un fichier est modifié pendant la sauvegarde du système. Réduisez donc au minimum les activités sur le système pendant la procédure de sauvegarde. 2. Si vous effectuez une sauvegarde sur bande 8 mm alors que la taille de bloc de l’unité est défini à 0 (zéro), il sera impossible de procéder à une restauration directement à partir de la bande. Dans ce cas, reportez-vous aux procédures spéciales décrites à la section concernant la commande restore. Avertissement : Vérifiez que les indicateurs que vous spécifiez sont compatibles avec les supports de sauvegarde. Utilisation de la commande backup Par exemple, pour sauvegarder par noms des fichiers de votre répertoire $HOME, entrez : find $HOME –print | backup –i –v Appuyez sur Entrée. L’indicateur –i précise au système de lire sur l’entrée standard les noms des fichiers à sauvegarder. La commande find génère la liste des fichiers du répertoire de l’utilisateur. Cette liste devient, par chaînage, l’entrée standard de la commande backup. L’indicateur –v affiche un état de la progression de la sauvegarde. Les fichiers sont sauvegardés sur l’unité de sauvegarde par défaut du système local. Par exemple, pour sauvegarder le système de fichiers racine, entrez : backup –0 –u / Appuyez sur Entrée. Le niveau (0) et la barre oblique (/) instruisent le système qu’il s’agit de sauvegarder le système de fichiers racine (/). La sauvegarde a lieu dans le fichier /dev/rfd0. L’indicateur –u signifie au système qu’il doit mettre à jour l’article relatif au niveau de sauvegarde courant, dans le fichier /etc/dumpdates. Par exemple, pour sauvegarder tous les fichiers du système de fichiers racine (/), modifiés depuis la dernière sauvegarde de niveau 0, entrez : backup –1 –u / Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande backup dans le manuel AIX 5L Version 5.2 Commands Reference. 9-14 AIX Guide de l’utilisateur - Système d’exploitation et unités Utilisation de la commande smit Vous pouvez également utiliser la commande smit pour exécuter la commande backup. 1. A l’invite, tapez : smit backup Appuyez sur Entrée. 2. Entrez le chemin d’accès au répertoire sur lequel est normalement monté le système de fichiers, dans le champ chemin d’accès complet au REPERTOIRE : /home/bill Appuyez sur Entrée. 3. Dans les champs Unité de SAUVEGARDE ou FICHIER, entrez le nom de l’unité de sortie (ci–dessous le nom d’une unité de bande magnétique) : /dev/rmt0 Appuyez sur Entrée. 4. Appuyez sur Tab pour basculer la valeur du champ facultatif SIGNALEMENT de chaque étape de la sauvegarde, si vous souhaitez afficher des messages d’erreur. 5. Dans un environnement de gestion de système, observez la valeur par défaut du champ nombre MAX. de blocs à écrire sur la sauvegarde : ce champ ne concerne pas les sauvegardes sur bande. 6. Appuyez sur Entrée pour sauvegarder le répertoire ou le système de fichiers nommé. 7. Exécutez la commande restore –t. Si elle génère un message d’erreur, la sauvegarde est à recommencer. Fichiers de sauvegarde et supports de stockage 9-15 Restauration de fichiers (commande restore) Les commandes restore et smit permettent de lire les fichiers sauvegardés sur un support par la commande backup et de les restaurer sur le système local. Remarques : 1. La restauration doit être effectuée par la même méthode que celle utilisée pour la sauvegarde. Par exemple, un système de fichiers sauvegardé par noms doit être restauré par noms. 2. Lorsque la sauvegarde occupe plusieurs disquettes, la commande restore lit la disquette qui est montée, puis vous invite à insérer la suivante. Appuyez sur Entrée une fois la disquette insérée, pour poursuivre la restauration. Utilisation de la commande restore Par exemple, pour afficher la liste des fichiers précédemment sauvegardés, entrez : restore –T Appuyez sur Entrée. Les informations sont lues à partir de l’unité de sauvegarde par défaut /dev/rfd0. S’il s’agit de fichiers isolés, seul leur nom est affiché. S’il s’agit de systèmes de fichiers entiers, leur numéro d’i-node apparaît également. Par exemple, pour restaurer des fichiers sur le système de fichiers principal, entrez : restore –x –v Appuyez sur Entrée. L’indicateur –x extrait tous les fichiers des supports de sauvegarde et les restaure à leur place dans le système de fichiers. L’indicateur –v affiche un état de la progression des opérations à mesure que les fichiers sont restaurés. Dans le cas de la restauration d’un système de fichiers tout entier, les fichiers sont affichés avec leur numéro d’i-node. Sinon, seul leur nom est affiché. Par exemple, pour copier le fichier /home/mike/manual/chap1, entrez : restore –xv /home/mike/manual/chap1 Appuyez sur Entrée. Cette commande extrait le fichier /home/mike/manual/chap1 sur le support de sauvegarde et le restaure. Le nom /home/mike/manual/chap1 doit pouvoir être affiché par la commande restore –T. Par exemple, pour copier tous les fichiers dans le répertoire manual, entrez : restore –xdv manual Appuyez sur Entrée. Le répertoire manual et les fichiers qu’il contient sont restaurés. Si le répertoire n’existe pas, un répertoire nommé manual est créé dans le répertoire courant pour contenir les fichiers en cours de restauration. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande restore dans le manuel AIX 5L Version 5.2 Commands Reference. 9-16 AIX Guide de l’utilisateur - Système d’exploitation et unités Utilisation de la commande smit Vous pouvez également utiliser la commande smit pour exécuter la commande restore. 1. A l’invite, tapez : smit restore Appuyez sur Entrée. 2. Renseignez la zone REPERTOIRE cible. Il s’agit du répertoire dans lequel vous souhiatez que les fichiers soient restaurés. 3. Passez au champ UNITE ou FICHIER DE SAUVEGARDE, entrez le nom de l’unité de sortie (ci–dessous le nom d’une unité de bande magnétique) : /dev/rmt0 Si l’unité n’est pas disponible, un message semblable au suivant s’affiche : Cannot open /dev/rmtX, no such file or directory. Ce message indique que le système ne peut pas contacter le pilote de l’unité car il n’y a pas de fichier correspondant à rmtX dans le répertoire /dev. Seuls les éléments dont l’état est disponible sont dans le répertoire /dev. 4. Pour le champ NBRE de blocs à lire en une entrée, nous vous conseillons de conserver la valeur par défaut. 5. Appuyez sur Entrée pour restaurer le système de fichiers ou le répertoire spécifié. Fichiers de sauvegarde et supports de stockage 9-17 Archivage de fichiers (commande tar) La sauvegarde d’archivage est une autre méthode de sauvegarde que vous pouvez utiliser. Elle permet d’archiver une copie d’un ou de plusieurs fichiers, ou d’une base de données, pour un usage ultérieur, à des fins d’historique ou pour recouvrer les données en cas de perte ou de détérioration. En général, vous avez recours à cette méthode pour sauvegarder des données qui vont être supprimées du système. La commande tar permet d’écrire des fichiers dans un fichier archive ou de les extraire. Sauf spécification contraire, la commande tar recherche les archives sur l’unité par défaut (bande, généralement). Lorsque vous écrivez dans un fichier archive, la commande tar passe par un fichier temporaire (/tmp/tar*) et garde en mémoire une table des fichiers dotés de plusieurs liens. Un message d’erreur est émis si la commande tar ne peut créer ce fichier temporaire ou que la mémoire disponible est insuffisante pour contenir les tables de liens. Par exemple, pour écrire les fichiers file1 et file2 dans un nouveau fichier archive, sur l’unité de bande par défaut, entrez : tar –c file1 file2 Appuyez sur Entrée. Pour extraire tous les fichiers du répertoire /tmp du fichier archive de l’unité de bande /dev/rmt2, et imputer la durée de l’opération au temps de modification, entrez : tar –xm –f/dev/rmt2 /tmp Appuyez sur Entrée. Pour afficher le nom des fichiers du fichier archive sur disque out.tar, à partir du répertoire courant, entrez : tar –vtf out.tar Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande tar dans le manuel AIX 5L Version 5.2 Commands Reference. 9-18 AIX Guide de l’utilisateur - Système d’exploitation et unités Récapitulatif des commandes relatives à la sauvegarde sauvegarde Sauvegarde des fichiers et des systèmes de fichiers. compress Compresse et décompresse des données. cpio Copie des fichiers vers et à partir de supports de stockage et de répertoires. fdformat Formate des disquettes. flcopy Copie de et sur disquettes. format Formate des disquettes. fsck Vérifie la cohérence du système de fichiers et remédie aux problèmes en mode interactif. pack Compresse des fichiers. restore Copie des fichiers ou des systèmes de fichiers, préalablement sauvegardés via la commande backup, à partir d’une unité locale. tapechk Contrôle le dérouleur de bande en continu. tar Manipule les archives. tcopy Copie une bande magnétique. uncompress Compresse et décompresse des données. unpack Décompresse des fichiers. Voir aussi Généralités, page 4-3 Processus : Généralités, page 4-13 Réacheminement des entrées/sorties, page 5-1 Système de fichiers, page 6-2 Répertoires : généralités, page 6-6 Fichiers, page 7-1 Sécurité du système et des fichiers, page 10-1 Fichiers de sauvegarde et supports de stockage 9-19 9-20 AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 10. Sécurité du système et des fichiers Cette protection s’applique aux informations stockées sur un ordinateur, précieuses à plusieurs titres. La sécurité informatique doit répondre à un triple objectif : Intégrité La valeur d’une information dépend de sa fiabilité. Des données modifiées à mauvais escient perdent tout ou partie de leur intérêt. Confidentialité La valeur de beaucoup d’informations tient au fait qu’elles sont secrètes. Disponibilité Les informations doivent être disponibles. Il est bon de planifier et de mettre en œuvre votre stratégie en matière de sécurité avant de commencer à exploiter votre système. Il est en effet très long de la modifier après coup : mieux vaut donc prévenir que guérir. Ce chapitre traite des points suivants : • Menaces sur la sécurité, page 10-2 • Propriété des fichiers et groupes d’utilisateurs, page 10-4 • – Changement du propriétaire d’un fichier ou d’un répertoire (commande chown), page 10-4 – Modes d’accès aux fichiers et aux répertoires, page 10-4 – Affichage d’informations sur le groupe (commande lsgroup), page 10-6 – Modification des droits d’accès aux fichiers et aux répertoires (commande chmod), page 10-8 Listes de contrôle des accès (ACL), page 10-10 – Droits d’accès de base, page 10-10 – Droits d’accès étendus, page 10-11 – Exemple de liste de contrôle des accès, page 10-11 – Autorisations d’accès, page 10-12 – Affichage des informations de contrôle des accès (commande aclget), page 10-13 – Définition du contrôle des accès (commande aclput), page 10-13 – Modification des informations de contrôle des accès (commande acledit), page 10-14 • Verrouillage du terminal (commande lock ou xlock), page 10-14 • Récapitulatif des commandes relatives à la sécurité, page 10-15 Sécurité du système et des fichiers 10-1 Menaces sur la sécurité Les types de comportement suivants sont susceptibles de porter atteinte à la sécurité d’un système: Négligence La sécurité des informations est souvent mise à mal par simple négligence des utilisateurs autorisés : si vous divulguez votre mot de passe, aucun mécanisme de sécurité, aussi sophistiqué soit-il, ne pourra empêcher un accès illégal à votre compte et à vos données. Indiscrétion Nombre de problèmes de sécurité sont le fait d’indiscrets utilisateurs autorisés explorant le système à la recherche de données mal protégées. Pénétration Il s’agit là d’une “attaque” délibérée contre le système. Il s’agit souvent d’une pénétration effectuée par quelqu’un ayant étudié de près les protections en place et ayant réussi à en déceler les failles. Bien que la pénétration dans un système représente généralement la plus grande menace à la sécurité des informations, ne sous–estimez pas les problèmes engendrés par la négligence ou l’indiscrétion. Sécurité de base Voici quelques règles de base, applicables à tous les systèmes, pour assurer une sécurité minimale : Sauvegardes Si vous disposez d’une sauvegarde à jour du système, vous êtes armé pour faire face sans trop de dégâts à un problème système. Des sauvegardes physiquement sûres, fiables et à jour sont un élément de sécurité essentiel. Votre stratégie de sauvegarde doit être documentée, avec notamment des informations concernant: • la fréquence des sauvegardes, • le type de sauvegarde (système, données, par incréments), • le mode de contrôle des bandes de sauvegarde, • le mode de stockage des bandes de sauvegarde. Pour en savoir plus, reportez–vous à ”Fichiers de sauvegarde et supports de stockage, page 9-1”. Identification et authentification Identification et authentification établissent votre identité. Vous êtes invité à vous connecter à votre système. Pour cela, vous devez fournir votre nom utilisateur et, éventuellement, un mot de passe (sur un système sûr, tous les comptes non affectés d’un mot de passe doivent être invalidés). Si le mot de passe est correct, vous accédez au compte correspondant et disposez des droits et des privilèges afférents. Le mot de passe étant l’unique protection de votre compte, choisissez–le bien et protégez–le des indiscrétions. Tenter de deviner un mot de passe est souvent la base d’une tentative d’accès illégal. Pour une protection efficace des mots de passe, il n’y aucune confusion entre les données de sécurité et les données utilisateur. Les mots de passe, codés, et les autres données de sécurité se trouvent dans le fichier /etc/security/passwd. Ce fichier ne doit être accessible que par l’utilisateur root : en restreignant ainsi cet accès, un utilisateur malveillant ne peut décrypter les mots de passe via un programme qui boucle sur un ensemble de mots de passe possibles. Il reste possible de deviner un mot de passe en tentant la connexion à un compte : si le mot de passe est banal ou qu’il n’est pas modifié assez souvent, l’opération risque d’aboutir. 10-2 AIX Guide de l’utilisateur – Système d’exploitation et unités ID de connexion Le système d’exploitation identifie également les utilisateurs par leur ID de connexion. Cet ID permet au système de suivre toutes les actions d’un utilisateur. Après connexion d’un utilisateur, mais avant l’exécution de son programme initial, le système affecte l’ID de connexion du process à l’ID utilisateur dans la base de données. Tous les process suivants de la session sont affectés de cet ID. Il est ainsi possible de garder trace de toutes les activités exécutées sous cet ID. Au cours d’une session, un utilisateur peut modifier son ID utilisateur effectif, son ID utilisateur réel, son ID groupe effectif, son ID groupe réel et l’ID groupe complémentaire, mais non son ID de connexion. Terminaux sans surveillance Tous les systèmes sont vulnérables si des terminaux sont laissés connectés sans surveillance. Le cas le plus grave étant celui d’un administrateur laissant sans surveillance son terminal connecté sous l’identité de l’utilisateur root. En règle générale, les utilisateurs doivent se déconnecter avant d’abandonner leur terminal. Vous pouvez forcer un terminal à se déconnecter après une période d’inactivité en réglant les paramètres TMOUT et TIMEOUT dans le fichier de profile profile /etc/. Le paramètre TMOUT fonctionne dans le shell (Korn) ksh et le paramètre TIMEOUT fonctionne dans le shell (Bourne) bsh . Pour de plus amples informations sur la commande TMOUT, reportez–vous à Substitution de paramètres (shell Korn ou POSIX), page 12-22. Pour de plus amples informations sur la commande TIMEOUT, reportez–vous à Substitution de variables (shell Bourne), page 12-84. L’exemple suivant, extrait d’un fichier .profile force le terminal à se désactiver après une heure d’inactivité : TO=3600 echo ”Setting Autologout to $TO” TIMEOUT=$TO TMOUT=$TO export TIMEOUT TMOUT Remarque : Les utilisateurs peuvent remplacer les valeurs de TMOUT et TIMEOUT dans le fichier /etc/profile en spécifiant d’autres valeurs dans le fichier .profile dans votre répertoire personnel. Sécurité du système et des fichiers 10-3 Propriété des fichiers et groupes d’utilisateurs A l’origine, le propriétaire d’un fichier est identifié par l’ID de l’utilisateur ayant créé le fichier. C’est lui qui détermine qui peut lire, écrire (modifier) ou exécuter le fichier. La propriété peut être modifiée avec la commande chown. Chaque ID utilisateur est rattaché à un ID groupe unique. Les groupes sont créés par l’administrateur au moment de la configuration du système. Lorsqu’un fichier est créé, le système attribue des droits à l’ID de l’utilisateur créateur, à l’ID du groupe auquel il appartient et à un groupe dit autres, consisté de tous les autres utilisateurs. La commande id affiche votre ID utilisateur (UID), votre ID groupe (IP), et les noms de tous les groupes auxquels vous appartenez. Dans les listes de fichiers (comme les listes affichées par la commande ls ), les groupes d’utilisateurs sont toujours représentés dans l’ordre suivant : utilisateur, groupe et autres. Si vous avez besoin de trouver votre nom de groupe, la commande groupes affiche tous les groupe d’un ID utilisateur. Changement du propriétaire d’un fichier ou d’un répertoire (commande chown) Pour changer le propriétaire de vos fichiers, utilisez la commande chown. Lorsque l’option –R est spécifiée, la commande chown redescend de manière récursive dans la structure du répertoire à partir du répertoire spécifié. Chaque fois qu’elle rencontre un lien symbolique, le propriétaire du fichier ou du répertoire sur lequel pointe le lien est changé (la propriété du lien lui-même reste inchangée). Remarque : Seul l’utilisateur root est habilité à changer le propriétaire d’un fichier dont il n’est pas propriétaire. Les erreurs ne sont pas affichées lorsque l’option –f est spécifiée. Par exemple, pour modifier le propriétaire du fichier program.c, tapez : chown jim program.c Appuyez sur Entrée. Les droits d’accès utilisateur au fichier program.c s’appliquent à présent à jim. Comme le propriétaire, jim peut utiliser la commande chmod pour autoriser ou refuser l’accès à d’autres utilisateurs au fichier program.c. Reportez–vous à la commande chown dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Modes d’accès aux fichiers et aux répertoires Chaque fichier a un propriétaire. Il s’agit du créateur du fichier, pour les nouveaux fichiers. C’est lui qui définit le mode d’accès au fichier. Les modes d’accès déterminent les droits accordés aux autres utilisateurs sur ce fichier. Seuls le propriétaire d’un fichier ou l’utilisateur root peuvent modifier les droits d’accès à ce fichier. Il existe trois classes d’utilisateurs : utilisateur/propriétaire, groupe et tous les autres. Les droits accordés à ces classes d’utilisateurs sont une combinaison des trois modes: lecture, écriture et exécution. Lorsqu’un nouveau fichier est créé, les droits d’accès par défaut les droits d’accès en lecture, en écriture, et en exécution pour l’utilisateur qui a créé le fichier. Les deux autres groupes disposent des droits d’accès en lecture et en exécution. Le tableau ci–dessous illustre les droits accordés par défaut à chaque classe de groupes d’utilisateurs : 10-4 AIX Guide de l’utilisateur – Système d’exploitation et unités Classes Lecture Ecriture Exécution Propriétaire Oui Oui Oui Groupe Oui Non Oui Autres Oui Non Oui Le système détermine qui détient des droits et le niveau d’autorisation accordé pour chaque activité. Les modes d’accès sont représentés de manière symbolique et de manière numérique dans le système d’exploitation. Représentation symbolique des droits d’accès La représentation symbolique des droits d’accès est la suivante : r Droit de lecture : les utilisateurs sont autorisés à consulter le fichier. w Droit d’écriture : les utilisateurs sont autorisés à modifier le contenu du fichier. x Droit d’exécution : les utilisateurs sont autorisés à exécuter le fichier (il doit s’agir bien entendu d’un fichier exécutable, c’est-à-dire, le plus souvent d’un fichier contenant un programme). Pour les répertoires, ce droit donne la possibilité d’explorer leur contenu. Les modes d’accès des fichiers et des répertoires sont représentés par neuf caractères. Les trois premiers caractères représentent les droits d’accès en cours de Propriétaire, les trois caractères suivants représente les droits d’accès en cours de Groupe et les trois derniers caractères représentent les paramètres par défaut des droits d’accès des Autres. Un tiret (–) dans l’ensemble de neuf caractères indique qu’aucun droit d’accès n’est octroyé. Par exemple, un fichier avec un mode d’accès, rwxr–xr–x autorise la lecture et l’exécution aux trois groupes, mais les droits d’accès en écriture sont seulement octroyés au propriétaire du fichier. Il s’agit de la représentation symbolique des droits par défaut. La commande ls utilisée avec l’indicateur –l (L minuscule), fournit une liste détaillée du répertoire courant. Les 10 premiers caractères de la liste ls –l affiche le type du fichier et les droits d’accès pour chacun des trois groupes. La commande ls –l indique également le propriétaire et le groupe associés à chaque fichier et à chaque répertoire. Le premier caractère indique le type de fichier. Les neuf autres caractères comportent des informations de droits d’accès au fichier pour chacune des trois classes d’utilisateurs. Voici les types de fichiers possibles : – fichiers standard d répertoire b fichiers blocs spéciaux c fichiers caractères spéciaux p fichiers tubes spéciaux l liens symboliques s sockets Dans cet exemple, il s’agit d’un extrait de liste ls –l : –rwxrwxr–x 2 janet acct 512 Mar 01 13:33 january Le premier caractère le tiret (–) indique un fichier standard. Les neuf caractères suivants (rwxrwxr–x) représentent les modes d’accès de Utilisateur, Groupe et Autres, comme décrit auparavant. janet est le propriétaire du fichier et acct est le nom du groupe de Janet. 512 est la taille du fichier, en octets, Mar 01 13:33 est la dernière date de Sécurité du système et des fichiers 10-5 modification, et january est le nom du fichier. Le 2 indique le nombre de liens associés au fichier. Représentation numérique des droits d’accès Numériquement, les droits d’accès sont représentés par 4 pour la lecture, 2 pour l’écriture et 1 pour l’exécution. La somme des droits (comprise entre 1 et 7) représente les droits d’accès de chaque catégorie (utilisateur, groupe et autres). Le tableau suivant présente les valeurs numériques de chaque niveau d’accès : Total Lecture Ecriture Exécution 0 – – – 1 – – 1 2 – 2 – 3 – 2 1 4 4 – – 5 4 – 1 6 4 2 – 7 4 2 1 A la création d’un fichier, les droits par défaut sont représentés par 755, soit : accès en lecture, écriture et exécution (4+2+1=7) pour l’utilisateur, accès en lecture et exécution (4+1=5) pour le groupe, et lecture et exécution (4+1=5) pour les autres. Pour modifier les modes de droits d’accès des fichiers que vous possédez, exécutez la commande chmod (changer de mode). Affichage d’informations sur le groupe (commande lsgroup) Pour afficher les attributs de tous les groupes du système (ou des groupes spécifiés), utilisez la commande lsgroup. Si un ou plusieurs attributs ne peuvent pas être lus, la commande lsgroup affiche autant d’informations que possible. Les informations d’attributs s’affichent sous forme de définition des éléments Attribute = Value, chaque élément étant séparé par un espace. Liste de tous les groupes du système Pour avoir une liste de tous les groupes du système, tapez : lsgroup ALL Appuyez sur Entrée. Le système affiche les groupes, leur ID et la liste des utilisateurs du groupe, comme suit : system 0 arne,pubs,ctw,geo,root,chucka,noer,su,dea, backup,build,janice,denise staff 1 john,ryan,flynn,daveb,jzitt,glover,maple,ken gordon,mbrady bin 2 root,bin sys 3 root,su,bin,sys 10-6 AIX Guide de l’utilisateur – Système d’exploitation et unités Liste d’attributs spécifiques de tous les groupes Pour afficher les attributs spécifiques de tous les groupes, effectuez l’une des étapes suivantes : • Vous pouvez afficher les attributs de la manière suivante Attribute=Value séparés pas un espace. C’est le style par défaut. Par exemple, pour afficher la liste des ID et des utilisateurs de tous les groupes du système, entrez: lsgroup –a id users ALL | pg Appuyez sur Entrée. Cette commande affiche les attributs. Une liste semblable à la suivante s’affiche : system id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,build staff id=1 users=john,ryan,flynn,daveb,jzitt,glover,maple,ken • Vous pouvez également afficher les informations au format strophes. Par exemple, pour afficher la liste des ID et des utilisateurs de tous les groupes du système au format strophe, entrez: lsgroup –a –f id users ALL | pg Appuyez sur Entrée. Une liste semblable à la suivante s’affiche : system: id=0 users=pubs,ctw,geo,root,chucka,noer,su,dea,backup,build staff: id=1 users=john,ryan,flynn,daveb,jzitt,glover,maple,ken bin: id=2 users=root,bin sys: id=3 users=root,su,bin,sys Affichage des attributs d’un groupe spécifique Pour afficher tous les attributs d’un groupe spécifique, vous avez également le choix entre deux styles : • Vous pouvez afficher les attributs de la manière suivante Attribute=Value séparés pas un espace. C’est le style par défaut. Par exemple, pour afficher la liste des attributs du groupe système, entrez: lsgroup system Appuyez sur Entrée. Une liste semblable à la suivante s’affiche : system id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,build,janice,denise • Vous pouvez également afficher les informations au format strophes. Par exemple, pour afficher la liste des attributs du groupe bin au format strophes, tapez : lsgroup –f system Appuyez sur Entrée. Une liste semblable à la suivante s’affiche : Sécurité du système et des fichiers 10-7 system: id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea, backup,build,janice,denise Liste d’attributs spécifiques d’un groupe Pour afficher des attributs spécifiques d’un groupe donné, entrez: lsgroup –a Attributes Group Appuyez sur Entrée. Par exemple, pour afficher l’ID et les utilisateurs du groupe bin, tapez : lsgroup –a id users bin Appuyez sur Entrée. Une liste semblable à la suivante s’affiche : bin id=2 users=root,bin Reportez–vous à la commande lsgroup dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Modification des droits d’accès aux fichiers et aux répertoires (commande chmod) Pour modifier les droits d’accès en lecture, en écriture et en exécution des fichiers spécifiés, et les modes des répertoires spécifiés, utilisez la commande chmod. • Par exemple, pour ajouter un type de droits d’accès aux fichiers chap1 et chap2, tapez : chmod g+w chap1 chap2 Appuyez sur Entrée. Les membres du groupe se voient alors attribuer les droits d’accès en écriture aux fichiers chap1 et chap2. • Par exemple, pour apporter à la fois plusieurs modifications sur les droits d’accès au répertoire monrep, tapez : chmod go–w+x monrep Appuyez sur Entrée. Cette commande refuse–) aux membres du groupe (g) et aux autres utilisateurs (o) les droits de créer ou de supprimer les fichiers (w) dans le répertoire monrep et permet+) aux membres du groupe et aux autres utilisateurs d’effectuer une recherche dans le répertoire monrep ou de l’utiliser (x) dans un nom de chemin d’accès. Cette commande équivaut à la séquence: chmod g–w monrep chmodo–wmonrep chmodg+xmonrep chmodo+xmonrep • Par exemple, pour permettre uniquement au propriétaire d’utiliser une procédure shell cmd comme commande, tapez : chmod u=rwx,go= cmd Appuyez sur Entrée. 10-8 AIX Guide de l’utilisateur – Système d’exploitation et unités Les droits d’accès en lecture, en écriture et en exécution sont alors octroyés à l’utilisateur propriétaire du fichier (u=rwx). Le groupe et les autres utilisateurs se voient également refuser les droits d’accès à cmd ( go= ). • Par exemple, pour le format de mode numérique de la commande chmod pour modifier les droits du fichier text, tapez : chmod 644 text Appuyez sur Entrée. Ce qui accorde au propriétaire le droit d’accès en lecture et en écriture, les autres se contentant de la lecture seule. Reportez–vous à la commande chmod dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Sécurité du système et des fichiers 10-9 Liste de contrôle d’accès Le contrôle d’accès est constitué de ressources d’informations protégées indiquant qui peut avoir accès à ces ressources. Le système d’exploitation permet un accès limité aux initiés ainsi qu’une sécurité discrétionnaire. Le propriétaire d’une ressource d’informations peut octroyer des droits d’accès en lecture ou en écriture à d’autres utilisateur pour cette ressource. Un utilisateur possédant des droits d’accès à une ressource peut transférer ses droits à d’autres utilisateurs. Cette sécurité permet un flux d’informations contrôlé par l’utilisateur dans le système. Le propriétaire d’une ressource d’informations définit les droits d’accès à l’objet. Les utilisateurs possèdent uniquement un accès basé sur le nombre d’utilisateurs vers l’objet qu’ils possèdent. En général, les utilisateurs reçoivent soit des droits de groupe soit des droits par défaut pour une ressource. La tâche principale pour l’administration du contrôle d’accès consiste à définir l’appartenance à un groupe des utilisateurs, en effet, cette appartenance détermine les droits d’accès des utilisateurs aux fichiers qu’ils ne possèdent pas. Les listes de contrôle d’accès augmentent la qualité des contrôles d’accès aux fichiers en ajoutant des droits étendus qui modifient les droits de base attribués aux individus et aux groupes. Avec les droits étendus, vous pouvez autoriser ou refuser l’accès à un fichier à des individus ou à des groupes précis sans modifier les droits de base. Remarque : La taille d’une liste de contrôle d’accès pour un fichier ne peut pas dépasser une page mémoire (environ 4096 octets). Pour gérer les listes de contrôle d’accès, utilisez les commandes aclget, acledit et aclput. La commande chmod en mode numérique (notations octales) peut définir des droits de base et des attributs. Le sous–programme chmod que la commande appelle, désactive les droits étendus. Si vous utilisez le mode numérique de la commande chmod sur un fichier possédant une liste de contrôle d’accès, les droits étendus seront désactivées. Le mode symbolique de la commande chmod ne désactive pas les droits étendus. Pour de plus amples informations sur les modes numérique et symbolique, veuillez vous reporter à la commande chmod. Droits de base Les droits de base sont les modes traditionnels d’accès à des fichiers attribués au propriétaire du fichier, au groupe du fichier et à d’autres utilisateurs. Les modes d’accès sont : lecture (r), écriture (w) et exécution/recherche (x). Dans une liste de contrôle d’accès, les droits d’accès de base sont au format suivant, avec le paramètre Mode exprimé en rwx (un tiret (–) remplaçant chaque droit non spécifié) : droits d’accès de base : propriétaire(nom) : Mode groupe (groupe) : Mode autres : Mode Attributs Trois attributs peuvent être ajoutés à une liste de contrôle d’accès : setuid (SUID) setgid (SGID) Bit ID utilisateur Cet attribut définit les ID utilisateurs effectifs et sauvegardés du process sur l’ID propriétaire du fichier en cours d’exécution. Bit ID groupe Cet attribut définit les ID groupes effectifs et sauvegardés du process sur l’ID groupe du fichier en cours d’exécution. savetext (SVTX) Sauvegarde le texte sous format fichier texte. Ces attributs sont ajoutés au format suivant : attributs : SUID, SGID, SVTX 10-10 AIX Guide de l’utilisateur – Système d’exploitation et unités Droits étendus Les droits étendus sont un moyen pour le propriétaire d’un fichier d’affiner les droits afférents à ce fichier. Ils permettent de modifier les droits de base (utilisateur, groupe et autres) en accordant, en supprimant ou en spécifiant des droits spécifiques pour des individus, des groupes ou des combinaisons de groupes. Les droits sont modifiés à l’aide des touches. Les touches accès accordé, accès refuséet spécification sont définis comme suit : accès accordé Accorde à l’utilisateur ou au groupe le droit spécifié sur le fichier. accès refusé Retire à l’utilisateur ou au groupe le droit spécifié sur le fichier spécification Définit précisément les droits de l’utilisateur ou du groupe sur le fichier Si un utilisateur se voir refuser un accès spécifique par une touche accès refusé ou une touche spécification, aucune autre entrée ne peut remplacer ce refus d’accès. La touche activé doit être spécifiée dans la liste de contrôle d’accès pour que les droits étendus prennent effet. La valeur par défaut est la touche désactivé. Dans une liste ACL, les droits étendus apparaissent sous la forme : droits d’accès étendus : activé | désactivé accès accordé Mode accès refusé Mode spécification Mode InfoUtil...: InfoUtil...: InfoUtil...: Utilisez une ligne de séparation pour chaque entrée accès accordé, accès refusé ou spécification. Le paramètre Mode est exprimé en rwx (un tiret (–) remplaçant chaque droit non spécifié). Le paramètre InfoUtil est exprimé de la façon suivante : u : NomUtilisateurou g : NomGroupe ou une combinaison, séparée par une virgule, de u : NomUtilisateur et g : NomGroupe. Remarque : Si vous spécifiez plusieurs noms dans une entrée, celle–ci ne peut être utilisée dans une décision de contrôle d’accès, un process n’ayant qu’un seul ID utilisateur. Exemple de liste de contrôle des accès Voici un exemple de liste de contrôle d’accès : attributs : SUID droit d’accès de base propriétaire(frank): groupe(system): autres: ––– droits d’accès étendus : activé accès accordé rw– accès refusé r–– spécification r–– accès accordé rw– rw– r–x u:dhs u:chas, g:system u:john, g:gateway, g:mail g:account, g:finance Voici la signification des différents éléments de cette liste : • La première ligne indique que l’octet setuid est activé. • La deuxième ligne, qui introduit les droits de base, est facultative. • Les trois lignes suivantes précisent ces droits. Les noms du propriétaire et du groupe (entre parenthèses) sont donnés à titre d’information : les modifier n’a pas d’incidence sur le propriétaire réel du fichier, pas plus que sur le groupe auquel appartient le fichier. Seule la commande chown et la commande chgrp peuvent modifier ces attributs de fichier. • La ligne suivante, qui introduit les droits étendus, est facultative. Sécurité du système et des fichiers 10-11 • La ligne suivante indique que les droits étendus qui suivent sont activés. • Les quatre dernières lignes correspondent aux droits étendus : La première entrée étendue octroie à l’utilisateur dhs des droits d’accès en lecture (r) et en écriture (w) sur le fichier. • La deuxième entrée étendue refuse les droits d’accès en lecture (r) à l’utilisateur chas uniquement s’il est membre du groupe system. • La troisième entrée étendue indique qu’aussi longtemps que l’utilisateur john est membre des groupes gateway et mail il détiendra les droits d’accès en lecture (r). Si l’utilisateur john n’appartient plus à ces deux groupes, l’accès lui est refusé. • La dernière entrée étendu octroie à tout utilisateur appartenant aux deux groupes, account et finance, les droits d’accès en lecture (r) et en écriture (w). Remarque : Plusieurs droits étendus peuvent être appliqués à un process, les interdits primant sur les autorisations. Reportez–vous à la commande acledit dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Autorisations d’accès Le propriétaire de la ressource d’informations est responsable de la gestion des droits d’accès. Les ressources sont protégées par des bits d’accès, intégrés au mode de l’objet. Ces bits définissent les droits du propriétaire de l’objet, ceux du groupe correspondant et ceux des autres utilisateurs, regroupés par défaut dans une classe. Le système d’exploitation gère trois droits d’accès (lecture, écriture et exécution), qui peuvent être accordés séparément. Lorsqu’un utilisateur se connecte à un compte (à l’aide des commandes connexion ou su), les ID utilisateur et les ID groupe attribués à ce compte sont associés aux process de l’utilisateur. Ces ID déterminent les droits d’accès du process. Pour les fichiers, les répertoires, les tubes nommés et les unités (fichiers spéciaux), les accès sont définis comme suit: • Pour chaque entrée (ACE) de la liste de contrôle des accès (ACL), la liste des identificateurs est comparée aux identificateurs du process. Si elles sont identiques, le process se voit attribuer les droits et les interdits définis pour cette entrée. Les correspondances logiques pour les droits comme pour les interdits sont calculées pour chaque entrée concernée de l’ACL. Si le process demandeur ne correspond à aucune entrée de l’ACL, il se voit attribuer les droits associés à l’entrée par défaut. • Si le droit d’accès demandé est autorisé (compris dans la somme des droits) et non interdit (compris dans la somme des interdits), le droit demandé est accordé. Sinon, il est refusé. Un process doté de l’ID utilisateur 0 est dit process utilisateur root. Ces process ont généralement tous les droits. Mais si un process root demande le droit d’exécution sur un programme, celui-ci ne lui est accordé que s’il est détenu par au moins un utilisateur. La liste des identificateurs d’une ACL correspond à un process si tous ces identificateurs correspondent à l’identificateur effectif – de même type – du process demandeur. Un identificateur de type USER correspond à un process s’il est identique à l’ID utilisateur effectif du process. Un identificateur de type GROUPE correspond s’il est identique à l’ID groupe effectif du process ou à l’un des ID des groupes complémentaires. Ainsi, une ACE avec la liste d’identificateurs: USER:fred, GROUP:philosophers, GROUP:software_programmer correspondrait à un process avec un ID utilisateur effectif, fred et à un ensemble de groupes, philosophers, philanthropists, software_programmer, doc_design 10-12 AIX Guide de l’utilisateur – Système d’exploitation et unités mais ne correspondrait pas à un process avec un ID utilisateur effectif, fred et à un ensemble de groupes, philosophers, iconoclasts, hardware_developer, graphic_design Notez qu’une ACE avec la liste suivante correspond aux deux process : USER:fred, GROUP:philosophers En d’autres termes, la liste d’identificateurs de l’ACE fonctionne comme un ensemble de conditions, à respecter pour que l’accès spécifié soit accordé. Tous les contrôles d’accès pour ces objets sont effectués au niveau de l’appel système, au moment du premier accès aux objets. Dans la mesure où l’accès aux objets SVIPC n’est pas nominatif, les contrôles sont effectués à chaque accès. Pour des objets avec des noms de systèmes de fichiers, il faut être capable de résoudre le nom de l’objet courant. Les noms sont résolus soit de manière relative (par rapport au répertoire de travail du process), soit de manière absolue (par rapport au répertoire root du process). Toute résolution de nom commence par la recherche de l’un de ces deux éléments. Le mécanisme de contrôle d’accès discrétionnaire assure un contrôle effectif de l’accès aux ressources et assure une protection distincte de la confidentialité et de l’intégrité des informations. Les mécanismes de contrôle gérés par le propriétaire ne sont effectifs que s’ils sont définis par les utilisateurs. Tous les utilisateurs doivent maîtriser le mécanisme d’octroi et de refus de droits d’accès. Affichage des informations de contrôle des accès (commande aclget) Pour afficher les données de contrôle d’accès à un fichier, utilisez la commande aclget. Les données affichées comprennent les attributs, les droits de base et les droits étendus. Par exemple, pour afficher les données de contrôle d’accès pour le fichier status, tapez : aclget status Appuyez sur Entrée. Les attributs et les droits (de base et étendus) associés au fichier sont affichés. Reportez–vous, par exemple, à Exemple de liste de contrôle des accès, page 10-11. Reportez–vous à la commande aclget dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Définition du contrôle des accès (commande aclput) Pour définir les données de contrôle d’accès pour un fichier, utilisez la commande aclput. Remarque : Une liste de contrôle des accès ne peut pas excéder une page mémoire (environ 4 096 octets). Par exemple, pour afficher les données de contrôle d’accès pour le fichier status avec les données de contrôle du fichier acldefs, tapez : aclput –i acldefs status Appuyez sur Entrée. Par exemple, pour afficher les données de contrôle d’accès pour le fichier status avec les mêmes informations utilisées pour le fichier plans, tapez : aclget plans | aclput status Appuyez sur Entrée. Reportez–vous à la commande aclput dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Sécurité du système et des fichiers 10-13 Modification des informations de contrôle des accès (commande acledit) Pour modifier les données de contrôle d’accès à un fichier, utilisez la commande acledit. Elle affiche les informations courantes et permet au propriétaire du fichier de les modifier. Une confirmation est demandée, avant toute modification permanente. Remarque : La variable d’environnement EDITOR doit être spécifiée avec un nom de chemin complet ; sinon la commande acledit échouera. Les attributs et les droits (de base et étendus) associés au fichier sont affichés. Reportez–vous, par exemple, à Exemple de liste de contrôle des accès, page 10-11. Par exemple, pour afficher les données de contrôle d’accès du fichier plans, tapez : acledit plans Appuyez sur Entrée. Reportez–vous à la commande acledit dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. Verrouillage du terminal (commande lock ou xlock) Pour modifier votre mot de passé, utilisez la commande commande lock. La commande lock vous invite à indiquer votre mot de passe une première fois, le lit, puis vous invite à l’indiquer une seconde fois pour vérification. La commande verrouille alors le terminal et ne le libère pas avant que le mot de passe ne soit entré une seconde fois. Le délai par défaut est de 15 minutes, mais vous pouvez le modifier via l’indicateur – Number. Remarque : Si votre interface est AIXwindows, utilisez la commande xlock de la même manière. Par exemple, pour verrouiller votre écran avec contrôle par le mot de passe, entrez : lock Appuyez sur Entrée. Vous êtes invités par deux fois à entrer votre mot de passe, de sorte que le système puisse le vérifier. Si vous ne retapez pas votre mot de passe dans un délai de 15 minutes, la commande est abandonnée. Pour réserver un terminal par contrôle de mot de passe avec un délai de 10 minutes, tapez : lock –10 Appuyez sur Entrée. Reportez–vous à la commande lock ou à la commande xlock dans le manuel AIX 5L Version 5.2 Commands Reference pour avoir la syntaxe complète. 10-14 AIX Guide de l’utilisateur – Système d’exploitation et unités Récapitulatif des commandes relatives à la sécurité acledit Modifie les données de contrôle d’accès à un fichier aclget Affiche les données de contrôle d’accès à un fichier aclput Définit les données de contrôle d’accès à un fichier chmod Modifie les droits d’accès chown Change le propriétaire d’un fichier lock Réserve un terminal lsgroup Affiche les attributs de groupes xlock Verrouille l’écran X local (jusqu’à l’entrée d’un mot de passe). Informations connexes Commandes : généralités, page 4-3 Process : généralités, page 4-13 Système de fichiers, page 6-2 Répertoires : généralités, page 6-6 Fichiers, page 7-1 Fichiers de sauvegarde et supports de stockage, page 9-1 Sécurité du système et des fichiers 10-15 10-16 AIX Guide de l’utilisateur – Système d’exploitation et unités Chapitre 11. Personnalisation de l’environnement utilisateur Le système d’exploitation met à votre disposition plusieurs commandes et fichiers d’initialisation vous permettant de personnaliser à votre gré votre environnement utilisateur. Il est également possible de personnaliser certaines ressources par défaut des applications utilisées sur votre système. Les valeurs par défaut sont lancées par le programme au démarrage. Si vous les modifiez, vous devez quitter le programme et le relancer pour que les nouvelles valeurs soient prises en compte. Pour obtenir des informations sur la personnalisation de votre environnement Common Desktop, reportez–vous à Common Desktop Environment 1.0 : Advanced User’s and System Administrator’s Guide. Cette section décrit les points suivants : • • • • Fichiers de lancement du système : généralités, page 11-2 – Fichier /etc/profile, page 11-2 – Fichier /etc/profile, page 11-3 – Fichier /etc/profile, page 11-3 – Fichier .env, page 11-4 Fichiers de lancement du système : généralités, page 11-5 – Fichier .xinitrc, page 11-5 – Fichier .Xdefaults, page 11-6 – Fichier .mwmrc, page 11-7 Procédures de personnalisation, page11-9 – Exportation de variables shell (commande shell export), page 11-9 – Changement de la police d’affichage (commande chfont), page 11-10 – Changement de l’affectation des touches de contrôle (commande stty), page 11-10 – Changement de l’invite système, page 11-11 Récapitulatif des commandes de personnalisation, page 11-12 Personnalisation de l’environnement utilisateur 11-1 Fichiers de lancement du système : généralités Lorsque vous vous connectez, le shell définit votre environnement utilisateur en fonction des fichiers d’initialisation que vous avez configurés. Les caractéristiques de votre environnement utilisateur sont définies par les valeurs attribuées à vos variables d’environnement. L’environnement reste actif jusqu’à ce que vous vous déconnectiez. Au moment de la connexion au système d’exploitation, le shell se sert de deux types de fichiers de profil. Il évalue les commandes de ces fichiers, puis exécute les commandes de configuration de l’environnement. Ces fichiers ont des fonctions similaires, si ce n’est que le fichier /etc/profile contrôle les variables de profil de tous les utilisateurs d’un système, tandis que le fichier .profile permet de personnaliser votre propre environnement. Le shell évalue d’abord les commandes du fichier /etc/profile, puis exécute les commandes de configuration de votre environnement du fichier /etc/environment. Le shell vérifie ensuite si vous disposez d’un fichier .profile dans votre répertoire personnel. Si un fichier .profile existe, le fichier est lancé. Le fichier .profile indique également s’il existe un fichier d’environnement. Dans l’affirmative (le fichier s’appelle généralement .env), le système l’exécute et configure les variables d’environnement. Les fichiers /etc/profile, /etc/environment et .profile sont exécutés une fois au moment de la connexion. Le fichier .env, lui, est exécuté chaque fois que vous ouvrez un nouveau shell ou une fenêtre. Cette section traite des points suivants : • Fichier /etc/profile, page 11-2 • Fichier /etc/profile, page 11-3 • Fichier /etc/profile, page 11-3 • Fichier .env, page 11-4 Fichier /etc/profile Le fichier /etc/profile est le premier qu’utilise le système au moment de la connexion. Ce fichier contrôle des variables par défaut applicables à l’intégralité du système, telles que : • Variables d’exportation • Masque de création de fichier (umask) • Types de terminaux • Messages indiquant l’arrivée d’un nouveau courrier par la messagerie L’administrateur système configure le fichier profile pour tous les utilisateurs du système. Lui seul est habilité à le modifier. Voici un exemple de fichier .profile : #Set file creation mask unmask 022 #Tell me when new mail arrives MAIL=/usr/mail/$LOGNAME #Add my /bin directory to the shell search sequence PATH=/usr/bin:/usr/sbin:/etc:: #Set terminal type TERM=lft #Make some environment variables global export MAIL PATH TERM Reportez–vous au manuel AIX 5L Version 5.2 Files Reference pour des informations détaillées sur le fichier /etc/profile. 11-2 AIX Guide de l’utilisateur - Système d’exploitation et unités Fichier /etc/environment Le fichier /etc/environment est le deuxième utilisé par le système au moment de la connexion. Il contient des variables spécifiant l’environnement de base de tous les process. Lorsqu’un nouveau process est lancé, la sous–routine exec constitue un tableau des chaînes disponibles, sous la forme Nom = Valeur. Ce tableau de chaînes est appelé environnement environment. Chaque nom défini par une chaîne étant appelé variable d’ environnement ou variable shell. La sous-routine exec permet de définir en une seule fois l’ensemble de l’environnement. Lorsque vous vous connectez, le système définit les variables d’environnement à partir du fichier environment, avant de lire votre profile de connexion, .profile. Voici les variables constitutives de l’environnement de base. HOME Chemin d’accès complet au répertoire de connexion ou HOME de l’utilisateur. Le programme login lui affecte le nom défini dans le fichier /etc/passwd. LANG Nom courant actuel. La variable LANG est initialement définie dans le fichier /etc/profile au moment de l’installation. NLSPATH Chemin d’accès complet aux catalogues de messages. LOCPATH Chemin d’accès complet à l’emplacement des tables NLS (National Language Support). PATH Séquence des répertoires à explorer par des commandes, telles que sh, time, nice et nohup, à la recherche d’une commande dont le chemin d’accès est incomplet. TZ Zone temps. La variable d’environnement TZ est initialement définie dans le fichier /etc/profile, le fichier de connexion système. Reportez–vous au manuel AIX 5L Version 5.2 Files Reference pour des informations détaillées sur le fichier /etc/profile. Fichier .profile Le troisième fichier utilisé par le système au moment de la connexion est le fichier .profile. Le fichier .profile est présent dans votre répertoire personnel ($HOME) et permet de personnaliser votre environnement de travail individuel. Etant donné que le fichier .profile est caché, utilisez la commande ls–a pour le répertorier. Une fois que le programme login a intégré les variables LOGNAME (nom de connexion) et HOME (répertoire de connexion) à l’environnement, les commandes du fichier $HOME/.profile (si présent) sont exécutées. Le fichier .profile contient votre propre profil, qui prime sur les variables définies dans le fichier /etc/profile. Le fichier .profile est souvent utilisé pour définir les variables d’environnement exportées et les modes du terminal. En modifiant le fichier .profile, vous pouvez adapter précisément votre environnement à vos besoins. Le fichier .profile agit sur les paramètres par défaut suivants : • Shells à ouvrir • Style de l’invite • Son du clavier Voici un exemple de fichier .profile : PATH=/usr/bin:/etc:/home/bin1:/usr/lpp/tps4.0/user:: epath=/home/gsc/e3: export PATH epath csh Dans cet exemple, deux variables de chemin ( PATH exportées, et un shell ( csh ) est ouvert. et epath ) sont définies, puis Personnalisation de l’environnement utilisateur 11-3 Vous pouvez également vous servir du fichier .profile (ou, à défaut, du fichier /etc/profile) pour déterminer les variables du shell de connexion. Vous pouvez également personnaliser d’autres environnements shell. Vous pouvez ainsi, par exemple, utiliser les fichiers .cshrc et .kshrc pour personnaliser un shell C et un shell Korn (respectivement). Fichier .env Un quatrième fichier utilisé par le système au moment de la connexion est le fichier .env sous réserve que votre fichier .profile contienne la ligne : exportENV=$HOME/.env Le fichier .env permet de personnaliser vos propres variables d’environnement de travail. Etant donné que le fichier .env est caché, utilisez la commande ls –a pour le répertorier. Le fichier .env contient le profil personnel de l’utilisateur, qui prime sur les variables définies dans le fichier /etc/environment. Adaptez à votre gré le fichier .env – qui contrôle les paramètres par défaut suivants : Voici un exemple de fichier .env : export myid=‘id | sed –n –e ’s/).*$//’ –e ’s/^.*(//p’‘ #set prompt: login & system name & path if [ $myid = root ] then typeset –x PSCH=’#:\${PWD}> ’ PS1=”#:\${PWD}> ” else typeset –x PSCH=’>’ PS1=”$LOGNAME@$UNAME:\${PWD}> ” PS2=”>” PS3=”#?” fi export PS1 PS2 PS3 #setup my command aliases alias ls=”/bin/ls –CF” \ d=”/bin/ls –Fal | pg” \ rm=”/bin/rm –i” \ up=”cd ..” Remarque : Lorsque vous modifiez le fichier .env, veillez à ce que les variables nouvellement définies n’entrent pas en conflit avec les variables standard telles que MAIL, PS1, PS2 et IFS. 11-4 AIX Guide de l’utilisateur - Système d’exploitation et unités Fichiers de lancement AIXwindows : généralités Les différents systèmes informatiques ont différentes manières de démarrer X et AIXwindows. Vous devez donc consulter votre administrateur système pour vous familiariser avec le démarrage. En règle générale, X et AIXwindows sont démarrés à partir d’un script shell qui est lancé automatiquement à la connexion. Vous pouvez toutefois devoir démarrer X ou AIXwindows, ou les deux. Si, une fois connecté, vous vous trouvez devant un écran simple, sans fenêtres, vous pouvez lancer le serveur X en entrant : xinit Appuyez sur Entrée. Si cette commande reste sans effet, vérifiez, avec l’aide de votre administrateur, que le répertoire X11, contenant les programmes exécutables, se trouve bien dans votre chemin de recherche. Ce chemin varie selon les systèmes. Remarque : Avant de lancer cette commande, vérifiez que le pointeur se trouve dans une fenêtre affichant une invite système. Si, une fois connecté, vous vous trouvez avec une ou plusieurs fenêtres sans cadre, vous pouvez lancer AIXwindows Window Manager en entrant : mwm & Appuyez sur Entrée. Parce que AIXwindows autorise toutes sortes de personnalisations, tant par les programmeurs via des applications que par les utilisateurs, vous trouverez peut–être que les boutons de la souris ou d’autres fonctions ne fonctionnent pas exactement comme nous vous l’indiquons dans ce manuel. Il vous suffit dans ce cas de revenir à l’environnement AIXwindows par défaut en appuyant simultanément sur les quatre touches : Alt–Ctrl–Maj–! Vous pouvez revenir à la fonction personnalisation en réappuyant sur cette séquence de touches. Si votre système n’autorise pas cette combinaison de touches, vous pouvez restaurer votre environnement par défaut à partir du menu root par défaut. Fichier .xinitrc La commande xinit se sert d’un fichier script shell personnalisable qui liste les programmes client X à démarrer. Le fichier .xinitrc de votre répertoire personnel contrôle les fenêtres et les applications qui sont lancées en même temps qu’AIXwindows. Pour lancer AIXwindows, la commande xinit recherche d’abord la variable d’environnement $XINITRC. Si elle ne la trouve pas, elle recherche alors le script shell $HOME/.xinitrc. Si elle ne le trouve pas non plus, elle lance le script shell /usr/lib/X11/$LANG/xinitrc. Si /usr/lib/X11/$LANG/xinitrc est introuvable, la commande recherche le script shell /usr/lpp/X11/defaults /$LANG/xinitrc. En cas d’échec, elle recherche le script shell /usr/lpp/X11/defaults/xinitrc. Le script shell xinitrc lance des commandes telles que mwm (AIXwindows Window Manager), aixterm et xclock. La commande xinit : • lance un serveur X sur l’écran courant ; • définit la variable d’environnement $DISPLAY ; • exécute le fichier xinitrc pour lancer les programmes client X ; Voici la partie personnalisable du fichier xinitrc : Personnalisation de l’environnement utilisateur 11-5 # Ce script est appelé par /usr/lpp/X11/bin/xinit. . . . #*************************************************************** # Start the X clients. Change the following lines to * # whatever command(s) you desire! * # The default clients are an analog clock (xclock), an lft * # terminal emulator (aixterm), and the Motif Window Manager * # (mwm). * #*************************************************************** exec mwm Fichier .Xdefaults Si vous travaillez dans une interface AIXwindows, vous pouvez personnaliser cette interface avec le fichier .Xdefaults. AIXwindows vous permet d’indiquer vos préférences en matière de caractéristiques visuelles, comme la couleur et les polices. L’aspect et le comportement des applications utilisant des fenêtres sont en grande partie régis par des ensembles de variables appelées ressources.. L’aspect, visuel ou fonctionnel, d’une ressource dépend de la valeur qui lui est attribuée. Il existe plusieurs types de valeurs : par exemple, une ressource contrôlant les couleurs peut se voir affecter la valeur prédéfinie DarkSlateBlue ou Black. Des valeurs numériques sont attribuées aux ressources qui indiquent des dimensions. Certaines ressources prennent des valeurs booléennes (True ou False). Si votre répertoire personnel ne contient pas de fichier .Xdefaults, vous pouvez en créer un à l’aide d’un éditeur texte quelconque. Vous avez ensuite toute latitude pour y définir les ressources de votre choix. Un fichier modèle, Xdefaults.tmpl, se trouve dans le répertoire /usr/lpp/X11/defaults. Voici un extrait d’un fichier .Xdefaults : *AutoRaise: on *DeIconifyWarp: on *warp:on *TitleFont:andysans12 *scrollBar: true *font: Rom10.500 Mwm*menu*foreground: black Mwm*menu* background: CornflowerBlue Mwm*menu*RootMenu*foreground: black Mwm*menu*RootMenu*background: CornflowerBlue Mwm*icon*foreground: grey25 Mwm*icon*background: LightGray Mwm*foreground: black Mwm*background: LightSkyBlue Mwm*bottomShadowColor: Blue1 Mwm*topShadowColor: CornflowerBlue Mwm*activeForeground: white Mwm*activeBackground: Blue1 Mwm*activeBottomShadowColor: black Mwm*activeTopShadowColor: LightSkyBlue Mwm*border: black Mwm*highlight:white 11-6 AIX Guide de l’utilisateur - Système d’exploitation et unités aixterm.foreground: green aixterm.background: black aixterm.fullcursor: true aixterm.ScrollKey: on aixterm.autoRaise: true aixterm.autoRaiseDelay: 2 aixterm.boldFont:Rom10.500 aixterm.geometry: 80x25 aixterm.iconFont: Rom8.500 aixterm.iconStartup: false aixterm.jumpScroll: true aixterm.reverseWrap: true aixterm.saveLines: 500 aixterm.scrollInput: true aixterm.scrollKey: false aixterm.title: AIX Fichier .mwmrc Les caractéristiques le plus souvent personnalisées correspondant à des ressources du fichier .Xdefaults. Toutefois, les affectations des touches et des boutons de la souris, de même que les définitions de menus du gestionnaire de fenêtres sont spécifiées dans un fichier complémentaire, .mwmrc, référencé par des ressources du fichier .Xdefaults. Si votre répertoire personnel ne contient pas de fichier .mwmrc, vous pouvez le copier via la commande : cp /usr/lib/X11/system.mwmrc .mwmrc Les spécifications du fichier .mwmrc priment sur celles, globales, définies dans le fichier system.mwmrc. Ainsi, vous ne risquez pas d’interférer avec les spécifications des autres. Voici un extrait d’un fichier system.mwmrc : # DEFAULT mwm RESOURCE DESCRIPTION FILE (system.mwmrc) # # menu pane descriptions # # Root Menu Description Menu RootMenu { ”Root Menu” no–label ”New Window” ”Shuffle Up” ”Shuffle Down” ”Refresh” no–label ”Restart” ”Quit” } f.title f.separator f.exec ”aixterm &” f.circle_up f.circle_down f.refresh f.separator f.restart f.quit_mwm # Default Window Menu Description Menu DefaultWindowMenu MwmWindowMenu { ”Restore” _R Alt<Key>F5 ”Move” _M Alt<Key>F7 ”Size” _S Alt<Key>F8 ”Minimize” _n Alt<Key>F9 ”Maximize” _x Alt<Key>F10 ”Lower” _L Alt<Key>F3 no–label f.separator ”Close” _C Alt<Key>F4 } f.normalize f.move f.resize f.minimize f.maximize f.lower f.kill Personnalisation de l’environnement utilisateur 11-7 # no accelerator window menu Menu NoAccWindowMenu { ”Restore” _R f.normalize ”Move” _M f.move ”Size” _S f.resize ”Minimize” _n f.minimize ”Maximize” _x f.maximize ”Lower” _L f.lower no–label f.separator ”Close” _C f.kill } Keys DefaultKeyBindings { Shift<Key>Escape Meta<Key>space Meta<Key>Tab Meta Shift<Key>Tab Meta<Key>Escape Meta Shift<Key>Escape Meta Ctrl Shift<Key>exclam } icon|window icon|window root|icon|window root|icon|window root|icon|window root|icon|window root|icon|window f.post_wmenu f.post_wmenu f.next_key f.prev_key f.next_key f.prev_key f.set_behavior # # button binding descriptions # Buttons DefaultButtonBindings { <Btn1Down> frame|icon <Btn3Down> frame|icon <Btn1Down> root <Btn1Down> root Meta<Btn1Down> icon|window Meta<Btn2Down> window|icon Meta<Btn3Down> window } Buttons PointerButtonBindings { <Btn1Down> frame|icon <Btn2Down> frame|icon <Btn3Down> frame|icon <Btn1Down> root Meta<Btn2Down> window|icon Meta<Btn3Down> window|icon } # # END OF mwm RESOURCE DESCRIPTION FILE # 11-8 AIX Guide de l’utilisateur - Système d’exploitation et unités f.raise f.post_wmenu f.menu RootMenu f.menu RootMenu f.lower f.resize f.move f.raise f.post_wmenu f.lower f.menu RootMenu f.resize f.move Procédures de personnalisation Cette section abord les procédures suivantes pour personnaliser votre environnement système : • Exportation de variables shell (commande shell export), page 11-9 • Changement de la police d’affichage (commande chfont), page 11-10 • Changement de l’affectation des touches de contrôle (commande stty), page 11-10 • Changement de l’invite système, page 11-11 Exportation de variables shell (commande shell export) Une variable shell local est une variable reconnue uniquement par le shell qui l’a créée. Si vous lancez un nouveau shell, toutes les variables définies pour l’ancien shell lui sont inconnues. Si vous souhaitez d’autres shells pour utiliser les variables à partir d’un ancien shell, exportez les variables pour les rendre globaux. Vous pouvez, via la commande export rendre globales des variables locales. Pour le faire automatiquement, exportez–les dans le fichier .profile. Remarque : Les variables peuvent être exportées vers des shells enfant, mais pas vers des shells parent. Par exemple, pour rendre globale la variable shell locale PATH, entrez : export path Appuyez sur Entrée. Par exemple, pour afficher toutes les variables exportées, entrez : export Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : DISPLAY=unix:0 EDITOR=vi ENV=$HOME/.env HISTFILE=/u/denise/.history HISTSIZE=500 HOME=/u/denise LANG=En_US LOGNAME=denise MAIL=/usr/mail/denise MAILCHECK=0 MAILMSG=**YOU HAVE NEW MAIL. USE THE mail COMMAND TO SEE YOUR MAILPATH=/usr/mail/denise?denise has mail !!! MAILRECORD=/u/denise/.Outmail PATH=/usr/ucb:/usr/lpp/X11/bin:/bin:/usr/bin:/etc:/u/denise:/u/denise/bin:/ u/bin1 PWD=/u/denise SHELL=/bin/ksh Personnalisation de l’environnement utilisateur 11-9 Changement de la police d’affichage (commande chfont) Vous pouvez modifier la police par défaut au lancement du système avec chfont ou smit. Une palette de polices est un fichier que le système utilise pour définir et identifier les polices disponibles. Remarque : Seul l’utilisateur root est habilité à exécuter la commande chfont. Commande chfont Par exemple, pour passer à la cinquième police de la palette, entrez : chfont –a5 Appuyez sur Entrée. La police ID 5 devient la police principale. Par exemple, pour passer à la police Roman, en italique et en gras, en conservant la même taille, entrez : chfont –n /usr/lpp/fonts/It114.snf /usr/lpp/fonts/Bld14.snf /usr/lpp/fonts/Rom14.snf Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande chfont dans le manuel AIX 5L Version 5.2 Commands Reference. Commande smit Vous pouvez également lancer la commande chfont via smit. Pour sélectionner la police active, entrez : smit chfont Appuyez sur Entrée. Pour sélectionner la palette de polices, entrez : smit chfontpl Appuyez sur Entrée. Changement de l’affectation des touches de contrôle (commande stty) Vous pouvez modifier l’affectation des touches de contrôle via la commande stty. Les changements valent jusqu’à la déconnexion suivante. Pour les rendre permanents, placez–les dans le fichier .profile. Par exemple, pour définir Ctrl-Z comme touche d’interruption, entrez : stty intr ^Z Assurez–vous de placer un espace entre intr et ^Z. Appuyez sur Entrée. Par exemple, pour restaurer toutes les touches de contrôle à leur valeur par défaut, entrez : stty sane Appuyez sur Entrée. Par exemple, pour afficher les paramètres courants, entrez : stty –a Appuyez sur Entrée. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande stty dans le manuel AIX 5L Version 5.2 Commands Reference. 11-10 AIX Guide de l’utilisateur - Système d’exploitation et unités Changement de l’invite système Le shell utilise trois variables d’invite : PS1 Invite utilisée comme invite système normale PS2 Invite utilisée lorsque le shell attend des entrées supplémentaires PS3 Invite indiquant que vous détenez les droits de l’utilisateur root Pour changer le contenu d’une invite, il suffit de modifier la variable correspondante. Vos modifications d’invite restent effectives jusqu’à la déconnexion. Pour les rendre permanents, placez–les dans le fichier .env. Par exemple, pour afficher la valeur actuelle de la variable PS1, entrez : echo ”prompt is $PS1” Appuyez sur Entrée. Le système affiche un écran semblable à celui-ci : prompt is $ Par exemple, pour afficher l’invite Ready>, entrez : PS1=”Ready> ” Appuyez sur Entrée. Par exemple, pour que l’invite de suite devienne Enter more–>, entrez : PS2=”Enter more–>” Appuyez sur Entrée. Par exemple, pour que l’invite root soit Root–>, entrez : PS3=”Root–> ” Appuyez sur Entrée. Personnalisation de l’environnement utilisateur 11-11 Récapitulatif des commandes de personnalisation Fichiers de lancement du système /etc/profile Fichier système contenant les commandes exécutées par le système lorsque vous vous connectez /etc/environment Fichier système contenant des variables spécifiant l’environnement de base de tous les process $HOME/.profile Fichier dans votre répertoire qui contient des commandes qui remplacent le système /etc/profile à la connexion. Pour plus d’informations, reportez–vous à la section Fichier .profile, page 11-3. $HOME/.env Fichier de votre répertoire personnel contenant des commandes primant sur celles de l’environnement système /etc/environment et contenant des variables spécifiant l’environnement de base de tous les process. Pour en savoir plus, reportez–vous à la section Fichier .env, page 11-4. Fichiers de lancement AIXwindows $HOME/.xinitrc Fichier de votre répertoire personnel contrôlant les fenêtres et les applications lancées en même temps qu’AIXwindows. Pour en savoir plus, reportez–vous à la section Fichier .xinitrc, page 11-5. $HOME/.Xdefaults Fichier de votre répertoire personnel contrôlant l’aspect visuel et fonctionnel des ressources AIXwindows Pour en savoir plus, reportez–vous à la section Fichier .Xdefaults, page 11-6. $HOME/.mwmrc Fichier de votre répertoire personnel définissant les affectations des touches et des boutons de la souris, et la définition des menus pour le gestionnaire de fenêtres. Pour en savoir plus, reportez–vous à la section Fichier .xinitrc, page 11-7. Procédures de personnalisation 11-12 PS1 Invite système normale PS2 Invite d’entrées complémentaires PS3 Invite système root chfont Change la police d’affichage sur un écran (après relance du système). stty Définit, redéfinit et fait état des paramètres d’exploitation d’une station de travail. AIX Guide de l’utilisateur - Système d’exploitation et unités Chapitre 12. Shells Les shells assurent l’interface avec le système d’exploitation. Ils constituent la couche externe du système d’exploitation. Intégrant un langage de programmation, ils sont à même de contrôler process et fichiers, et de gérer et de contrôler d’autres programmes. Ils vous invitent à entrer des données, les interprètent et traitent les résultats générés par le système. Ils assurent la communication avec le système d’exploitation, communication qui s’effectue soit en mode interactif (les entrées au clavier sont immédiatement interprétées), soit via des scripts shell. Un script shell est une séquence de commandes (shell et système), enregistrée dans un fichier. Lors de votre connexion au système, le nom du shell à exécuter est détecté. Une fois le shell exécuté, une invite s’affiche, généralement un signe dollar ($). Lorsque vous tapez une commande et appuyez sur Entrée, le shell évalue la commande et tente de l’exécuter. Le résultat est ensuite dirigé soit vers l’écran, soit réacheminé, selon vos instructions. L’invite est ensuite réaffichée, dans l’attente de la commande suivante. La ligne sur laquelle vous tapez les commandes est une ligne de commande. Elle contient l’invite shell. Son format de base est le suivant : $ Commande Argument(s) Le shell interprète le premier mot (jusqu’au premier espace) comme étant le nom de la commande, et les mots suivants comme des arguments. Ce chapitre traite des points suivants : • Caractéristiques des shells, page 12-3 • Commandes du shell Korn ou POSIX, page 12-9 • Déclaration de caractères (shell Korn ou POSIX), page 12-16 • Mots réservés (shell Korn ou POSIX), page 12-19 • Alias de commandes (shell Korn ou POSIX), page 12-20 • Substitution de paramètres (shell Korn ou POSIX), page 12-22 • Substitution de commandes (shell Korn ou POSIX), page 12-28 • Evaluation arithmétique (shell Korn ou POSIX), page 12-29 • Séparation de zones (shell Korn ou le shell POSIX), page 12-31 • Substitution de noms de fichiers (shell Korn ou POSIX), page 12-32 • Réacheminement des entrées/sorties (shell Korn ou POSIX), page 12-34 • Etats de sortie (shell Korn ou POSIX), page 12-37 • Commandes du shell Korn ou POSIX, page 12-9 • Commandes intégrées du shell Korn ou POSIX, page 12-38 • Expressions conditionnelles, page 12-53 • Contrôle des travaux (shell Korn ou POSIX), page 12-55 • Edition en ligne (shell Korn ou POSIX), page 12-57 • Liste des commandes intégrées du shell Korn ou POSIX, page 12-51 • Liste des commandes intégrées du shell Bourne, page 12-92 Shells 12-1 12-2 • Liste des commandes intégrées du shell C, page 12-124 • Shell Bourne, page 12-126 • Shell C, page 12-127 • Shell Bourne, page 12-71 • Shell restreint, page 12-73 • Commandes du shell Bourne, page 12-74 • Substitution de variables et de noms de fichiers (shell Bourne), page 12-84 • Réacheminement des entrées/sorties (shell Bourne), page 12-91 • Shell C, page 12-93 • Commandes du shell C, page 12-95 • Substitution d’historiques (shell C), page 12-109 • Substitution d’alias (shell C), page 12-112 • Substitution de variables et de noms de fichiers (shell C), page 12-113 • Variables d’environnement (shell C), page 12-118 • Réacheminement des entrées/sorties (shell C), page 12-121 • Contrôle des travaux (shell C), page 12-123 AIX Guide de l’utilisateur – Système d’exploitation et unités Caractéristiques des shells Communiquer avec le système via une interface shell présente les avantages suivants : • Substitution de caractères génériques dans les noms de fichiers (correspondance) Exécute des commandes sur un groupe de fichiers, identifiés par une trame (et non sur un fichier explicitement nommé). Pour en savoir plus, reportez–vous aux sections suivantes : – Substitution de noms de fichiers (shell Korn ou POSIX), page 12-32 – Substitution de noms de fichiers (shell Bourne), page 12-85 – Substitution de noms de fichiers (shell C), page 12-115 • Traitement en arrière–plan Exécute les tâches lourdes en arrière-plan, libérant le terminal pour des traitements interactifs concurrents. Pour en savoir plus, reportez–vous à la commande bg dans les sections suivantes : – Contrôle des travaux (shell Korn ou POSIX), page 12-55 – Commandes intégrées (shell C), page 12-95 Remarque : Le shell Bourne ne prend pas en charge le contrôle des travaux. • Alias de commandes Attribue un alias à une commande ou à une expression. Lorsqu’un alias figure dans une ligne de commande ou dans un script shell, le système remplace cet alias par le texte qu’il représente. Pour en savoir plus, reportez–vous aux sections suivantes : – Alias de commandes (shell Korn ou POSIX), page 12-20 – Substitution d’alias (shell C), page 12-112 Remarque : Le shell Bourne ne prend pas en charge les alias de commandes. • Historique des commandes Consigne dans un fichier d’historique les commandes lancées. Vous pouvez utiliser ce fichier pour appeler, modifier ou relancer une commande enregistrée. Pour en savoir plus, reportez–vous à la commande history dans les sections suivantes : – Historique des commandes (shell Korn ou POSIX), page 12-15 – Commandes intégrées (shell C), page 12-95 – Substitution d’historique (shell C), page 12-109 Remarque : Le shell Bourne ne prend pas en charge l’historique des commandes. • Substitution de noms de fichiers Génère automatiquement une liste de noms de fichiers sur une ligne de commande sur la base de caractères génériques. Pour en savoir plus, reportez–vous aux sections suivantes : – Substitution de noms de fichiers (shell Korn ou POSIX), page 12-32 – Substitution de noms de fichiers (shell Bourne), page 12-85 – Substitution de noms de fichiers (shell C), page 12-115 Shells 12-3 • Réacheminement des entrées/sorties Lit des données à partir d’une source autre que le clavier et réachemine les sorties vers un fichier ou une unité autre que le terminal. Par exemple, les entrées destinées à un programme peuvent être extraites d’un fichier et réacheminées vers l’imprimante ou vers un autre fichier. Pour en savoir plus, reportez–vous aux sections suivantes : – Réacheminement des entrées/sorties (shell Korn ou POSIX), page 12-34 – Réacheminement des entrées/sorties (shell Bourne), page 12-91 – Réacheminement des entrées/sorties (shell C), page 12-121 • Traitement “pipeline” Relie des commandes entre elles pour former un programme complexe : la sortie standard de chaque programme constitue l’entrée standard du suivant. Pour en savoir plus, reportez–vous à la définition de traitement “pipeline”, page 12-5 dans la section relative à la terminologie des shells, page 12-5. • Substitution de variables shell Enregistre des données dans des variables définies par l’utilisateur et dans des variables shell prédéfinies. Pour en savoir plus, reportez–vous aux sections suivantes : – Substitution de paramètres (shell Korn ou POSIX), page 12-22 – Substitution de variables (shell Bourne), page 12-84 – Substitution de variables (shell C), page 12-113. Shells disponibles Les shells fournis avec le système d’exploitation sont les suivants : • shell Korn (lancé par la commande ksh) ; • shell Bourne (lancé par la commande bsh) ; • shell restreint (version limitée du shell Bourne, lancé par la commande Rsh) ; • shell POSIX (également appelé shell Korn, lancé par la commande psh) ; • shell par défaut (lancé par la commande sh) ; • shell C (lancé par la commande csh) ; • shell sécurisé (version limitée du shell Korn, lancé par la commande tsh) ; • shell distant (lancé par la commande rsh). Le shell de connexion est lancé lors de la connexion. Votre shell de connexion est défini dans le fichier /etc/passwd. Le shell Korn (voir page 12-9) est le shell de connexion standard. Il présente une compatibilité descendante avec le shell Bourne (voir Shell Bourne, page 12-71). Le shell par défaut ou shell standard est le shell lié à et lancé par la commande usr/bin/sh. Le shell Bourne est configuré comme shell par défaut et est un sous–ensemble du shell Korn. La commande /usr/bin/sh est une copie du shell Korn, dont la commande est /usr/bin/ksh. Il est donc possible de remplacer le shell par défaut par le shell Korn. Le shell POSIX est appelé par la commande /usr/bin/psh et lié à la commande /usr/bin/sh. 12-4 AIX Guide de l’utilisateur – Système d’exploitation et unités Terminologie des shells Voici quelques définitions utiles : blanc (espace) Un des caractères de la classe de blancs définie dans la catégorie LC_CTYPE. Dans le shell POSIX, un blanc est soit une tabulation, soit un espace. commande intégrée Commande que le shell exécute sans la rechercher ni créer de process distinct. commande Séquence de caractères construite suivant la syntaxe du langage shell. Le shell lit chaque commande, puis exécute l’action demandée directement ou par l’intermédiaire d’utilitaires. commentaire Mot préfixé par le signe dièse (#) : tout caractère ou chaîne de caractères situé entre ce signe et le caractère nouvelle ligne est ignoré. identificateur Séquence de lettres, chiffres ou symboles de soulignement introduite par une lettre ou un symbole de soulignement. Le premier caractère d’un identificateur ne peut pas être un chiffre. Les identificateurs servent de noms pour les alias, les fonctions et les paramètres nommés. Shells 12-5 liste Séquence d’un ou de plusieurs pipelines séparés par l’un des symboles suivants : point–virgule (;), perluète (&), double perluète (&&) ou double barre verticale (||). La fin de la liste est indiquée par l’un des symboles suivants : point– virgule (;), perluète (&) ou barre verticale, perluète (|&). ; Le shell traite le pipeline précédent en mode séquentiel. Il exécute successivement les commandes jusqu’à la dernière, dont il attend la fin de l’exécution. &Le shell traite le pipeline précédent en mode asynchrone. Il exécute successivement les commandes, traitant le pipeline en arrière–plan sans attendre la fin de son exécution. |& Le shell traite le pipeline précédent en mode asynchrone et établit un canal bilatéral vers le shell parent. Il exécute successivement les commandes, traitant le pipeline en arrière–plan sans attendre la fin de son exécution. Les commandes read –p et print –p permettent au shell parent de lire à partir de l’entrée standard et d’écrire vers la sortie standard de la commande générée dynamiquement. Une seule commande peut être activée à la fois. && Le shell traite la liste située après ce symbole si le résultat du pipeline précédent est la valeur zéro (0). || Le shell traite la liste située après ce symbole si le résultat du pipeline précédent est une valeur différente de 0 (zéro). Les symboles point–virgule (;), perluète (&) et barre verticale+perluète (|&) ont une priorité moindre que les symboles double perluète (&&) et double barre verticale (||). Les symboles ,, & et |& ont la même priorité. De même, les symboles && et || ont la même priorité. Un ou plusieurs caractères nouvelle ligne peuvent remplacer le symbole point–virgule pour délimiter deux commandes dans une liste. Remarque : Le symbole |& n’est valide que sous le shell Korn. 12-6 métacaractère Un métacaractère est un caractère qui a une signification spéciale pour le shell et marque toujours la fin d’un mot, sauf s’il est placé entre apostrophes. Les symboles considérés comme des métacaractères sont : barre verticale (|), perluète (&), point–virgule (;), inférieur à (<), supérieur à (>), parenthèse gauche ((), parenthèse droite ()), dollar ($), apostrophe gauche (‘), barre oblique inverse (\), apostrophe droit (’), guillemets (”), caractère de ligne suivante, espace et tabulation. Les caractères encadrés d’apostrophes, dits déclarés, sont interprétés littéralement. Sinon, c’est leur signification spéciale qui est prise en compte. (Dans le shell C, les métacaractères sont aussi appelés métacaractères d’analyse sémantique.) liste d’affectation des paramètres Liste de mots de la forme Identificateur = Valeur. Il doit y avoir le même nombre d’espaces de part et d’autre du signe égal (=) ou aucun espace. Remarque : Dans le shell C, cette liste est de la forme set Identificateur = Valeur. Les espaces encadrant le signe = (égal) sont obligatoires. AIX Guide de l’utilisateur – Système d’exploitation et unités pipeline Séquence de commandes séparées par une barre verticale (|). Chaque commande (sauf éventuellement la dernière) est exécutée séparément, mais la sortie standard d’une commande constitue l’entrée standard de la suivante. Une liste de commandes entre parenthèses est exécutée comme simple commande d’un sous–shell distinct. Si le pipeline n’est pas précédé du mot réservé !, son état de sortie est celui de la dernière commande. Sinon, c’est l’opposé (NON logique) de l’état de cette dernière commande. En d’autres termes, si la dernière commande renvoie zéro, l’état de sortie est 1. Si elle renvoie une valeur supérieure à zéro, l’état de sortie est zéro. Le format d’un pipeline est le suivant : [!] commande1 [ | commande2 ...] Remarque : Dans les premières versions du shell Bourne, un canal était symbolisé par un (^). variable shell Nom ou paramètre auquel est affectée une valeur. Pour affecter une valeur, entrez le nom de la variable suivi d’un signe égal (=) et de la valeur souhaitée. Vous pouvez remplacer le nom de la variable par la valeur affectée en préfixant le nom de la variable d’un signe dollar ($). Les variables sont particulièrement utiles pour abréger un nom de chemin trop long : $HOME, par exemple, donne un accès direct au répertoire personnel. Une variable prédéfinie est une variable dont la valeur est attribuée par le shell. Une variable définie par l’utilisateur est une variable dont la valeur est attribuée par l’utilisateur. commande simple Séquence de listes d’affectations et de réacheminements de paramètres, dans un ordre quelconque. Elle est éventuellement suivie de commandes, de mots et de réacheminements. Elle est terminée par ; , |, &, | |, &&, |&, ou un caractère nouvelle ligne. Le nom de la commande est passé comme paramètre 0 (tel que défini par la sous–routine exec). La valeur d’une commande simple est son état en sortie (zéro si elle a abouti, différent de zéro, sinon). Reportez–vous à la sous–routine sigaction, sigvec, or signal dans le manuel AIX 5L Version 5.2 Technical Reference: Base Operating System and Extensions Volume 2 pour la liste des valeurs d’état en sortie. sous–shell Shell exécuté comme enfant du shell de connexion ou du shell courant. caractère générique Aussi appelé métacaractère. Symbole spécial affecté d’une valeur par le shell. Les caractères génériques standard sont les suivants : ?, *, [ensemble], et [!ensemble]. Ils sont particulièrement utiles pour effectuer des substitutions de noms de fichiers. mot Séquence de caractères exempte de blancs. Les mots sont séparés par un ou plusieurs métacaractères. Shells 12-7 Création et exécution d’un script shell Les scripts shell sont des outils qui permettent de prendre en charge des commandes, des séquences de commandes ou des routines particulièrement complexes ou lourdes. Un script shell est un fichier contenant une ou plusieurs commandes. Pour exécuter la séquence de commandes, il suffit de taper le nom du fichier. Vous créez un script shell à l’aide d’un éditeur de texte. Un script peut regrouper des commandes système ou des commandes shell intégrées. Pour écrire un script shell, procédez comme suit. 1. Via un éditeur de texte, créez et sauvegardez un fichier. Vous pouvez y inscrire n’importe quelle combinaison de commandes système et de commandes shell. Par convention, les scripts shell non destinés à être exploités par plusieurs utilisateurs sont enregistrés dans le répertoire $HOME/bin. Remarque : Le système d’exploitation ne prend pas en charge les sous–routines setuid et setgid dans un script shell. 2. Lancez la commande chmod pour limiter au seul propriétaire le droit d’exécuter le fichier. Par exemple, si le fichier s’appelle script1, tapez : chmod u=rwx script1 Appuyez sur Entrée. 3. Pour exécuter le script, entrez son nom sur la ligne de commande. Pour exécuter le script script1, tapez : script1 Appuyez sur Entrée. Remarque : Vous pouvez exécuter un script shell sans l’avoir rendu exécutable, sous réserve que son nom soit précédé d’une commande shell (ksh, bsh ou csh) sur la ligne de commande. Par exemple, pour exécuter le fichier non–exécutable script1 sous le shell Korn, entrez : ksh script1 Spécification d’un shell pour un fichier script Lorsque vous exécutez un script shell sous le shell Korn (shell POSIX) ou le shell Bourne, les commandes sont exécutées sous contrôle du shell courant – sauf spécification contraire explicite. Lorsque vous exécutez un script shell sous le shell C, les commandes sont exécutées sous contrôle du shell Bourne (/usr/bin/bsh) sauf si vous spécifiez un autre shell. Il est possible d’exécuter un script shell dans un shell spécifique en incluant ce shell dans le script shell. Pour lancer un script shell exécutable sous un shell spécifique, tapez #! Chemin sur la première ligne de commande du script et appuyez sur Entrée. Les caractères #! identifient le type de fichier. La variable Chemin indique le chemin du shell sous lequel le script est exécuté. Par exemple, pour exécuter le script bsh dans le shell Bourne, entrez : #!/usr/bin/bsh Appuyez sur Entrée. Si vous précédez d’une commande shell le nom d’un fichier script (sur la ligne de commande), le shell ainsi spécifié prime sur celui éventuellement indiqué dans le script lui–même. Ainsi, si vous tapez la commande ksh myfile et appuyez sur Entrée, cela exécute le fichier myfile sous le shell Korn, même si la première ligne de myfile est #!/usr/bin/csh. 12-8 AIX Guide de l’utilisateur – Système d’exploitation et unités Commandes du shell Korn ou POSIX Le shell Korn est un interpréteur de commandes interactif et un langage de programmation. Il est conforme à l’environnement POSIX (Portable Operating System Interface for Computer Environments), standard international pour les systèmes d’exploitation. POSIX n’est pas un système d’exploitation, mais un standard ayant pour objet la portabilité des applications, au niveau source, entre plusieurs systèmes. Les caractéristiques POSIX sont construites au niveau supérieur du shell Korn. Le shell Korn (également appelé shell POSIX) offre, outre nombre des fonctions des shells Bourne et C (réacheminement des E/S, substitution de variables et de noms de fichiers, etc.), un certain nombre de fonctions spécifiques. En outre, il inclut un certain nombre de commandes supplémentaires et de caractéristiques de langages de programmation : Evaluation arithmétique La commande intégrée let du shell Korn ou POSIX exécute des opérations arithmétiques sur des nombres entiers, sur n’importe quelle base entre 2 et 36. Pour en savoir plus, reportez–vous à Evaluation arithmétique (shell Korn ou POSIX), page 12-29. Historique des commandes Le shell Korn, ou POSIX, contient un fichier qui enregistre toutes les commandes entrées. Vous pouvez modifier n’importe quelle commande de ce fichier à l’aide d’un éditeur de texte, puis la réutiliser. Pour en savoir plus, reportez–vous à Historique des commandes (shell Korn ou POSIX), page 12-15. Fonction coprocess Cette fonction permet d’exécuter des process en arrière-plan, de leur envoyer des informations et d’en recevoir. Pour en savoir plus, reportez–vous à la Fonction coprocess, page 12-35. Edition Les options d’édition permettent de modifier la ligne de commande. Editeurs disponibles : emacs, gmacs et vi. Pour en savoir plus, reportez–vous à Edition en ligne (shell Korn ou POSIX), page 12-57. Une commande du shell Korn est l’un des éléments suivants : • Commande simple, page 12-7 • Pipeline, page 12-5 • Liste, page 12-6 • Commande composée, page 12-10 • Fonction, page 12-14 Lorsque vous lancez une commande dans le shell Korn ou POSIX, il l’analyse et effectue les actions suivantes : • il effectue toutes les substitutions indiquées ; • il détermine si la commande contient un /. Dans l’affirmative, exécute le programme nommé par le chemin spécifié. Dans la négative, le shell effectue les opérations suivantes : • Il détermine s’il s’agit d’une commande intégrée spéciale. Dans l’affirmative, il exécute la commande dans le process shell courant. Pour en savoir plus sur les commandes intégrées spéciales, reportez–vous à Commandes intégrées du shell Korn ou POSIX, page 12-38. Shells 12-9 • Il compare la commande aux fonctions définies par l’utilisateur. Si elle correspond à une de ces fonctions, les paramètres positionnels sont sauvegardés et réinitialisés par les arguments de la commande fonction. Lorsque la fonction s’achève ou émet un retour, la liste des paramètres positionnels est restaurée, et l’éventuel traitement d’interruption défini pour EXIT dans la fonction est exécuté. La valeur d’une fonction est celle de la dernière commande exécutée. Une fonction est exécutée dans le process shell courant. • Si le nom de la commande correspond à celui d’une commande intégrée standard, cette commande est appelée. Pour en savoir plus sur les commandes intégrées standard, reportez–vous à Commandes intégrées du shell Korn ou POSIX, page 12-38. • Il crée un process et tente d’exécuter la commande par le biais de la commande exec (s’il ne s’agit ni d’une commande intégrée, ni d’une fonction définie par l’utilisateur). Le shell Korn, ou POSIX, explore les répertoires du chemin d’accès à la recherche d’un fichier exécutable. La variable shell PATH définit le chemin d’accès au répertoire contenant la commande. Les autres répertoires sont séparés par un signe :. Le chemin par défaut est /usr/bin: (indiquant le répertoire /usr/bin, et le répertoire courant, dans cet ordre). Le répertoire courant est spécifié par des deux points contigus, ou par un caractère deux points au début ou à la fin de la liste des chemins. Si le fichier est doté des droits d’exécution, mais n’est pas un répertoire ni un fichier a.out, le shell suppose qu’il contient les commandes shell. Le process shell en cours génère dynamiquement un sous–shell qui lit le fichier. Tous les alias non exportés, toutes les fonctions et tous les paramètres indiqués sont supprimés du fichier. Si le fichier de commande shell est accessible en lecture, ou que les bits setuid ou setgid sont définis dans le fichier, le shell lance un agent qui définit les droits d’accès et exécute le shell, le fichier de commande shell étant passé comme un fichier ouvert. Toute commande entre parenthèses est exécutée dans un sous-shell et les quantités non exportées ne sont pas supprimées. Cette section traite des points suivants : • Commandes composées du shell Korn, page 12-10 • Fonctions du shell Korn, page 12-14 • Commandes intégrées du shell Korn ou POSIX, page 12-38 • Expressions conditionnelles, page 12-53 Commandes composées du shell Korn Une commande composée peut être une liste de commandes simples, un pipeline ou une commande commençant par un mot réservé. Vous serez souvent amené à vous servir de commandes composées telles que if, while et for lorsque vous écrirez des scripts shell. 12-10 AIX Guide de l’utilisateur – Système d’exploitation et unités Liste des commandes composées du shell Korn ou POSIX for Identificateur [ in Mot ...];do Liste ;done A chaque itération de la commande for, Identificateur prend la valeur du mot suivant de la liste in Mot... A défaut de cette liste, c’est la commande do Liste qui est exécutée pour chaque paramètre positionnel défini. L’exécution se termine lorsqu’il n’y a plus de mots dans la liste. Pour en savoir plus sur les paramètres positionnels, reportez-vous à Substitution de paramètres (shell Korn ou POSIX), page 12-22. select Identificateur [ in Mot ...];do Liste ;done La commande select dirige vers la sortie d’erreur standard (descripteur de fichier 2) l’ensemble de mots spécifié, chaque mot étant précédé d’un numéro. Si la liste in Mot... est omise, ce sont les paramètres positionnels qui sont utilisés. L’invite PS3 s’affiche et une ligne est lue à partir de l’entrée standard. Si cette ligne correspond à l’un des numéros des mots de la liste, Identificateur prend la valeur du mot correspondant à ce numéro. Si la ligne lue est vide, la liste de sélection s’affiche à nouveau. Sinon, Identificateur prend la valeur nulle. Le contenu de la ligne lue est sauvegardé dans le paramètre REPLY. Le paramètre Liste est exécuté pour chaque sélection jusqu’à ce qu’un caractère d’interruption ou de fin de fichier soit rencontré. Pour en savoir plus sur les paramètres positionnels, reportez-vous à Substitution de paramètres (shell Korn ou POSIX), page 12-22. case Mot in [[ ( ] Trame [ | Trame ] ... ) Liste ;; ]... esac Une commande case exécute la Liste associée à la première Trame correspondant au Mot. Le format des trames est le même que celui utilisé pour les substitutions de noms de fichiers. if Liste ;then Liste [ elif Liste;then Liste ]... [;else Liste ];fi Liste spécifie une liste de commandes à exécuter. Le shell exécute d’abord la commande if Liste. Si cette commande renvoie un état de sortie nul, il exécute la commande then Liste. Sinon, il exécute les commandes spécifiées par le paramètre Liste qui suit elif. Shells 12-11 Si la dernière commande de elif Liste renvoie la valeur zéro, la commande then Liste est exécutée. Si la dernière commande de then Liste renvoie la valeur zéro, la commande else Liste est exécutée. Si aucune des commandes spécifiées par les paramètres Liste pour else ou then n’est exécutée, if renvoie un état de sortie nul. while Liste ;do Liste;done 12-12 until Liste ;do Liste;done Liste spécifie une liste de commandes à exécuter. Liste spécifie une liste de commandes, exécutées itérativement par la commande while. Si l’état de sortie de la dernière commande renvoie une valeur nulle, le shell exécute la commande do Liste. Si l’état de sortie de la dernière commande renvoie une valeur non nulle, la boucle se termine. Si aucune des commandes de do Liste n’est exécutée, la commande while renvoie une valeur nulle. La commande until a le même effet que la commande while, à ceci près que le test de fin de boucle n’est pas exécuté. ( Liste ) Liste spécifie une liste de commandes à exécuter. Le shell exécute le paramètre Liste dans un environnement distinct. Remarque : Si l’imbrication exige la présence de deux parenthèses contiguës, vous devez insérer un espace entre elles afin de différencier la commande de l’évaluation arithmétique. { Liste ;} Liste spécifie une liste de commandes à exécuter. Le paramètre Liste est simplement exécuté. Remarque : Contrairement aux métacaractères (), les signes {} indiquent les mots réservés (utilisés à des fins particulières, et non des ID déclarés par l’utilisateur). Pour être reconnus, ces mots réservés doivent se trouver au début d’une ligne ou après un ;. [[ Expression ]] Evalue le paramètre Expression. Si elle est vraie, la commande renvoie un état de sortie nul. AIX Guide de l’utilisateur – Système d’exploitation et unités function Identificateur { Liste ;} or function Identificateur () { Liste; } Définit une fonction référencée par Identificateur. Le corps de la fonction est constitué par la liste des commandes entre {}. Les parenthèses () constituent deux opérateurs, aussi le panachage de caractères blancs avec Identificateur, ( et ) est-il autorisé, quoique non obligatoire. time Pipeline Exécute le paramètre Pipeline. Le délai écoulé, le temps utilisateur et le temps système sont envoyés sur la sortie standard. Lancement du shell Vous pouvez lancer le shell Korn via la commande ksh, la commande psh (shell POSIX) ou la commande exec. Si vous le lancez par la commande exec, et que le premier caractère de l’argument zéro ($0) est le tiret (–), le shell est supposé être un shell de connexion. Le shell commence par lire les commandes du fichier /etc/profile, puis celles du fichier .profile du répertoire courant ou du fichier $HOME/.profile (si les fichiers existent). Ensuite, il lit les commandes du fichier (s’il existe) nommé lors de la substitution de paramètre sur la valeur de la variable d’environnement ENV. Si vous spécifiez le paramètre Fichier [Paramètre] en appelant le shell Korn ou POSIX, celui-ci exécute le fichier script identifié par Fichier, avec tous ses paramètres. Le fichier script doit être accessible en lecture. Les éventuels paramètres setuid et setgid sont ignorés. Le shell lit ensuite les commandes. Remarque : Ne spécifiez pas de fichier script avec les indicateurs –c ou –s lors de l’appel du shell Korn ou POSIX. Pour en savoir plus sur les paramètres positionnels, reportez–vous à ”Substitution de paramètres (shell Korn ou POSIX)”, page 12-22. Environnement shell Korn Toutes les variables (avec leurs valeurs) connues d’une commande lors de son lancement constituent son environnement : variables héritées du process parent et variables spécifiées comme paramètres-clés sur la ligne de commande. Les interactions entre le shell et l’environnement sont multiples. Lorsqu’il est lancé, le shell balaye l’environnement et crée un paramètre chaque fois qu’il trouve un nom en attribuant à ce paramètre la valeur correspondante et en le marquant pour exportation. Les commandes exécutées héritent de l’environnement. Si vous modifiez les valeurs des paramètres shell ou si vous en créez de nouvelles à l’aide des commandes export ou typeset –x, ces paramètres sont intégrés à l’environnement. Pour une commande exécutée, l’environnement se présente donc comme suit : paires nom-valeur héritées par le shell (valeurs éventuellement modifiées par le shell courant), plus les paires résultant de la commande export ou typeset –x. La commande exécutée (sous–shell) ”voit” les modifications apportées aux variables d’environnement héritées, mais doit exporter ces variables pour que ses shells et process enfants les voient. Pour modifier l’environnement d’une fonction ou d’une commande simple, il suffit de la préfixer par une ou plusieurs affectations de paramètres, de la forme Identificateur = Valeur. Les deux expressions suivantes sont donc équivalentes (en ce qui concerne l’exécution de la commande) : TERM=450 arguments commande (export TERM; TERM=450; arguments commande) Shells 12-13 Fonctions du shell Korn Le mot réservé function définit les fonctions shell. Le shell lit et enregistre les fonctions en interne, les noms d’alias étant résolus à la lecture de la fonction. Le shell exécute les fonctions de la même manière que les commandes, les arguments étant passés comme paramètres positionnels. Pour en savoir plus sur les paramètres positionnels, reportez–vous à Substitution de paramètres (shell Korn ou POSIX), page 12-22. Le shell Korn ou POSIX exécute les fonctions dans l’environnement à partir duquel elles sont appelées. Les éléments ci–après sont tous communs à la fonction et au script appelant (des effets secondaires peuvent en résulter) : • valeurs et attributs des variables (sauf utilisation de la commande typeset dans la fonction pour déclarer une variable locale) ; • répertoire de travail ; • alias, définitions de fonctions et attributs ; • paramètre spécial $ ; • fichiers ouverts. Les éléments non communs à la fonction et au script appelant (aucun effet secondaire) sont les suivants : • paramètres positionnels ; • paramètre spécial # ; • variables de la liste d’affectation de la fonction appelée ; • variables déclarées via la commande typeset dans la fonction ; • options ; • traitements d’interruption (toutefois, les signaux ignorés du script appelant sont également ignorés par la fonction). Remarque : Dans les versions antérieures du shell Korn, les traitements d’interruption (autres que EXIT et ERR) étaient communs à la fonction et au script appelant. Un traitement d’interruption sur 0 ou EXIT défini dans le corps d’une fonction est exécuté une fois la fonction achevée, dans l’environnement à partir duquel a été appelée la fonction. Un traitement d’interruption défini à l’extérieur d’une fonction est exécuté après sortie du shell Korn. Dans les versions antérieures du shell Korn, aucun traitement d’interruption sur 0 ou EXIT défini à l’extérieur du corps de la fonction n’était exécuté après sortie de la fonction. Erreurs de syntaxe et affectations de variables suivent les règles définies à la section Commandes intégrées du shell Korn ou POSIX, page 12-38. Pour exécuter une commande composée, il suffit de spécifier son nom comme celui d’une commande simple, les opérandes de la commande faisant temporairement office de paramètres positionnels, pendant la durée de l’exécution. Le paramètre spécial # est modifié pour refléter le nombre d’opérandes. Le paramètre spécial 0 reste inchangé. La commande spéciale return permet de reprendre la main à partir des appels de la fonction. Si des erreurs surviennent à l’intérieur des fonctions, le contrôle est repris par le programme appelant. Les ID fonctions sont listés via l’option –f ou +f de la commande spéciale typeset. L’option –f liste également le texte des fonctions. Les fonctions sont désactivées par l’option –f de la commande spéciale unset. 12-14 AIX Guide de l’utilisateur – Système d’exploitation et unités Généralement, les fonctions sont désactivées lorsque le shell exécute un script shell. La commande typeset assortie de l’option –xf permet d’exporter une fonction vers des scripts exécutés, sans appel séparé du shell. Les fonctions qui doivent être définies par appel séparé du shell doivent être spécifiées dans le fichier ENV via la commande typeset assortie de l’option –xf. Une fonction renvoie un état de sortie nul si sa déclaration a échoué, un état positif sinon. L’état de sortie d’un appel de fonction est celui de la dernière commande exécutée par la fonction. Historique des commandes (shell Korn ou POSIX) Le shell Korn ou POSIX enregistre les commandes entrées dans un fichier d’historique, dont le nom est défini par la variable HISTFILE. Si cette variable n’est ou ne peut être définie, le fichier $HOME/.sh_history est utilisé par défaut. Si le fichier d’historique n’existe pas et que le shell Korn ne dispose pas des droits nécessaires pour le joindre, le shell utilise un fichier temporaire comme fichier d’historique. Le shell accède aux commandes de tous les shells interactifs via le même fichier d’historique, doté des droits d’accès adhoc. Par défaut, le shell Korn ou POSIX sauvegarde le texte des 128 dernières commandes. La taille du fichier d’historique (variable HISTSIZE) n’est pas limitée, mais un fichier trop volumineux risque de ralentir le démarrage du shell Korn. Substitution de l’historique des commandes La commande intégrée fc permet d’afficher et de modifier tout ou partie du fichier d’historique. Le cas échéant, précisez le numéro ou l’intervalle de numéros (ou encore les premiers caractères) des commandes qui vous intéressent. Vous pouvez spécifier une ou plusieurs commandes. Si vous ne précisez pas de programme d’édition en argument de la commande fc, c’est l’éditeur spécifié par la variable FCEDIT qui est utilisé. En cas de non définition de la variable FCEDIT, le fichier /usr/bin/ed est utilisé. Les commandes modifiées sont affichées et exécutées dès que vous quittez l’éditeur. Le nom d’éditeur tiret (–) permet de sauter la phase d’édition et de réexécuter directement la commande. Vous pouvez, dans ce cas, passer par un paramètre de substitution de la forme Ancien = Nouveau pour modifier la commande avant de l’exécuter. Par exemple, si r a pour alias fc –e –, tapez r bad=good c : la commande la plus récente commençant par la lettre c est exécutée et remplace la première occurrence de la chaîne bad par la chaîne good. Pour en savoir plus sur la commande d’historique, reportez–vous à Affichage des commandes précédentes (commande shell history), page 4-7 et à la commande fc dans le manuel AIX 5L Version 5.2 Commands Reference. Shells 12-15 Déclaration de caractères (shell Korn ou POSIX) Si vous voulez que le shell Korn ou POSIX interprète un caractère comme étant un caractère normal (c’est-à-dire dépourvu de la signification qui lui est normalement associée), vous devez le déclarer. S’il s’agit d’un métacaractère, utilisez un des caractères de déclaration de la liste ci-après. Un métacaractère est un caractère qui a une signification spéciale pour le shell : si vous omettez de le déclarer, le shell l’interprétera et le mot sera tronqué. Voici les métacaractères du shell Korn ou POSIX (à déclarer, le cas échéant) : • | (barre verticale) • & (perluète) • ; (point–virgule) • < (inférieur à) et > (supérieur à) • ( (parenthèse gauche) et ) (parenthèse droite) • $ (dollar) • ‘ (apostrophe inverse) et ’ (apostrophe) • \ (barre oblique inverse) • ” (guillemets) • nouvelle ligne • espace • tabulation Les caractères de déclaration sont : \ (barre oblique inverse), (apostrophes) et (guillemets). 12-16 AIX Guide de l’utilisateur – Système d’exploitation et unités \ (barre oblique inverse) Une barre oblique inverse (\) non déclarée préserve la valeur littérale du caractère suivant (sauf s’il s’agit du caractère nouvelle ligne). S’il s’agit du caractère nouvelle ligne, le shell l’interprète comme une continuation de ligne. Apostrophes Mettre des caractères entre apostrophes (’ ’) préserve leur valeur littérale. Ne placez pas d’apostrophe dans la chaîne encadrée. Une barre oblique inverse ne permet pas d’insérer une apostrophe dans une chaîne de ce type : pour imbriquer des apostrophes, écrivez, par exemple : ’a\’’b’, pour obtenir a’b. Guillemets Mettre des caractères entre guillemets (” ”) préserve leur valeur littérale (sauf pour les caractères $ (dollar), ‘ (apostrophe inverse) et barre oblique inverse). $ Le signe dollar conserve sa fonction : développement de paramètres (forme de substitution de commandes) et développement arithmétique. Les caractères entre guillemets se trouvant également entre $( et le symbole) correspondant ne sont pas affectés par les guillemets, mais définissent la commande dont la sortie remplace $ (...) lorsque le mot est développé. A l’intérieur d’une chaîne délimitée par $ { et }, le nombre d’apostrophes ou de guillemets (le cas échéant) doit être pair. Pour déclarer un littéral { ou }, utilisez une barre oblique inverse. ‘ L’apostrophe inverse conserve sa fonction : introduire l’autre forme de substitution de commande. La partie de la chaîne comprise entre la première apostrophe et la suivante (non précédée d’une barre oblique inverse) définit la commande dont la sortie remplace ‘... ‘ lorsque le mot est développé. \ La barre oblique inverse conserve sa fonction d’échappement si elle est suivie de l’un des caractères suivants : $, ‘, ”, \ ou nouvelle ligne. Pour insérer un guillemet dans une chaîne entre guillemets, faites–le précéder d’une barre oblique inverse. Avec des guillemets, si une barre oblique inverse est immédiatement suivie d’un caractère spécial, la barre est supprimée et le caractère suivant, interprété littéralement. Si la barre oblique inverse précède un caractère normal, elle demeure à sa place, et le caractère suivant est inchangé. Par exemple : ”\$” ”\a” –> –> $ \a Shells 12-17 Voici les règles applicables aux métacaractères et aux caractères de déclaration : • La signification de $* (dollar, astérisque) et de $@ (dollar, arobase) est la même lorsqu’ils ne sont pas déclarés, qu’ils soient utilisés comme valeur d’affectation de paramètre ou comme nom de fichier. • Utilisé comme argument de commande, ”$*” (guillemets, signe dollar, astérisque, guillemets) équivaut à ”$1d$2d...”, d étant le premier caractère du paramètre IFS. • ”$@” (guillemets doubles, dollar, arobase, guillemets doubles) équivaut à ”$1” ”$2” .... • Entre apostrophes inverses (‘‘), le caractère barre oblique inverse déclare les caractères\ (barre oblique inverse), ’ (apostrophe) et $ (dollar). Si les apostrophes inverses se trouvent entre guillemets (” ”), la barre inverse déclare également le caractère guillemets. • Les substitutions de commandes et de paramètres ne sont pas affectées par les guillemets (” ”). • Pour annuler la signification spéciale des alias et des mots réservés, déclarez-en chaque caractère. Les noms des fonctions et des commandes intégrées ne peuvent être déclarés. 12-18 AIX Guide de l’utilisateur – Système d’exploitation et unités Mots réservés (shell Korn ou POSIX) Voici la liste des mots réservés du shell : ! case do done elif esac fi function if select then until while } [[ else for in time { ]] Un mot réservé n’est identifié que lorsqu’il n’est pas déclaré et qu’il constitue : • le premier mot d’une commande ; • le premier mot suivant un mot réservé autre que case, for ou in ; • le troisième mot d’une commande case ou for (in est le seul mot possible). Shells 12-19 Alias de commandes (shell Korn ou POSIX) Le shell Korn, ou POSIX, permet de personnaliser les commandes en créant des alias. La commande alias définit comme alias un mot de la forme Nom=Chaîne. Lorsque vous utilisez un alias comme premier mot d’une ligne de commande, le shell Korn vérifie s’il traite déjà un alias de même nom. Dans l’affirmative, il ne remplace pas le nom de l’alias. Dans la négative, il remplace le nom de l’alias par sa valeur. Le premier caractère d’un nom d’alias peut être n’importe quel caractère imprimable à l’exclusion des caractères spéciaux. Les autres caractères sont les mêmes que ceux utilisés pour un identificateur. La chaîne de remplacement peut contenir n’importe quel texte shell correct, métacaractères compris. Si le dernier caractère d’une valeur alias est un blanc, le shell vérifie aussi le mot qui suit l’alias. Les alias peuvent servir à redéfinir les commandes intégrées spéciales, mais pas les mots réservés. Les définitions d’alias ne sont pas conservées d’un appel de ksh à l’autre. Toutefois, si vous spécifiez alias –x, l’alias reste en vigueur pour les scripts appelés par leur nom, qui n’appellent pas de scripts distincts. Pour exporter une définition d’alias et en offrir l’accès aux process enfants, spécifiez alias –x et la définition de l’alias dans le fichier d’environnement. Pour créer, lister et exporter des alias, lancez la commande alias. Pour supprimer les alias, utilisez la commande unalias. Format de création d’un alias : alias Nom=Chaîne où Nom est le nom de l’alias et Chaîne, sa valeur. Les alias exportés suivants sont prédéfinis par le shell Korn, mais vous pouvez les inhiber ou les redéfinir. Nous vous conseillons toutefois de ne pas les modifier : vous risqueriez de perturber un tiers, habitué au fonctionnement des alias prédéfinis. autoload=’typeset –fu’ false=’let 0’ functions=’typeset –f’ hash=’alias –t’ history=’fc –l’ integer=’typeset –i’ nohup=’nohup ’ r=’fc –e –’ true=’:’ type=’whence –v’ Les alias ne sont pas pris en charge par les appels non interactifs du shell Korn (ksh) (dans un script shell ou, comme dans l’exemple suivant avec l’option –c associée à ksh. ksh –c alias Pour plus d’informations sur la création d’alias, reportez–vous à Création d’un alias (commande shell alias), page 4-10 et à la commande alias dans le manuel AIX 5L Version 5.2 Commands Reference. 12-20 AIX Guide de l’utilisateur – Système d’exploitation et unités Alias de trace Les alias sont souvent utilisés pour abréger les noms de chemins absolus. La fonction de création d’alias permet d’associer automatiquement la valeur d’un alias au chemin absolu de la commande correspondante. Ce type d’alias s’appelle alias de trace. Ce type d’alias accélère l’exécution des commandes, le shell n’ayant plus à rechercher dans la variable PATH le chemin absolu. La commande set –h active le processus de traçage, de sorte que chaque fois qu’une commande est référencée, le shell définit un alias de trace. La valeur de cet alias devient indéfinie dès que vous réinitialisez la variable PATH. Ces alias demeurent tracés, jusqu’à ce qu’une référence ultérieure les redéfinisse. Plusieurs alias de trace sont compilés dans le shell. Substitution de tilde Après exécution des substitutions d’alias, le shell examine les mots à la recherche de ceux qui commencent par un tilde (~) non déclaré. S’il en trouve, il vérifie le mot, jusqu’à la première barre oblique (/), pour voir s’il correspond à un nom utilisateur du fichier /etc/passwd. Si oui, il remplace le caractère ~ et le nom par le répertoire de connexion de l’utilisateur correspondant. Ce processus est appelé substitution de tilde. S’il ne trouve pas de correspondance, le shell ne modifie pas le texte original. Le shell Korn effectue aussi des remplacements dans le cas particulier où le caractère ~ est le seul du mot ou est suivi du signe + (plus) ou du signe – (moins). ~ Remplacé par la variable HOME. ~+ Remplacé par la variable $PWD (chemin absolu du répertoire précédent). ~– Remplacé par la variable $OLDPWD (chemin absolu du répertoire précédent). En outre, le shell essaie d’effectuer une substitution de tilde lorsque la valeur d’un paramètre d’affectation de variable commence par un caractère ~. Shells 12-21 Substitution de paramètres (shell Korn ou POSIX) Le shell Korn, ou POSIX, autorise les substitutions de paramètres. Cette section traite des points suivants : • Paramètres (shell Korn), page 12-22 • Substitution de paramètres, page 12-23 • Paramètres spéciaux prédéfinis, page 12-24 • Variables définies par le shell Korn ou POSIX, page 12-25 • Variables utilisées par le shell Korn ou POSIX, page 12-26 Paramètres (shell Korn) Il existe plusieurs catégories de paramètres : • Identificateur constitué d’une combinaison des caractères * (astérisque), @ (arobase), #(dièse), ? (point d’interrogation), – (tiret), $ (dollar) et ! (point d’exclamation). Il s’agit des paramètres spéciaux. • Argument désigné par un chiffre (paramètre positionnel). • Paramètre désigné par un identificateur, doté d’une valeur et, éventuellement, d’attributs (paramètres/variables nommés). La commande intégrée spéciale typeset affecte valeurs et attributs aux paramètres nommés. Vous trouverez la description des attributs admis par le shell Korn dans la section qui traite de la commande typeset. Les paramètres exportés transmettent valeurs et attributs à l’environnement. Le format d’affectation d’une valeur est le suivant: Nom=Valeur [ Nom=Valeur ] ... Si l’attribut entier –i est associé au (paramètre) Nom, le paramètre Valeur fait l’objet d’une évaluation arithmétique. Pour en savoir plus, reportez–vous à Evaluation arithmétique (shell Korn ou POSIX), page 12-29. Le shell offre une fonction de tableau à une dimension. Chaque élément du tableau est référencé par un indice, désigné par une expression arithmétique entre crochets ([ ]). Pour affecter des valeurs à un tableau, utilisez la commande set –A Nom Valeur.... Les indices doivent être compris entre 0 et 511. Les tableaux n’ont pas besoin d’être déclarés. Toute référence à un paramètre doté d’un indice valide est autorisée et permet, le cas échéant, la création d’un tableau. Référencer un tableau sans indice équivaut à référencer l’élément zéro. La commande spéciale set sert à affecter des valeurs aux paramètres positionnels. A l’appel du shell, le paramètre $0 est positionné à partir de l’argument zéro. Le caractère $ permet d’introduire des paramètres remplaçables. 12-22 AIX Guide de l’utilisateur – Système d’exploitation et unités Substitution de paramètres Voici la liste des paramètres remplaçables: ${ Paramètre } Le shell lit tous les caractères à partir du signe $ { (signe dollar, accolade gauche) jusqu’au signe } (accolade droite) correspondant faisant partie d’un même mot, même si celui–ci contient des accolades ou des métacaractères. La valeur éventuelle du paramètre spécifié est remplacée. Les accolades sont obligatoires lorsque Paramètre est suivi d’une lettre, d’un chiffre ou d’un soulignement qui ne font pas partie du nom ou pour un paramètre nommé indexé. Un paramètre spécifié avec un ou plusieurs chiffres est un paramètre positionnel. Tout paramètre positionnel de plus d’un chiffre doit être mis entre accolades. Lorsque la valeur de la variable est un * (astérisque) ou un @ (arobase), chaque paramètre positionnel commençant par $1, est remplacé (séparé par un caractère séparateur de zone). Lorsqu’un identificateur de tableau doté d’un indice * (astérisque) ou d’un @ (arobase) est utilisé, la valeur de chacun des éléments (séparé par un caractère séparateur de zone) est remplacé. ${# Paramètre } Lorsque la valeur de Paramètre est un * ou un @, le nombre de paramètres positionnels fait l’objet d’une substitution. Sinon, la longueur spécifiée par Paramètre est remplacée. ${# Identificateur [ * ] } Le nombre d’éléments du tableau spécifié par le paramètre Identificateur est remplacé. ${ Paramètre:– Mot } Si Paramètre est défini et non nul, sa valeur est remplacée ; sinon, la substitution porte sur Mot. ${ Paramètre:= Mot } Si Paramètre est défini et non nul, sa valeur est remplacée ; sinon, la substitution porte sur Mot. Les paramètres positionnels ne peuvent être affectés de cette façon. ${ Paramètre:? Mot } Si Paramètre est défini et non nul, sa valeur est remplacée. Sinon, la valeur de Mot s’affiche et vous quittez le shell. Si vous avez omis de définir Mot, un message standard s’affiche. ${ Paramètre:+ Mot } Si Paramètre est défini et non nul, sa valeur est remplacée. Shells 12-23 ${ Paramètre # Trame } | ${ Paramètre ## Trame } Si la Trame shell correspond aux premiers caractères de Paramètre, la valeur de remplacement est celle de Paramètre après suppression de la partie correspondante. Sinon, la valeur de Paramètre est remplacée. Dans le premier format, c’est la plus petite correspondance de caractères génériques qui est éliminée. Dans le second format, c’est la plus longue correspondance de caractères génériques qui est éliminée. ${ Paramètre % Trame } | ${ Paramètre %% Si la Trame shell correspond aux derniers Trame } caractères de Paramètre, la valeur de remplacement est celle de Paramètre après suppression de la partie correspondante. Sinon, la valeur de Paramètre est remplacée. Dans le premier format, c’est la plus petite correspondance de caractères génériques qui est éliminée, dans le deuxième format, c’est la plus longue. Dans les expressions précédentes, la variable Mot n’est évaluée que si elle doit être utilisée comme chaîne remplacée. Dans l’exemple suivant, la commande pwd ne sera donc exécutée que si l’indicateur –d est nul ou non défini : echo ${d:–$(pwd)} Remarque : Si le signe : (deux points) est omis, le shell vérifie uniquement si Paramètre est défini. Paramètres spéciaux prédéfinis Les paramètres automatiquement définis par le shell sont les suivants: 12-24 @ Développe les paramètres positionnels, en commençant par $1. Les paramètres sont séparés par des espaces. Si vous encadrez $@ de guillemets(”), le shell interprète chaque paramètre positionnel comme une chaîne distincte. En l’absence de paramètre positionnel, le shell développe l’instruction en chaîne nulle non déclarée. * Développe les paramètres positionnels, en commençant par $1. Le shell sépare chaque paramètre par le premier caractère du paramètre IFS (voir page 12-25. Si vous encadrez $* de guillemets(”), le shell encadre de guillemets les valeurs du paramètre positionnel. Les valeurs sont séparées par le premier caractère du paramètre IFS. # Spécifie le nombre (décimal) de paramètres positionnels transmis au shell, nom de la procédure shell elle–même exclu. Le paramètre $# génère donc le paramètre positionnel ayant la valeur la plus élevée. Ce paramètre sert principalement à vérifier que le nombre d’arguments requis est présent. – Fournit les indicateurs pour le lancement du shell ou de la commande set. AIX Guide de l’utilisateur – Système d’exploitation et unités ? Valeur de sortie de la dernière commande exécutée (chaîne décimale). La plupart des commandes renvoient 0 pour indiquer qu’elles ont été correctement exécutées. Le shell renvoie la valeur courante $? de la variable. $ Numéro de process du shell. Un numéro de process étant unique, cette chaîne (de 5 chiffres au maximum) est souvent utilisée pour générer des noms uniques pour les fichiers temporaires. L’exemple suivant illustre comment créer des fichiers temporaires dans un répertoire réservé à cet effet : temp=$HOME/temp/$$ > ls >$temp... rm $temp ! Numéro de process de la dernière commande d’arrière–plan invoquée. 0 (zéro) Développe le nom du shell ou du script shell. Variables définies par le shell Korn ou POSIX Les variables définies par le shell sont les suivantes : _ (souligné) Indique initialement le nom de chemin du shell ou du script en cours d’exécution tel que transmis à l’environnement. Le dernier argument de la commande précédente lui est ensuite affecté. Ce paramètre n’est pas défini pour les commandes asynchrones. Il sert également à bloquer le nom du fichier MAIL correspondant pendant la vérification du courrier. ERRNO Valeur définie par la dernière sous–routine non aboutie. Cette valeur, dépendante du système, sert au débogage. LINENO Numéro de la ligne courante dans le script ou dans la fonction en cours d’exécution. OLDPWD Répertoire de travail précédemment défini par la commande cd. OPTARG Valeur du dernier argument de l’option traitée par la commande intégrée standard getopts. OPTIND Valeur du dernier indice de l’option traitée par la commande intégrée standard getopts. PPID Numéro de process du shell parent. PWD Répertoire de travail courant défini par la commande cd. RANDOM Génère un nombre entier aléatoire compris entre 0 et 32767. La séquence des nombres aléatoires peut être initialisée en affectant une valeur numérique à la variable RANDOM. REPLY Défini par l’instruction select et la commande intégrée standard read en l’absence d’arguments. SECONDS Nombre de secondes écoulées depuis le renvoi de l’appel du shell. Lorsque cette variable est renseignée, la valeur renvoyée est la valeur affectée incrémentée du nombre de secondes écoulées depuis l’affectation. Shells 12-25 Variables utilisées par le shell Korn ou POSIX Les variables suivantes sont utilisées par le shell : 12-26 CDPATH Chemin d’accès à la commande cd (changement de répertoire). COLUMNS Largeur de la fenêtre d’édition, pour les modes d’édition du shell et l’impression des listes select. EDITOR Si ce paramètre se termine par emacs, gmacs, ou vi, et que la variable VISUAL n’est pas définie par la commande set, l’option correspondante est activée. ENV Si cette variable est renseignée, une substitution de paramètre est exécutée sur cette valeur pour créer le nom de chemin du script exécuté à l’appel du shell. Ce fichier sert en général à définir les alias et les fonctions. FCEDIT Nom de l’éditeur par défaut pour la commande fc. FPATH Chemin d’accès aux définitions de fonction. Il est exploré pour les fonctions assorties de l’indicateur –u et les commandes introuvables. Si un fichier exécutable est trouvé, il est lu et exécuté dans l’environnement courant. HISTFILE Si défini à l’appel du shell, nom du chemin d’accès au fichier enregistrant l’historique des commandes. HISTSIZE Si défini à l’appel du shell, nombre minimal de commandes précédemment entrées et accessibles par ce shell. La valeur par défaut est 128. HOME Répertoire de connexion, qui est le répertoire courant dès que la connexion est établie. Cette variable est initialisée par le programme login. La commande cd utilise par défaut la valeur du paramètre $HOME. Utiliser cette variable plutôt qu’un nom de chemin explicite dans une procédure shell permet d’exécuter la procédure à partir d’un répertoire différent sans modification. IFS Séparateurs de zone internes (en général, espace, tabulation et nouvelle ligne) qui servent à séparer les mots d’une commande résultant d’une substitution de paramètre ou de commande, ou issus d’une commande read. Le premier caractère du paramètre IFS sépare les arguments pour la substitution $*. LANG Valeur par défaut des variables LC_*. LC_ALL Prime sur les valeurs des variables LANG et LC_*. LC_COLLATE Détermine la réaction d’une expression de type intervalle dans le cadre d’une recherche générique. LC_CTYPE Définit la classification des caractères, la conversion majuscules/minuscules et autres attributs de caractères. LC_MESSAGES Langue d’affichage des messages. LINES Longueur des colonnes pour l’affichage des listes de sélection. Les listes de sélection s’affichent verticalement jusqu’au deux tiers environ des lignes spécifiées par le paramètre LINES. MAIL Chemin d’accès au fichier utilisé par la messagerie pour détecter l’arrivée de courrier. Si vous indiquez le nom d’un fichier courrier et que le paramètre MAILPATH n’est pas défini, le shell informe l’utilisateur que du courrier est arrivé dans le fichier spécifié. AIX Guide de l’utilisateur – Système d’exploitation et unités MAILCHECK Fréquence (en secondes) des contrôles effectués par le shell sur d’éventuels changements apportés au délai de modification des fichiers (défini via les variables MAILPATH ou MAIL). La valeur par défaut est 600 secondes. Lorsque le délai est écoulé, le shell effectue un contrôle avant l’affichage de l’invite suivante. MAILPATH Liste de noms de fichiers, séparés par des signes deux points. Si cette variable est renseignée, le shell informe l’utilisateur de toute modification des fichiers spécifiés, survenue au cours de l’intervalle, en secondes, spécifié par MAILCHECK. Chaque nom de fichier peut être suivi d’un ? (point d’interrogation) et d’un message. Le message fera l’objet d’une substitution de paramètre avec la variable $ _ définie comme nom de fichier modifié. Le message par défaut est you have mail in $ _. NLSPATH Emplacement des catalogues de messages utilisés pour le traitement de LC_MESSAGES. PATH Chemin d’accès aux commandes, sous forme de liste de chemins à des répertoires, séparés par des deux–points. Lorsqu’il recherche une commande, le shell explore ces répertoires dans l’ordre spécifié. Le répertoire courant est représenté par une chaîne nulle. PS1 Chaîne constituant l’invite système principale ($ par défaut), dont la valeur est développée pour la substitution de paramètres. Le caractère ! (point d’exclamation) dans l’invite principale est remplacé par le numéro de commande. PS2 Chaîne constituant l’invite système secondaire (> (supérieur à), par défaut). PS3 Chaîne constituant l’invite de sélection dans une boucle select (#? (dièse, point d’interrogation), par défaut). PS4 La valeur de cette variable (+, par défaut), développée pour la substitution de paramètres, précède chaque ligne des suivis d’exécution. SHELL Chemin d’accès au shell, enregistré dans l’environnement. SHELL PROMPT En mode interactif, le shell affiche l’invite définie par le paramètre PS1, avant de lire une commande. Puis à chaque caractère ligne suivante entré, le shell affiche la deuxième invite (définie par le paramètre PS2) pour vous demander de compléter la commande. TMOUT Délai (en secondes) pendant lequel le shell reste inactif avant de quitter. Si ce délai est positif, le shell quitte en l’absence de commande entrée dans ce délai, après l’affichage de l’invite PS1. (Notez que le shell peut être compilé avec l’indication d’une limite maximale pour le délai.) Remarque : A l’expiration du délai imparti, une pause de 60-secondes s’écoule encore avant que le shell ne quitte. VISUAL Lorsque la valeur de cette variable se termine par emacs, gmacs ou vi, l’option correspondante est activée. Le shell attribue des valeurs par défaut aux paramètres PATH, PS1, PS2, MAILCHECK, TMOUT et IFS, tandis que les paramètres HOME, SHELL, ENV et MAIL ne sont pas définis par le shell (bien que le paramètre HOME soit défini par la commande login). Shells 12-27 Substitution de commandes (shell Korn ou POSIX) Le shell Korn, ou POSIX, autorise la substitution de commandes. Lors d’une substitution de commandes, le shell exécute une commande dans un environnement de sous-shell et remplace cette commande par son résultat. Pour exécuter une substitution de commande dans le shell Korn ou POSIX, procédez comme suit : $(commande) ou, avec des apostrophes inverses : ‘commande‘ Remarque : Bien que ksh accepte les apostrophes inverses, les normes XPG4 (X/Open Portability Guide Issue 4) et POSIX les considèrent comme étant obsolètes. Ces dernières prônent l’utilisation de la syntaxe $(commande) par les applications portables. Le shell exécute commande dans un environnement sous-shell, et remplace le texte de commande, encadré de ( ) ou d’apostrophes inverses, par le résultat standard de la commande, en supprimant les caractères nouvelle ligne à la fin de la substitution. Dans l’exemple suivant, les signes $( ) (dollar, parenthèses) entourant la commande indiquent la substitution du résultat de la commande whoami : echo My name is: $(whoami) La commande suivante a le même effet : echo My name is: ‘whoami‘ Dans les deux cas, le résultat (pour l’utilisateur dee) est le suivant : My name is: dee Vous pouvez également substituer des expressions arithmétiques en les mettant entre parenthèses. Par exemple, la commande : echo Each hour contains $((60 * 60)) seconds génère : Each hour contains 3600 seconds Le shell Korn ou POSIX supprime tous les caractères nouvelle ligne situés à droite. Par exemple, si votre répertoire courant contient les fichiers file1, file2, et file3, la commande : echo $(ls) supprime les caractères nouvelle ligne et affiche : file1 file2 file3 Si vous souhaitez conserver les caractères nouvelle ligne, mettez la commande entre guillemets (” ”) : echo ”$(ls)” 12-28 AIX Guide de l’utilisateur – Système d’exploitation et unités Evaluation arithmétique (shell Korn ou POSIX) Le shell Korn ou la commande intégrée standard let du shell korn, POSIX, permet d’effectuer des calculs sur des nombres entiers. Le format des constantes est [ Base ]Nombre. Le paramètre Base est un nombre décimal compris entre 2 et 36, correspondant à la base arithmétique. Le paramètre Nombre est un nombre dans cette base. En l’absence de spécification du paramètre Base, le shell utilise une base de 10. Les expressions arithmétiques adoptent la même syntaxe, la même priorité et la même associativité qu’en langage C. Tous les opérateurs entiers, à l’exception du double signe plus (++), du double tiret ––, du point d’interrogation, des deux–points (?:) et de la virgule (, ), sont admis. Voici la liste des opérateurs valides du shell Korn ou POSIX (par ordre de priorité décroissant) : Opérateur Définition – Signe moins (unaire) ! Négation logique ~ Négation niveau bit * Multiplication / Division % Reste + Addition – Soustraction <<, >> Décalage arithmétique gauche, droite <=,>=, , ==, != Comparaison & ET niveau bit ^ OU niveau bit exclus if | OU niveau bit && ET logique || OU logique = *=, /=, &= +=, –=, <<=, > >=, &=, ^=, |= Affectation Nombre d’opérateurs arithmétiques (*, &, <, >, par exemple) ont une signification particulière pour le shell Korn ou POSIX. Ils doivent être placés entre guillemets. Par exemple, pour multiplier la valeur courante de y par 5 et réaffecter la nouvelle valeur à y, utilisez l’expression : let ”y = y * 5” Mis entre guillemets, le caractère * perd sa signification spéciale. Vous pouvez regrouper des opérations dans le cadre de la commande let. Par exemple, l’expression : let ”z = q * (z – 10)” multiplie q par la valeur de z diminuée de 10. Shells 12-29 Si l’évaluation ne porte que sur une seule expression, le shell Korn ou POSIX propose un deuxième format de la commande let. Le shell traite les commandes entre (( )) comme des expressions déclarées. Ainsi, l’expression : ((x = x / 3)) équivaut à : let ”x = x / 3” Dans une expression arithmétique, les paramètres nommés sont référencés par leur nom, sans appel à la syntaxe de substitution du paramètre. Dans ce cas, la valeur du paramètre référencée est évaluée comme une expression arithmétique. Pour spécifier une représentation interne entière d’un paramètre nommé, utilisez la commande intégrée typeset assortie de l’indicateur –i. L’évaluation arithmétique portera sur la valeur de chaque affectation à un paramètre nommé. Si vous ne spécifiez pas de base arithmétique, la première affectation au paramètre détermine cette dernière. Cette base est utilisée en cas de substitution du paramètre. 12-30 AIX Guide de l’utilisateur – Système d’exploitation et unités Séparation de zones (shell Korn ou POSIX) Après exécution d’une substitution de commande, le shell Korn balaye les résultats des substitutions, à la recherche des séparateurs de zones définis dans la variable IFS (Internal Field Separator). A chaque occurrence d’un séparateur, le shell partage la ligne en arguments distincts. Il conserve les arguments nuls explicites (”” ou ’’), mais élimine ceux qui sont implicites (résultant de paramètres non renseignés). • Si la valeur d’IFS est un espace, une tabulation, un caractère nouvelle ligne, ou qu’elle n’est pas définie, toute séquence d’espaces, de tabulations, de caractères nouvelle ligne est ignorée si elle se trouve au début ou à la fin de l’entrée, ou délimite une zone si elle se trouve à l’intérieur de l’entrée. Ainsi, l’entrée suivante génère deux zones, school et days : <newline><space><tab>school<tab><tab>days<space> • Sinon, et si la valeur d’IFS est non nulle, les règles suivantes sont applicables (dans l’ordre). Le terme espace IFS désigne toute séquence (zéro ou plusieurs occurrences) de caractères définie dans IFS (par exemple, si IFS contient espace/virgule/tabulation, toute combinaison d’espaces et de tabulations constitue un espace IFS). 1. Un espace IFS en début ou en fin d’entrée est ignoré. 2. Chaque occurrence d’un caractère IFS autre que l’espace IFS, associé à un espace IFS adjacent, délimite une zone. 3. Des espaces IFS de longueur non nulle délimitent une zone. Shells 12-31 Substitution de noms de fichiers (shell Korn ou POSIX) Pour procéder à une substitution de noms de fichier, le shell Korn, ou POSIX, balaye les mots de la commande spécifiée par Mot, à la recherche de certains caractères. Si un mot contient les caractères * (astérisque), ? (point d’interrogation) ou [ (crochet gauche), et en l’absence de l’indicateur –f, le shell le considère comme une trame. Il les remplace par les noms de fichiers correspondant à la trame, triés selon l’ordre en vigueur dans l’environnement local. Si aucun nom de fichier ne correspond, le mot reste tel quel. Lorsque le shell utilise une trame pour la substitution de noms de fichiers, les caractères . (point) et / (barre oblique) doivent correspondre explicitement. Remarque : Dans d’autres cas de recherche sur la base d’une trame, le shell Korn ne traite pas les caractères distinctement. Voici les substitutions générées : * Correspond à n’importe quelle chaîne, chaîne nulle comprise. ? Correspond à un seul caractère (quelconque). [... ] Correspond à n’importe lequel des caractères entre crochets. Une paire de caractères séparés par un – (trait d’union) correspond à n’importe quel caractère compris (selon l’ordre local en vigueur) entre ces deux valeurs. Si le premier caractère qui suit le [ (crochet gauche) d’ouverture est un ! (point d’exclamation), n’importe quel caractère à l’exclusion de ceux entre crochets correspond. Pour inclure un – (trait d’union) dans l’ensemble de caractères considéré, placez-le au début ou à la fin de l’ensemble. Vous pouvez également utiliser la notation [: charclass:] pour faire correspondre les noms de fichiers dans un intervalle donné. Ce format fait que le système effectue une correspondance pour tout caractère de la classe. La définition du contenu des classes de caractères est indiqué via la catégorie LC_CTYPE de la sous-routine setlocale. Toutes les classes de caractères spécifiées dans l’environnement local sont reconnues. Voici quelques unes de ces classes : • alnum • alpha • cntrl • digit • graph • lower • print • punct • space • upper • xdigit Par exemple, [[:upper:]] correspond à toute lettre en majuscule. Le shell Korn prend en charge l’extension de noms de fichiers basée sur le classement des éléments, des symboles et des classes d’équivalence. Une ListeTrames est une liste d’une ou de plusieurs trames, séparées par une barre verticale ( | ). Les trames composées sont formées à partir des caractères : 12-32 AIX Guide de l’utilisateur – Système d’exploitation et unités ?( ListeTrame ) Correspond éventuellement à l’une des trames spécifiées. *( ListeTrame ) Correspond à zéro ou plusieurs occurrences des trames spécifiées. +( ListeTrame ) Correspond à une ou plusieurs occurrences des trames spécifiées. @( ListeTrame ) Correspond exactement à l’une des trames spécifiées. !( ListeTrame ) Correspond à toute trame, à l’exclusion de celles spécifiées. L’utilisation de trames souffre quelques restrictions. Si le premier caractère d’un nom de fichier est un point (.), il ne peut être mis en correspondance qu’avec une trame commençant aussi par un point. Par exemple, * correspond aux fichiers myfile et yourfile mais pas aux fichiers .myfile et.yourfile. .*file Si la recherche n’aboutit pas, c’est la trame elle-même qui est renvoyée en sortie. Excluez des noms de fichiers et de répertoires les caractères *, ?, [ et ] : ils risquent de provoquer une boucle infinie lors des recherches sur la base de trames. Suppression des caractères de déclaration Les caractères de déclaration \ (barre oblique inverse), ’ (apostrophe) et ” (guillemets) présents dans le mot d’origine, sont supprimés – sauf s’ils sont eux–mêmes déclarés. Shells 12-33 Réacheminement des entrées/sorties (shell Korn ou POSIX) Avant d’exécuter une commande, le shell Korn balaye la ligne d’entrée à la recherche de caractères de réacheminement. Ces derniers lui indiquent de réacheminer les entrées et les sorties. Ils peuvent se trouver n’importe où dans une commande simple, ou la précéder ou la suivre. Ils ne sont pas transmis à la commande appelée. Le shell exécute les substitutions de commandes et de paramètres avant de prendre en compte les paramètres Mot et Chiffre, sauf indication spéciale. La substitution de nom de fichier ne se produit que si la trame correspond à un seul fichier et que les blancs ne sont pas interprétés. < Mot Le fichier Mot est l’entrée standard (descripteur de fichier 0). > Mot Le fichier Mot est l’entrée standard (descripteur de fichier 1). Si le fichier n’existe pas, il est créé. Si le fichier existe et que l’option noclobber est activée, une erreur est générée ; sinon, le fichier est tronqué à la longueur zéro. >| Mot Semblable à la commande > Mot, sauf que cette instruction de réacheminement prime sur l’option noclobber. > > Mot Le fichier Mot est la sortie standard. S’il existe, le shell y ajoute la sortie (après recherche du caractère de fin de fichier). Si le fichier n’existe pas, il est créé. Mot Ouvre en lecture et en écriture le fichier Mot, en tant qu’entrée standard. << [ – ] Mot Lit chaque ligne de l’entrée shell jusqu’à en trouver une ne contenant que la valeur de Mot ou un caractère de fin de fichier. Le shell n’effectue aucune substitution (paramètre, commande ou nom de fichier) sur le fichier spécifié. Le document résultant, appelé document here, page 5-5, devient l’entrée standard. Pour en savoir plus, reportez–vous à Utilisation des documents entrée en ligne (Here), page 5-5. Si l’un des caractères de Mot est déclaré, les caractères du document ne sont pas interprétés. Le document here est traité comme un seul mot, commençant après le caractère nouvelle ligne suivant, et continuant jusqu’à une ligne ne contenant que le délimiteur, sans espaces finaux. Le document here, s’il existe, est alors démarré. Le format est le suivant : [n]<<mot document here délimiteur Si un des caractères de mot est déclaré, le délimiteur est créé par suppression des guillemets de mot. Les lignes du document here ne sont pas développées. Sinon, le délimiteur est mot lui-même. Si aucun caractère de mot n’est déclaré, toutes les lignes du document here sont développées pour procéder au développement des paramètres, aux substitutions de commandes et au développement arithmétique. Le shell effectue une substitution de paramètres sur les données réacheminées. Pour empêcher le shell d’interpréter les caractères \ (barre oblique inverse), $ (dollar), et ’ (apostrophe), ainsi que le premier caractère de Mot, faites-les précéder du caractère \. Si un signe – (moins) est ajouté à la suite de <<, le shell élimine toutes les tabulations à gauche du paramètre Mot et du document. 12-34 <& Chiffre Duplique l’entrée standard à partir du descripteur de fichier spécifié par Chiffre. >& Chiffre Duplique la sortie standard à partir du descripteur de fichier spécifié par Chiffre. AIX Guide de l’utilisateur – Système d’exploitation et unités <&– Ferme l’entrée standard. >&– Ferme la sortie standard. <&p Transfère l’entrée du coprocesss vers l’entrée standard. >&p Transfère la sortie du coprocess vers la sortie standard. Lorsqu’un chiffre précède l’une des options de réacheminement, le descripteur de fichier indiqué est spécifié par le chiffre (et non par la valeur par défaut 0 ou 1). Dans l’exemple suivant, le shell ouvre le descripteur de fichier 2 pour écriture comme duplicata du descripteur de fichier 1 : ... 2>&1 L’ordre de spécification des réacheminements est important. Le shell évalue chaque réacheminement selon l’association (DescripteurFichier, Fichier) au moment de l’évaluation. Dans l’exemple : ... 1>Fichier 2>&1 le descripteur de fichier 1 est associé à Fichier. Le shell associe le descripteur de fichier 2 au fichier associé au descripteur de fichier 1 (Fichier). Si l’on inversait l’ordre des réacheminements, le descripteur de fichier 2 serait associé au terminal (dans l’hypothèse où le descripteur de fichier 1 l’était) et le descripteur de fichier 1, associé à Fichier. Lorsqu’une commande est suivie d’un signe & (perluète) et que la fonction de contrôle des travaux n’est pas active, l’entrée standard par défaut de la commande est le fichier vide, /dev/null. Sinon, l’environnement d’exécution d’une commande contient les descripteurs de fichiers du shell appelant, modifiés par les spécifications d’entrée et de sortie. Pour en savoir plus, reportez–vous à Réacheminement des entrées/sorties, page 5-1. Fonction coprocess Le shell Korn, ou POSIX, permet d’exécuter en arrière–plan une ou plusieurs commandes. Ces commandes, lancées à partir d’un script shell, sont appelées coprocess. Pour désigner un coprocess, placez un opérateur |& (barre verticale, perluète) après la commande. L’entrée et la sortie standard de la commande sont dirigées vers votre script. Lorsque vous travaillez avec un coprocess, vous devez : • inclure un caractère de nouvelle ligne à la fin de chaque message, • envoyer chaque message en sortie vers la sortie standard • effacer la sortie standard après chaque message. L’exemple suivant montre comment passer une entrée à un coprocess et en recevoir les résultats : echo ”Initial process” ./FileB.sh |& read –p a b c d echo ”Read from coprocess: $a $b $c $d” print –p ”Passed to the coprocess” read –p a b c d echo ”Passed back from coprocess: $a $b $c $d” FileB.sh echo ”The coprocess is running” read a b c d echo $a $b $c $d La sortie standard résultante est la suivante : Initial process Read from coprocess: The coprocess is running Passed back from coprocess: Passed to the coprocess Shells 12-35 La commande print –p permet d’y écrire. La commande read –p permet d’y lire. Réacheminement des entrées/sorties du coprocess La fonction de réacheminement des Entrées/Sorties permet de réaffecter l’entrée et la sortie standard d’un coprocess à un descripteur de fichier numéroté. Par exemple, la commande : exec 5>&p transfère l’entrée du coprocess vers le descripteur de fichier 5. Vous pouvez ensuite, via la syntaxe de réacheminement standard ou par appel d’un autre coprocess, réacheminer la sortie de la commande vers le coprocess. Vous pouvez également démarrer un autre coprocess. La sortie des deux coprocess est connectée au même tube, lisible via la commande read –p. Pour mettre fin au coprocess, tapez : read –u5 12-36 AIX Guide de l’utilisateur – Système d’exploitation et unités Etat de sortie (shell Korn ou POSIX) Si le shell détecte une erreur (de syntaxe, par exemple), il renvoie un état de sortie non nul. Sinon, il renvoie l’état de sortie de la dernière commande exécutée. Le shell fait état des erreurs d’exécution en indiquant le nom de la fonction ou de la commande en cause, ainsi que le numéro d’erreur correspondant. Si le numéro de la ligne comportant l’erreur est supérieur à 1, il est également indiqué (entre crochets [ ]), après le nom de la fonction ou de la commande. Avec un shell non interactif, une erreur rencontrée par une commande, intégrée ou non, génère un message de diagnostic, comme indiqué dans le tableau ci–après. Erreur Commande intégrée Autres fonctions Erreur de syntaxe du langage shell quitte quitte Erreur de syntaxe sur une opération (erreur sur une option ou un opérande) quitte ne quitte pas Erreur de réacheminement quitte ne quitte pas Erreur d’affectation de variable quitte ne quitte pas Erreur de développement quitte quitte Commande non trouvée non applicable quitte parfois Script dot non trouvé quitte non applicable Si une erreur indiquée “quitte (parfois)” se produit dans un sous–shell, le sous–shell est (parfois) quitté, avec un état de sortie non nul, mais pas le script contenant le sous–shell. Dans tous les cas indiqués sur le tableau, un shell interactif émet un message de diagnostic vers la sortie standard, sans quitter. Shells 12-37 Commandes intégrées du shell Korn ou POSIX Les commandes spéciales sont intégrées au shell Korn ou POSIX, et exécutées dans le process shell. Sauf indication contraire, la sortie est dirigée vers le descripteur de fichier 1, avec un état de sortie de zéro (0) si la commande est exempte d’erreurs de syntaxe. Le réacheminement des entrées/sorties est autorisé. Il existe deux types de commandes intégrées : les commandes intégrées spéciales, page 12-38 et les commandes intégrées standard, page 12-45. Voici les principales différences entre une commande standard et une commande spéciale : • Une erreur de syntaxe dans une commande spéciale risque d’entraîner l’arrêt du shell, contrairement à ce qui se passe avec une commande standard. Dans une commande spéciale, une erreur de syntaxe ne générant pas d’arrêt du shell renvoie une valeur non nulle. • Les affectations de variables spécifiées pour une commande spéciale restent en vigueur après exécution de la commande. • Les réacheminements d’E/S sont traités après les affectations de paramètres. En outre, les mots sous forme d’une affectation de paramètre, qui suivent une commande spéciale export, readonly ou typeset, sont développés selon les règles applicables à l’affectation de paramètres. Ainsi, la substitution de tilde est effectuée après le signe =, et la séparation de mot et la substitution de noms de fichiers ne sont pas exécutées. La Liste des commandes intégrées du shell Korn ou POSIX, page 12-51 répertorie ces commandes par ordre alphabétique. Description des commandes intégrées spéciales Voici les commandes intégrées spéciales du shell Korn : : à la page 12-38 eval à la page 12-39 newgrp shift à la page 12-42 . à la page 12-38 exec à la page 12-39 readonly times à la page 12-43 break à la page 12-38 exit à la page 12-39 return trap à la page 12-43 continue à la page 12-39 export à la page 12-39 set typeset à la page 12-44 unset à la page 12-45 12-38 : [ Argument...] Ne développe que les arguments. Utilisée lorsqu’une commande est requise, comme la condition then dans une instruction if, mais que cette commande n’exécute aucune action. . Fichier [ Argument...] Lit le fichier spécifié et exécute les commandes, dans l’environnement shell courant. Le chemin de recherche, spécifié par la variable PATH page 12-25, donne accès au répertoire contenant le fichier. Les éventuels arguments sont traités comme des paramètres positionnels. A défaut, les paramètres positionnels restent inchangés. L’état de sortie est celui de la dernière commande exécutée. Pour en savoir plus sur les paramètres positionnels, reportez–vous à Substitution de paramètres (shell Korn ou POSIX), page 12-22. Remarque : La commande .Fichier [Argument...] lit l’intégralité du fichier avant d’exécuter une commande. Aussi les commandes alias et unalias du fichier ne peuvent–elles s’appliquer aux fonctions définies dans le fichier. break [ n ] Quitte, le cas échéant, la boucle for, while, until ou select. Si vous spécifiez n, la commande sort à la nième boucle. La valeur de n est un entier supérieur ou égal à 1. AIX Guide de l’utilisateur – Système d’exploitation et unités continue [ n ] Reprend à l’itération suivante de la boucle for, while, until ou select. Si vous spécifiez n, la commande reprend le traitement à la nième boucle. La valeur de n est un entier supérieur ou égal à 1. eval [ Argument...] Lit les arguments spécifiés comme entrée et exécute la ou les commandes qui en résultent. exec [ Argument...] Exécute, à la place du shell, la commande spécifiée par l’argument (sans créer de nouveau process). Le process courant peut être perturbé par des arguments en entrée ou en sortie. Si vous omettez un argument, la commande exec modifie les descripteurs de fichiers comme préconisé par la liste de réacheminement des entrées/sorties. Dans ce cas, tous les numéros de descripteurs de fichiers supérieurs à 2 ouverts par ce mécanisme sont fermés dès qu’un autre programme est appelé. exit [ n ] Quitte le shell, l’état de sortie étant soit celui indiqué par le paramètre n (entier décimal compris entre 0 et 255), soit celui de la dernière commande exécutée. La sortie du shell est également induite par le caractère fin de fichier, à moins que l’option ignoreeof de la commande spéciale set, page 12-51 ne soit active. export –p [ Nom [ = Valeur ]].. Marque les noms spécifiés, pour exportation automatique vers l’environnement des commande ultérieures. –p écrit sur la sortie standard les noms et valeurs de toutes les variables exportées, selon le format : ”export %s= %s\n”, <nom> <valeur> newgrp [ Groupe ] Equivalent à la commande exec/usr/bin/newgrp [ Groupe ]. Remarque : Cette commande ne génère pas de retour. readonly –p [ Nom [ = Valeur ]] ... Marque en lecture seule le Nom spécifié. Aucune autre affectation ultérieure n’est possible. –p écrit sur la sortie standard les noms et valeurs de toutes les variables exportées, selon le format : ”ex port %s= %s\n”, <nom> <valeur> return [ n ] Provoque le renvoi d’une fonction shell au script appelant. L’état de retour est spécifié par la variable n ou, à défaut, par la dernière commande exécutée. Si vous appelez la commande return en dehors d’une fonction ou d’un script, elle équivaut à la commande exit. Shells 12-39 set [ + | –abCefhkmnostuvx ] [ + | –o Option ]... [ + | –A Nom ] [ Argument...] En l’absence de spécification d’options ou d’arguments, la commande set écrit les noms et les valeurs des variables shell dans l’ordre défini par l’environnement local. Lorsque des options sont spécifiées, les attributs du shell sont modifiés en conséquence (voir ci–après). –A Affectation de tableau. Annule la définition du paramètre Nom et affecte séquentiellement les valeurs à partir de la liste Argument. Si +A est défini, le paramètre Nom n’est pas annulé en premier. –a Exporte automatiquement tous les autres paramètres définis. –b Avertit l’utilisateur, en mode asynchrone, de la fin des travaux en arrière-plan. –C Equivalent à set –o noclobber. –e Exécute le traitement d’interruption ERR, le cas échéant, et sort lorsqu’une commande renvoie un état de sortie non nul. Ce mode est désactivé au cours de la lecture des profils. –f Désactive la substitution de nom de fichier. –h Désigne chaque commande comme alias tracé, à la première occurrence de la commande. –k Place tous les arguments d’affectation de paramètre dans l’environnement de la commande, et pas uniquement les arguments précédant le nom de commande. –m Exécute les travaux d’arrière-plan dans un process indépendant et affiche une ligne lorsqu’ils sont terminés. L’état de sortie des travaux d’arrière–plan est indiqué dans un message de fin. Sur des systèmes comportant le contrôle des travaux, cet indicateur est automatiquement activé pour les shells interactifs. Pour en savoir plus, reportez–vous à Contrôle des travaux (shell Korn ou POSIX), page 12-55. –n Lit les commandes à la recherche d’erreurs de syntaxe, mais ne les exécute pas. Cet indicateur est ignoré par les shells interactifs. 12-40 AIX Guide de l’utilisateur – Système d’exploitation et unités –o Option Affiche les valeurs de l’option courante si vous n’avez pas spécifié d’argument. Vous pouvez définir plusieurs options sur une même ligne de commande ksh. Si l’indicateur +o est défini, l’option spécifiée est désactivée. Lorsque des arguments sont spécifiés, des paramètres positionnels sont définis ou deviennent indéfinis. Les arguments disponibles, spécifiés par la variable Option, sont les suivants : allexport Identique à l’indicateur –a. bgnice Exécute tous les travaux d’arrière-plan avec une priorité inférieure. C’est le mode par défaut. emacs Appelle un éditeur en ligne du type emacs pour l’entrée des commandes. errexit Identique à l’indicateur –e. gmacs Appelle un éditeur en ligne de type gmacs pour l’entrée des commandes. ignoreeof Ne quitte pas le shell lorsqu’un caractère fin de fichier est rencontré. Pour quitter le shell, lancez la commande exit ou appuyez sur Ctrl–D plus de 11 fois. keyword Identique à l’indicateur –k. Remarque : Cet indicateur étant prévu pour assurer la compatibilité descendante le shell Bourne, il est fortement déconseillé de l’utiliser. markdirs Ajoute un / à tous les noms de répertoire générés par la substitution de nom de fichier. monitor Identique à l’indicateur –m. noclobber Empêche la procédure de réacheminement de tronquer les fichiers. Lorsque vous spécifiez cette option, le symbole de réacheminement (>|) doit être suivi d’une barre verticale pour tronquer le fichier. noexec Identique à l’indicateur –n. noglob Identique à l’indicateur –f. nolog Empêche que les définitions de fonction des fichiers .profile et $ENV ne soient enregistrées dans le fichier d’historique. nounset Identique à l’indicateur –u. privileged Identique à l’indicateur –p. Shells 12-41 trackall Identique à l’indicateur –h. verbose Identique à l’indicateur –v. vi Appelle le mode insertion d’un éditeur en ligne de type vi pour l’entrée des commandes. Entrer le caractère d’échappement 033 met l’éditeur en mode transfert. Un retour envoie la ligne. viraw Traite chaque caractère comme s’il était tapé en mode vi. xtrace Identique à l’indicateur –x. –p Désactive le traitement du fichier $HOME/.profile et utilise le fichier /etc/suid _ profile à la place du fichier ENV. Ce mode est activé chaque fois que l’ID utilisateur (UID) ou l’ID groupe (GID) effectif est différent du véritable UID ou du véritable GID. Désactiver cette option positionne l’UID ou le GID effectifs à la valeur de l’UID et du GID réels. Remarque : Le système n’admet pas l’option –p car il ne prend pas en charge les scripts shell setuid. –s Effectue le tri lexicographique des paramètres positionnels. –t Quitte après lecture et exécution d’une seule commande. Remarque : Cet indicateur étant prévu pour assurer la compatibilité descendante avec le shell Bourne, il est fortement déconseillé de l’utiliser. –u Traite les paramètres non définis comme des erreurs lors de la substitution. –v Affiche les lignes d’entrée au fur et à mesure de leur lecture. –x Affiche les commandes et leurs arguments au fur et à mesure de leur exécution. – Désactive les indicateurs –x et –v et met fin à l’examen des arguments des indicateurs. –– Empêche toute modification des indicateurs. Cette option est très utile pour affecter au paramètre $1 une valeur commençant par un signe –. Si aucun argument ne suit cet indicateur, les paramètres positionnels ne sont pas définis. Faire précéder un des indicateurs de la commande set d’un signe + plutôt que d’un signe – désactive l’indicateur. Utilisez ces indicateurs à l’appel du shell. L’ensemble des indicateurs courant se trouve dans le paramètre $–. A moins d’avoir spécifié l’indicateur –A, les autres arguments sont des paramètres positionnels affectés, dans l’ordre, à $1, $2, etc. En l’absence d’arguments, les noms et valeurs de tous les paramètres nommés sont dirigés vers la sortie standard. shift [ n ] 12-42 Renomme les paramètres positionnels, de $n+1 ... à $1 .... La valeur par défaut du paramètre n est 1. Le paramètre n est une expression arithmétique représentée par un nombre non négatif inférieur ou égal au paramètre $#. AIX Guide de l’utilisateur – Système d’exploitation et unités times Affiche les temps utilisateur et système cumulés pour le shell et les process exécutés à partir du shell. trap [ Commande ] [ Signal ] ... Exécute la commande spécifiée dès réception par le shell du signal ou des signaux spécifiés. Le paramètre Commande est lu une fois à l’activation du traitement d’interruption et une fois à son exécution. Le paramètre Signal peut être un numéro ou le nom du signal. Les commandes de traitement d’interruption sont exécutées dans l’ordre des numéros de signal. Toute tentative de définir un traitement d’interruption sur un signal qui a été ignoré en entrée du shell courant est sans effet. Si la commande est un signe –, tous les traitements d’interruption sont restaurés à leurs valeurs d’origine. Si vous avez omis la commande et que le premier signal est un signal numérique, la commande ksh restaure les valeurs d’origine du ou des paramètres Signal. Remarque : Si vous avez omis la commande et que le premier signal est un nom symbolique, le signal est interprété comme une commande. Si la valeur de Signal est ERR, la commande spécifiée est exécutée chaque fois qu’une commande a un état de sortie non nul. Si la valeur de signal est DEBUG, la commande spécifiée est exécutée après chaque commande. Si la valeur de Signal est 0 ou EXIT et que la commande trap est définie à l’intérieur d’une fonction, l’action correspondante est exécutée à la fin de la fonction. Si la valeur de Signal est 0 ou EXIT et que la commande trap est définie à l’extérieur de la fonction, l’action correspondante est exécutée à la sortie du shell. La commande trap sans arguments affiche la liste des commandes associées à chaque numéro de signal. Pour obtenir la liste complète des valeurs de Signal, utilisées dans la commande trap sans préfixe SIG, reportez–vous aux sous–routines sigaction, sigvec ou signal dans le manuel AIX 5L Version 5.2 Technical Reference: Base Operating System and Extensions Volume 2. Shells 12-43 typeset [ +HLRZfilrtux [ n Définit les attributs et les valeurs des paramètres shell. ]] [ Nom [ = Valeur ]] ... Lorsqu’il est appelé à l’intérieur d’une fonction, une nouvelle instance du paramètre Nom est créée. Le type et la valeur du paramètre sont restaurés à la fin de la fonction. Les indicateurs de la commande typeset sont les suivants : –H Assure le mappage AIX–fichier hôte sur des machines non AIX. –L Justifie à gauche et supprime les blancs à gauche du paramètre Valeur. Lorsque n est non nul, il définit la longueur de la zone ; sinon, c’est la valeur de sa première affectation qui le détermine. Une fois affecté, le paramètre est rempli à droite par des blancs ou tronqué, si nécessaire, pour s’ajuster à la zone. Lorsque l’indicateur –Z est défini, les zéros à gauche sont supprimés. L’indicateur –R est désactivé. –R Justifie à droite et remplit avec des blancs à gauche. Lorsque n est non nul, il définit la longueur de la zone ; sinon, c’est la valeur de sa première affectation qui le détermine. La zone reste remplie par des blancs ou est tronquée à partir de la fin lorsque le paramètre est réaffecté. L’indicateur L est désactivé. –Z Justifie à droite et remplit avec des zéros à gauche lorsque le premier caractère significatif est un chiffre et que l’indicateur –L n’est pas défini. Lorsque n est non nul, il définit la longueur de la zone ; sinon, c’est la valeur de sa première affectation qui le détermine. –f Indique que les noms se réfèrent à la fonction, et non aux paramètres. Aucune affectation ne peut être effectuée, les seuls indicateurs utilisables sont –t, –u et –x. L’indicateur –t active le suivi de la fonction. L’indicateur –u déclare non définie la fonction. Lorsque la fonction est référencée, le système recherche sa définition dans la variable FPATH. L’indicateur –x maintient en vigueur la définition de la fonction dans tous les scripts shell qui ne constituent pas un appel séparé de la commande ksh. –i Identifie le paramètre comme nombre entier, ce qui accélère le traitement arithmétique. Lorsqu’une valeur non nulle est affectée au paramètre n, cette valeur définit la base arithmétique en sortie ; sinon, celle–ci est définie par la première affectation. –l Convertit tous les caractères majuscules en minuscules. L’indicateur de conversion des majuscules –u est désactivé. –r Marque en lecture seule les noms spécifiés par Nom. Aucune autre affectation ultérieure n’est possible. 12-44 AIX Guide de l’utilisateur – Système d’exploitation et unités –t Etiquette les paramètres spécifiés. Les étiquettes, éventuellement définies par l’utilisateur, n’ont aucune signification spéciale pour le shell. –u Convertit tous les caractères minuscules en majuscules. L’indicateur –l est désactivé. –x Marque pour exportation automatique vers l’environnement des commandes ultérieures le nom spécifié par Nom. Un signe + à la place d’un signe – désactive les indicateurs de la commande typeset. Si vous ne spécifiez pas de paramètres Nom mais que vous spécifiez des indicateurs, la liste des noms de paramètres marqués (et éventellement, leurs valeurs) s’affiche. (Si vous ne voulez pas que leurs valeurs soient affichées, utilisez + à la place de –.) A défaut de noms et d’indicateurs, les noms et attributs de tous les paramètres s’affichent. unset [ –fv ] Nom... Annule les valeurs et les attributs définis pour les paramètres indiqués par la liste Nom. Si –v est spécifié, Nom référence un nom de variable : le shell supprime sa définition et le retire de l’environnement. La définition des variables en lecture seule ne peut être supprimée. Supprimer la définition des variables ERRNO, LINENO, MAILCHECK, OPTARG, OPTIND, RANDOM, SECONDS, TMOUT et souligné (_) leur fait perdre leur signification spéciale, même si elles sont affectées par la suite. Si –f est spécifié, Nom fait référence à un nom de fonction : le shell supprime la définition de la fonction. Description des commandes intégrées standard Voici les commandes intégrées standard du shell Korn : alias à la page 12-45 fg à la page 12-46 print ulimit à la page 12-49 bg à la page 12-45 getopts à la page 12-46 pwd umask à la page 12-50 cd à la page 12-46 jobs à la page 12-47 read unalias à la page 12-50 command à la page 12-46 kill à la page 12-47 setgroups wait à la page 12-50 echo à la page 12-46 let à la page 12-39 test whence à la page 12-50 fc à la page 12-46 alias [ –t ] [ –x ] [ Alias [ = Chaîne ]] ... Crée ou redéfinit les alias, ou écrit les définitions d’alias existantes sur la sortie standard. Pour en savoir plus, reportez–vous à la commande alias dans le manuel AIX 5L Version 5.2 Commands Reference. bg [ IDTravail...] Place chaque travail spécifié en arrière–plan. Le travail courant est placé en arrière–plan si vous avez omis le paramètre IDTravail. Pour en savoir plus sur le contrôle des travaux, reportez–vous à Contrôle des travaux (shell Korn ou POSIX), page 12-55. Pour obtenir plus d’informations sur les travaux exécutés en arrière–plan, reportez–vous à la commande bg dans le manuel AIX 5L Version 5.2 Commands Reference. cd [ Argument ] Shells 12-45 cd Ancien Nouveau Cette commande a deux formats. Premier format : le répertoire spécifié par Argument devient le répertoire courant. Si Argument a la valeur –, vous passez au répertoire précédent. Par défaut Argument est la variable shell HOME, la variable PWD ayant la valeur du répertoire courant. La variable shell CDPATH définit le chemin d’accès au répertoire contenant la valeur d’Argument. Les autres répertoires sont séparés par un signe :. Le chemin vide (qui est le chemin par défaut) désigne le répertoire courant. Ce répertoire est affiché immédiatement après le signe égal ou entre des deux–points dans la liste des chemins. Si l’argument commence par un /, le chemin n’est pas utilisé. Sinon, tous les répertoires du chemin sont explorés. Second format : le Nouveau nom remplace l’Ancien nom du répertoire courant, PWD, et tente de passer à ce répertoire. command [ –p ] Commande [ Argument...] command [ –v | –V ] Commande Cette commande amène le shell à traiter la commande spécifié comme une commande simple, éliminant la fonction shell de consultation. Pour en savoir plus, reportez–vous à la commande command dans le manuel AIX 5L Version 5.2 Commands Reference. echo [ Chaîne...] Ecrit les chaînes de caractères sur la sortie standard. Reportez–vous à la description de la commande echo. L’indicateur –n n’est pas pris en charge. fc [ –r ] [ –e Editeur ] [ Premier [ Dernier ]] fc –l [ –n ] [ –r ] [ Premier [ Dernier ]] 12-46 fc –s [ Ancien = Nouveau ] [ Premier ] Affiche le contenu du fichier d’historique des commandes ou appelle un éditeur pour modifier et réexécuter les commandes précédemment définies dans le shell. Pour en savoir plus, reportez–vous à la commande fc dans le manuel AIX 5L Version 5.2 Commands Reference. fg [ IDTravail ] Amène à l’avant–plan le travail spécifié. En l’absence de spécification de travail, la commande amène le travail courant à l’avant–plan. Pour obtenir plus d’informations sur les travaux en cours au premier plan, reportez–vous à la commande fg dans le manuel AIX 5L Version 5.2 Commands Reference. getopts ChaîneOption Nom [ Argument...] Contrôle les options légales du paramètres Argument. Pour en savoir plus, reportez–vous à la commande getopts dans le manuel AIX 5L Version 5.2 Commands Reference. AIX Guide de l’utilisateur – Système d’exploitation et unités jobs [ –l | –n | –p ] [ IDTravail...] Affiche l’état des travaux lancés dans l’environnement shell courant. En l’absence de spécification d’un travail spécifique, l’état de tous les travaux actifs est affiché. Si un travail est signalé terminé, le shell supprime l’ID correspondant de la liste des travaux reconnus par l’environnement shell courant. Pour en savoir plus, reportez–vous à la commande jobs dans le manuel AIX 5L Version 5.2 Commands Reference. kill [ –s { NomSignal | NuméroSignal } ] IDProcess... Envoie un signal (par défaut, le signal SIGTERM) à un process en cours. En général, ce dernier s’arrête alors. Pour arrêter un processus, indiquez son identificateur (PID) dans la variable IDProcess. Le shell fait état des PID de chaque process exécuté en arrière–plan (sauf si vous avez lancé plusieurs process via un pipeline, auquel cas il fait état du numéro de dernier process). Pour déterminer le PID des commandes, vous disposez également de la commande ps. kill [ –NomSignal | –NuméroSignal ] IDProcess... kill –l [ EtatSortie ] Affiche la liste des noms de signaux. Pour en savoir plus, reportez–vous à la commande kill dans le manuel AIX 5L Version 5.2 Commands Reference. let Expression... Evalue les expressions arithmétiques spécifiées. L’état de sortie est 0 si la valeur de la dernière expression est non nulle, 1 sinon. Pour en savoir plus, reportez–vous à Evaluation arithmétique (shell Korn ou POSIX), page 12-29. print [ –Rnprsu [ n ]] [ Argument...] Imprime la sortie shell. En l’absence d’indicateurs, ou en présence des indicateurs tiret (–) ou double tiret (––), les arguments sont dirigés vers la sortie standard comme décrit par la commande echo. Action des indicateurs : –R Affiche en mode brut (les conventions d’échappement de la commande echo sont ignorées). Tous les arguments et indicateurs autres que –n sont affichés. –n Empêche l’adjonction d’un caractère nouvelle ligne à la sortie. –p Transmet les arguments au tube du process exécuté via |&, et non à la sortie standard. –r Affiche en mode brut. Les conventions d’échappement de la commande echo sont ignorées. –s Transmet les arguments au fichier d’historique et non à la sortie standard. –u Spécifie un numéro de descripteur de fichier n de 1 chiffre, dans lequel placer la sortie. La valeur par défaut est 1. Shells 12-47 pwd Equivalent à print –r – $PWD. Remarque : La commande interne pwd du shell Korn ne prend pas en charge les liens symboliques. 12-48 read [ –prsu [ n ]] [ Nom?Invite ] [ Nom... ] Lit l’entrée shell. Chaque ligne lue est divisée en zones, séparées par les caractères définis dans la variable IFS. Pour en savoir plus, reportez–vous à la commande read dans le manuel AIX 5L Version 5.2 Commands Reference. setgroups Exécute la commande /usr/bin/setgroups qui fonctionne comme un shell distinct. Pour en savoir plus, reportez–vous à la commande setgroups. Il existe toutefois une différence. Si la commande intégrée setgroups appelle un sous–shell, la commande setgroups remplace le shell en cours d’exécution. Comme la commande intégrée n’est prise en charge que pour une question de compatibilité, les scripts doivent utiliser le chemin d’accès absolu /usr/bin/setgroups plutôt que la commande shell intégrée. test Identique à [ expression]. Pour en savoir plus, reportez–vous à la section Expressions conditionnelles, page 12-53. AIX Guide de l’utilisateur – Système d’exploitation et unités ulimit [ –HSacdfmst ] [ Limite ] Définit ou affiche les limites des ressources utilisateur, telles que définies dans le fichier /etc/security/limits. Ce fichier contient les limites par défaut suivantes : fsize = 2097151 core = 2048 cpu = 3600 data = 131072 rss = 65536stack = 8192 Ces valeurs sont utilisées par défaut lorsqu’un nouvel utilisateur intègre le système. Elles sont définies par la commande mkuser lorsque l’utilisateur est ajouté au système, ou modifiées par la commande chuser. Les limites sont d’ordre logiciel ou matériel. Un utilisateur peut, via la commande ulimit, modifier une limite logicielle, jusqu’au maximum défini par la limite matérielle. Les limites matérielles ne peuvent être modifiées que par un utilisateur racine. Nombre de systèmes ne sont pas configurés avec toutes les limites : une ressource est limitée lorsque le paramètre Limite correspondant est défini. Ce dernier peut être un chiffre propre à la ressource, ou la valeur unlimited. La commande ulimit accepte les indicateurs suivants : –H Indique qu’une limite matérielle est définie pour cette ressource. Seul l’utilisateur root est habilité à augmenter une limite matérielle (tout utilisateur peut la diminuer). –S Indique qu’une limite logicielle est définie pour cette ressource. Une limite logicielle peut être augmentée à concurrence de la limite matérielle fixée. A défaut d’indicateur –H ou –S, la limite s’applique aux deux options. –a Liste toutes les limites définies. –c Nombre de blocs de 512 octets utilisables pour les vidages mémoire. –d Taille (en ko) de la zone de données. –f Nombre de blocs de 512 octets de fichiers écrits par les process enfants (aucune limite n’est imposée pour la lecture de ces fichiers). –m Taille de la mémoire physique (en ko). –n Limite du nombre de descripteurs de fichiers pouvant être ouverts par un process. –s Taille de la zone pile (en ko). –t Temps (en secondes) alloué à chaque process. Shells 12-49 Si vous omettez la variable Limite, la limite affectée à la ressource courante s’affiche. Il s’agit de la limite logicielle si vous n’avez pas précisé l’indicateur –H. Si vous spécifiez plus d’une ressource, le nom et l’unité de la limite sont indiqués avant sa valeur. En l’absence de spécification d’option, l’indicateur –f est utilisé par défaut. Si vous changez la valeur et que vous n’avez pas précisé les indicateurs –H ou –S, definissez les limites matérielles et logicielles. Pour obtenir plus d’informations sur les limites utilisateur et ressources système, reportez–vous aux sous–routines getrlimit, setrlimit ou vlimit dans le manuel AIX 5L Version 5.2 Technical Reference: Base Operating System and Extensions Volume 1. umask [ –S ] [ Masque ] Détermine les droits d’accès au fichier. Cette valeur, associée aux droits du process créateur, définit les droits sur un fichier, à sa création (valeur par défaut 022). Si Masque est omis, la commande umask affiche, sur la sortie standard, le masque de création du mode fichier de l’environnement shell courant. Pour en savoir plus sur les droits d’accès aux fichiers, reportez–vous à la commande umask dans le manuel AIX 5L Version 5.2 Commands Reference. unalias { –a | NomAlias... } Supprime la définition des alias spécifiés, ou celle de tous les alias si –a est spécifié. Ces définitions sont supprimées de l’environnement shell courant. Pour en savoir plus, reportez–vous à la commande unalias dans le manuel AIX 5L Version 5.2 Commands Reference. wait [ IDProcess... ] Attend le travail spécifié et quitte. En l’absence de spécification d’un travail, la commande attend tous les process enfants actifs. L’état de sortie de la commande est celui du process attendu. Pour en savoir plus, reportez–vous à la commande wait dans le manuel AIX 5L Version 5.2 Commands Reference. whence [ –pv ] Nom... Indique l’interprétation à donner à chaque nom spécifié, lorsqu’utilisé comme nom de commande. Utilisé sans autre indicateur, whence affiche le chemin d’accès absolu, s’il existe, qui correspond à chaque nom. –p Effectue une recherche sur les chemins d’accès au(x) nom(s), même s’il s’agit d’alias, de fonctions ou de mots réservés. –v Génère un état plus fourni (type de chaque nom). 12-50 AIX Guide de l’utilisateur – Système d’exploitation et unités Liste des commandes intégrées du shell Korn ou POSIX Commandes intégrées spéciales : (deux points) Ne développe que les arguments. . (point) Lit un fichier et en exécute les commandes. break, page 12-38 Quitte, le cas échéant, la boucle for, while, until ou select. continue, page 12-39 Reprend à l’itération suivante de la boucle for, while, until ou select. eval, page 12-39 Lit les arguments comme entrée et exécute la ou les commandes qui en résultent. exec, page 12-39 Exécute, à la place du shell, la commande spécifiée par Argument, sans créer de nouveau process. exit, page 12-39 Quitte le shell dont l’état de sortie est spécifié par le paramètre n. export, page 12-39 Marque les noms spécifiés, pour exportation automatique vers l’environnement des commandes ultérieures. newgrp, page 12-39 Equivalent à la commande exec /usr/bin/newgrp [Groupe... ]. readonly, page 12-39 Marque en lecture seule les noms spécifiés. return, page 12-39 Provoque le renvoi d’une fonction shell au script appelant. set, page 12-40 Sauf options ou arguments contraires, écrit les noms et les valeurs des variables shell dans l’ordre défini par l’environnement local. shift, page 12-42 Renomme les paramètres positionnels. times, page 12-43 Affiche les temps utilisateur et système cumulés pour le shell et les process exécutés à partir du shell. trap, page 12-43 Exécute une commande donnée lorsque le shell reçoit un ou plusieurs signaux déterminés. typeset, page 12-44 Définit les attributs et les valeurs des paramètres shell. unset, page 12-45 Annule les définitions des paramètres et les valeurs spécifiées. Commandes intégrées standard alias Imprime une liste d’alias sur la sortie standard. bg, page 12-45 Place en arrière–plan les travaux spécifiés. Shells 12-51 cd, page 12-46 Passe au répertoire spécifié ou remplace la chaîne courante par la chaîne spécifiée. echo, page 12-46 Ecrit les chaînes de caractères sur la sortie standard. fc, page 12-46 Sélectionne un ensemble de commandes à partir de la dernière commande HISTSIZE lancée au terminal. Réexécute la commande après substitution ancien-nouveau. fg, page 12-46 Amène à l’avant–plan le travail spécifié. getopts, page 12-46 Contrôle les options légales du paramètres Argument. jobs, page 12-47 Affiche des informations sur les travaux spécifiés. kill Envoie le signal TERM (terminate) aux travaux ou aux process spécifiés. let, page 12-39 Evalue les expressions arithmétiques spécifiées. print, page 12-46 Imprime la sortie shell. pwd, page 12-47 Equivalent à la commande print –r –$PWD. read, page 12-48 Lit l’entrée shell. ulimit, page 12-49 Définit ou affiche les limites des ressources utilisateur, telles que définies dans le fichier /etc/security/limits. umask, page 12-50 Détermine les droits d’accès au fichier. unalias Supprime de la liste des alias les paramètres correspondant à la liste de noms spécifiée. wait, page 12-50 Attend le travail spécifié et quitte. whence, page 12-50 Indique l’interprétation à donner à chaque nom spécifié, lorsqu’utilisé comme nom de commande. Pour en savoir plus, reportez–vous à Commandes intégrées du shell Korn ou POSIX, page 12-38. 12-52 AIX Guide de l’utilisateur – Système d’exploitation et unités Expressions conditionnelles Une expression conditionnelle associée à la commande composée [[ (double crochet) permet de tester les attributs des fichiers et de comparer des chaînes. La substitution de nom de fichier et le fractionnement des mots ne s’appliquent pas aux mots entre [[ et ]] (double crochets). Chaque expression est constituée d’une ou de plusieurs expressions binaires ou unaires. –a Fichier Vrai si le fichier spécifié est un lien symbolique pointant sur un fichier existant. –b Fichier Vrai si le fichier existe et est un fichier bloc spécial. –c Fichier Vrai si le fichier existe et est un fichier caractère spécial. –d Fichier Vrai si le fichier existe et est un répertoire. –e Fichier Vrai si le fichier existe. –f Fichier Vrai si le fichier existe et est un fichier ordinaire. –g Fichier Vrai si le fichier existe et que le bit setgid est défini. –h Fichier Vrai si le fichier existe et est un lien symbolique. –k Fichier Vrai si le fichier existe et que son bit collant est défini. –n Chaîne Vrai si la chaîne est de longueur non nulle. –o Option Vrai si l’option spécifiée est active. –p Fichier Vrai si le fichier existe et qu’il s’agit d’un fichier FIFO spécial ou d’un tube. –r Fichier Vrai si le fichier existe et qu’il est lisible par le process courant. –s Fichier Vrai si le fichier existe et qu’il est de taille supérieure à 0. –t DescripteurFichier Vrai si le numéro de descripteur de fichier est ouvert et associé à un terminal. –u Fichier Vrai si le fichier existe et que le bit setuid est défini. –w Fichier Vrai si le fichier existe et que le bit d’écriture est activé. Le fichier peut toutefois ne pas être inscriptible s’il se trouve sur un système de fichiers en lecture seule, même si le test renvoie la valeur vrai. –x Fichier Vrai si le fichier existe et que l’indicateur execute est défini. S’il existe et qu’il s’agit d’un répertoire, le process courant est autorisé à l’explorer. –z Chaîne Vrai si la chaîne est de longueur nulle. –L Fichier Vrai si le fichier existe et est un lien symbolique. Shells 12-53 –O Fichier Vrai si le fichier existe et qu’il est la propriété de l’ID utilisateur effectif de ce process. –G Fichier Vrai si le fichier existe et qu’il est la propriété de l’ID groupe effectif de ce process. –S Fichier Vrai si le fichier existe et qu’il s’agit d’un socket. Fichier1 –nt Fichier2 Vrai si Fichier1 existe et qu’il est plus récent que Fichier2. Fichier1 –ot Fichier2 Vrai si Fichier1 existe et qu’il est moins récent que Fichier2. Fichier1 –ef Fichier2 Vrai si Fichier1 et Fichier2 existent et qu’ils font référence au même fichier. Chaîne1 = Chaîne2 Vrai si Chaîne1 est égale à Chaîne2. Chaîne1 != Chaîne2 Vrai si Chaîne1 n’est pas égale à Chaîne2. Chaîne = Trame Vrai si la chaîne correspond à la trame. Chaîne != Trame Vrai si la chaîne ne correspond pas à la trame. Chaîne1 < Chaîne2 Vrai si Chaîne1 précède Chaîne2, au sens de la valeur ASCII de leurs caractères. Chaîne1 > Chaîne2 Vrai si Chaîne1 suit Chaîne2, au sens de la valeur ASCII de leurs caractères. Expression1 –eq Expression2 Vrai si Expression1 est égale à Expression2. Expression1 –ne Expression2 Vrai si Expression1 n’est pas égale à Expression2. Expression1 –lt Expression2 Vrai si Expression1 est inférieure à Expression2. Expression1 –gt Expression2 Vrai si Expression1 est supérieure à Expression2. Expression1 –le Expression2 Vrai si Expression1 est inférieure ou égale à Expression2. Expression1 –ge Expression2 Vrai si Expression1 est supérieure ou égale à Expression2. Remarque : Dans les expressions ci–dessus, si la variable Fichier est semblable à /dev/fd/ n, n étant un entier, le test s’applique au fichier ouvert dont le numéro de descripteur est n. Vous pouvez créer une expression composée à partir de ces primitives (petites parties) en vous servant de l’une des expressions suivantes. 12-54 ( Expression ) Vrai si l’expression spécifiée est vraie. Utilisée pour grouper des expressions. ! Expression Vrai si l’expression spécifiée est fausse. Expression1 && Expression2 Vrai si Expression1 et Expression2 sont simultanément vraies. Expression1 || Expression2 Vrai si Expression1 ou Expression2 est vraie. AIX Guide de l’utilisateur – Système d’exploitation et unités Contrôle des travaux (shell Korn ou POSIX) Le shell Korn ou POSIX offre une fonction de gestion des séquences de commandes, ou travaux (jobs). Lorsque vous exécutez la commande spéciale set –m,12-40 le shell Korn associe un travail à chaque pipeline. Il maintient une table des travaux courants, affichée via la commande jobs, et leur affecte des nombres entiers de faible valeur. Lorsque vous lancez un travail en arrière-plan, via un signe & (perluète), le shell affiche une ligne semblable à : [1] 1234 indiquant que le travail, en arrière-plan, porte le numéro 1 et est constitué d’un process (de haut niveau) dont l’ID est 1234. Lorsqu’un travail est en cours et que vous souhaitez exécuter une autre tâche, appuyez sur les touches Ctrl–Z : un signal STOP est envoyé au travail en cours. Le shell indique alors que le travail a été arrêté et affiche une invite. Vous pouvez alors intervenir sur l’état du travail (par exemple, le placer en arrière-plan via la commande bg), exécuter d’autres commandes et, éventuellement, le rappeler en avant-plan via la commande fg. La séquence Ctrl–Z agit immédiatement et est interprétée comme un arrêt par le shell – qui rejette alors toutes les sorties en attente et les entrées non lues. Un travail exécuté en arrière-plan s’arrête dès qu’il tente de lire à partir du terminal. Les travaux d’arrière-plan génèrent habituellement une sortie : cette option peut être désactivée via la commande stty tostop. Si vous l’activez, les travaux en arrière–plan sont interrompus dès qu’ils tentent de générer une sortie ou de lire une entrée. Vous pouvez référencer un travail dans le shell Korn de plusieurs façons : par son ID process (PID), mais aussi par : % Number Référence le travail au numéro donné. % Chaîne Référence les travaux dont la ligne de commande commence par la variable Chaîne. %? Chaîne Référence les travaux dont la ligne de commande contient la variable Chaîne. %% Référence le travail courant. %+ Equivalent à %%. %– Référence le travail précédent. Ce shell reconnaît immédiatement les modifications dans l’état du process. Il vous informe dès qu’un travail est bloqué, empêchant toute progression du traitement. Il vous informe avant même d’afficher une invite, afin de ne pas perturber votre travail. Lorsque le mode Monitor est activé, chaque travail d’arrière-plan achevé déclenche les traitements d’interruption définis pour le CHLD. Si vous tentez de quitter le shell (commande exit ou séquence Ctrl–D) alors que des travaux sont arrêtés ou en cours, le système affiche le message : Travaux arrêtés. Travaux en cours d’exécution. Lancez la commande jobs pour prendre connaissance de ces travaux. Si vous tentez encore de quitter le shell, il met fin aux travaux en cours et arrêtés, sans nouvel avertissement. Shells 12-55 Traitement des signaux Les signaux SIGINT et SIGQUIT d’une commande appelée sont ignorés si la commande est suivie d’une & (perluète) et que l’option monitor est inactive. Sinon, ils prennent les valeurs héritées du shell parent. Si un signal, pour lequel un traitement d’interruption a été défini, est reçu pendant que le shell attend l’achèvement d’une commande en arrière-plan, le traitement d’interruption n’est exécuté qu’une fois la commande terminée. Ainsi, un traitement d’interruption sur un signal CHILD n’est exécuté qu’une fois le travail en arrière-plan terminé. 12-56 AIX Guide de l’utilisateur – Système d’exploitation et unités Edition en ligne (shell Korn ou POSIX) Pour entrer vos commandes, vous tapez une ligne de commande à partir d’un terminal et la faites suivre d’un caractère de nouvelle ligne (RETOUR ou LIGNE SUIVANTE). Si vous activez une option d’édition en ligne (emacs, gmacs ou vi), vous pouvez modifier cette ligne de commande. Voici les commandes d’appel des éditeurs : set –o emacs Appelle le mode d’édition emacs et ouvre un éditeur en ligne style emacs. Pour en savoir plus, reportez–vous à Mode d’édition emacs, page 12-57. set –o gmacs Appelle le mode d’édition emacs et ouvre un éditeur en ligne style gmacs. Pour en savoir plus, reportez–vous à Mode d’édition emacs, page 12-57. set –o vi Appelle le mode d’édition vi et ouvre un éditeur en ligne style vi. Pour en savoir plus, reportez–vous à Mode d’édition vi, page 12-61. Une option d’édition est automatiquement sélectionnée chaque fois que la valeur affectée à VISUAL ou à EDITOR se termine par l’un de ces noms d’option. Remarque : Pour accéder aux fonctions d’édition, votre terminal doit accepter RETOUR comme retour chariot sas passage à la ligne. Un espace doit remplacer le caractère courant à l’écran. Chaque mode d’édition ouvre une fenêtre au niveau de la ligne courante. Sa longueur est définie par la variable COLUMNS ; ou, à défaut, égale à 80 espaces caractères. Si la ligne dépasse la longueur de fenêtre diminuée de deux caractères, le système affiche une marque à l’extrémité de la fenêtre. Lorsque le curseur atteint les limites de la fenêtre, celle–ci se recentre sur le curseur. Les marques affichées sont : > La ligne se prolonge à droite de la fenêtre. < La ligne se prolonge à gauche de la fenêtre. * La ligne se prolonge des deux côtés de la fenêtre. Les commandes de recherche de chaque mode d’édition donnent accès au fichier d’historique du shell Korn. Seules les chaînes sont mises en correspondance. Si le premier caractère de la chaîne est un ^ (caret), la recherche doit débuter au premier caractère de la ligne. Mode d’édition emacs Pour sélectionner le mode d’édition emacs, activez indifféremment l’option emacs ou l’option gmacs : La seule différence entre ces deux modes est la façon dont ils traitent la commande d’édition Ctrl–T. Pour éditer, déplacez le curseur sur le point à corriger et insérez ou supprimez les caractères ou mots, en fonction de vos besoins. Toutes les commandes d’édition sont des caractères de contrôle ou des séquences d’échappement. Les commandes d’édition opèrent n’importe où sur la ligne (et pas seulement au début). Sauf indication contraire, n’appuyez ni sur Entrée ni sur la touche ligne suivante (flèche vers le bas) après une commande d’édition. Shells 12-57 12-58 Ctrl–F Avance le curseur d’un caractère. Echap–F Avance le curseur au mot suivant (un mot est une chaîne composée exclusivement de lettres, chiffres et traits de soulignement). Ctrl–B Recule le curseur d’un caractère. Echap–B Ramène le curseur au mot précédent. Ctrl–A Amène le curseur au début de la ligne. Ctrl–E Avance le curseur à la fin de la ligne. Ctrl–] c Avance le curseur au caractère indiqué. Echap–Ctrl–] c Avance le curseur au caractère indiqué. Ctrl–X Ctrl–X Echange curseur et marque. ERASE Efface le caractère précédent. (Caractère d’effacement défini par l’utilisateur, via la commande stty, généralement la séquence Ctrl-H). Ctrl–D Efface le caractère courant. Echap–D Supprime le mot courant. Echap–RetAr Efface le mot précédent. Echap–H Efface le mot précédent. Echap–Suppr Efface le mot précédent. Si la touche Suppression est définie comme touche d’interruption, cette commande ne fonctionne pas. Ctrl–T Transpose le caractère courant et le caractère suivant (mode emacs). Transpose les deux caractères précédents (mode gmacs). Ctrl–C Met en majuscules le caractère courant. Echap–C Met en majuscules le mot courant. Echap–L Met en minuscules le mot courant. Ctrl–K Efface la zone entre le curseur et la fin de la ligne. Précédé d’un paramètre numérique dont la valeur est inférieure à celle de la position courante du curseur, efface la zone entre la position indiquée par ce paramètre et le curseur. Précédé d’un paramètre numérique dont la valeur est supérieure à la position courante du curseur, efface la zone entre la position indiquée par ce paramètre et le curseur. Ctrl–W Efface la zone entre le curseur et la marque. Echap–P Repousse dans la pile la zone entre le curseur et la marque. AIX Guide de l’utilisateur – Système d’exploitation et unités KILL Caractère défini par l’utilisateur via la commande stty, généralement la séquence Ctrl-G ou le caractère @ (arobase). Tue l’intégralité de la ligne courante. Une succession de deux caractères kill génère un saut de ligne à chaque nouveau caractère kill (utile sur un terminal papier). Ctrl–Y Restaure le dernier élément supprimé de la ligne. (Restitue l’élément sur la ligne.) Ctrl–L Effectue un saut de ligne et affiche la ligne courante. Ctrl–@ (Caractère nul) Définit une marque. Echap–Espace Définit une marque. Ctrl–J (Nouvelle ligne) Exécute la ligne courante. Ctrl–M (Retour) Exécute la ligne courante. EOF Traite le caractère fin de fichier (généralement, Ctrl-D) comme tel, uniquement si la ligne courante est nulle. Ctrl–P Extrait la commande précédente. Il s’agit d’une opération chronologique. Revient à la ligne précédente dans une commande de plusieurs lignes (si le curseur ne se trouve pas sur la première ligne). Echap–< Appelle la ligne d’historique la moins récente. Echap–> Appelle la ligne d’historique la plus récente. Ctrl–N Appelle la commande suivante. Il s’agit d’une opération chronologique. Ctrl–R Chaîne Inverse l’historique de recherche d’une commande antérieure contenant la Chaîne. Si la valeur spécifiée est zéro, la recherche s’effectue vers l’avant. La chaîne se termine par Entrée ou un caractère de nouvelle ligne. Si elle est précédée d’un caret (^), la ligne correspondante doit commencer par Chaîne. Si Chaîne est omis, la recherche porte sur la ligne de commande contenant le paramètre Chaîne le plus récent. Dans ce cas, la valeur 0 inverse la direction de la recherche. Ctrl–O Exécute la ligne courante et extrait du fichier d’historique la ligne suivant la ligne courante. Echap Chiffres Définit un paramètre numérique. Les chiffres sont considérés comme paramètre de la commande suivante. Les commandes admettant un paramètre sont Ctrl–F, Ctrl–B, ERASE, Ctrl–C, Ctrl–D, Ctrl–K, Ctrl–R, Ctrl–P, Ctrl–N, Ctrl–], Echap–., Echap–Ctrl–], Echap–_, Echap–B, Echap–C, Echap–D, Echap–F, Echap–H, Echap–L et Echap–Ctrl–H. Shells 12-59 12-60 Echap Lettre (Touche de fonction) Recherche l’alias _Lettre dans la liste des alias. Si la recherche aboutit, la valeur de l’alias trouvé est placée dans la file d’entrée. Le paramètre Lettre ne doit pas spécifier de fonctions d’échappement (escape). Echap–[ Lettre (Touche de fonction) Recherche l’alias _Lettre (double trait de soulignement) dans la liste des alias. Si la recherche aboutit, la valeur de l’alias trouvé est placée dans la file d’entrée. Cette commande permet de programmer des touches de fonction sur plusieurs terminaux. Echap–. Insère dans la ligne le dernier mot de la commande précédente. Précédée d’un paramètre numérique, la valeur de ce paramètre détermine quel mot insérer à la place du dernier mot. Echap–_. Identique à Echap–. (Echap, tiret, point). Echap–* Tente d’effectuer la substitution de nom sur le mot courant. Lorsque le mot ne correspond à aucun fichier ou contient des caractères spéciaux, un astérisque est ajouté. Echap–Echap Traitement de nom de fichier. Remplace le mot courant par le préfixe commun le plus long de tous les noms de fichier correspondant au mot courant doté d’un astérisque. S’il n’y a qu’une seule correspondance, une barre oblique (/) est ajoutée s’il s’agit d’un répertoire, ou un espace sinon. Echap–=. Liste les fichiers qui correspondent à la trame du mot courant comme si un astérisque avait été ajouté. Ctrl–U Multiplie par 4 le paramètre de la commande suivante. \ Annule l’effet du caractère suivant. Les caractères d’édition et les caractères ERASE, KILL et INTERRUPT (habituellement la touche Suppr) peuvent être entrés sur une ligne de commande ou de recherche sous réserve d’être précédés d’une barre oblique inverse (\). Cette dernière annule les caractéristiques d’édition du caractère suivant (le cas échéant). Ctrl–V Affiche la version du shell. Echap–# Insère un # en début de ligne, puis exécute cette dernière. Un commentaire est alors inséré dans le fichier d’historique. AIX Guide de l’utilisateur – Système d’exploitation et unités Mode d’édition vi L’éditeur vi offre deux modes de saisie : Quand vous saisissez une commande, vous êtes en mode Entrée. Pour éditer, vous devez entrer le mode Contrôle en appuyant sur la touche Echap. La plupart des commandes de contrôle admettent un paramètre Compte de répétition, en option, avant la commande. En mode vi, sur la plupart des systèmes, le traitement normal est d’abord activé. La commande est réaffichée lorsque : • le vitesse est supérieure ou égale à 1200 ; • la commande contient des caractères de contrôle ; • moins d’une seconde s’est écoulée depuis l’affichage de l’invite. Le caractère Echap interrompt le traitement normal pour le reste de la commande, ce qui permet de modifier la ligne de commande. Ce schéma offre les avantages du traitement canonique avec écho du mode brut. Si l’option viraw est spécifiée, le traitement canonique est désactivé. Ce mode est le mode par défaut pour le systèmes qui n’admettent qu’un seul délimiteur de fin de ligne, et peut être pratique pour certains terminaux. Les commandes d’édition vi disponibles sont classées par catégories. Les catégories sont les suivantes : • Commandes d’entrée, page 12-61 • Commandes de déplacement, page 12-61 • Commandes de recherche, page 12-62 • Commandes de modification de texte, page 12-63 • Commandes diverses, page 12-64 Commandes d’entrée Remarque : Par défaut, l’éditeur s’ouvre en mode Entrée. ERASE (Caractère d’effacement défini par l’utilisateur, via la commande stty, généralement la séquence Ctrl-H ou #). Efface le caractère précédent. Ctrl–W Efface le mot précédent séparé par un blanc. Ctrl–D Met fin au shell. Ctrl–V Annule l’effet du caractère suivant. Les caractères d’édition, comme les caractères ERASE ou KILL, peuvent être saisis dans la ligne de commande ou dans un chaîne de recherche s’ils sont précédés d’une séquence de touche Ctrl–V. Cette dernière annule les caractéristiques d’édition du caractère suivant (le cas échéant). \ Annule l’effet du caractère ERASE ou KILL suivant. Commandes de déplacement Ces commandes servent à déplacer le curseur comme suit : [ Compte ] l Avance le curseur d’un caractère. [ Compte ] w Avance le curseur d’un mot (alphanumérique). Shells 12-61 [ Compte ] W Avance le curseur au début du mot suivant après un blanc. [ Compte ] e Avance le curseur à la fin du mot courant. [ Compte ] E Avance le curseur à la fin du mot séparé par un blanc courant. [ Compte ] h Recule le curseur d’un caractère. [ Compte ] b Ramène le curseur au mot précédent. [ Compte ] B Ramène le curseur au mot séparé par un blanc précédent. [ Compte ] | Amène le curseur à la colonne spécifiée par Compte. [ Compte ] f c Trouve le caractère c suivant de la ligne courante. [ Compte ] F c Trouve le caractère c précédent de la ligne courante. [ Compte ] f c Equivalent à f suivi de h. [ Compte ] T c Equivalent à F suivi de l. [ Compte ]; Répète, le nombre de fois spécifié par Compte, la dernière commande de recherche sur un caractère : f, F, t ou T. [ Compte ], Inverse, le nombre de fois spécifié par Compte, la dernière commande de recherche sur un caractère. 0 Ramène le curseur au début de la ligne. ^ Amène le curseur au premier caractère non blanc de la ligne. $ Amène le curseur à la fin de la ligne. Commandes de recherche Ces commandes donnent accès au fichier d’historique des commandes : 12-62 [ Compte ] k Extrait la commande précédente. [ Compte ] – Equivalent à la commande k. [ Compte ] j Extrait la commande suivante. Entrer la commande j donne accès à la commande suivante. [ Compte ] + Equivalent à la commande j. [ Compte ] G Extrait la commande dont le numéro est spécifié par Compte. Il s’agit par défaut de la commande la moins récente de l’historique. / Chaîne Recherche en amont dans l’historique d’une commande contenant Chaîne. La chaîne se termine par RETOUR ou un caractère de nouvelle ligne. Si la chaîne spécifiée est précédée d’un ^ (caret ), la ligne correspondante doit commencer par Chaîne. Si Chaîne a une valeur nulle, la chaîne précédente est utilisée. AIX Guide de l’utilisateur – Système d’exploitation et unités ? Chaîne Identique à /Chaîne, à ceci près que la recherche s’effectue vers l’aval. n Recherche l’occurrence suivante de la dernière trame des commandes /Chaîne ou ? N Recherche l’occurrence suivante de la dernière trame des commandes /Chaîne ou ?, mais dans la direction opposée. Explore l’historique à la recherche de la chaîne entrée via la commande /Chaîne précédente. Commandes de modification de texte Ces commandes permettent de modifier la ligne de commande : a Ouvre le mode Entrée et insère le texte après le caractère courant. Un Ajoute le texte à la fin de la ligne. Equivalent à la commande $a. [ Compte ] c Déplacement c[Compte]Déplacement Efface la zone entre le caractère courant et la caractère spécifié par Déplacement, et ouvre le mode Entrée. Si Déplacement a la valeur c, l’intégralité de la ligne est supprimée (le mode Entrée est ouvert). C Efface la zone entre le caractère courant et la fin de la ligne, et ouvre le mode Entrée. Equivalent à la commande c$. S Equivalent à la commande cc. D Efface la zone entre le caractère courant et la fin de la ligne. Equivalent à la commande d$. [ Compte ] d Déplacement d [ Compte ] Déplacement Efface la zone entre le caractère courant et le caractère spécifié par Déplacement (ce caractère compris). Si Déplacement a la valeur d, l’intégralité de la ligne est supprimée. i Ouvre le mode Entrée et insère le texte avant le caractère courant. I Insère le texte au début de la ligne. Equivalent à la commande 0i. [ Compte ] P Place la dernière modification de texte avant le curseur. [ Compte ] p Place la dernière modification de texte après le curseur. R Ouvre le mode Entrée et remplace les caractères affichés à l’écran. Shells 12-63 [ Compte ] r c Remplace le nombre de caractères spécifiés par Compte, à partir de la position du curseur, par les caractères spécifiés par c. Cette commande fait ensuite avancer le curseur. [ Compte ] x Efface le caractère courant. [ Compte ] X Efface le caractère précédent. [ Compte ]. Répète la dernière modification de texte. [ Compte ]~ Convertit les majuscules en minuscules (et réciproquement) le nombre de caractères spécifié par Compte, à partir de la position du curseur, et avance le curseur. [ Compte ] _ Ajoute le mot spécifié par le paramètre Compte de la commande précédente et ouvre le mode Entrée. Il s’agit du dernier mot si Compte est omis. * Ajoute un * (astérisque) au mot courant et tente une substitution de nom de fichier. Si la recherche n’aboutit pas, le système le signale. Sinon, le mot est remplacé par la trame correspondante et le mode Entrée s’ouvre. \ Traitement de nom de fichier. Remplace le mot courant par le préfixe commun le plus long de tous les noms de fichier correspondant au mot courant doté d’un astérisque. S’il n’y a qu’une occurrence, une barre oblique (/) est ajoutée s’il s’agit d’un répertoire. Dans le cas contraire, un espace est ajouté. Commandes diverses Les commandes d’édition les plus couramment utilisées sont les suivantes : [ Compte ] y Déplacement 12-64 y [ Compte ] Déplacement Sélectionne la zone entre le caractère courant et le caractère dont la position est spécifiée par Déplacement (ce caractère compris), et place le tout dans le tampon de suppression. Texte et curseur restent inchangés. Y Sélectionne la zone entre le caractère courant et la fin de la ligne. Equivalent à la commande y$. u Annule la dernière commande de modification de texte. U Annule toutes les commandes de modification de texte exécutées sur la ligne. [ Count ] v Renvoie la commande fc –e ${VISUAL:–${EDITOR:–vi}} Compte dans le tampon d’entrée. Si Compte est omis, la ligne courante est utilisée. AIX Guide de l’utilisateur – Système d’exploitation et unités Ctrl–L Effectue un saut de ligne et affiche la ligne courante. Cette commande ne s’applique qu’en mode Contrôle. Ctrl–J (Nouvelle ligne) Exécute la ligne courante, quel que soit le mode en vigueur. Ctrl–M (Retour) Exécute la ligne courante, quel que soit le mode en vigueur. # Envoie la ligne en la faisant précéder d’un # (dièse). Utile pour insérer la ligne courante dans l’historique sans l’exécuter. Si la ligne de commande comporte une barre verticale (|), un point-virgule ou un caractère nouvelle ligne, autant de # (dièse) complémentaires sont insérés avant ces symboles. Pour effacer tous les dièses, rappelez la ligne de commande à partir de l’historique et entrez un autre #. = Liste les noms de fichier correspondant au mot courant comme s’il était doté d’un astérisque. @ Lettre Recherche l’alias _Lettre dans la liste des alias. Si la recherche aboutit, la valeur de l’alias trouvé est placée dans la file d’entrée, en vue de son traitement. Shells 12-65 Shell Korn avancé (ksh93) En plus du système par défaut du shell Korn (/usr/bin/ksh), AIX fournit une version avancée disponible comme /usr/bin/ksh93. Cette version avancée présente une compatibilité ascendante avec la version par défaut actuelle et comprend quelques fonctions supplémentaires non disponibles dans /usr/bin/ksh. Les fonctions suivantes sont disponibles dans /usr/bin/ksh93: Améliorations arithmétiques Vous pouvez utiliser des fonctions libm (fonctions mathématiques que l’on trouve généralement dans le langage de programmation C) dans des expressions arithmétiques, comme $ value=$((sqrt(9))). D’autres opérateurs arithmétiques sont disponibles, y compris les unaires +, ++, ––, la construction ?: (par exemple, ” x ? y : z ”), ainsi que l’opérateur, (virgule). Les bases arithmétiques sont prises en charge jusqu’à la base 64. L’arithmétique en virgule flottante est également prise en charge. ”typeset –E” (exponentielle) peut être utilisé pour spécifier le nombre de chiffres significatifs et ” typeset –F” (flottante) peut être utilisé pour spécifier le nombre de places décimales pour une variable arithmétique. La variable SECONDS affiche maintenant au centième de seconde près, plutôt qu’à la seconde près. Variables composées Les variables composées sont prises en charge. Une variable composée permet à un utilisateur de spécifier plusieurs valeurs dans un seul nom de variable. Toutes les valeurs sont affectées d’une variable indicielle, séparée de la variable parent par un . (point). Par exemple : $ myvar=( x=1 y=2 ) $ print ”${myvar.x}” 1 Affectations composées Les affectations composées sont prises en charge lors de l’initialisation de batteries de disques, qu’il s’agisse de batteries de disques indexées ou associatives. Les valeurs des affectations sont mises entre parenthèses, comme illustré dans l’exemple ci–après : $ numbers=( zero one two three ) $ print ${numbers[0]} ${numbers[3]} zero three 12-66 AIX Guide de l’utilisateur – Système d’exploitation et unités Batteries de disques associatives Une batterie de disques associative est une batterie de disques dont l’index est une chaîne. La commande typeset utilisée avec l’indicateur –A permet de spécifier les batteries de disques associatives dans ksh93. Par exemple : $ typeset –A teammates $ teammates=( [john]=smith [mary]=jones ) $ print ${teammates[mary]} jones Références de noms de variables La commande typeset utilisée avec l’indicateur –n permet d’affecter un nom de variable comme référence à une autre. Ainsi, modifier la valeur d’une variable modifiera ensuite la valeur de la variable référencée. Par exemple : $ greeting=”bonjour” $ typeset –n welcome=greeting # établit la référence $ welcome=”salut” # annule la valeur précédente $ print $greeting salut Expansions des paramètres Les constructions d’expansions de paramètres suivantes sont disponibles : • ${!varname} est le nom de la variable. • ${! varname [@]} nomme les index de la batterie de disques varname. • ${ param: offset } est une sous–chaîne de param, commençant à offset. • ${param:offset:num} est une sous–chaîne de param, commençant à offset, pour num nombre de caractères. • ${@: offset } indique tous les paramètres positionnels commençant à offset. • ${@: offset: num } indique num paramètres positionnels commençant à offset. • ${ param/pattern/repl} évalue à param, avec la première occurrence de pattern remplacée par repl. • ${ param//pattern / repl } évalue à param, avec chaque occurrence de pattern remplacée par repl. • ${ param / #pattern / repl } si param commence par pattern, alors param est remplacé par repl. • ${ param /% pattern / repl } si param se termine par pattern, alors param est remplacé par repl. Shells 12-67 Fonctions de protocole Une fonction de protocole est une fonction associée à une variable spécifique. Cela vous permet de définir et d’appeler une fonction à chaque fois que cette variable est référencée, définie ou retirée. Ces fonctions prennent la forme de varname.function, où varname est le nom de la variable et function est la fonction de protocole. Il existe trois fonctions de protocole prédéfinies : get, set et unset. • La fonction varname.get est appelée à chaque fois que varname est référencée. Si la variable spéciale .sh.value est définie dans cette fonction, alors la valeur de varname prend cette valeur. L’heure en est un simple exemple : $ function time.get > { > .sh.value=$(date +%r) > } $ print $time 09:15:58 AM $ print $time # cela changera dans quelques secondes 09:16:04 AM • La fonction varname.set est appelée à chaque fois que varname est définie. La valeur qui a été affectée est donnée à la variable .sh.value. La valeur affectée à varname est la valeur de .sh.value lorsque la fonction se termine. Par exemple : $ function adder.set > { > let .sh.value=” $ {.sh.value} + 1” > } $ adder=0 $ echo $adder 1 $ adder=$adder $ echo $adder 2 • La fonction varname.unset est exécutée à chaque fois que varname est retirée. La variable n’est pas vraiment retirée sauf si elle est retirée dans la fonction elle–même ; sinon elle garde sa valeur. Dans toutes les fonctions de protocole, la variable spéciale .sh.name est définie au nom de la variable alors que .sh.subscript est définie à la valeur de l’indice de variables, le cas échéant. 12-68 AIX Guide de l’utilisateur – Système d’exploitation et unités Environnements de fonctions Les fonctions déclarées avec le format functionmyfunc sont exécutées dans un environnement de fonction séparé. Les fonctions déclarées comme myfunc() s’exécutent avec le même environnement que le shell parent. Variables Les variables qui commencent par .sh. sont réservées par le shell et ont une signification spéciale. Reportez–vous à la description de Fonctions de protocole, page 12-68 ci–dessus pour obtenir une explication de .sh.name, .sh.value et .sh.subscript. .sh.version, qui représente la version du shell, est également disponible. Valeurs de retour des commandes Les valeurs de retour des commandes sont les suivantes : • Si la commande à exécuter n’est pas trouvée, la valeur de retour est définie à 127. • Si la commande à exécuter est trouvée mais n’est pas exécutable, la valeur de retour est 126. • Si la commande est exécutée mais arrêtée par un signal, la valeur de retour est 256 plus le numéro du signal. Règles de recherche PATH Les commandes intégrées spéciales sont d’abord recherchées, puis viennent toutes les fonctions (y compris celles des répertoires FPATH) et les autres commandes intégrées. Historique du shell La commande hist permet d’afficher et d’éditer l’historique de commandes shell. Dans le shell ksh, la commande fc a été utilisée. La commande fc est maintenant un alias de hist. Les variables sont HISTCMD, qui incrémente une fois pour chaque commande exécutée dans l’historique actuel du shell, et HISTEDIT, qui spécifie quel éditeur utiliser lors de l’utilisation de la commande hist. Shells 12-69 Commandes intégrées Voici les commandes intégrées du shell Korn avancé : • La commande builtin répertorie toutes les commandes intégrées disponibles. • La commande printf fonctionne globalement comme la routine de bibliothèque printf() C. Reportez–vous à la commande printf. • La commande disown empêche le shell d’envoyer un SIGHUP à la commande spécifiée. • La commande getconf fonctionne comme la commande autonome /usr/bin/getconf. Reportez–vous à la commande getconf. • La commande intégrée read dispose des indicateurs suivants : –read –d { char } permet de spécifier une délimitation de caractères au lieu de la nouvelle ligne par défaut. –read –t { seconds } permet de spécifier une limite de temps en secondes après laquelle la commande read s’arrêtera. Si read s’arrête, elle renverra FALSE. • La commande intégrée exec dispose des indicateurs suivants : –exec –a { name } { cmd } spécifie que l’argument 0 de cmd est remplacé par name. –exec –c { cmd } indique exec pour vider l’environnement avant d’exécuter cmd. • La commande intégrée kill dispose des indicateurs suivants : –kill –n { signum } est utilisé pour spécifier un numéro de signal à envoyer à un processus, alors que kill –s { signame } est utilisé pour spécifier un nom de signal. –kill –l, sans argument, répertorie tous les noms de signaux mais pas leurs numéros. • La commande intégrée whence dispose des indicateurs suivants : –L’indicateur –a affiche toutes les concordances, pas seulement la première trouvée. –L’indicateur –f indique à whence de ne pas rechercher de fonction. • Une séquence de caractère d’échappement a été ajoutée pour être utilisée par les commandes print et echo. La touche Echap (Echappement) peut être représentée par la séquence \E. • Toutes les commandes intégrées standard reconnaissent l’indicateur –?, qui affiche la syntaxe de la commande spécifiée. 12-70 AIX Guide de l’utilisateur – Système d’exploitation et unités Shell Bourne Le shell Bourne est un interpréteur de commandes interactif et un langage de programmation. Il est appelé par la commande bsh. Le shell Bourne peut être exécuté comme shell de connexion ou comme un sous-shell sous le shell de connexion. C’est la commande login uniquement qui permet d’exécuter le shell Bourne comme shell de connexion. Pour cela, il faut faire précéder la commande bsh d’un tiret (-) : –bsh. Sous cette forme, le shell commence par lire et exécuter les commandes du fichier système /etc/profile et, le cas échéant, celles de votre fichier $HOME/.profile. Le fichier /etc/profile définit les variables requises par tous les utilisateurs. Le shell est prêt à lire les commandes à partir de votre entrée standard. Si le paramètre Fichier [Paramètre] est spécifié au lancement du shell Bourne, le shell exécute le fichier script identifié par Fichier, avec ses paramètres éventuels. Le fichier script doit être accessible en lecture. Les éventuels paramètres setuid et setgid sont ignorés. Le shell lit ensuite les commandes. Si l’indicateur –c ou –s est utilisé, ne spécifiez pas ce script. Environnement du shell Bourne Toutes les variables (avec leurs valeurs) connues d’une commande lors de son lancement constituent son environnement : variables héritées du process parent et variables spécifiées comme paramètres-clés sur la ligne de commande. Le shell passe à ses process enfants les variables nommées comme arguments de la commande intégrée export. Cette commande place les variables nommées à la fois dans l’environnement du shell et dans celui de ses futurs process enfants. Les mots-clés sont des paires nom-valeur spécifiées généralement avant le nom de procédure dans la ligne de commande (voir également l’indicateur de la commande set). Ces variables sont placées dans l’environnement de la procédure appelée. Prenons pour exemple la procédure simple suivante, qui affiche les valeurs de deux variables (enregistrées dans le fichier de commande key_command) : # key_command echo $a $b Voici les commandes et les sorties générées : Entrée a=key1 a=tom b=key2 b=john key_command key_command Sortie key1 key2 tom john Les mots-clés d’une procédure ne sont pas décomptés dans le chiffre enregistré dans $#. Une procédure a accès aux valeurs de toutes les variables de son environnement. Mais si elle modifie l’une de ses valeurs, ces modifications ne sont pas répercutées dans l’environnement du shell. Elles ne s’appliquent que localement à la procédure concernée. Pour que les modifications s’appliquent à l’environnement transmis aux process enfants, exportez les nouvelles valeurs dans cette procédure. Pour afficher la liste des variables exportables du shell courant, tapez : export Appuyez sur Entrée. Shells 12-71 Pour afficher la liste des variables en lecture seule du shell courant, tapez : readonly Appuyez sur Entrée. Pour afficher la liste des paires variable-valeur de l’environnement courant, tapez : env Appuyez sur Entrée. Pour en savoir plus sur les environnements utilisateur, reportez-vous à ”Fichier /etc/environment”, page 11-3 12-72 AIX Guide de l’utilisateur – Système d’exploitation et unités Shell restreint Le shell restreint permet de définir des noms de connexion et des environnements d’exécution dont les pouvoirs sont plus contrôlés que ceux du shell Bourne normal. Il est appelé par la commande Rsh ou bsh –r. Le comportement de ces commandes est identique à celui de la commande bsh, à ceci près qu’elles n’autorisent pas à : • changer de répertoire (commande cd), • définir la valeur des variables PATH ou SHELL, • spécifier des chemins ou des noms de commandes comportant une barre oblique (/), • réacheminer les sorties. Si le shell restreint détermine qu’une commande est une procédure shell, il appelle le shell Bourne pour l’exécuter. L’utilisateur peut ainsi accéder à toutes les fonctionnalités du shell Bourne par le biais d’un menu de commandes limité. Cette situation suppose que l’utilisateur n’a pas accès en écriture et en exécution au même répertoire. Si le paramètre Fichier [Paramètre] est spécifié au lancement du shell Bourne, le shell exécute le fichier script identifié par Fichier, avec ses paramètres éventuels. Le fichier script doit être accessible en lecture. Les éventuels paramètres setuid et setgid sont ignorés. Le shell lit ensuite les commandes. Si l’indicateur –c ou –s est utilisé, ne spécifiez pas ce script. Lancé via la commande Rsh, le shell renforce les restrictions après interprétation des fichiers .profile et /etc/environment. C’est donc à celui qui écrit le fichier .profile qu’incombe le contrôle des actions autorisées à l’utilisateur et du répertoire auquel il accède (de préférence pas le répertoire de connexion). Un administrateur peut créer un répertoire de commandes dans le répertoire /usr/rbin, utilisable par la commande Rsh, en modifiant en conséquence la variable PATH. Lancé via la commande bsh –r, le shell applique les restrictions au moment où il interprète les fichiers .profile. Appelé par –Rsh, le shell restreint lit le fichier .profile de l’utilisateur ($HOME/.profile). Il agit comme le shell Bourne normal, à ceci près que toute interruption provoque la sortie immédiate et non un retour au niveau commande. Shells 12-73 Commandes du shell Bourne Lorsque vous lancez une commande dans le shell Bourne, il commence par l’analyser et effectuer toutes les substitutions indiquées. Puis il exécute la commande, à condition que : • le nom de commande corresponde à une commande spéciale du shell Bourne. OU • le nom de commande corresponde au nom d’une fonction définie. Dans ce cas, le shell définit les paramètres positionnels par ceux de la fonction. Si le nom de commande ne correspond ni à une commande intégrée ni à une fonction définie et que la commande nomme un fichier exécutable qui est un programme (binaire) compilé, le shell (en tant que parent) génère dynamiquement un nouveau process (enfant) qui exécute immédiatement le programme. Si le fichier est déclaré exécutable mais n’est pas un programme compilé, le shell suppose qu’il s’agit d’une procédure shell. Dans ce cas, le shell génère dynamiquement une autre instance de lui-même (un sous-shell) qui lit le fichier et en exécute les commandes. Le shell exécute également les commandes mises entre parenthèses dans le sous–shell. Pour l’utilisateur, l’exécution d’un programme compilé se fait exactement de la même manière qu’une procédure shell. Le shell recherche normalement les commandes dans les répertoires du système de fichiers, dans l’ordre suivant : 1. /usr/bin 2. /etc 3. /usr/sbin 4. /usr/ucb 5. $HOME/bin 6. /usr/bin/X11 7. /sbin 8. Répertoire courant. Le shell explore successivement chaque répertoire, passant au suivant lorsqu’il ne parvient pas à trouver la commande. Remarque : La variable PATH détermine l’ordre dans lequel le shell effectue la recherche dans les répertoires. Vous pouvez modifier la séquence donnée des répertoires cible en redéfinissant la variable PATH. Si vous indiquez un chemin d’accès en lançant une commande (par exemple, /usr/bin/sort), le shell n’explore que le répertoire correspondant. Si le nom de commande contient une barre oblique (/), le shell ne tient pas compte du chemin d’accès. Vous pouvez spécifier un chemin d’accès complet commençant par le répertoire racine (par exemple /usr/bin/sort). Vous pouvez également indiquer un chemin d’accès relatif au répertoire courant. Si vous spécifiez : bin/monfichier le shell cherche le répertoire bin dans le répertoire courant, puis, dans ce répertoire, le fichier monfichier. Remarque : Le shell restreint ne traite pas les commandes contenant une barre oblique (/). Le shell mémorise le chemin d’accès de chaque commande exécutée (pour éviter des recours répétés à la commande exec). Si la commande se trouve dans un répertoire relatif (ne commençant pas par /), le shell doit la rechercher à nouveau à chaque changement de répertoire courant. Si vous modifiez la valeur de la variable PATH ou que vous exécutez la commande hash –r, le shell efface tous les chemins mémorisés. 12-74 AIX Guide de l’utilisateur – Système d’exploitation et unités Ce chapitre traite des points suivants : • Déclaration de caractères, page 12-75 • Traitement des signaux, page12-75. • Commandes intégrées (shell Bourne), page 12-77 • Substitution de commandes (shell Bourne), page 12-83 Déclaration de caractères De nombreux caractères ont une spécification spéciale pour le shell. Vous souhaiterez quelquefois passer outre. Pour cela, vous n’avez qu’à encadrer les caractères concernés par des apostrophes (’) et des guillemets (”), ou en les faisant précéder d’une barre oblique inverse (\). Tous ces caractères, à l’exception de l’apostrophe, sont alors interprétés littéralement. Ainsi, la commande : stuff=’echo $? $*; ls * | wc’ attribue la chaîne littérale echo $? $*; ls * | wc à la variable stuff. Le shell n’exécute pas les commandes echo, ls et wc et ne développe ni les variables $? et $*, ni le caractère astérisque (*). Placés entre guillemets, les caractères $ (dollar), ‘ (apostrophe inverse) et ” (guillemets) conservent leur signification spéciale, tous les autres caractères étant interprétés littéralement. La substitution des variables et des commandes encadrées par des guillemets a donc lieu. En outre, les guillemets n’affectent pas les commandes dans une substitution de commande faisant partie de la chaîne déclarée, aussi les caractères conservent-ils dans ce cas leur signification spéciale. Soit la séquence : ls * file1 file2 file3 message=”This directory contains ‘ls * ‘ ” echo $message This directory contains file1 file2 file3 Le caractère spécial * figurant dans la chaîne à substituer a été développé. Pour annuler la signification spéciale des caractères $ (dollar), ‘ (apostrophe inverse) et ” (double guillemets), placés entre guillemets, faites-les précéder d’une barre oblique inverse. Dans une expression non encadrée de guillemets, faire précéder un caractère d’une barre oblique inverse équivaut à le placer entre apostrophes. Par conséquent, une barre oblique inverse précédant immédiatement un caractère nouvelle ligne (c’estàdire une barre oblique inverse en fin de ligne) annule le caractère nouvelle ligne, ce qui vous permet de continuer la ligne de commande sur la ligne suivante (physiquement). Traitement des signaux Les signaux INTERRUPT et QUIT sont ignorés lorsque la commande est suivie d’un & (perluète) ; c’est–à–dire exécutée en arrière-plan. Sinon, les valeurs des signaux sont celles transmises par le shell parent, à l’exception du signal VIOLATION DE SEGMENTATION. Pour en savoir plus, reportez–vous à la commande intégrée trap du shell Bourne, page 12-81. Shells 12-75 Commandes composées (shell Bourne) Une commande composée est l’un des éléments suivants : • pipeline (séquence de commandes séparées par le symbole |), • liste de commandes simples, • commande commençant par un mot réservé, • commande commençant par l’opérateur ( (parenthèse ouvrante). Sauf indication contraire, la valeur renvoyée par une commande composée est celle de la dernière commande simple exécutée. Mots réservés Les mots réservés ne sont identifiés que lorsqu’ils apparaissent sans guillemets et comme premier mot d’une commande. for case if elif while { ( do esac then else until } ) for Identificateur [ in Mot . . .] do Liste done done fi Affecte à Identificateur la valeur du (des) paramètre(s) Mot (un à la fois) et exécute les commandes spécifiées par Liste. Si in Mot. . . est omis, la commande for exécute le contenu du paramètre Liste pour chaque paramètre positionnel défini, la commande s’achevant lorsque tous ces paramètres ont été traités. case Mot in Trame [| Trame ] . . . ) Liste;; Exécute les commandes spécifiées par [ Trame [| Trame ] . . . ) Liste;; ].. . esac Liste, associées à la première Trame correspondant à la valeur de Mot. Les conventions de notation sont les mêmes que celles utilisées pour la substitution de noms de fichiers, à ceci près qu’une barre oblique (/), un point en tête (.) ou une séquence barre oblique/point ne doivent pas obligatoirement correspondre explicitement. if Liste then Liste [ elif Liste then Liste ] . . . [ else Liste ] fi 12-76 Exécute les commandes spécifiées par le paramètre Liste qui suit la commande if. Si la commande renvoie une valeur nulle, le shell exécute la commande Liste par la première commande then. Sinon, il exécute le paramètre Liste définie par la commande elif (si elle est précisée). Si la valeur de sortie est encore nulle, le shell passe aux commandes définies par le then suivant. Si la valeur renvoyée est non nulle, le shell exécute les commandes définies par le paramètre Liste suivant la commande else (si elle est précisée). Si aucune commande else Liste ou then Liste n’est exécutée, la commande if renvoie une valeur nulle. AIX Guide de l’utilisateur – Système d’exploitation et unités while Liste do Liste done Exécute les commandes spécifiées par le paramètre Liste qui suit la commande while. Si la commande renvoie une valeur nulle, le shell exécute le paramètre Liste suivant la commande do. Il boucle ensuite sur les listes jusqu’à obtenir une valeur de sortie non nulle. Si aucune des commandes de do Liste n’est exécutée, la commande while renvoie une valeur nulle. until Liste do Liste done Exécute les commandes spécifiées par le paramètre Liste qui suit la commande until. Si la commande renvoie une valeur nulle, le shell exécute le paramètre Liste suivant la commande do. Il boucle ensuite sur les listes jusqu’à obtenir une valeur de sortie nulle. Si aucune des commandes de do Liste n’est exécutée, la commande until renvoie une valeur nulle. ( Liste ) Exécute, dans un sous-shell, les commandes spécifiées par le paramètre Liste. { Liste; } Exécute, dans le shell courant, les commandes spécifiées par le paramètre Liste, sans créer de sous-shell. Nom () { Liste } Définit une fonction référencée par Nom. Le corps de cette fonction est constitué des commandes entre accolades spécifiées par Liste. Commandes intégrées (shell Bourne) Les commandes spéciales, intégrées au shell Bourne, sont exécutées dans le processus shell. Sauf indication contraire, la sortie est envoyée au descripteur de fichier1 (sortie standard) avec un état de sortie nul lorsque la commande est exempte d’erreur de syntaxe. Le réacheminement des entrées/sorties est autorisé. La Liste des commandes intégrées du shell Bourne, page 12-92 répertorie ces commandes par ordre alphabétique. Les commandes ci-dessous sont traitées quelque peu différemment des autres commandes intégrées : : (colon) . (dot) break continue eval exec exit export readonly return shift times trap wait Le shell Bourne traite ces commandes comme suit : • Les listes d’affectation de paramètres précédant la commande restent en vigueur après l’exécution de la commande. • Les réacheminements d’E/S sont traités après les affectations de paramètres. • Toute erreur détectée dans un script shell provoque l’arrêt du script. Shells 12-77 Description des commandes spéciales Voici les commandes intégrées spéciales du shell Bourne : Commandes intégrées 12-78 : Renvoie un état de sortie nul. . Fichier Lit et exécute les commandes de Fichier et revient au shell. Ne lance pas de sous-shell. Le shell recherche le fichier dans le répertoire défini par la variable PATH. break [ n ] Sort, le cas échéant, de la boucle for, while ou until. Si n est spécifié, la commande break sort à la nième boucle. continue [ n ] Reprend à l’itération suivante de la boucle for, while ou until. Si vous spécifiez n, la commande reprend à la nième boucle. cd Répertoire ] Passe au répertoire défini par Répertoire. En l’absence de spécification de Répertoire, c’est la valeur de la variable shell HOME qui est utilisée. La variable shell CDPATH définit le chemin d’accès pour Répertoire. CDPATH est constitué d’une liste de répertoires séparés par des deux–points. Un chemin d’accès vide (qui est le chemin par défaut) désigne le répertoire courant. Ce répertoire est affiché immédiatement après le signe égal ou entre les deux-points dans la liste des chemins. Si Répertoire commence par une barre oblique (/), le shell ne tient pas compte du chemin d’accès. Sinon, tous les répertoires de la variable shell CDPATH sont explorés. Remarque : Le shell restreint ne traite pas la commande cd. echo Chaîne . . . ] Ecrit les chaînes de caractères sur la sortie standard. Pour en savoir plus, reportez–vous à la commande echo. L’indicateur –n, page 12-80 n’est pas pris en charge. eval [ Argument . . . ] Lit les arguments comme entrée du shell et exécute le(s) commande(s) résultante(s). exec [ Argument . . . ] Exécute, à la place du shell, la commande spécifiée par Argument, sans créer de nouveau process. Des arguments d’entrée/sortie peuvent apparaître et, si d’autres arguments n’apparaissent pas, engendrer des modifications de l’entrée ou de la sortie shell. Ceci est fortement déconseillé s’il s’agit de votre shell de connexion. exit [ n ] Quitte le shell dont l’état de sortie est spécifié par le paramètre n. Si n est omis, la valeur de sortie est celle de la dernière commande exécutée (CtrlD provoque également la sortie du shell). La valeur du paramètre n est un entier compris entre 0 et 255. AIX Guide de l’utilisateur – Système d’exploitation et unités export [ Nom . . . ] Marque les noms spécifiés, pour exportation automatique vers l’environnement des commande ultérieures. Si Nom est omis, la commande export affiche la liste des noms exportés dans ce shell. Vous ne pouvez exporter des noms de fonctions. hash [ –r ][ Commande . . . ] Recherche et mémorise l’emplacement du chemin d’accès à chaque Commande spécifiée. A l’inverse, l’indicateur –r efface tous les chemins mémorisés. En l’absence de cet indicateur ou de commandes, le shell affiche des informations sur les commandes mémorisées, au format : Nombre Coût Commande Nombre indique le nombre de fois qu’une commande a été exécutée par le processus shell. Coût est une mesure du travail requis pour rechercher une commande dans un chemin. Commande affiche les noms des chemins correspondant à chaque commande spécifiée. Dans certains cas, l’emplacement mémorisé doit être recalculé – s’il s’agit d’un chemin relatif et que vous changez de répertoire courant, par exemple. Les commandes concernées sont indiquées par un astérisque (*), affiché en regard de Nombre. Coût est incrémenté en conséquence. pwd Affiche le répertoire courant. Reportez–vous à la description de la commande pwd. read [ Nom . . . ] Lit une ligne de l’entrée standard. Affecte le premier mot de la ligne au premier paramètre Nom, le deuxième mot au deuxième paramètre, etc., les mots résiduels étant affectés au dernier paramètre Nom. Cette commande renvoie une valeur nulle, sauf si elle détecte un caractère fin de fichier. readonly [ Nom . . . ] Marque en lecture seule le Nom spécifié. La valeur de ce nom ne peut être redéfinie. Si Nom est omis, la commande readonly affiche la liste des noms en lecture seule. return [ n ] Provoque la fin d’une fonction, avec la valeur de retour n. Si n est omis, la fonction renvoie l’état de la dernière commande exécutée de cette fonction. Cette commande n’est valide que lorsqu’exécutée sous la fonction shell. Shells 12-79 set [ Indicateur [ Argument ] . . . ] Définit un ou plusieurs des indicateurs suivants : –a Marque pour l’export toutes les variables auxquelles une affectation est effectuée. Si l’affectation précède un nom de commande, l’attribut export n’est efficace que pour l’environnement d’exécution de cette commande, sauf lorsque l’affectation précède une des commandes intégrées spéciales. Dans ce cas, l’attribut export reste après l’arrêt de la commande intégrée. Si l’affectation ne précède pas un nom de commande ou si l’affectation est un résultat de l’opération des commandes getopts ou read, l’attribut export reste jusqu’à ce que la variable soit retirée. –e Provoque la sortie immédiate d’une commande si toutes les conditions suivantes sont réunies : . elle renvoie une valeur supérieure à zéro, . elle n’est pas un élément de la liste d’une commande while, until ou if, . elle n’est pas en cours de test via des listes AND ou OR, . elle n’est pas un pipeline précédé du mot réservé ! (point d’exclamation). –f Désactive la substitution de nom de fichier. –h Localise et mémorise les commandes appelées par les fonctions au moment de leur définition. (Normalement, ces commandes sont localisées au moment de l’exécution de la fonction ; reportez–vous à la commande hash, page 12-79.) –k Place tous les mots-clés dans l’environnement d’une commande (et pas seulement ceux qui précèdent le nom de commande). –n Lit les commandes sans les exécuter. Pour vérifier les erreurs de syntaxe dans les script des shells, utilisez l’indicateur –n. –t Quitte après lecture et exécution d’une seule commande. –u Traite toute variable non définie comme une erreur et sort immédiatement après avoir opéré la substitution de variable. Un shell interactif ne permet pas de sortie. –v Affiche les lignes d’entrée au fur et à mesure de leur lecture. –x Affiche les commandes et leurs arguments avant leur exécution. –– Ne modifie pas les indicateurs. Utile pour définir le paramètre positionnel $1 par une chaîne commençant par un signe – (moins). 12-80 AIX Guide de l’utilisateur – Système d’exploitation et unités Un signe + (plus) à la place d’un signe – (moins) désactive les indicateurs. Vous pouvez aussi spécifier ces indicateurs sur la ligne de commande du shell. La variable spéciale $– contient l’ensemble des indicateurs courants. Tout Argument de la commande set devient un paramètre positionnel affecté, dans l’ordre, à $1, $2, etc. A défaut d’indicateur ou d’Argument, la commande set affiche les noms et valeurs de toutes les variables shell courantes. shift [ n ] Décale les arguments de la ligne de commande vers la gauche ; autrement dit, réaffecte les paramètres positionnels en rejetant la valeur courante de $1 et en réaffectant la valeur de $2 à $1, de $3 à $2, etc. S’il y a plus de 9 arguments, le 10ème est affecté à $9 et s’ils en restent d’autres, ils ne sont pas affectés (jusqu’au prochain shift). S’il y a 9 arguments (ou moins), la commande shift annule l’affectation du paramètre positionnel doté du numéro le plus élevé. Le paramètre positionnel $0 n’est jamais décalé. La commande shift n est une notation abrégée qui permet de spécifier n décalages consécutifs. La valeur par défaut de n est 1. test Expression | [ Expression ] Evalue des expressions conditionnelles. Reportez–vous à la description de la commande test. L’indicateur –h n’est pas accepté par la commande de test intégrée dans bsh. times Affiche les temps cumulés utilisateur et système, pour le shell et les process exécutés à partir de celui–ci. trap [ Commande ] [ n ] . . . Exécute la commande spécifiée par le paramètre correspondant lorsque le shell reçoit le ou les signaux déterminés par n. Les commandes trap sont exécutées dans l’ordre des numéros des signaux. Toute tentative de définir un traitement d’interruption sur un signal qui a été ignoré en entrée du shell courant est sans effet. Remarque : Le shell balaye le paramètre Commande une première fois lorsque le traitement d’interruption est défini, puis de nouveau à l’exécution du traitement. Si vous ne spécifiez pas de commande, tous les traitements d’interruption spécifiés par n sont restaurés à leurs valeurs courantes. Si la chaîne spécifiée est vide, le shell et les commandes appelées ignorent le signal. Si n vaut 0 (zéro), la commande est exécutée lorsque vous quittez le shell. Si vous n’avez spécifié ni commande ni signal, la commande trap affiche la liste des commandes associées à un numéro de signal. Shells 12-81 type [ Nom . . . ] Indique l’interprétation à donner à chaque Nom spécifié, lorsqu’utilisé comme nom de commande. ulimit [ –HS ] [ – c | –d | –f | –m | –s | –t ] [ limite ] Affiche ou ajuste les ressources shell affectées. Les paramètres des ressources shell peuvent être affichés individuellement ou en groupe. Par défaut, les ressources sont affichées avec leur limite logicielle, ou leur borne inférieure, en tant que groupe. L’affectation des ressources shell dépend de l’ID utilisateur effectif du shell courant. Le niveau matériel d’une ressource ne peut être défini si cet ID n’est pas celui de l’utilisateur root. Une erreur est générée si vous n’êtes pas un utilisateur root ou si vous essayez de définir le niveau matériel de ressource. Par défaut, l’utilisateur root définit les limites à la fois logicielles et matérielles des ressources. Il doit donc être particulièrement vigilant lors de l’emploi des indicateurs –S, –H ou de l’indicateur par défaut. A moins que vous ne soyez un utilisateur root, vous ne pouvez définir que la limite logicielle d’une ressource. Si vous modifiez une limite à la baisse, vous ne pourrez plus l’augmenter à nouveau, même pour la ramener à son niveau antérieur. Pour définir les limites d’une ressource, sélectionnez l’indicateur ad hoc et la valeur souhaitée (obligatoirement un entier). Vous ne pouvez définir qu’une ressource à la fois : si vous spécifiez plusieurs indicateurs de ressources, vous risquez d’obtenir des résultats indéfinis. Par défaut, ulimit suivi d’une simple valeur définit la taille des fichiers du shell. L’indicateur –f est facultatif. La commande ulimit accepte les indicateurs suivants : –c Définit ou affiche un segment central du shell. –d Définit ou affiche un segment de données du shell. –f Définit ou affiche la taille des fichiers shell. –H Définit ou affiche la limite matérielle d’une ressource (utilisateur root exclusivement) –m Définit ou affiche la mémoire shell. –s Définit ou affiche le segment de pile shell. –S Définit ou affiche la limite logicielle d’une ressource. –t Définit ou affiche le temps CPU maximal pour le shell. 12-82 AIX Guide de l’utilisateur – Système d’exploitation et unités umask [ nnn ] Détermine les droits d’accès au fichier. Cette valeur, associée aux droits du process créateur, définit les droits sur un fichier, à sa création (valeur par défaut 022). La valeur par défaut est 022. Si aucune valeur n’est entrée, umask affiche la valeur courante. unset [ Nom . . .] Supprime la variable ou la fonction correspondant à chaque Nom spécifié. La définition des variables PATH, PS1, PS2, MAILCHECK et IFS ne peut être supprimée. wait [ n ] Attend la fin de l’exécution du process enfant spécifié par n pour sortir, puis renvoie l’état de sortie de ce process. Si n est omis, le shell attend la fin de tous les process enfants actifs et renvoie la valeur 0. Substitution de commandes (shell Bourne). La substitution de commandes permet de définir comme argument d’une commande le résultat d’une autre commande. Si vous encadrez une ligne de commande d’apostrophes inverses ‘‘, le shell exécute d’abord la (les) commande(s), puis remplace l’intégralité de l’expression (apostrophes inverses comprises) par le résultat. Cette fonction est souvent utilisée pour affecter des variables shell. Par exemple, l’instruction : today=‘date‘ affecte à la variable today la chaîne représentant la date courante. L’affectation suivante enregistre, dans la variable files, le nombre de fichiers du répertoire courant: files=‘ls | wc –l‘ La substitution de commande peut être exécutée sur n’importe quelle commande dont le résultat est envoyé en sortie standard. Pour imbriquer des substitutions, faites précéder chaque apostrophe inverse imbriquée d’une barre oblique inverse (\), comme suit : logmsg=‘echo Your login directory is \‘pwd\‘‘ Vous pouvez également attribuer indirectement des valeurs aux variables shell via la commande intégrée read , page 12-79. Cette commande lit une ligne à partir de l’entrée standard (le clavier généralement) et affecte successivement les mots de cette ligne aux variables nommées. Par exemple : read first init last lit une ligne de la forme : J. Q. Public avec le même effet que si vous aviez tapé : first=J. init=Q. last=Public La commande spéciale read affecte les mots résiduels à la dernière variable. Shells 12-83 Substitution de variables et de noms de fichiers (shell Bourne) Le shell Bourne autorise la substitution de variables et de noms de fichiers. Cette section traite des points suivants : • Substitution de variables (shell Bourne), page 12-84. • Variables définies par l’utilisateur, page 12-84. • Substitution conditionnelle, page 12-88. • Paramètres positionnels, page 12-89. • Substitution de noms de fichiers (shell Bourne), page 12-85. • Classes de caractères, page 12-90. Substitution de variables (shell Bourne) Différents mécanismes sont disponibles pour créer des variables (affecter une valeur de chaîne à un nom). Certaines variables, paramètres positionnels et mots–clés, ne peuvent normalement être spécifiés qu’à partir d’une ligne de commande. D’autres variables sont des noms auxquels peuvent être attribuées (par vous ou par le shell) des valeurs de chaîne. Variables définies par l’utilisateur Le shell identifie les variables alphanumériques auxquelles des valeurs de chaîne peuvent être affectées. Pour affecter une valeur de chaîne à un nom, tapez : Name=Chaîne Appuyez sur Entrée. Un nom est une série de lettres, de chiffres et de traits de soulignement commençant par un trait de soulignement ou une lettre. Pour utiliser la valeur assignée à une variable, faites précéder le nom d’un signe dollar ($) : la variable $Name, par exemple, utilise la valeur de Chaîne. Notez l’absence d’espaces de part et d’autre du signe égal (=) dans une instruction d’affectation. Les paramètres positionnels ne peuvent apparaître dans une instruction d’affectation : ils ne peuvent être définis que comme décrit à la section ”Paramètres positionnels”, page 12-89. Une ligne de commande peut comporter plusieurs instructions d’affectation, mais n’oubliez pas que le shell les exécute de la droite vers la gauche. Si vous encadrez Chaîne de guillemets ou d’apostrophes (” ou ’), le shell n’interprète pas les caractères blancs, tabulations, deux-points et nouvelle ligne de la chaîne comme des délimiteurs, mais les imbrique littéralement dans la chaîne. Si vous encadrez Chaîne de guillemets (”), le shell reconnaît les variables de la chaîne et effectue les substitutions correspondantes, c’est–à–dire, remplace les références à des paramètres positionnels et autres noms de variable précédés du signe dollar ($) par leurs valeurs correspondantes. Le shell effectue également la substitution de commande dans les chaînes entre guillemets. Si vous encadrez Chaîne d’apostrophes (’), le shell n’effectue pas de substitutions de variables ou de commandes dans la chaîne. L’exemple suivant en est une illustration : You: System: You: System: num=875 number1=”Add $num” number2=’Add $num’ echo $number1 Add 875 echo $number2 Add $num Le shell ne réinterprète pas les blancs dans les affectations après la substitution de variable. Dans l’exemple suivant, $first et $second ont donc la même valeur : 12-84 AIX Guide de l’utilisateur – Système d’exploitation et unités first=’a string with embedded blanks’ second=$first Pour référencer une variable, vous pouvez mettre son nom (ou le chiffre désignant le paramètre positionnel) entre { } pour le séparer de la chaîne suivante. En particulier, lorsque le caractère qui suit immédiatement le nom est une lettre, un chiffre ou un trait de soulignement, et que la variable n’est pas un paramètre positionnel, les accolades sont obligatoires : You: System: You: System: a=’This is a’ echo ”${a}n example” This is an example echo ”$a test” This is a test Pour en savoir plus sur l’usage des accolades, reportez–vous à Substitution conditionnelle, page 12-88. Variables utilisées par le shell Le shell utilise les variables suivantes. Certaines sont définies par le shell, mais pouvez toutes les définir ou les redéfinir. CDPATH Chemin d’accès utilisé par la commande cd (changement de répertoire). HOME Nom de votre répertoire de connexion, qui est le répertoire courant dès que la connexion est établie. Cette variable est initialisée par le programme login. La commande cd utilise par défaut la valeur de la variable $HOME. Utiliser cette variable plutôt qu’un nom de chemin explicite dans une procédure shell permet d’exécuter la procédure à partir d’un répertoire différent sans modification. IFS Séparateurs de zones internes, utilisés par le shell pour l’interprétation des blancs (voir Interprétation des blancs, page 12-88). La variable IFS comprend initialement les caractères blanc, tabulation et nouvelle ligne. LANG Environnement local à utiliser pour les catégories locales, lorsque ni la variable LC_ALL, ni la variable d’environnement correspondante (commençant par LC_) n’en spécifient. Pour en savoir plus, reportez–vous à la section relative à la présentation des environnements locaux du manuel AIX 5L Version 5.2 National Language Support Guide and Reference. LC_ALL Environnement local à utiliser pour remplacer les valeurs des catégories locales spécifiées par la variable LANG ou par d’autres variables d’environnement commençant par LC_. LC_COLLATE Ordre pour le tri des noms et pour la définition d’intervalles de caractères dans les trames. LC_CTYPE Environnement local pour interpréter des séquences d’octets de données comme des caractères (c’est–à–dire, différencier les caractères mono–octet des caractères multi–octets dans les arguments et les fichiers entrée), ces caractères étant définis comme des lettres (classe alpha), ainsi que le comportement des classes de caractères dans les recherches génériques. LC_MESSAGES Langue dans laquelle sont écrits les messages. LIBPATH Chemin d’accès aux bibliothèques partagées. Shells 12-85 LOGNAME Nom de connexion, marqué readonly dans le fichier etc/profile. MAIL Chemin d’accès au fichier utilisé par la messagerie pour détecter l’arrivée de courrier. Si cette variable est définie, le shell vérifie périodiquement l’heure à laquelle le fichier a été modifié, et affiche la valeur de $MAILMSG si cette heure a changé et que la longueur du fichier est positive. Déclarez la variable MAIL dans le fichier .profile. Les utilisateurs de la commande lui affectent généralement la valeur /usr/spool/mail/$LOGNAME. MAILCHECK Délai (en secondes) entre deux “levées” de courrier par le shell dans les fichiers spécifiés par MAILPATH ou MAIL. La valeur par défaut est 600 secondes (10 minutes). Si vous attribuez à MAILCHECK la valeur 0, le shell effectue une vérification avant chaque invite. MAILMSG Message de notification de courrier. Si vous définissez explicitement MAILMSG par une chaîne vide (MAILMSG=””), aucun message ne s’affiche. MAILPATH Liste de noms de fichier, séparés par deux points (:). Si cette variable est définie, le shell vous informe de l’arrivée de courrier dans l’un des fichiers de la liste. Vous pouvez faire suivre chaque nom de fichier d’un signe % et d’un message qui s’affichera à l’arrivée de courrier. Sinon, le shell utilise la valeur de la variable MAILMSG ou, par défaut, le message [YOU HAVE NEW MAIL]. Remarque : Lorsque la variable MAILPATH est définie, ce sont les fichiers correspondants qui sont vérifiés et non le fichier défini par MAIL. Pour contrôler à la fois les fichiers définis par MAILPATH et par MAIL, incluez le fichier MAIL dans la liste de fichiers MAILPATH. PATH Chemin d’accès aux commandes, sous forme de liste de chemins à des répertoires, séparés par des deux points. Lorsqu’il recherche une commande, le shell explore ces répertoires dans l’ordre spécifié. Le répertoire courant est représenté par une chaîne nulle. La variable PATH est habituellement initialisée dans le fichier /etc/environment, en général par : /usr/bin:/etc:/usr/sbin:/usr/ucb: /usr/bin/X11:/sbin. Vous pouvez redéfinir cette variable en fonction de vos besoins. La variable PATH de votre fichier .profile comporte également $HOME/bin et votre répertoire courant. Si vous avez défini un répertoire spécial pour vos projets, /projet/bin par exemple, que vous souhaitez explorer en premier, définissez la variable PATH comme suit : PATH=/project/bin:$PATH Pour affecter à PATH une autre valeur, insérez–la de préférence dans le fichier $HOME/.profile. Vous ne pouvez pas redéfinir la variable PATH si vous exécutez des commandes dans le shell restreint. PS1 12-86 Chaîne constituant l’invite système principale. Cette chaîne est affichée par un shell interactif pour signifier qu’il attend une entrée. La valeur par défaut de PS1 est $ suivi d’un espace, pour les utilisateurs non racine. AIX Guide de l’utilisateur – Système d’exploitation et unités PS2 Chaîne constituant l’invite secondaire. Elle est affichée par le shell pour signifier qu’il attend une suite lorsqu’il rencontre un caractère nouvelle ligne. La valeur par défaut de PS2 est >, suivi d’un blanc. SHACCT Nom d’un de vos fichiers. Si cette variable est définie, le shell inscrit un enregistrement comptable à chaque exécution d’un script shell dans ce fichier. Vous disposez ensuite de programmes de comptabilité, tels que acctcom et acctcms pour analyser les données collectées. SHELL Chemin d’accès au shell, enregistré avec l’environnement. Cette variable doit être définie et exportée par le fichier $HOME/.profile de chaque connexion restreinte. TIMEOUT Délai d’inactivité (en minutes) au bout duquel le shell quitte. Si cette variable est affectée d’une valeur supérieure à zéro (0), le shell quitte si aucune commande n’est lancée dans le délai prescrit, après l’affichage de l’invite PS1. (Notez que le shell peut être compilé avec l’indication d’une limite maximale pour le délai.) Les paramètres sont séparés par des espaces. Variables prédéfinies Plusieurs variables ont des significations spéciales. Voici les variables qui ne peuvent être définies que par le shell : $@ Développe les paramètres positionnels, en commençant par $1. Les paramètres sont séparés par des espaces. Si vous encadrez $@ de ” (guillemets), le shell interprète chaque paramètre positionnel comme une chaîne distincte. En l’absence de paramètre positionnel, le shell développe l’instruction en chaîne nulle non déclarée. $* Développe les paramètres positionnels, en commençant par $1. Le shell sépare chaque paramètre par le premier caractère de la variable IFS. Si vous encadrez $* de ” (guillemets), le shell encadre de guillemets les valeurs du paramètre positionnel. Les valeurs sont séparées par le premier caractère de la valeur de la variable IFS. $# Spécifie le nombre (décimal) de paramètres positionnels transmis au shell, nom de la procédure shell elle–même exclu. Le paramètre $# génère donc le paramètre positionnel ayant la valeur la plus élevée. Ce paramètre sert principalement à vérifier que le nombre d’arguments requis est présent. Seuls les paramètres positionnels $0 à $9 sont accessibles via le shell. Pour en savoir plus, reportez–vous à ”Paramètres positionnels”, page 12-89. $? Renvoie la valeur de la dernière commande exécutée (chaîne décimale). La plupart des commandes renvoient 0 pour indiquer qu’elles ont été correctement exécutées. Le shell renvoie la valeur courante de la variable $? comme valeur de sortie. Shells 12-87 $$ Numéro de process du process courant. Un numéro de process étant unique, cette chaîne est souvent utilisée pour générer des noms uniques pour les fichiers temporaires. L’exemple suivant illustre comment créer des fichiers temporaires dans un répertoire réservé à cet effet : temp=/tmp/$$ ls >$temp . . . rm $temp $! Numéro de process de la dernière commande d’arrière–plan invoquée via la terminaison &. $– Chaîne constituée des noms des indicateurs d’exécution, actuellement définis dans le shell. Interprétation des blancs Après exécution des substitutions de variables et de commandes, le shell balaye les résultats, à la recherche des séparateurs de zones (définis dans la variable IFS). A chaque occurrence d’un séparateur, il partage la ligne en mots distincts, séparés par des espaces. Il conserve les arguments nuls explicites (”” ou ’’), mais élimine les implicites (résultant de paramètres non renseignés). Substitution conditionnelle En général, le shell remplace l’expression $Variable par la chaîne affectée, le cas échéant, à Variable. Une notation spéciale permet cependant d’exécuter une substitution conditionnelle, selon que la variable est spécifiée ou non nulle, ou les deux à la fois. Par définition, une variable est définie lorsqu’une valeur lui a été affectée. La valeur d’une variable peut être la chaîne nulle, que vous pouvez affecter d’une des façons suivantes : A= bcd=”” Efg=’’ Affecte la chaîne vide à A, bcd et Efg. set ’’ ”” Affecte la chaîne nulle aux premier et deuxième paramètres positionnels, et annule la définition des autres. Voici la liste des expressions utilisables dans une substitution conditionnelle. 12-88 ${ Variable – Chaîne} Si la variable est définie, remplace l’expression par la valeur de Variable. Sinon, la remplace par la valeur de Chaîne. ${ Variable:– Chaîne } Si la variable est définie et non nulle, remplace l’expression par la valeur de Variable. Sinon, la remplace par la valeur de Chaîne. ${ Variable = Chaîne } Si la variable est définie, remplace l’expression par la valeur de Variable. Sinon, remplace la valeur de Variable par la valeur de Chaîne, puis l’expression par la valeur de Variable. Vous ne pouvez pas affecter ainsi des valeurs aux paramètres positionnels. ${ Variable:= Chaîne } Si la variable est définie et non nulle, remplace l’expression par la valeur de Variable. Sinon, remplace la valeur de Variable par la valeur de Chaîne, puis l’expression par la valeur de Variable. Vous ne pouvez pas affecter ainsi des valeurs aux paramètres positionnels. AIX Guide de l’utilisateur – Système d’exploitation et unités ${ Variable ? Chaîne } Si la variable est définie, remplace l’expression par la valeur de Variable. Sinon, affiche un message de la forme : Variable: Chaîne et sort du shell courant (sauf s’il s’agit du shell de connexion). Si Chaîne est omis, le shell affiche le message : Variable: Paramètre nul ou non défini ${ Variable:? Chaîne } Si la variable est définie et non nulle, remplace l’expression par la valeur de Variable. Sinon, affiche un message de la forme : Variable : Chaîne et sort du shell courant (sauf s’il s’agit du shell de connexion). Si Chaîne est omis, le shell affiche le message : Variable: Paramètre nul ou non défini ${ Variable + Chaîne } Si la variable est définie, remplace l’expression par la valeur de Chaîne. Sinon, lui substitue la chaîne nulle. ${ Variable:+ Chaîne } Si la variable est définie et non nulle, remplace l’expression par la valeur de Chaîne. Sinon, lui substitue la chaîne nulle. Lorsqu’il exécute une substitution conditionnelle, le shell n’évalue la Chaîne qu’au moment où il l’utilise comme chaîne de substitution. Ainsi, dans l’exemple suivant, le shell n’exécute la commande pwd que lorsque d est nul ou non spécifié : echo ${d:–‘pwd‘} Paramètres positionnels Lorsque vous exécutez une procédure shell, le shell crée implicitement des paramètres positionnels qui référencent les mots de la ligne de commande par leur position sur la ligne. Le mot en position 0 (nom de la procédure) est appelé $0, le mot suivant (premier paramètre) $1, etc, jusqu’à $9. Pour référencer des paramètres au–delà de 9, passez par la commande intégrée shift (voir page 12-81). Pour redéfinir explicitement des paramètres positionnels, vous disposez de la commande intégrée set (voir page 12-80). Remarque : Lorsqu’une position n’est pas spécifiée, son paramètre positionnel est nul. Les paramètres positionnels sont globaux et peuvent donc être transmis aux procédures shell imbriquées. Substitution de noms de fichiers (shell Bourne) Les paramètres de commande sont souvent des noms de fichiers. Vous pouvez générer automatiquement une liste de noms de fichier comme paramètres d’une ligne de commande. Pour ce faire, spécifiez un caractère que le shell identifie comme métacaractère. Si une commande contient ce caractère, le shell remplace le caractère par le nom de fichier enregistré dans un répertoire. Remarque : Le shell Bourne n’autorise pas le développement de noms de fichiers basé sur la classification des caractères par équivalence. En général, un métacaractère correspond à une lettre alphabétique. Vous pouvez aussi intégrer des métacaractères spéciaux à votre trame. Il s’agit des caractères suivants : Shells 12-89 * Correspond à n’importe quelle chaîne, chaîne nulle comprise. ? Correspond à un seul caractère (quelconque). [ . .. ] Correspond à n’importe quel caractère entre crochets. [! . . . ] Correspond à n’importe quel caractère entre crochets autre que ceux spécifiés à la suite du point d’exclamation. Mise entre crochets, une paire de caractères séparés par un – (tiret) correspond à n’importe quel jeu de caractères compris lexicalement entre ces deux valeurs (selon l’ordre de classement binaire des caractères). L’utilisation de trames souffre quelques restrictions. Si le premier caractère d’un nom de fichier est un point (.), il ne peut être mis en correspondance qu’avec une trame commençant aussi par un point. Par exemple, * correspond aux fichiers myfile et yourfile, mais pas aux fichiers .myfile et .yourfile. Pour ces fichiers, utilisez, par exemple : .*file Si la recherche n’aboutit pas, c’est la trame elle-même qui est renvoyée en sortie. Excluez des noms de fichiers et de répertoires les caractères *, ?, [ et ] : ils risquent de provoquer une boucle infinie lors des recherches sur la base de trames. Classes de caractères Pour faire correspondre des noms de fichiers, vous disposez également des classes de caractères : [[: charclass :]] Avec ce format, le système établit une correspondance avec chacun des caractères appartenant à la classe spécifiée. Les classes définies correspondent aux sous–routines ctype. 12-90 Classe de caractères Définition alnum Caractères alphanumériques alpha Majuscules et minuscules blank Espace ou tabulation horizontale cntrl Caractères de contrôle digit Chiffres graph Caractères graphiques lower Minuscules print Caractères imprimables punct Caractères de ponctuation space Espace, tabulation horizontale, retour chariot, nouvelle ligne, tabulation verticale ou page suivante upper Lettres majuscules xdigit Chiffres hexadécimaux AIX Guide de l’utilisateur – Système d’exploitation et unités Réacheminement des entrées/sorties (shell Bourne) La plupart des commandes ignorent l’origine de leurs entrées et la destination de leurs sorties (clavier, l’écran ou fichier). Une commande peut donc être lancée aussi bien via le clavier que via un pipeline. Les options ci–après peuvent apparaître n’importe où dans une commande simple. Elles peuvent aussi la précéder ou la suivre, mais ne peuvent lui être transmises. < Fichier Ouvre le fichier comme entrée standard. > Fichier Ouvre le fichier comme sortie standard. Crée le fichier s’il n’existe pas, le tronque à une longueur nulle sinon. > > Fichier Ouvre le fichier comme sortie standard. Créer le fichier s’il n’existe pas, y ajoute les sorties sinon. << [ – ] eofstr Lit toutes les lignes à partir de la variable eofstr jusqu’à la ligne ne contenant que eofstr ou un caractère de fin de fichier. Si un des caractères de eofstr est déclaré, le shell n’interprète ni ne développe aucun caractère des lignes d’entrée. Sinon, il exécute la substitution de commande et de variable et ignore le caractère nouvelle ligne déclaré (\newline). Pour déclarer des caractères de la variable eofstr ou dans les lignes d’entrée, faites–les précéder d’un \. Si vous ajoutez un signe – à l’<<option de réacheminement, toutes les tabulations en tête de eofstr et des lignes d’entrée sont supprimées. <& Chiffre Associe l’entrée standard au descripteur de fichier spécifié par Chiffre. >& Chiffre Associe l’entrée standard au descripteur de fichier spécifié par Chiffre. <&– Ferme l’entrée standard. >&– Ferme la sortie standard. Remarque : Le shell restreint n’autorise pas la réacheminement des sorties. Pour en savoir plus, reportez–vous Réacheminement des entrées/sorties, page 5-1. Shells 12-91 Liste des commandes intégrées du shell Bourne 12-92 : à la page 12-78 Renvoie un état de sortie nul. . à la page 12-78 Lit et exécute les commandes d’un fichier et revient au shell. break, page 12-78 Sort, le cas échéant, de la boucle for, while ou until. cd, page 12-78 Passe au répertoire spécifié. continue, page 12-78 Reprend à l’itération suivante de la boucle for, while ou until. echo, page 12-78 Ecrit les chaînes de caractères sur la sortie standard. eval, page 12-78 Lit les arguments comme entrée et exécute la ou les commandes qui en résultent. exec, page 12-78 Exécute, à la place du shell, la commande spécifiée par Argument, sans créer de nouveau process. exit, page 12-78 Quitte le shell dont l’état de sortie est spécifié par le paramètre n. export, page 12-79 Marque les noms spécifiés, pour exportation automatique vers l’environnement des commandes ultérieures. hash, page 12-79 Recherche et mémorise l’emplacement du chemin d’accès aux commandes spécifiées. pwd, page 12-79 Affiche le répertoire courant. read, page 12-79 Lit une ligne de l’entrée standard. readonly, page 12-79 Marque en lecture seule le Nom spécifié. return, page 12-79 Provoque la fin d’une fonction, avec une valeur de retour donnée. set, page 12-80 Contrôle l’affichage de divers paramètres sur la sortie standard. shift, page 12-81 Décale vers la gauche les arguments de la ligne de commande. test, page 12-81 Evalue des expressions conditionnelles. times, page 12-81 Affiche les temps cumulés utilisateur et système, pour le shell et les process exécutés à partir de celui–ci. trap, page 12-81 Exécute une commande donnée lorsque le shell reçoit un ou plusieurs signaux déterminés. type, page 12-82 Indique l’interprétation à donner à chaque nom spécifié, lorsqu’utilisé comme nom de commande. ulimit, page 12-82 Affiche ou ajuste les ressources shell affectées. umask, page 12-83 Détermine les droits d’accès au fichier. unset, page 12-83 Supprime la variable ou la fonction correspondant au nom spécifié. wait, page 12-83 Attend la fin de l’exécution du process enfant et indique son état à la sortie. AIX Guide de l’utilisateur – Système d’exploitation et unités Shell C Le shell C est un interpréteur de commandes interactif et un langage de programmation. Il utilise une syntaxe identique à celle du langage de programmation C. La commande csh lance le shell C. Quand vous vous connectez, la commande csh recherche d’abord le fichier de configuration /etc/csh.cshrc dans tout le système. Si le fichier de configuration s’y trouve, le shell C exécute les commandes stockées dans ce dernier. Il exécute ensuite le fichier /etc/csh.login (si celui-ci est disponible). Il explore enfin votre répertoire personnel à la recherche des fichiers .cshrc et .login : ces fichiers (s’ils existent) contiennent des informations personnalisées sur l’exécution du shell Cfiles. Toutes les variables éventuellement définies dans les fichiers .cshrc et .login (de votre répertoire $HOME) priment sur celles des fichiers /etc/csh.cshrc et /etc/csh.login. Seul l’utilisateur root peut modifier les fichiers /etc/csh.cshrc et /etc/csh.login. Les fichiers /etc/csh.login et $HOME/.login ne sont exécutés qu’une fois, au moment de la connexion. Ils servent généralement à enregistrer les définitions des variables d’environnement, les commandes à exécuter à la connexion et les commandes définissant les caractéristiques du terminal. Les fichiers /etc/csh.cshrc et $HOME/.cshrc sont exécutés lors de l’ouverture de session et à chaque invocation de la commande csh ou du script shell C. Ils permettent en général de définir les caractéristiques du shell C, comme les alias et les variables (par exemple, history, noclobber ou ignoreeof). Nous vous conseillons de n’utiliser que les commandes intégrées du shell C (voir Commandes intégrées (shell C), page 12-95) dans les fichiers /etc/csh.cshrc et $HOME/.cshrc pour réduire au minimum le délai de démarrage des scripts shell. Cette section traite des points suivants : • Règles d’utilisation, page12-94 • Traitement des signaux, page 12-94 • Commandes du shell C, page 12-95 • – Commandes intégrées (shell Bourne), page 12-95 – Expressions et opérateurs (shell C), page 12-106 – Substitution de commandes (shell C), page 12-107 – Exécution des commandes shell C non intégrées, page 12-108 Substitution d’historique (shell C), page 12-109. – Liste d’historique, page 12-109 – Spécification d’événement, page 12-110 – Guillemets et apostrophes, page 12-111 • Substitution d’alias (shell C), page 12-112 • Substitution de variables et de noms de fichiers (shell C), page 12-113 • – Substitution de variable (shell C), page 12-113. – Substitution de nom de fichier (shell C), page 12-115 – Développement de nom de fichier, page 12-115 – Abréviation de nom de fichier, page 12-116 – Classes de caractères, page 12-117 Variables d’environnement (shell C), page 12-118 Shells 12-93 • Réacheminement des entrées/sorties (shell C), page 12-121 • Contrôle des travaux (shell C), page 12-123 • Shell C, page 12-127 Règles d’utilisation Voici les règles applicables au shell C : • Les mots ne peuvent dépasser 1024 octets. • Les listes d’arguments sont limitées à ARG_MAX octets. La variable ARG_MAX est définie dans le fichier /usr/include/sys/limits.h. • Le nombre d’arguments d’une commande impliquant le développement de noms de fichiers est limité à 1/6ème du nombre de caractères autorisés dans une liste d’arguments. • Les substitutions de commandes ne peuvent porter sur un nombre de caractères supérieur à celui autorisé dans une liste d’arguments. • Pour détecter les boucles, le shell limite à 20 le nombre de substitutions d’alias sur une seule ligne. • La commande cshcsh ne prend pas en charge le développement de noms de fichiers basés sur la classification des caractères par équivalence. • Les descripteurs de fichiers (autres que les entrées et sorties standard et les erreurs standard) ouverts avant que la commande csh n’exécute d’application ne sont pas disponibles pour cette application. Traitement des signaux Le shell C ignore normalement les signaux quit. Les travaux exécutés distinctement ne sont pas affectés par les signaux générés par le clavier (INTERRUPT, QUIT et HANGUP). Les autres signaux ont la valeur que le shell hérite de son parent. Vous pouvez contrôler le mode de gestion des signaux d’INTERRUPTION et de TERMINAISON dans les procédures shell au moyen de onintr. Les shells de connexion interceptent ou ignorent les signaux TERMINATE suivant leur configuration. Les autres shells les passent aux process enfants. En aucun cas, les interruptions (signaux INTERRUPT) ne sont autorisées lorsqu’un shell de connexion est en train de lire le fichier .logout. 12-94 AIX Guide de l’utilisateur – Système d’exploitation et unités Commandes du shell C Une commande simple est une séquence de mots, séparés par des espaces ou des tabulations. Un mot est une séquence de caractères et/ou de chiffres, sans espaces non délimités. Sont également considérés comme des mots les caractères suivants, lorsqu’ils sont utilisés comme séparateurs de commandes ou caractères de terminaison : & && < | || > ; << ( > > ) Ces caractères peuvent faire partie d’un autre mot. Faites-les précéder d’un \ pour que le shell ne les interprète pas comme des caractères spéciaux. Les chaînes encadrées d’apostrophes (’ ’), de guillemets (” ”) ou d’apostrophes inverses (‘ ‘) peuvent également faire partie d’un mot. Les espaces, tabulations et caractères spéciaux ne constituent pas des mots distincts lorsqu’ils sont encadrés de ces signes. Vous pouvez également encadrer le caractère nouvelle ligne sous réserve de le faire précéder d’un \. Le premier mot d’une commande simple (numéroté 0) précise généralement le nom de la commande. Les autres mots, à quelques exceptions près, sont passés à cette commande. Si la commande spécifie un fichier exécutable qui est un programme compilé, le shell exécute immédiatement le programme. Si le fichier exécutable n’est pas un programme compilé, le shell suppose qu’il s’agit d’une procédure shell. Le shell lance alors une autre instance de lui–même (un sous–shell) pour lire le fichier et exécuter les commandes qu’il contient. Cette section traite des points suivants : • Commandes intégrées (shell Bourne), page 12-95 • Expressions et opérateurs (shell C), page 12-106 • Substitution de commandes (shell C), page 12-107 • Exécution des commandes shell C non intégrées, page 12-108 Commandes intégrées (shell C) Les commandes intégrées sont exécutées à l’intérieur du shell. Si une commande de ce type constitue un élément d’un pipeline (excepté le dernier), elle est exécutée dans un sous-shell. Remarque : Si vous entrez une commande à l’invite du shell C, le système recherche d’abord une commande intégrée. S’il n’en trouve pas, il explore les répertoires spécifiés par la variable shell path, à la recherche d’une commande système. Notez que certaines commandes shell C intégrées portent le même nom que des commandes système : ces commandes n’ont toutefois pas nécessairement la même fonction. Pour plus d’informations sur le fonctionnement de la commande, reportez–vous à la description de la commande concernée. Si vous lancez, à partir du shell, une procédure dont les premiers caractères sont #!/ ShellPathname, le shell C lance le shell spécifié dans le commentaire pour exécuter la procédure. Sinon, il exécute le shell par défaut (le shell lié à /usr/bin/sh). Dans ce cas, les commandes intégrées du shell C ne sont pas reconnues. Pour exécuter les commandes du shell C, commencez la procédure par la ligne #!/usr/bin/csh. Reportez–vous à la Liste des commandes intégrées (shell C), page 12-124 pour connaître la liste des commandes intégrées classées par ordre alphabétique. Shells 12-95 Description des commandes Voici la liste des commandes intégrées du shell C : 12-96 alias [ Nom [ ListeMots ]] Affiche la liste de tous les alias si aucun paramètre n’est spécifié. Sinon, affiche l’alias du nom indiqué. Si ListeMots est une liste de mots, elle est affectée comme alias de la variable Nom. Ce nom ne peut être alias ou unalias. bg [ % Travail...] Place le Travail spécifié ou le travail courant en arrière-plan, et poursuit, le cas échéant, son exécution. break Reprend l’exécution après la fin de la commande foreach ou while la plus proche. breaksw Effectue une interruption (break) à partir d’une commande switch. Reprend après la commande endsw . case Label: Définit un Label dans une commande switch. cd [ Nom ] Equivalent à la commande chdir (voir description ci–dessous). chdir [ Nom ] Passe du répertoire courant à celui spécifié par la variable Nom. Si vous ne spécifiez pas Nom, la commande entraîne le passage au répertoire principal. Si Nom n’est pas un sous-répertoire du répertoire courant et ne commence pas par /, ./ ou ../, le shell vérifie chaque élément de la variable cdpath pour déterminer s’il contient un sous-répertoire correspondant à Nom. Dans la négative, si Nom est une variable shell commençant par un /, le shell tente cette action pour déterminer s’il s’agit d’un répertoire. Les commandes chdir et cd sont équivalentes. continue Reprend l’exécution à l’instruction end de la commande foreach ou while la plus proche. default: Libelle le cas default d’une instruction switch. Le cas default doit suivre tous les autres labels case. dirs Affiche la pile de répertoires. echo Ecrit les chaînes de caractères sur la sortie standard du shell. else Exécute les commandes qui suivent le deuxième else dans une séquence de commandes if ( Expression ) then... else if ( Expression2 ) then... else... endif. AIX Guide de l’utilisateur – Système d’exploitation et unités end Donne successivement à Nom la valeur de chaque élément de la Liste et exécute la séquence de commandes entre les instructions foreach et end correspondantes. Les instructions foreach et end doivent se trouver seules sur des lignes distinctes. L’instruction continue permet de reprendre la boucle, break de l’interrompre. Lorsque la commande foreach est lue à partir du terminal, un ? s’affiche pour vous inviter à entrer les commandes. Les commandes à l’intérieur des boucles, entrées à l’invite ?, ne sont pas placées dans la liste d’historique. endif Si Expression est vraie, exécute les commandes qui suivent le premier then. Si else if Expression2 est vraie, exécute les commandes qui suivent le deuxième then. Si else if Expression2 est fausse, exécute les Commandes qui suivent le else. Vous pouvez spécifier autant de paires else–if que vous le souhaitez. Une seule instruction endif est requise. Le segment else est facultatif. Les mots else et endif doivent se trouver en tête de ligne. Le segment if doit se trouver seul sur une ligne ou suivre une commande else. endsw Compare les labels case avec les valeurs de Chaîne. Chaîne est d’abord développée (commandes et noms de fichiers). Utilisez les caractères joker *, ?, et [ . . . ] dans les labels case, dont les variables sont développées. Si aucun des labels ne correspond, l’exécution démarre après le label default. Les labels case et default doivent apparaître en début de ligne. La commande breaksw entraîne la poursuite de l’exécution après la commande endsw . Sinon, le contrôle peut passer aux labels case et default, comme dans le langage C. Si aucun label ne comprend et qu’il n’existe pas de default, l’exécution se poursuit après la commande endsw. eval Paramètre . . . Lit la valeur de la variable Paramètre comme entrée du shell et exécute la commande résultante dans le contexte shell courant. Cette commande permet d’exécuter des commandes générées par le résultat de substitution de commandes ou de variables, dans la mesure où l’analyse intervient avant ces substitutions. exec Commande Exécute la Commande spécifiée, à la place du shell courant. exit [ ( Expression ) Quitte le shell avec la valeur de la variable shell status (si aucune Expression n’est spécifiée) ou avec la valeur Expression spécifiée. Shells 12-97 12-98 fg [% Travail...] Amène au premier plan le travail courant ou le travail spécifié et, le cas échéant, poursuit son exécution. foreach Nom (Liste) Commande. . . Définit tour à tour une variable Nom pour chaque membre spécifié par la variable Liste et une séquence de commandes, jusqu’à atteindre une commande end. glob Liste Affiche une liste avec développement de l’historique, des variables et des noms de fichiers. Les mots sont séparés par un caractère nul et aucun retour chariot n’est inséré à la fin. goto Mot Poursuit l’exécution après la ligne spécifiée par Mot. Mot est développé (nom de fichier et commande) pour devenir une chaîne de la forme définie par la variable Label . Le shell repasse sur l’entrée autant que possible à la recherche d’une ligne de la forme Label:, éventuellement précédée d’espaces ou de tabulations. hashstat Affiche des statistiques indiquant le pourcentage de recherches abouties de commandes, par la table de hachage. history [ –r | –h ] [ n ] Affiche les listes des événements de l’historique. Cet affichage s’effectue par ordre chronologique. Si n est spécifié, seuls les n événements les plus récents sont affichés. L’indicateur –r inverse l’ordre d’affichage (événement le plus récent le premier). L’indicateur –h affiche la liste sans chiffres en tête. Servez–vous en pour générer des fichiers exploitables avec l’indicateur –h de la commande source. if (Expression) Commande Exécute la Commande spécifiée (arguments compris) si Expression est vraie. Les substitutions sur la variable Commande ont lieu plus tôt, en même temps que pour le reste de l’instruction if. La commande spécifiée doit être une commande simple (et non un pipeline, une liste de commandes ou une liste de commandes entre parenthèses). Remarque : Les réacheminements d’entrée/sortie interviennent même si Expression est fausse et que Commande n’est pas exécutée. AIX Guide de l’utilisateur – Système d’exploitation et unités jobs [ –l ] Liste les travaux actifs. Avec –l (l minuscule), indique, outre les numéros et les ID de travaux, les ID processus. kill –l | [[– Signal ] % Travail...| PID...] Envoie le signal TERM (terminate), ou celui spécifié par Signal au Travail ou au PID (process) spécifié. Ces signaux peuvent être un nom ou un nombre, définis dans le fichier /usr/include/sys/signal.h (amputés de leur préfixe SIG). L’indicateur –l (L minuscule) liste les noms de signaux. Shells 12-99 limit [ –h ] [ Ressource [ Usage–max ]] Limite l’usage de la ressource par le process courant et les process qu’il crée. Ces limites sont définies dans le fichier /etc/security/limits. Les ressources contrôlables sont : le temps d’utilisation CPU, la taille des fichiers, la taille des données, la taille du vidage de la mémoire centrale et l’utilisation de la mémoire. Les valeurs maximales pour l’affectation de ces ressources sont définies via la commande mkuser, au moment de l’ajout de l’utilisateur au système. Elles peuvent être modifiées à l’aide de la commande chuser. Les limites sont d’ordre logiciel ou matériel. Les utilisateurs peuvent définir des limites logicielles, jusqu’aux plafonds imposés par le matériel. Cependant, seul un utilisateur root est habilité à modifier les limites matérielles. L’indicateur –h affiche les limites matérielles. Si Usage–Max n’est pas spécifié, la commande limit affiche la limite courante de la ressource spécifiée. Si Ressource n’est pas spécifiée, elle affiche les limites courantes de toutes les ressources. Pour en savoir plus sur les ressources contrôlées par la commande limit, reportez-vous aux sous-routines getrlimit, setrlimit et vlimit dans le manuel AIX Technical Reference, Volume 1: Base Operating System and Extensions: Base Operating System and Extensions Volume 1. Le paramètre Usage–Max relatif au temps d’utilisation CPU est au format hh:mm:ss. Pour les autres ressources, il est spécifié par un nombre en virgule flottante ou par un entier éventuellement suivi d’une unité de mesure. Cette unité de mesure peut être : k ou kilo-octets (1 024 octets), m ou mega-octets, ou b ou blocs (unités utilisées par la sous-routine ulimit comme expliqué dans le manuel AIX 5L Version 5.2 Technical Reference: Base Operating System and Extensions Volume 2). Si vous ne spécifiez pas d’unité de mesure, k est utilisé pour toutes les ressources. Pour les noms de ressources et les unités de mesure, des préfixes non ambigus suffisent. Remarque : Cette commande ne limite la mémoire physique disponible pour un process que si d’autres process actifs ont besoin de mémoire système. connexion 12-100 Met fin à un shell de connexion et le remplace par une occurrence de la commande /usr/bin/login. C’est un moyen de se déconnecter (cette commande a été incluse pour des raisons de compatibilité avec les commandes ksh et bsh). AIX Guide de l’utilisateur – Système d’exploitation et unités logout Termine un shell de connexion. Particulièrement utile si l’option ignoreeof est active. nice [ + n ] [ Commande ] Si n n’est pas spécifié, définit à 24 la priorité d’exécution des commandes dans le shell. Si +n est spécifié, définit la priorité au nombre spécifié. Si l’indicateur +n et la Commande sont spécifiés, exécute la Commande à 24 plus le nombre spécifié. Si vous êtes utilisateur root, vous pouvez exécuter l’instruction nice avec un nombre négatif. Commande est toujours exécutée dans un sous–shell, et les restrictions applicables aux commandes d’une instruction if simple valent pour cette commande. nohup [ Commande ] Si Commande n’est pas spécifiée, les arrêts (hangups) sont ignorés pour toute la suite du script. Si Commande est spécifiée, ils ne sont ignorés que pour cette Commande. Pour exécuter un pipeline ou une liste de commandes, placez–le (–la) dans un script shell, accordez à celui–ci des droits d’exécution et définissez le shell comme valeur de Commande. Tous les process exécutés en arrière–plan avec & sont protégés : ils ne recevront pas de signal hangup lorsque vous vous déconnecterez. Ils restent néanmoins susceptibles de recevoir des signaux hangup explicites, sauf si vous utilisez l’instruction nohup. notify [ % Travail...] Indique au shell de vous prévenir (de façon asynchrone) lorsque l’état du travail courant ou du travail spécifié change. Normalement, le shell émet un avertissement juste avant d’afficher l’invite. Cette fonction est automatiquement activée si la variable shell notify est spécifiée. onintr [ – | Label ] Contrôle l’action du shell au niveau des interruptions. En l’absence d’argument, restaure l’action par défaut (arrêt du script ou retour au niveau entrée des commandes). Avec l’indicateur –, ignore toutes les interruptions. Si Label est spécifié, le shell exécute l’instruction goto Label à réception d’une interruption ou lorsqu’un process enfant se termine suite à une interruption. Dans tous les cas, si le shell est exécuté séparément et que les interruptions sont ignorées, l’instruction onintr n’a pas de sens : les interruptions sont toujours ignorées du shell et de toutes les commandes appelées. popd [ + n ] Détruit la pile de répertoires et revient au nouveau premier répertoire. Si vous spécifiez +n, la commande rejette la nième entrée de la pile. Les éléments de la pile sont numérotés de haut en bas, à partir de 0. Shells 12-101 12-102 pushd [ + n | Nom ] Sans arguments, intervertit les deux premiers éléments de la pile des répertoires. Avec la variable Nom, passe au nouveau répertoire en décalant l’ancien répertoire courant (indiqué dans la variable shell cwd) dans la pile. Avec la variable +n, place le nième élément de la pile en tête, et en fait le répertoire courant. Les éléments de la pile sont numérotés de haut en bas, à partir de 0. rehash Recalcule la table d’adressage du contenu des répertoires dans la variable shell path. Cette action est requise si de nouvelles commandes sont ajoutées aux répertoires dans la variable path pendant que vous êtes connecté. La commande rehash n’est obligatoire que si des commandes sont ajoutées dans un répertoire utilisateur ou si un changement intervient au niveau du contenu d’un répertoire système. repeat Compte Commande Exécute la Commande spécifiée, soumise aux mêmes restrictions que l’instruction if, autant de fois que spécifié par Compte. Remarque : Les réacheminements d’E–S interviennent une et une seule fois, même si Compte vaut 0. set [[ Nom [n]] [ = Mot ]] | [ Nom = (Liste)] Sans argument, affiche la valeur de toutes les variables shell. Les variables don’t la valeur contient plus d’un mot s’affichent sous la forme d’une liste de mots entre parenthèses. Si Nom seul est spécifié, affecte à Nom la chaîne nulle. Sinon, affecte à Nom la valeur de Mot ou de la liste de mots spécifiés dans Liste. Si n est précisé, affecte au nième élément de Nom (s’il existe) la valeur de Mot. Dans tous les cas, la valeur est développée (nom de fichier et commande). Les arguments peuvent être répétés pour affecter plusieurs valeurs via une seule commande set. Le développement de variables intervient pour tous les arguments, avant toute affectation. setenv Nom Valeur Affecte à la variable d’environnement spécifiée par Nom la valeur Valeur (chaîne unique). Les variables d’environnement les plus courantes (USER, TERM, HOME et PATH) sont automatiquement importées et exportées à partir des variables shell C user, term, home et path. Il est inutile d’exécuter l’instruction setenv pour ces variables. shift [ Variable ] Décale vers la gauche les éléments de la variable shell argv ou de la Variable spécifiée. Une erreur se produit si la variable shell argv n’est pas définie ou que la variable spécifiée contient moins d’un mot. AIX Guide de l’utilisateur – Système d’exploitation et unités source [ –h ] Nom Lit les commandes spécifiées par la variable Nom. Vous pouvez imbriquer des commandes source. Cependant, si les imbrications sont trop poussées, vous risquez de déborder des descripteurs de fichiers. Une erreur dans une commande source met fin à toutes les autres commandes source imbriquées. Normalement, les entrées effectuées au cours de l’exécution de source ne sont pas enregistrées dans la liste d’historique. L’indicateur –h place la commande dans l’historique sans l’exécuter. stop [ % Travail...] Arrête le travail courant ou le Travail spécifié, exécuté en arrière-plan. suspend Met fin au shell (équivaut à un signal STOP). switch (chaîne) Démarre la séquence de commandes switch ( Chaîne ) case Chaîne:... breaksw default:... breaksw endsw. Cette séquence de commande compare successivement chaque étiquette à la valeur de la variable Chaîne. Cette séquence compare successivement chaque label ”case” à la valeur de la variable Chaîne. Shells 12-103 time [ Commande ] Contrôle le minutage automatique des commandes. Si Commande n’est pas spécifiée, affiche un récapitulatif du temps consommé par le shell et ses enfants. Si Commande est spécifiée, la commande est minutée. Le shell affiche ensuite un récapitulatif, comme décrit pour la variable shell time, page 12-120. Si nécessaire, un shell supplémentaire est créé, pour afficher les statistiques à la fin de la commande. Les exemples suivants utilisent time avec la commande sleep: time sleep La sortie de cette commande est similaire à celle–ci : 0.0u 0.0s 0:00 100% 44+4k 0+0io 0pf+0w Les zones de sortie sont : Zone Description Première Nombre de secondes du temps de l’UC consacrées au process utilisateur Deuxième Nombre de secondes de temps de l’UC utilisées par le noyau pour le compte du process utilisateur Troisième Temps écoulé (pendule murale) pour la commande Quatrième Temps de l’UC utilisateur total plus temps système, comme pourcentage du temps écoulé Cinquième Somme de la moyenne de la taille de mémoire partagée et de la moyenne de la taille de mémoire non partagée (en kilo-octets). Sixième Nombre d’opérations d’entrée/sortie de blocs. Septième Somme des erreurs de pagination et du nombre de permutations (swaps). 12-104 AIX Guide de l’utilisateur – Système d’exploitation et unités umask [ Valeur ] Détermine les droits d’accès au fichier. Cette Valeur, associée aux droits du process créateur, détermine les droits sur un fichier au moment de sa création. La valeur par défaut est 022. A défaut de Valeur spécifiée, la valeur en cours est affichée. unalias *| Trame Désactive les alias dont le nom correspond à la Trame. La commande unalias * supprime tous les alias. L’absence d’alias ne provoque pas d’erreur. unhash Désactive l’usage de la table de hachage pour la localisation des programmes en cours. unlimit [ –h ][ Ressource ] Supprime la limitation imposée à la variable Ressource. Si Ressource n’est pas spécifiée, toutes les limitations sont supprimées. Reportez–vous à la description de la commande limit pour avoir la liste des noms Ressource. L’indicateur –h supprime les limites matérielles correspondantes. Seul un utilisateur root est habilité à effectuer cette opération. unset *| Trame Supprime toutes les variables dont le nom correspond à la Trame. Utilisez unset * pour supprimer toutes les variables. L’absence de variables ne provoque pas d’erreur. unsetenv Trame Supprime de l’environnement toutes les variables dont le nom correspond à la Trame. (Reportez–vous à la commande intégrée setenv.) wait Attend tous les travaux en arrière–plan. Si le shell est interactif, un INTERRUPT (Ctrl–C généralement) met fin à l’attente. Le shell affiche ensuite les noms et numéros des travaux en suspens. Shells 12-105 while (Expression) Commande. . . end Evalue les commandes entre les instructions while et end correspondantes, tant que la variable Expression est différente de zéro. L’instruction break permet d’interrompre la boucle, continue de la poursuivre. Les instructions while et end doivent se trouver chacune sur une ligne distincte. Si l’entrée provient d’un terminal, des invites s’affichent après while (Expression), comme pour l’instruction foreach. @ [ Nom [ n ] = Expression ] Sans argument, affiche le valeurs de toutes les variables shell. Sinon, affecte Nom à la variable Expression . Si l’expression contient un des caractères <, >, & ou |, cette partie de l’expression doit être placée entre parenthèses. Si n est précisé, affecte au nième élément de Nom la valeur de Expression. La variable Nom et son nième élément doivent exister. Les opérateurs du langage C, tels que *= et +=, sont disponibles. L’espace séparant la variable Nom de l’opérateur d’affectation est facultatif. Les espaces séparant les éléments de Expression sont en revanche obligatoires (faute de quoi, il seraient interprétés comme un seul mot). Les suffixes spéciaux, ++ et –– augmentent et diminuent, respectivement, la valeur de la variable Nom. Expressions et opérateurs du shell C La commande intégrée @ et les instructions exit, if, et while comportent des opérateurs semblables à ceux du langage C, avec les mêmes règles de précédence. Voici les opérateurs disponibles : Opérateur Signification () change la précédence ~ complément ! négation */ % multiplie, divise, modulo + – ajoute, soustrait << > > décale à gauche, décale à droite <= >= < > opérateurs relationnels == != =~ !~ comparaison de chaîne/correspondance de trames & opérateur au niveau bit AND ^ opérateur au niveau bit OR exclus | opérateur au niveau bit OR inclus && AND logique || OR logique Les opérateurs sont classés par ordre de précédence décroissante (de haut en bas, et de gauche à droite). 12-106 AIX Guide de l’utilisateur – Système d’exploitation et unités Remarque : Les opérateurs + et – sont associatifs, en partant de la droite. Ainsi, a + b – c est évalué : a + (b – c) et non comme suit : (a + b) – c Les opérateurs ==, !=, =~, et !~ comparent des arguments chaîne. Tous les autres opèrent sur des nombres. Les opérateurs =~ et !~ sont semblables à == et !=, excepté que l’expression de droite est une trame à laquelle est comparé l’opérande de gauche. Cela réduit la nécessité d’utiliser l’instruction switch dans les procédures shell. Les opérateurs logiques ou (||) et et (&&) sont également disponibles. Ils permettent de vérifier un intervalle de nombres, comme dans l’exemple suivant : if ($#argv > 2 && $#argv < 7) then Ici, le nombre d’arguments doit être supérieur à 2 et inférieur à 7. Les chaînes commençant par zéro (0) sont interprétées comme des nombres octaux. Les arguments nuls ou manquants sont interprétés comme 0. Toutes les expressions ont pour résultat des chaînes représentant des nombres décimaux. Notez que les deux éléments d’une expression peuvent se trouver dans un même mot. Excepté lorsqu’ils se trouvent à côté d’éléments syntaxiquement significatifs pour l’analyseur (& | < > ( )), les éléments d’expression doivent être encadrés d’espaces. On peut trouver dans des expressions, à titre d’opérandes, des exécutions de commandes entre ( ) et des interrogations de fichier de la forme (–opérateur Nomfichier), où opérateur est l’un des caractères suivants : r accès en lecture w accès en écriture x accès en exécution e existence o propriété z taille zéro f fichier ordinaire d répertoire Nomfichier est développé (commande et nom de fichier), puis testé pour vérifier s’il a la relation spécifiée à l’utilisateur réel. Si le nom de fichier n’existe pas ou est inaccessible, toutes les requêtes retournent la valeur faux (0). Si la commande aboutit, l’interrogation retourne la valeur vrai (1). Sinon, elle renvoie la valeur faux (0). Si vous souhaitez davantage de précisions sur l’état, lancez la commande en dehors d’une expression et examinez la variable shell status. Substitution de commandes (shell C) Lors d’une substitution de commandes, le shell exécute une commande et remplace cette commande par son résultat. Pour exécuter des substitutions de commandes dans le shell C, encadrez la commande ou la chaîne de commandes par des apostrophes inverses ( ‘ ‘ ). Le shell décompose normalement le résultat de la commande en mots séparés au niveau des espaces, des tabulations et des caractères nouvelle ligne. Puis il remplace la commande d’origine par cette sortie. Shells 12-107 Dans l’exemple suivant, les apostrophes inverses ( ‘ ‘ ) encadrant la commande date indiquent que le résultat de la commande sera remplacé : echo The current date and time is: ‘date‘ Le résultat de cette commande est du type : The current date and time is: Wed Apr 8 13:52:14 CDT 1992 Le shell C exécute sélectivement les substitutions de commandes sur les arguments des commandes intégrées. Ce qui signifie qu’il ne développe pas les parties des expressions qui ne sont pas évaluées. Dans le cas de commandes non intégrées, le shell effectue la substitution du nom de la commande en dehors de la liste d’arguments. La substitution a lieu dans un shell enfant du shell principal, après réacheminement des entrées/sorties. Si une chaîne de commandes est encadrée de ” ”, le shell interprète comme séparateurs de mots les seuls caractères nouvelle ligne, préservant les espaces et les tabulations à l’intérieur du mot. Dans tous les cas, l’unique caractère nouvelle ligne final ne génère pas de nouveau mot. Exécution des commandes Shell C non intégrées Lorsque le shell C détermine qu’une commande n’est pas une commande intégrée, il tente de l’exécuter via le sous–programme execv. Chaque mot de la variable shell path correspond à un répertoire à partir duquel le shell tente de lancer la commande. En l’absence des options –c et –t, le shell ventile les noms de ces répertoires dans une table interne. Le shell ne tente l’exécution de exec dans un répertoire que s’il y a une chance que la commande s’y trouve. Si vous désactivez ce mécanisme au moyen de la commande unhash ou que vous associez au shell l’option –c ou –t, le shell est concaténé avec le nom de la commande considérée pour former le chemin d’accès à un fichier. Le shell effectue la même opération pour chaque élément de répertoire de la variable path ne commençant pas par /. Il tente ensuite d’exécuter la commande. Les commandes entre parenthèses sont toujours exécutées dans un sous–shell. Par exemple : (cd ; pwd) ; pwd affiche le répertoire personnel sans modifier l’emplacement du répertoire courant. En revanche, la commande : cd ; pwd définit le répertoire personnel comme répertoire courant. Les commandes entre parenthèses sont le plus souvent utilisées pour empêcher la commande chdir d’agir sur le shell courant. Si le fichier est accessible en exécution, sans être un fichier exécutable binaire, le shell suppose qu’il s’agit d’un fichier de commandes shell et lance un nouveau shell pour le lire. S’il existe un alias du shell, les mots de l’alias sont insérés en préfixe de la liste d’arguments, pour former la commande shell. Le premier mot de l’alias doit être le chemin d’accès complet au shell. 12-108 AIX Guide de l’utilisateur – Système d’exploitation et unités Substitution d’historique (shell C) La substitution d’historique permet de modifier des mots d’une commande précédente pour en créer de nouvelles. Cette fonction simplifie la reprise de commandes et d’arguments d’une commande précédente pour les intégrer à la commande courante, et permet également de corriger aisément les fautes de frappe dans une commande. Les substitutions d’historique commencent par un point d’exclamation (!) et peuvent se trouver n’importe où sur la ligne de commande, sachant qu’elles ne peuvent être imbriquées (c’est–à–dire qu’une substitution d’historique ne peut en contenir une autre). Vous pouvez faire précéder le point d’exclamation (!) d’une barre oblique inversée (\) pour annuler la signification spéciale du point d’exclamation. En outre, si vous placez le point d’exclamation avant un espace, une tabulation, un caractère nouvelle ligne, un signe égal (=) ou une parenthèse ouvrante ((), la substitution n’a pas lieu. Une substitution d’historique peut également être générée par un ^ (caret) en début de ligne. Le shell envoie toute ligne contenant des substitutions d’historique à la station de travail avant d’exécuter la ligne. Cette section traite des points suivants : • Liste d’historique, page 12-109 • Spécification d’événement, page 12-110 • Guillemets et apostrophes, page 12-111 Liste d’historique La liste d’historique sauvegarde les commandes lues par le shell, constituées de un ou de plusieurs mots. La substitution d’historique réintroduit des séquences de mots issues de ces commandes sauvegardées, dans le flux des entrées. La variable shell history contrôle la taille de la liste historique. Vous devez définir cette variable soit dans le fichier .cshrc, soit sur la ligne de commande avec la commande intégrée set. La commande précédente est retenue quelle que soit la valeur de la variable history. Les commandes de l’historique sont numérotées à partir de 1. La commande intégrée history génère une sortie du type : 9 write michael 10 ed write.c 11 cat oldwrite.c 12 diff *write.c Le shell affiche les chaînes de commandes avec leur numéro d’événement. Le numéro d’événement apparaît à gauche de la commande : il permet de savoir quand la commande a été entrée par rapport aux autres commandes dans l’historique. Il est généralement inutile de se servir des numéros pour faire référence aux événements, mais vous pouvez intégrer le numéro de l’événement en cours à l’invite système en plaçant un point d’exclamation (!) dans la chaîne d’invite affectée à la variable d’environnement PROMPT. Une référence historique complète contient une spécification d’événement, un descripteur de mot, et un ou plusieurs modificateurs, selon le format général suivant : Evénement[.]Mot:Modificateur[:Modificateur] . . . Remarque : Seul un mot peut être modifié. Les chaînes contenant des espaces ne sont pas admises. Shells 12-109 Dans l’exemple de sortie précédent, l’événement courant porte le numéro 13. En conservant cet exemple, voici des références à des événements précédents : !10 Evénement numéro 10. !–2 Evénement numéro 11 (événement courant moins 2). !d Mot commençant par d (événement numéro 12). !?mic? Mot contenant la chaîne mic (événement numéro 9). Ces formats, sans autre modification, réintroduisent simplement les mots des événements spécifiés, séparés par de simples espaces. Cas particuliers : (double point d’exclamation) fait référence à la commande précédente. La commande !! seule sur une ligne d’entrée relance la commande précédente. Spécification d’événement Pour sélectionner des mots d’un événement, faites suivre sa spécification d’un : (deux points) et de l’un des descripteurs de mots suivants (les mots d’une ligne d’entrée sont numérotés à partir de 0) : 0 Premier mot (nom de la commande). n nième argument. ^ Premier argument. $ Dernier argument. % Mot correspondant à une chaîne ?Chaîne? le précédant immédiatement. x–y Intervalle de mots entre le xième et le yième mot. –y Intervalle de mots entre le premier (0) et le yième mot. * Premier mot du dernier argument, ou rien s’il y a un seul mot (le nom de la commande) dans l’événement. x* xième et le dernier argument. x– Equivalent à x *, avec omission du dernier argument. Vous pouvez omettre les deux points entre la spécification d’événement et le descripteur de mot si celui–ci commence par ^ (caret), $ (dollar), * (astérisque), – (tiret) ou % (pourcentage). Vous pouvez également placer une séquence de modificateurs parmi les suivants après le descripteur facultatif du mot, en les faisant précéder de deux points : h Supprime l’extension finale d’un chemin d’accès, en conservant le début. r Supprime un élément final .xxx, en conservant le nom racine. e Supprime tout sauf le suffixe .xxx. s/ AncienMot / NouveauMot / Affecte à AncienMot la valeur de NouveauMot. La partie gauche d’une substitution ne constitue pas une trame, au sens d’une chaîne reconnue par un éditeur. Il s’agit en fait d’un mot, isolé, sans espace. Normalement, une barre oblique (/) délimite le mot d’origine (AncienMot) et le mot de remplacement (NouveauMot). Toutefois, vous pouvez utiliser un caractère quelconque comme délimiteur. Dans l’exemple suivant, le signe % (pourcentage) permet d’inclure une barre oblique (/) dans les mots : s%/home/monfichier%/home/votrefichier% Le shell remplace une & (perluète) par le texte AncienMot dans la variable NouveauMot. Dans l’exemple suivant, /home/monfichier devient /temp/home/monfichier. 12-110 AIX Guide de l’utilisateur – Système d’exploitation et unités s%/home/monfichier%/temp&% Le shell remplace un mot nul dans une substitution soit par la dernière substitution, soit par la dernière chaîne utilisée dans la chaîne de balayage contextuelle Chaîne !? . Vous pouvez omettre le dernier délimiteur (/) si un caractère nouvelle ligne suit immédiatement. Pour délimiter une liste d’historique, vous disposez des modificateurs suivants : t Supprime tous les chemins d’accès en tête, en conservant la fin. & Répète la substitution précédente. g Applique la modification globalement. p Affiche la nouvelle commande, sans l’exécuter. q Déclare les mots remplacés, prévenant ainsi toute substitution ultérieure. x Equivalent du modificateur q, mais décompose les mots au niveau des espaces, des tabulations et des caractères nouvelle ligne. Lorsque vous utilisez les modificateurs précédents, la modification ne s’applique qu’au premier mot modifiable à moins que le modificateur g ne précède le modificateur sélectionné. Si vous indiquez une référence historique sans spécification d’événement (par exemple, !$), le shell utilise comme événement la commande précédente. Si une référence historique antérieure intervient sur la même ligne, le shell répète la référence précédente. Ainsi, la séquence suivante génère les premier et dernier arguments de la commande correspondant à ?foo?. !?foo?^ !$ Une abréviation spéciale remplace une référence historique lorsque le premier caractère non blanc d’une ligne d’entrée est un ^ (caret). Ce format équivaut à !:s^, et fournit ainsi un raccourci commode pour les substitutions sur le texte de la ligne précédente. La commande ^ lb^ lib corrige l’orthographe de lib dans la commande précédente. Si nécessaire, vous pouvez encadrer une substitution d’historique par { } (accolades) pour l’isoler des caractères qui la suivent. Par exemple, si vous souhaitez utiliser une référence à la commande : ls –ld ~paul pour exécuter la commande : ls –ld ~paula utilisez la construction : !{l}a Dans cet exemple, !{l}a recherche une commande commençant par l et lui ajoute un a final. Guillemets et apostrophes Pour éviter trop d’interprétations pour toutes ou certaines des substitutions, mettez les chaînes entre guillemets et apostrophes. De simples apostrophes (’ ’) empêchent que la chaîne soit interprétée, tandis que des guillemets (” ”) permettent des développements ultérieurs. Dans les deux cas, le texte résultant devient (en totalité ou en partie) un mot simple. Shells 12-111 Substitution d’alias (shell C) Un alias est un nom attribué à une commande ou à une chaîne de commande. Le shell C permet d’attribuer des alias et de les utiliser comme des commandes. Le shell maintient une liste des alias définis. Lorsque le shell a examiné la ligne de commande, il la décompose en commandes distinctes et recherche le premier mot de chaque commande, de gauche à droite, pour déterminer s’il s’agit d’un alias. Dans l’affirmative, le shell remplace, au moyen du mécanisme d’historique, le texte de l’alias par celui de la commande qu’il référence. Les mots résultants remplacent la commande et la liste d’arguments. En l’absence de référence à la liste d’historique, la liste d’arguments reste inchangée. Pour en savoir plus sur le mécanisme d’historique du shell C, reportez–vous à Substitution d’historique (shell C), page 12-109. Les commandes intégrées alias et unalias établissent, affichent et modifient la liste des alias. Voici le format de la commande alias : alias [Nom [ListeMots]] La variable Nom (facultative) spécifie l’alias du nom indiqué. Si vous spécifiez une liste de mots avec la variable ListeMots, la commande l’affecte comme alias de la variable Nom. Si vous lancez la commande alias sans variable, elle affiche tous les alias du shell C. Si l’alias de la commande ls est ls –l, la commande : ls /usr est remplacée par : ls –l /usr La liste d’arguments reste inchangée car il n’y a pas de référence à la liste d’historique dans la commande avec alias. De même, si l’alias de la commande lookup est : grep \!^ /etc/passwd le shell remplace lookup bill par : grep bill /etc/passwd Dans cet exemple, !^ fait référence à la liste d’historique et le shell la remplace par le premier argument de la ligne d’entrée, bill. Vous pouvez utiliser des caractères joker dans un alias. La commande&nbsp;: alias lprint ’pr &bslash2.!* > > print’ crée une commande qui formate ses arguments pour une imprimante ligne. Le caractère ! est protégé du shell dans l’alias, de sorte qu’il n’est pas développé tant que la commande pr n’est pas exécutée. Si le shell détecte un alias, il effectue la transformation de mot dans le texte d’entrée et relance le processus alias sur la nouvelle ligne. Si le premier mot du texte suivant est le même que l’ancien, un indicateur de fin (du processus alias) empêche le bouclage. Les autres boucles ultérieures sont détectées et génèrent une erreur. 12-112 AIX Guide de l’utilisateur – Système d’exploitation et unités Substitution de variables et de noms de fichiers (shell C) Le shell C autorise la substitution de variables et de noms de fichiers. Cette section traite des points suivants : • Substitution de variables (shell C), page 12-113. • Substitution de noms de fichiers (shell C), page 12-115 • Développement de nom de fichier, page 12-115. • Abréviation de nom de fichier, page 12-116. • Classes de caractères, page 12-117. • Shell C, page 12-127 Substitution de variables (shell C) Le shell C maintient un ensemble de variables, chacune d’elles ayant pour valeur une liste de zéro ou plusieurs mots. Certaines sont définies ou référencées par le shell. Par exemple, la variable argv est une image de la liste de variables shell, et les mots comportant la valeur de cette variable sont référencés de façon particulière. Vous pouvez modifier et afficher la valeur des variables via les commandes set et unset. Certaines variables sont des ”bascules”, c’est-à-dire qu’elles activent ou désactivent une fonction : le shell ne fait aucun cas de leur valeur, seul importe le fait qu’elles soient ou non activées. Par exemple, la variable verbose provoque l’affichage (écho) des commandes entrées. La définition de cette variable est activée par l’indicateur –v sur la ligne de commande. D’autres opérations exécutent un traitement numérique des variables. La commande @ effectue des calculs, dont le résultat est affecté à une variable. Les valeurs des variables sont toutefois toujours représentées par des chaînes (zéro ou plusieurs). Pour les opérations numériques, la chaîne nulle est évaluée à zéro, et les mots suivants sont ignorés. Lorsque vous émettez une commande, le shell analyse la ligne d’entrée et exécute les substitutions d’alias. Ensuite, avant d’exécuter la commande, il exécute les substitutions de variables. Le caractère $ (dollar) code la substitution. Il est néanmoins transmis tel quel s’il est suivi d’un espace, d’une tabulation ou d’un caractère nouvelle ligne. Faire précéder le caractère $ d’une barre oblique inverse (\) empêche ce développement, sauf dans les deux cas suivants : • La commande est entre guillemets (” ”). Le shell exécute alors la substitution. • La commande est entre apostrophes (’’) : le shell n’exécute alors jamais la substitution. Les chaînes entre ’ ’ sont interprétées au niveau de la substitution de commande. (Reportez–vous à Substitution de commande (shell C), page 12-107. Le shell détecte les réacheminements d’entrées/sorties avant de développer les variables, et les développe séparément. Sinon, le nom de la commande et la liste complète d’arguments sont développés simultanément. Il est ainsi possible que le premier mot (commande) génère plusieurs mots, dont le premier devient le nom de la commande, les suivants étant des paramètres. Sauf s’il est entre guillemets (” ” ) ou associé au modificateur :q, le résultat d’une substitution de variable peut faire lui–même l’objet d’une substitution de commande et de nom de fichier. Une variable entre guillemets, composée de plusieurs mots, est développée sous la forme d’un seul mot (ou d’une portion de mot), les mots initiaux étant séparés par des espaces. Si vous spécifiez le modificateur :q, la variable est développée en plusieurs Shells 12-113 mots, entre guillemets, séparés par des espaces, pour empêcher toute substitution ultérieure (de commande ou de nom de fichier). Voici la syntaxe d’entrée des valeurs de variable dans le shell. Sauf indication contraire, référencer une variable non définie par la commande set génère une erreur. Les modificateurs :gh, :gt, :gr, :h, :r, :q et :x sont applicables aux substitutions suivantes. Si des accolades ({ }) apparaissent dans le format de la commande, les modificateurs doivent se trouver entre accolades. Il n’est autorisé qu’un seul modificateur : (deux points) pour chaque développement de variable. $ Nom ${ Nom} Remplacé par les mots affectés à la variable Nom, séparés par des espaces. Les accolades isolent la variable Nom des caractères suivants (qui lui seraient sinon intégrés). Les noms des variables shell commencent par une lettre et comportent au maximum 20 lettres et chiffres, ou caractères de soulignement (_). Si Nom ne spécifie pas une variable shell, mais est défini dans l’environnement, sa valeur est alors retournée. Les modificateurs précédés de deux points, de même que les autres formats ici décrits, ne sont pas disponibles dans ce cas. $ Nom [numéro] ${ Nom [ numéro ]} Ne sélectionne que quelques mots de la variable Nom. Le numéro, qui peut faire l’objet de substitution de variable, est soit un chiffre seul, soit deux chiffres séparés par un tiret (–). Le premier mot de la chaîne représentant la valeur de la variable est numéroté 1. Par défaut, le premier chiffre d’un intervalle vaut 1 et le dernier, $# Nom. Le symbole* (astérisque) sélectionne tous les mots. Si le second argument est omis ou qu’il se trouve dans un intervalle, un premier intervalle vide ne génère pas d’erreur. $# Nom ${# Nom} Indique le nombre de mots de la variable. Cette fonction peut être utilisée dans [numéro] comme indiqué ci–dessus. Par exemple, $Nom[$#Nom]. $0 Remplace le nom du fichier à partir duquel sont lues les entrées de commandes. Si ce nom est inconnu, une erreur est générée. $ nombre 12-114 ${ nombre } Equivalent à $argv[ nombre ]. $* Equivalent à $argv[*]. AIX Guide de l’utilisateur – Système d’exploitation et unités Les modificateurs : ne sont pas applicables aux substitutions suivantes : $? nom ${? nom} Remplace par la chaîne 1 si nom est définie, par 0 (zéro) sinon. $?0 Remplace par 1 si le nom du fichier d’entrée courant est reconnu, par 0 (zéro) sinon. $$ Remplace par le numéro (décimal) du process du shell parent. $< Remplace par une ligne de l’entrée standard, sans autre interprétation. Cette substitution permet de lire à partir du clavier dans une procédure shell. Substitution de nom de fichier (shell C) Le shell C offre plusieurs raccourcis permettant d’économiser temps et frappes de touches. Si un mot contient un des caractères* (astérisque), ? point d’interrogation), [ ] (crochets) ou (accolades), ou commence par ~ (tilde), ce mot fait l’objet de substitutions de noms de fichiers. Le shell C considère le mot comme un terme générique et le remplace selon une liste alphabétique de noms de fichiers. La séquence de classement courante est spécifiée par les variables d’environnement LC_COLLATE ou LANG. Dans une liste de mots spécifiant des substitutions de noms de fichiers, une erreur est générée si aucun terme générique ne correspond à un fichier existant. Il n’est toutefois pas nécessaire que tous les termes génériques aient un correspondant. Seuls les caractères * (astérisque), ? (point d’interrogation) et [ ] (crochets) indiquent des correspondances ou des développements de noms de fichiers. Les caractères ~ (tilde) et {} (accolades) indiquent des abréviations de noms de fichiers. Développement de nom de fichier Le caractère * (astérisque) remplace n’importe quelle chaîne de caractères, chaîne nulle comprise. Par exemple, dans un répertoire contenant les fichiers : a aa aax alice b bb c cc La commande echo a* affiche tous les fichiers commençant par a : a aa aax alice Remarque : Lors de la comparaison, les caractères . (point) et / (barre oblique) doivent également correspondre. Le caractère ? (point d’interrogation) remplace un seul caractère. La commande&nbsp;: ls a?x affiche la liste des fichiers commençant par a, suivis d’un seul caractère et terminés par x : aax Shells 12-115 Pour rechercher un caractère ou un ensemble de caractères, encadrez le(s) caractère(s) de crochets ([]). La commande : ls [abc] affiche la liste des fichiers correspondant exactement à l’un des caractères entre crochets : a b c Entre les crochets, un intervalle de caractères est indiqué par [a–z]. Les caractères correspondants sont définis par la séquence de classement courante. Abréviation de nom de fichier Les caractères ~ (tilde) et { (accolade ouvrante) indiquent une abréviation de nom de fichier. Un ~ en début de fichier représente les répertoires personnels. Isolé, le caractère ~ prend la valeur de votre répertoire personnel, défini par la variable home. Par exemple, la commande ls ~ affiche tous les fichiers et répertoires de votre répertoire $HOME. Lorsque cette commande est suivie d’un nom composé de lettres, de chiffres et de tirets (–), le shell recherche un utilisateur portant ce nom et remplace le répertoire $HOME de l’utilisateur. Remarque : Si le ~ est suivi d’un caractère autre qu’une lettre ou une barre oblique (/), ou qu’il apparaît ailleurs qu’au début d’un mot, il n’est pas développé. Pour faire correspondre des caractères dans des noms de fichiers sans taper l’intégralité du nom, encadrez les noms de fichiers d’accolades ({ }). Ainsi, a{b,c,d}e est un raccourci de abe ace ade. Le shell préserve l’ordre (de gauche à droite) et, à cet effet, enregistre séparément le résultat des correspondances à un niveau inférieur. Cette construction peut être imbriquée. Ainsi, la commande : ~source/s1/{oldls,ls}.c devient : /usr/source/s1/oldls.c /usr/source/s1/ls.c si le répertoire personnel source est /usr/source. De même, la commande : ../{memo,*box} peut devenir : ../memo ../box ../mbox 12-116 AIX Guide de l’utilisateur – Système d’exploitation et unités Remarque : memo n’est pas trié avec le résultat de la comparaison *box. Dans ce cas particulier, les accolades { (ouvrante), } (fermante) et } (par paire) sont passées sans changement. Classes de caractères Pour effectuer des comparaisons, vous pouvez également vous servir des classes de caractères. Avec le format suivant, le système établit une correspondance avec chacun des caractères appartenant à la classe spécifiée : [: charclass :] Les classes définies correspondent aux sous–routines ctype. Classe de caractères Définition alnum Caractères alphanumériques alpha Majuscules et minuscules cntrl Caractères de contrôle digit Chiffres graph Caractères graphiques lower Minuscules print Caractères imprimables punct Caractères de ponctuation space Espace, tabulation horizontale, retour chariot, nouvelle ligne, tabulation verticale ou page suivante upper Lettres majuscules xdigit Chiffres hexadécimaux Supposons que vous soyez dans un répertoire contenant les fichiers : a aa aax Alice b bb c cc A l’invite shell, tapez : ls [:lower:] Appuyez sur Entrée. Le shell C affiche la liste de tous les fichiers dont le nom commence par une minuscule: a aa aax b bb c cc Pour en savoir plus, reportez–vous à la commande ed. Shells 12-117 Variables d’environnement (shell C) Certaines variables ont une signification spéciale pour le shell. Par exemple, argv, cwd, home, path, prompt, shell et status sont toujours définies par le shell. Sauf pour cwd et status, cette action n’a lieu qu’au moment de l’initialisation. Ces variables conservent leur valeur tant que vous ne les modifiez pas explicitement. La commande csh copie les variables d’environnement USER, TERM, HOME et PATH dans les variables csh, user, term, home et path, respectivement. Les valeurs sont recopiées dans l’environnement à chaque réinitialisation des variables de shell normales. La variable path ne peut être définie que dans le fichier .cshrc car les sous–programmes csh importent la définition des chemins à partir de l’environnement et la réexportent si elle a été modifiée. Voici les variables spéciales du shell : 12-118 argv Arguments passés aux scripts shell. Les paramètres positionnels sont remplacés à partir de cette variable. cdpath Liste de répertoires, à explorer par la commande chdir ou cd lors de recherche de sous-répertoires. cwd Chemin d’accès complet au répertoire courant. echo Activé par l’indicateur –x sur la ligne de commande, affiche (écho) chaque commande et ses arguments avant qu’ils soient exécutés. Les commandes non intégrées sont développées avant d’être affichées. Les commandes intégrées le sont avant toute substitution de commande ou de nom de fichier, dans la mesure où ces substitutions sont ensuite effectuées de façon sélective. histchars Chaîne modifiant les caractères utilisés dans une substitution d’historique. Le premier caractère devient le caractère de substitution d’historique (remplaçant le caractère par défaut ! (point d’exclamation). Le second remplace le caractère ^ (caret) dans les substitutions rapides. Remarque : Affecter à histchars un caractère utilisé dans une commande ou dans un nom de fichier peut provoquer des substitutions d’historique non souhaitées. historique Valeur numérique contrôlant la taille de la liste d’historique. Toute commande référencée dans les nombres d’événements permis n’est pas prise en compte. Indiquer une valeur trop importante pour la variable history peut provoquer un dépassement mémoire. Qu’elle soit définie ou non, elle sauvegarde la dernière commande exécutée sur la liste d’historique. home Répertoire personnel, initialisé par l’environnement. Le développement de nom de fichier du caractère ~ (tilde) fait référence à cette variable. ignoreeof Spécifie au shell d’ignorer les caractères EOF (fin de fichier) issus des stations de travail. Ceci pour empêcher les shells d’être accidentellement tués à la lecture d’un caractère de fin de fichier (Ctrl–D). mail Fichiers à examiner par le shell pour le courrier. Ce que le shell effectue après chaque commande dont le résultat est une invite, à l’expiration du délai imparti. Le shell affiche le message Mail in file. si le fichier existe et que l’heure de son dernier accès est antérieure à l’heure de sa dernière modification. AIX Guide de l’utilisateur – Système d’exploitation et unités Si le premier mot de la variable mail est numérique, il indique un nouvel intervalle de vérification du courrier (en secondes – valeur par défaut 600, soit : 10 minutes). Si vous spécifiez plusieurs fichiers courrier, le shell affiche le message New mail in file, quand du courrier arrive dans le fichier concerné. noclobber Règlemente les réacheminements en sortie pour garantir qu’aucun fichier ne sera accidentellement détruit et que les réacheminements effectuent des ajouts aux fichiers antérieurs. noglob Désactive le développement de nom de fichier. Cette fonction est très utile pour les procédures ne traitant pas de noms de fichiers, ou lorsqu’une liste de noms de fichiers a été générée et qu’aucun autre développement n’est souhaitable. nonomatch Spécifie de ne pas générer d’erreur si le développement d’un nom de fichier ne correspond à aucun fichier existant, mais de renvoyer la trame initiale. Un format incorrect de la trame provoquera toujours une erreur. notify Spécifie au shell de vous avertir en mode asynchrone des modifications intervenues au niveau de l’état des travaux. Par défaut, ces modifications sont affichées juste avant l’affichage de l’invite shell. path Spécifie les répertoires à explorer à la recherche des commandes à exécuter. Un mot nul spécifie le répertoire courant. Si aucune variable path n’est définie, seuls les chemins d’accès complets sont pris en compte. Le chemin par défaut (extrait du fichier /etc/environment utilisé pour la connexion) est : /usr/bin /etc /usr/sbin /usr/ucb /usr/bin/X11 /sbin Un shell non associé à l’indicateur –c ni –t répartit normalement le contenu des répertoires dans la variable path, après lecture du fichier .cshrc et chaque fois que path est redéfini. Si des commandes sont ajoutées à ces répertoires pendant que le shell est actif, vous devez lancer la commande rehash. Sinon, il n’est pas possible de trouver les commandes. invite Chaîne affichée avant chaque lecture de commande à partir d’une station de travail interactive. Si un ! (point d’exclamation) apparaît dans la chaîne, il est remplacé par le numéro de l’événement courant. Si le caractère ! se trouve dans une chaîne entre guillemets ou entre apostrophes, il doit être précédé d’une barre oblique inversée (\). L’invite par défaut est %, pour les utilisateurs non racine. L’invite par défaut est #, pour les utilisateurs non root. savehist Valeur numérique contrôlant le nombre d’entrées de la liste d’historique, sauvegardées dans le fichier ~/.history lorsque vous vous déconnectez. Toute commande référencée dans ce nombre d’événements est sauvegardée. Au cours du lancement, le shell lit ~/.history dans la liste d’historique, assurant la sauvegarde de l’historique à travers les multiples connexions. Donner à la variable savehist une valeur trop importante ralentit le lancement du shell. shell Indique le fichier dans lequel se trouve le shell C. Cela permet aux shells parallèles d’interpréter les fichiers dotés de bits d’exécution, mais non exécutables par le système. Cette valeur prend initialement la valeur du fichier personnel du shell C. Shells 12-119 12-120 status Etat retourné par la dernière commande. Si la commande se termine anormalement, 0200 est ajouté à l’état. Les commandes intégrées qui n’aboutissent pas retournent un état de sortie de 1 ; celles qui aboutissent renvoie un état de 0 (zéro). time Contrôle le minutage automatique des commandes. Lorsque cette variable est définie, toute commande dépassant le délai imparti (en nombre de secondes CPU) affichera, en fin d’exécution, une ligne relative aux ressources utilisées. Pour en savoir plus, reportez–vous à la commande intégrée time, page 12-104. verbose Activée par l’option –v sur la ligne de commande, affiche les mots de chaque commande, après exécution des substitutions d’historique. AIX Guide de l’utilisateur – Système d’exploitation et unités Réacheminement des entrées/sorties (shell C) Avant d’exécuter une commande, le shell C balaye la ligne d’entrée à la recherche de caractères de réacheminement. Ces derniers lui indiquent de réacheminer les entrées et les sorties. Pour réacheminer les entrées et sorties standard d’une commande, vous disposez des instructions suivantes : < Fichier Ouvre le Fichier spécifié (qui est d’abord développé – variable, commande et nom de fichier) comme fichier d’entrée standard. << Mot Lit l’entrée shell jusqu’à la ligne correspondant à la valeur de Mot. La variable Mot ne peut faire l’objet de substitution de variable, de nom de fichier ou de commande. Chaque ligne entrée lui est comparée avant toute substitution sur la ligne. Sauf si un caractère de déclaration (\, ”, ’ ou ‘) figure dans la variable Mot, le shell exécute les substitutions de variable et de commande sur les lignes concernées, la barre oblique inversée (\) pouvant servir à déclarer les caractères $ (dollar), \ (barre oblique inversée) et ‘ (apostrophe). Dans les commandes remplacées, les espaces, les tabulations et les caractères ligne suivante sont préservés, sauf le dernier caractère nouvelle ligne, qui n’est pas pris en compte. Le texte résultant est placé dans un fichier temporaire anonyme, qui devient l’entrée standard de la commande. > Fichier >! Fichier >& Fichier >&! Fichier Ouvre le Fichier spécifié comme sortie standard. Si le fichier n’existe pas, il est créé. S’il existe, il est tronqué et son contenu antérieur est perdu. Si la variable noclobber est définie, le fichier doit ne pas exister ou être un fichier spécial caractère, faute de quoi une erreur est générée, ceci pour contribuer à prévenir toute destruction accidentelle de fichiers. Dans ce cas, recourez au format comportant un ! (point d’exclamation) pour éliminer ce contrôle. Fichier est développé de la même façon que pour les <fichiers d’entrée. Le format >& (perluète) achemine la sortie standard et la sortie d’erreur vers Fichier. L’exemple suivant illustre comment acheminer séparément la sortie standard vers /dev/tty et la sortie d’erreur standard vers /dev/null. Les parenthèses sont obligatoires pour la séparation : % (find / –name vi –print > /dev/tty) >& /dev/null > > Fichier > >! Fichier > >& Fichier Shells 12-121 > >&! Fichier Utilise Fichier comme sortie standard (comme >), mais ajoute la sortie à la fin du fichier. Si la variable noclobber est définie, une erreur se produit si le fichier n’existe pas, sauf si vous employez un format avec ! (point d’exclamation). Sinon, l’instruction est semblable à >. Une commande reçoit l’environnement dans lequel le shell a été appelé, modifié le cas échéant par les options d’entrée/sortie et la présence de la commande en tant que pipeline. Ainsi, contrairement à certains shells précédents, les commandes exécutées à partir d’un fichier de commandes shell n’ont pas accès au texte des commandes par défaut. A l’inverse, elles reçoivent les entrées standard d’origine, directement du shell. Utilisez le mécanisme << pour présenter les données en ligne. Les fichiers de commandes shell fonctionnent alors comme des éléments de pipelines et le bloc shell lit les entrées. Notez que l’entrée standard par défaut pour une commande exécutée isolément n’est pas remplacée par le fichier vide /dev/null. l’entrée standard reste l’entrée standard d’origine du shell. Pour réacheminer les sorties d’erreur via un tube vers la sortie standard, utilisez le format |& (barre verticale, perluète) et non la seule | (barre verticale). Flux de contrôle Le shell contient des commandes qui peuvent servir à réguler le flux de contrôle dans les fichiers de commandes (scripts shell) et, de façon limitée mais fort utile, dans les entrées ligne de commande. Ces commandes forcent le shell à relire ou à sauter ses entrées. Les instructions foreach, switch et while et le format if–then–else de l’instruction if, requièrent que les mots-clés principaux apparaissent dans une seule commande simple sur une ligne d’entrée. Si l’entrée shell ne peut être explorée, le shell place dans des tampons les entrées chaque fois qu’une boucle est lue et se sert du tampon interne pour effectuer les relectures requises par la boucle. Des goto arrière permettent ensuite de localiser les entrées que vous n’avez pu rechercher. 12-122 AIX Guide de l’utilisateur – Système d’exploitation et unités Contrôle des travaux (shell C) Le shell associe à chaque process un numéro de travail. Il maintient un tableau des travaux en cours et leur affecte des numéros (petits nombres entiers). Lorsque vous lancez un travail en arrière-plan, via un signe & (perluète), le shell affiche une ligne semblable à : [1] 1234 Cette ligne indique que le travail porte le numéro 1 et qu’il se compose d’un seul process dont l’ID est 1234. Pour afficher la table des travaux en cours, lancez la commande intégrée jobs, page 12-99 Un travail en arrière–plan doit affronter la concurrence pour obtenir des données en entrée à partir de la station de travail. Il en est de même pour les données en sortie, qui sont imbriquées avec les sorties des autres travaux. Vous pouvez référencer un travail dans le shell de plusieurs façons : Le signe % (pourcentage) introduit un nom de travail : il peut s’agir du numéro de travail ou du nom de la commande qui a lancé le travail s’il s’agit d’un nom unique. Par exemple, si un process d’arrière–plan make est en cours en tant que travail 1, vous pouvez le référencer comme %1. Vous pouvez le référencer en tant que %make, s’il n’y a qu’un seul travail commençant par la chaîne make. Vous pouvez également utiliser la commande : %?Chaîne pour spécifier un travail dont le nom contient la variable Chaîne, s’il n’existe qu’un seul travail de ce type. Le shell détecte immédiatement les changements d’état des process. Si un travail bloque, rendant impossible la poursuite du traitement, le shell envoie un message à la station de travail. Ce message ne s’affiche que lorsque vous appuyez sur Entrée. Si, toutefois, la variable notify est définie, le shell émet immédiatement un message indiquant un changement au niveau de l’état des travaux en arrière–plan. Au moyen de la commande intégrée notify, page 12-101, marquez les process pour lesquels vous souhaitez que les changements d’état vous soient notifiés. Par défaut, la commande notify marque le process courant. Shells 12-123 Liste des commandes intégrées du shell C 12-124 @ à la page 12-106 Affiche la valeur des variables shell spécifiées. alias, page 12-96 Affiche les alias spécifiés (tous, par défaut). bg, page 12-96 Place à l’arrière–plan le travail courant ou les travaux spécifiés. break, page 12-96 Reprend l’exécution après la fin de la commande foreach ou while la plus proche. breaksw, page 12-96 Interrompt une commande switch. case, page 12-96 Définit un label dans une commande switch. cd, page 12-96 Passe au répertoire spécifié. chdir, page 12-96 Passe au répertoire spécifié. continue, page 12-96 Poursuit l’exécution de la commande foreach ou while la plus proche. default, page 12-96 Etiquette le cas par défaut d’une instruction switch. dirs, page 12-96 Affiche la pile de répertoires. echo, page 12-96 Ecrit les chaînes de caractères sur la sortie standard du shell. else, page 12-96 Exécute les commandes qui suivent le deuxième else dans une séquence de commandes if ( Expression ) then ... else if ( Expression2) then ... else ... endif. end, page 12-97 Indique la fin d’une séquence de commandes précédée de la commande foreach. endif, page 12-97 Exécute les commandes qui suivent le deuxième then dans une séquence de commandes if ( Expression ) then ... else if ( Expression2 ) then ... else ... endif. endsw, page 12-97 Marque la fin d’une séquence de commandes switch ( Chaîne ) case Chaîne:... breaksw default:... breaksw endsw. Cette séquence de commandes compare successivement chaque étiquette à la valeur de la variable Chaîne. L’exécution se poursuit après un endsw si une commande breaksw est exécutée ou qu’aucun label ne correspond et qu’aucune valeur par défaut n’est définie. eval, page 12-97 Lit les arguments comme entrée pour le shell et exécute le(s) commande(s) résultante(s), dans le contexte du shell courant. exec, page 12-97 Exécute la commande spécifiée, à la place du shell courant. exit, page 12-97 Quitte le shell avec la valeur de variable d’état du shell, ou celle de l’expression spécifiée. fg, page 12-98 Amène à l’avant–plan le travail courant ou les travaux spécifiés, et poursuit leur exécution même s’ils ont été arrêtés. foreach, page 12-98 Définit tour à tour une variable Nom pour chaque membre spécifié par la variable Liste et une séquence de commandes, jusqu’à atteindre une commande end. glob, page 12-98 Affiche une liste avec développement de l’historique, des variables et des noms de fichiers. AIX Guide de l’utilisateur – Système d’exploitation et unités goto, page 12-98 Poursuit l’exécution à partir d’une ligne déterminée. hashstat, page 12-98 Affiche des statistiques indiquant le pourcentage de recherches abouties de commandes, par la table de hachage. history, page 12-98 Affiche les listes des événements de l’historique. if, page 12-98 Exécute une commande donnée si l’expression spécifiée est vraie. jobs, page 12-99 Liste les travaux actifs. kill, page 12-99 Envoie le signal TERM (terminate), ou celui spécifié par Signal, aux travaux ou aux process spécifiés. limit, page 12-100 Limite l’usage de la ressource par le process courant et les process qu’il crée. login, page 12-100 Met fin à un shell de connexion et le remplace par une occurrence de la commande /usr/sbin/login. logout, page 12-101 Termine un shell de connexion. nice, page 12-101 Définit la priorité des commandes exécutées dans le shell. nohup, page 12-101 Provoque la non prise en compte des arrêts dans la suite de la procédure. notify, page 12-101 Le shell vous prévient (de façon asynchrone) lorsque l’état du travail courant ou du travail spécifié change. onintr, page 12-101 Contrôle l’action du shell au niveau des interruptions. popd, page 12-101 Détruit la pile de répertoires et revient au nouveau premier répertoire. pushd, page 12-102 Intervertit des éléments de la pile des répertoires. rehash, page 12-102 Recalcule, dans la variable shell path, la table d’adressage contenant les répertoires. repeat, page 12-102 Exécute la commande spécifiée, soumise aux mêmes restrictions que l’instruction if, autant de fois que spécifié. set, page 12-102 Affiche la valeur de toutes les variables shell. setenv, page 12-102 Modifie la valeur de la variable d’environnement spécifiée. shift, page 12-102 Décale vers la gauche la variable spécifiée. source, page 12-103 Lit la commande spécifiée par la variable Nom. stop, page 12-103 Arrête les travaux (courants ou spécifiés) exécutés en arrière–plan. suspend, page 12-103 Met fin au shell (équivaut à un signal STOP). switch, page 12-103 Marque le début d’une séquence de commandes switch ( Chaîne ) case Chaîne:... breaksw default:... breaksw endsw. Cette séquence de commande compare successivement chaque étiquette à la valeur de la variable Chaîne. Cette séquence compare successivement chaque label ”case” à la valeur de la variable Chaîne. time, page 12-104 Affiche un récapitulatif des temps consommés par le shell et son process enfant. umask, page 12-105 Détermine les droits d’accès au fichier. unalias, page 12-105 Désactive les alias dont le nom correspond à la Trame. unhash, page 12-105 Désactive l’usage de la table de hachage pour la localisation des programmes en cours. unlimit, page 12-105 Supprime toute limitation de ressources. Shells 12-125 unset, page 12-105 Supprime toutes les variables dont le nom correspond à la Trame. unsetenv, page 12-105 Supprime de l’environnement toutes les variables dont le nom correspond à la Trame. wait, page 12-105 Attend tous les travaux en arrière–plan. while, page 12-106 Evalue les commandes de la séquence qui va du while au end correspondant, tant que la variable Expression a une valeur non nulle. Informations connexes Shell Korn Commandes ksh et stty. Commandes alias et cd, page 12-46. export, page 12-39 fc, page 12-46 getopts, page 12-46 read, page 12-48 Commandes du shell Korn set, page 12-40 et typeset, page 12-44. Fichier /etc/passwd. Shell Bourne Commandes bsh ou Rsh, et login. Commande shell Bourne spéciale read. Sous-routines setuid et setgid. Fichier spécial null. Fichiers environment et profile. 12-126 AIX Guide de l’utilisateur – Système d’exploitation et unités Shell C Commandes csh et ed. alias, page 12-96. unalias, page 12-105. jobs, page 12-99. Commandes notify (page 12-101) et set (page 12-102, dans la section relative aux commandes intégrées du shell C). Shells 12-127 12-128 AIX Guide de l’utilisateur – Système d’exploitation et unités Index Symboles . répertoires (point), 6-8 B banner, commande, 5-9 .. répertoires (point point), 6-8 A affichage contenu de fichier, 7-11 écrans disponibles, 2-4 fichiers dernières lignes, 7-15 premières lignes, 7-15 ID utilisateur, 1-8 informations de contrôle des accès, 10-13 informations sur un groupe d’utilisateurs, 10-6 liste sur le système, 2-4 logiciels, 2-5 nom de connexion, 1-6 nom de la console, 2-3 nom du système, 1-7 nom du terminal, 2-3 polices disponibles, 2-4 répertoire de fichiers contenu, 6-11 courant, 6-10 texte en gros caractères , 5-9 affichage à trois chiffres, 1-2 AIXwindows Desktop ajout d’écrans et de terminaux écran d’affichage caractères, 3-5 Terminal ASCII, 3-5 arrêt, manuel, 3-2 lancement démarrage automatique, 3-2 manuel, 3-2 modification des profils, 3-3 personnalisation des écrans, 3-6 suppression, écran local, 3-5 C capture, commande, 5-3, 5-8 caractères génériques, 7-4 CDRFS, 6-2 Chacun d’eux utilise une technique de gestion des clés différente., définition, 5-6 chaînes, recherche dans des fichiers texte, 7-12 changement de nom fichiers, 7-8 répertoires, 6-9 classes, utilisateur, 10-4 clavier, mappes disponibles, liste, 2-5 clear, commande, 5-8 commande acledit, 10-14 commande aclget, 10-13 commande aclput, 10-13 commande aixterm, 2-8 commande alias, 4-10 commande at, 4-19, 4-20 commande atq, 4-19 commande, 9-14 compression des fichiers avant, 9-10 définition, 4-13 directives, 9-2 objet, 9-1 avantages, 9-4 procédure, 9-14 utilisation de la commande smit, 9-15 commande bsh, 12-4, 12-71 alias, ., shell Korn ou POSIX, 12-20 commande capture, 7-12 alias de commandes, shell Korn ou POSIX, 12-20 substitution de tilde, 12-21 commande cd, 6-7, 6-10 arguments, 4-4 ASCII – PostScript automatisation de la conversion, 8-18 conversion de fichiers, 8-18 atq, commande, imprimante, 8-2 commande chfont, 11-10 commande chmod, 10-8 commande chown, 10-4 commande chpq, 8-18 commande colrm, 7-17 Index X-1 commande compress, 9-10 commande nl, 7-17 commande cp, 6-11, 7-8 commande pack, 9-10 commande cpio –i, 9-8 commande page, 7-12 dans des commandes, 4-4 shell Korn ou POSIX, 12-22 commande cpio –o, 9-7 commande csh, 12-4, 12-93 commande cut, 7-15 commande del, 7-20 commande df, 6-4 commande passwd, 1-10 annulation, 1-10 directives, 1-9 modification ou définition, 1-10 commande dosdir, 7-22 commande paste, 7-16 absolu, 6-8, 7-4 définition, 7-4 répertoire, 6-7 shell Bourne, 12-89 shell Korn ou POSIX, 12-32 commande dosread, 7-21 commande pg, 7-11 commande doswrite, 7-21 commande ps, 4-15 commande exit, 1-5 commande psh, 12-4, 12-13 commande export, 11-9 commande pwd, 6-10 commande fc, 12-15 commande qchk, 8-9 commande fdformat, 9-5 commande qhld, 8-12 commande find, 7-9 commande qprt, 8-4 commande flcopy, 9-7 commande r (répétition), 4-9 commande format, 9-5 commande renice, 4-16, 4-17 commande fsck, 9-6 commande restore, 9-16 commande grep, 7-12 commande rm, 7-7, 7-20 commande groups, 10-4 commande rmdir, 6-13 commande head, 7-15 commande Rsh, 12-4, 12-73 commande id, 1-8 commande rsh, 12-4 commande kill, 4-20 commande sh, 12-4 commande ksh, 12-4, 12-13 commande shutdown, 1-5 commande ln, 7-19 commande smit, 4-6, 8-7, 9-15 commande lock, 10-14 commande sort, 7-13 commande logname, 1-6 commande stty, 11-10 commande ls, 6-11 commande su, 1-3 commande lsgroup, 10-6 commande tail, 7-15 commande man, 4-6 clavier, 2-5 commande mkdir, 6-9 commande tapechk, 9-9 copie, 9-9 vérification de la cohérence, 9-9 commande more, 7-12 commande tar, 9-18 commande mv, 7-8 commande tcopy, 9-9 commande mvdir, 6-9 commande touch, 1-4 commande mwm connexion, 1-6 répertoires, 6-7 système d’exploitation, 1-7 commande tsh, 12-4 commande nice, 4-16 commande unpack, 9-12 commande diff, 7-14 commande dircmp, 6-14 commande dosdel, 7-22 X-2 commande uname, 1-7 commande uncompress, 9-12 AIX Guide de l’utilisateur – Système d’exploitation et unités objet, 9-10 commande wc, 7-14 Commande Web System Manager, 8-12 commande whatis, 4-7 commande whereis, 4-6 commande who, 1-7 commande who am i, 1-6 commande whoami, 1-6 commande xlock, 10-14 commande zcat, 9-12 commandes alias, création, 4-10 distinction minuscules–majuscules, 4-4 entrée, 4-3 espaces entre, 4-3 fonction, description, 4-7 formatage de texte, 4-11 indicateurs, utilisation, 4-4 informations, affichage, 4-6 instructions d’usage, 4-5 intégrées, 12-38 shell Bourne, 12-77 shell C, 12-95 longues commandes sur plusieurs lignes, entrée, 4-4 modification de l’historique, 4-9 nom abrégé, création, 4-10 nom d’une commande, définition, 4-4 paramètres, 4-4 plusieurs commandes sur une même ligne, entrée, 4-3 présentation, 4-3 répétition, 4-9 sauvegarde de commande entrée, 4-7 shell Bourne, 12-74 shell C, 12-95 shell Korn ou POSIX, 12-9 substitution de chaînes, 4-9 syntaxe, 4-3 commandes de formatage de texte, 4-11 commandes intégrées, 12-38 shell Bourne, 12-77 shell C, 12-95 contrôle d’accès droits étendus, 10-11 listes, 10-10 contrôle des accès affichage d’informations, 10-13 définition des informations, 10-13 édition des informations, 10-14 listes, 10-11 contrôle des travaux shell C, 12-123 shell Korn ou POSIX, 12-55 copie de/sur bande, 9-9 fichier à partir d’une bande ou d’un disque, 9-8 fichier sur bande ou disque, 9-7 vers et à partir de disquettes, 9-7 copie d’un écran dans un fichier, 5-8 coupe de sections, 7-15 description, 4-13 D déclaration de caractères shell Bourne, 12-75 shell Korn ou POSIX, 12-16 démarrage, contrôle des fenêtres et des applications, 11-5 disquette copie, 9-7 formatage, 9-5 gestion, 9-3 distante, imprimante, 8-3 document here, 5-5, 12-34 documents entrée en ligne, 5-5 droit d’accès de base, 10-10 fichier, 10-8 répertoire, 10-8 droits, étendus, 10-11 droits de base, 10-10 droits étendus, 10-11 commandes spéciales, shell Bourne, 12-77 commutateurs, dans des commandes, 4-4 E comparaison de fichiers, 7-14 compression de fichiers, 9-10 concaténation de fichiers texte, 5-4 connexion éloignée, 1-1 multiples, affichage, 1-6 console, affichage du nom, 2-3 echo, commande, 5-8 écran affichage des paramètres, 2-7 affichage du nom, 2-3 écrans affichage de texte écran par écran, 7-12 affichage de texte en gros caractères, 5-9 Index X-3 copie d’un écran dans un fichier, 5-7 copie dans un fichier, 5-8 suppression, 5-8 éditeur, 12-57 éditeur ed, 7-7 éditeur emacs, 12-57 éditeur vi, 12-61 éditeurs, 7-7 édition, en ligne, shell Korn ou POSIX, 12-57 édition en ligne, shell Korn ou POSIX, 12-57 mode d’édition vi, 12-61 mode emacs, 12-57 édition en ligne (shell Korn) mode d’édition vi, 12-61 mode emacs, 12-57 effacement de l’écran, 5-8 élimination des sorties, 5-4 éloignée, connexion, 1-1 entrée standard copie dans un fichier, 5-7 définition, 5-2 réacheminement, 5-4 env, commande, 2-6 environnement affichage, 2-6 définition, utilisateur, 11-3 système, 2-1 états de sortie, shell Korn ou POSIX, 12-37 évaluation arithmétique, shell Korn ou POSIX, 12-29 expressions, recherche de fichiers, 7-9 expressions régulières, 7-6 F fenêtre Window Manager, lancement, 11-5 fichier arborescence, 6-2 commande, 7-11 descripteurs, 5-5 droits d’accès, 10-4 formatage, pour impression, 8-15 fichier .env, 11-4 fichier .mwmrc, 11-7 fichier .profile, 11-3, 11-4 fichier .Xdefaults, 11-6 fichier .xinitrc, 11-5 fichier /etc/environment, 11-3 X-4 fichier /etc/profile, 11-2 fichier d’environnement, 11-3 fichier de connexion fichier .env, 11-4 fichier .profile, 11-3, 11-4 fichier /etc/environment, 11-3 fichier /etc/profile, 11-2 fichier de ressources, modification, 11-6, 11-7 fichier lié, suppression, 7-20 fichier PostScript, conversion à partir d’ASCII, 8-18 fichier profile, utilisation, 11-2 fichier racine ;, 6-3 fichiers affichage contenu, 7-11 dernières lignes, 7-15 premières lignes, 7-15 ajout d’une ligne à un fichier, 5-8 archivage, 9-18 ASCII, 7-3 binaire, 7-3 caractères génériques, 7-4 changement de nom, 7-8 collage de texte, 6-7, 7-4, 7-16 colonne, suppression, 7-17 comparaison, 6-14, 7-14 compression, 9-10 concaténation, 5-4 conventions d’appellation, 7-4 copie, 7-8 à partir d’un écran, 5-8 à partir d’une bande ou d’un disque, 9-8 de DOS, 7-21 vers DOS, 7-21 création avec réacheminement à partir du clavier, 5-3 décompression, 9-12 décompte lignes, 7-14 mots, 7-14 octets, 7-14 découpe de champs sélectionnés, 7-15 définition, 6-1 déplacement, 7-8 droit d’accès, 7-4 environnement, 11-3 exécutable, 7-3 expression régulière, 7-6 extraction, 9-18 formatage, pour affichage, 7-11 fusion de lignes, 7-16 généralités, 7-1 gestion, 7-7 identification du type, 7-11 joining, 5-4 liaison, 7-18, 7-19 AIX Guide de l’utilisateur – Système d’exploitation et unités lié, suppression, 7-20 localisation de section, recherche, 7-9 localisation de sections, 4-6 métacaractères, 7-5 mode d’accès, définition, 7-18 modes d’accès, 10-4 modification à partir d’un fichier lié, 7-18 droit d’accès, 10-8 propriété, 10-4 numérotation de lignes, 7-17 propriété, 7-18, 10-4 recherche d’une chaîne, 7-12 restauration, 9-16 utilisation de la commande smit, 9-17 sauvegarde, 9-14 sortie, à partir d’un point spécifié, 7-15 suppression, 7-7 suppression du DOS, 7-22 tri du texte, 7-13 types affichage, 7-11 répertoire, 7-3 spécial, 7-3 standard, 7-3 fichiers ASCII, impression sur une imprimante PostScript, 8-17 fichiers de lancement shell C, 12-93 système, 11-2 fichiers DOS conversion, 7-21 copie, 7-21 liste du contenu, 7-22 suppression, 7-22 fichiers texte colonnes, suppression, 7-17 lignes, numérotation, 7-17 recherche de chaînes, 7-12 sections collage, 7-16 découpe, 7-15 tri, 7-13 file d’attente print, 8-3 unité, 8-3 G grep, commande, 5-6 H historique édition, 4-9 substitution, shell C, 12-109 historique des commandes, shell Korn ou POSIX, 12-15 history commande, 4-7 shell, 4-9 I ID, utilisateur, 10-4 ID de connexion, 10-3 impression, 8-1, 8-14 déplacement de travaux d’impression, 8-14 fichiers ASCII sur une imprimante PostScript, 8-17 formatage de fichiers, 8-15 imprimante, 8-1 affichage d’état d’un travail, 8-11 annulation d’un travail, 8-8 distante, 8-3 état, 8-10 file d’attente, 8-3 lancement d’un travail, 8-4 locale, 8-2 programme expéditeur, 8-2 qdaemon, 8-3 réelle, 8-3 spouleur, 8-2 unité de file d’attente, 8-3 virtuelle, 8-3 imprimante locale, 8-2 imprimante PostScript, impression de fichiers ASCII, 8-17 Imprimante réelle, 8-3 fonction coprocess, shell Korn ou POSIX, 12-35 imprimante virtuelle, 8-3 formatage de disquettes, 9-5 indicateurs, dans des commandes, 4-4 formatage de texte caractères étendus mono–octets, 4-11 prise en charge des caractères internationaux, 4-11 prise en charge des caractères multi-octets, 4-12 instructions d’usage, pour les commandes, 4-5 invite, modification système, 11-11 Index X-5 J JFS, 6-2 L lancement fenêtre Window Manager, 11-5 shell Bourne, 12-71 shell C, 12-93 shell Korn ou POSIX, 12-13 X, 11-5 langues bidirectionnelles, 2-8 lecture de l’affichage à trois chiffres, 1-2 liaisons, création, 7-19 liens fixe, 7-18 généralités, 7-18 suppression, 7-20 symbolique, 7-18 types, 7-18 ligne de texte, ajout à un fichier, 5-8 lignes, décompte, 7-14 liste de commandes, 8-8, 8-9 acledit, 10-14 aclget, 10-13 aclput, 10-13 alias, 4-10 at, 4-19 atq, 4-19 bsh, 12-4, 12-71 capture, 7-12 cd, 6-7, 6-10 chfont, 11-10 chmod, 10-8 chown, 10-4 chpq, 8-18 colrm, 7-17 commande cpio –o, 9-7 compress, 9-10 cp, 6-11, 7-8 cpio –i, 9-8 csh, 12-4, 12-93 cut, 7-15 del, 7-20 df, 6-4 diff, 7-14 dircmp, 6-14 dosdel, 7-22 dosdir, 7-22 dosread, 7-21 doswrite, 7-21 exit, 1-5 export, 11-9 fc, 12-15 fdformat, 9-5 X-6 fichier, 7-11 find, 7-9 flcopy, 9-7 format, 9-5 fsck, 9-6 grep, 7-12 groupes, 10-4 head, 7-15 history, 4-7 id, 1-8 kill, 4-20 ksh, 12-4, 12-13 commandes intégrées spéciales, 12-38, 12-39, 12-40, 12-42, 12-43, 12-44, 12-45 commandes intégrées standard, 12-45, 12-46, 12-47, 12-48, 12-49, 12-50 ln, 7-19 lock, 10-14 login, 1-3 logname, 1-6 logout, 1-5 ls, 6-11 lsgroup, 10-6 man, 4-6 mkdir, 6-9 more, 7-12 mv, 7-8 mvdir, 6-9 mwm, 11-5 nice, 4-16 nl, 7-17 pack, 9-10 page, 7-12 passwd, 1-10 paste, 7-16 pg, 7-11 pr, 8-15 ps, 4-15 psh, 12-4, 12-13 pwd, 6-10 qcan, 8-8 qchk, 8-9 qhld, 8-12 qmov, 8-14 qpri, 8-11 qprt, 8-4 r, 4-9 renice, 4-16, 4-17 restore, 9-16 rm, 7-7, 7-20 rmdir, 6-13 Rsh, 12-4, 12-73 rsh, 12-4 sauvegarde, 9-14 sh, 12-4 shutdown, 1-5 smit, 4-6, 8-7, 9-15 sort, 7-13 stty, 11-10 su, 1-3 AIX Guide de l’utilisateur – Système d’exploitation et unités tail, 7-15 tapechk, 9-9 tar, 9-18 tcopy, 9-9 touch, 1-4 tsh, 12-4 uname, 1-7 uncompress, 9-12 unpack, 9-12 wc, 7-14 whatis, 4-7 whereis, 4-6 who, 1-7 who am i, 1-6 whoami, 1-6 xlock, 10-14 zcat, 9-12 liste des commandes |, 5-6 <<, 5-4 >, 5-2 >>, 5-3 aixterm, 2-8 banner, 5-9 capture, 5-3, 5-8 clear, 5-8 echo, 5-8 env, 2-6 grep, 5-6 lscfg, 2-2 lscons, 2-3 lsdisp, 2-4 lsfont, 2-4 lskbd, 2-5 lslpp, 2-5 printenv, 2-7 script, 5-9 stty, 2-6 tee, 5-7 tty, 2-3 logiciels, affichage d’informations, 2-5 login commande, 1-3 ID utilisateur (autre), 1-3 messages, suppression, 1-4 multiples, 1-3 procédure, 1-2 logout commande, 1-5 procédure, 1-5 M messages affichage à l’écran, 5-8 envoi vers la sortie standard, 5-8 métacaractères, 7-5 modes d’accès classes d’utilisateurs, 10-4 contrôle, 10-4 droits de base, 10-10 fichiers, 10-4 informations sur le groupe, affichage, 10-6 répertoires, 10-4 représentation numérique, 10-6 symbolique, 10-5 valeur par défaut représentation numérique, 10-6 représentation symbolique, 10-5 mots, décompte, 7-14 mots réservés, shell Korn ou POSIX, 12-19 mwm, commande, 11-5 fichiers, 7-4 N NFS, 6-2 nom abrégé pour des commandes, création, 4-10 nombre entier, 12-29 numéro d’i–node, 6-6, 7-3, 7-18 numéro d’identification, 4-13 numéro de référence d’i–node, 6-6 O octets, décompte, 7-14 opérateurs de réacheminement des entrées (<<), 5-4 opérateurs de réacheminement des sorties (>), 5-2 options, dans des commandes, 4-4 P lscfg, commande, 2-2 paramètres positionnels, shell Bourne, 12-89 lscons, commande, 2-3 personnalisation, environnement système, 11-9 lsdisp, commande, 2-4 PID, description, 4-13 lsfont, commande, 2-4 pipeline, définition, 5-6 lskbd, commande, 2-5 police, modification, 11-10 lslpp, commande, 2-5 polices disponibles, liste, 2-4 Index X-7 pr, commande, 8-15 printenv, commande, 2-7 prise en charge des caractères internationaux, formatage de texte, 4-11 prise en charge des caractères multi-octets, formatage de texte, 4-12 process affichage de l’état, 4-15 affichage des process actifs, 4-15 arrêt, 4-17 process d’arrière-plan, 4-20 arrière–plan, 4-13 avant–plan, 4-13 définition de la priorité initiale, 4-16 démon, 4-13 description, 4-13 interruption, 4-17 process d’avant–plan, 4-17 lancement, 4-14 liste des process planifiés, 4-19 modification de priorité, 4-16 planification pour un fonctionnement en différé, 4-18 relance d’un process arrêté, 4-17 suppression de la planification, 4-20 zombie, 4-14 process d’avant–plan, définition, 4-13 process zombie, 4-14 programme, copie de la sortie dans un fichier, 5-7 Q répertoires, 6-7 abréviations, 6-8 affichage contenu, 6-11 courant, 6-10 changement de nom, 6-9 changement de propriété, 10-4 chemin d’accès, 6-7 comparaison du contenu, 6-14 conventions d’appellation, 6-7 copie, 6-11 création, 6-9 de travail, 6-7 définition, 6-1 déplacement, 6-9 généralités, 6-6 home, 6-7 liaison, 7-18 liste de fichiers, 6-11 liste des fichiers DOS, 7-22 modes d’accès, 10-4 modification, 6-10 modification des droits d’accès, 10-8 organisation, 6-7 parent, 6-7 root, définition, 6-1 sous–répertoires, 6-7 spécification par abréviation, 6-8 structure, 6-7 suppression, 6-13 types, 6-6 réseau, affichage du nom, avec la commande uname, 1-7 ressource, description, 11-6 qcan, commande, 8-8 S qdaemon, 8-3 qmov , commande, 8-14 script, commande, 5-9 qpri command«««cqpri, commande, 8-11 sécurité fichier, 10-1 menaces, 10-2 système, 10-1 R réacheminement entrée standard, 5-4 sortie erreur standard, 5-5 sortie standard, 5-2 sortie, vers un fichier, 5-3 réacheminement des entrées, 5-2 réacheminement des entrées/sorties, 12-91 à partir du coprocess, 12-36 shell Bourne, 12-91 shell C, 12-121 shell Korn ou POSIX, 12-34 Répertoire $HOME, 6-8 Répertoire personnel ~, 6-8 X-8 shell programme, 12-8 script création, 12-8 exportation, 11-9 spécification (shell), 12-8 shell Bourne commandes intégrées, 12-77 liste, 12-76 utilisation, 12-74 commandes spéciales, 12-77 correspondance de trame, 12-89 déclaration de caractères, 12-75 AIX Guide de l’utilisateur – Système d’exploitation et unités environnement, 12-71 lancement, 12-71 mots réservés, 12-76 paramètres positionnels, 12-89 réacheminement des entrées/sorties, 12-91 substitution conditionnelle, 12-88 substitution de commande, 12-83 substitution de noms de fichiers, 12-89 traitement des signaux, 12-75 variables, 12-85 définies par l’utilisateur, 12-84 prédéfinies, 12-87 substitution, 12-84 shell C commandes intégrées, 12-95 utilisation, 12-95 contrôle des travaux, 12-123 expressions, 12-106 lancement, 12-93 opérateur, 12-106 réacheminement des entrées/sorties, 12-121 règles d’utilisation, 12-94 substitution d’alias, 12-112 substitution d’historique, 12-109 substitution de commande, 12-107 substitution de noms de fichiers, 12-115 substitution de variables, 12-113 traitement des signaux, 12-94 variables prédéfinies et d’environnement, 12-118 Shell Korn, 12-66 shell Korn ou POSIX, 12-32 alias de commandes, 12-20 substitution de tilde, 12-21 commandes composées, 12-10 fonctions, 12-14 intégrées, 12-38 utilisation, 12-9 commandes intégrées, 12-38 contrôle des travaux, 12-55 coprocess, réacheminement des entrées/sorties, 12-36 correspondance de trame, 12-32 déclaration de caractères, 12-16 édition, 12-57 environnement, 12-13 états de sortie, 12-37 évaluation arithmétique, 12-29 expressions conditionnelles, 12-53 fonction coprocess, 12-35 historique des commandes, 12-15 lancement, 12-13 définies par l’utilisateur, 12-26 prédéfinies, 12-25 mots réservés, 12-19 réacheminement des entrées/sorties, 12-34 séparation de zones, 12-31 substitution de commande, 12-28 substitution de paramètres, 12-22 suppression des caractères de déclaration, 12-33 traitement des signaux, 12-56 shell ksh93, bidirectionnelles, 2-8 shell restreint, lancement, 12-73 shell standard, expressions conditionnelles, 12-53 shells Bourne commandes intégrées, 12-77, 12-95 contrôle des travaux, 12-123 environnement, 12-71 lancement, 12-71, 12-93 paramètres positionnels, 12-89 réacheminement des entrées/sorties, 12-91, 12-121 substitution conditionnelle, 12-88 substitution d’alias, 12-112 substitution d’historique, 12-109 substitution de commande, 12-83, 12-107 substitution de noms de fichiers, 12-89, 12-115 substitution de variables, 12-84, 12-113 traitement des signaux, 12-94 variables, 12-85 variables définies par l’utilisateur, 12-84 variables prédéfinies, 12-87 variables prédéfinies et d’environnement, 12-118 caractéristiques, 12-3 disponibles, 12-4 explication, 12-1 Korn ou POSIX ., 12-20, 12-28 commande, 12-15 commandes composées, 12-10 commandes intégrées, 12-38 contrôle des travaux, 12-55 déclaration de caractères, 12-16 édition en ligne, 12-57, 12-61 environnement, 12-13 états de sortie, 12-37 évaluation arithmétique, 12-29 expressions conditionnelles, 12-53 fonction coprocess, 12-35 lancement, 12-13 mots réservés, 12-19 paramètres, 12-22 réacheminement des entrées/sorties, 12-34 substitution de noms de fichiers, 12-32 traitement des signaux, 12-56 utilisation de commandes, 12-9 restreint, lancement, 12-73 script, spécification (shell), 12-8 script shell, création, 12-8 sécurisé (lancement), 12-4 terminologie, définition, 12-5 types, 12-4 SMIT, impression, contrôle, 8-4 Index X-9 sortie élimination via le fichier /dev/null, 5-4 réacheminement vers un fichier, 5-3 sortie erreur standard, réacheminement, 5-5 root, 6-3 structure, 6-3 types système de fichiers journalisé, 6-2 système de fichiers réseau (NFS), 6-2 vérification d’intégrité, 9-6 sortie standard ajout à un fichier, 5-3 définition, 5-2 réacheminement, 5-2 système de fichiers CD–ROM, 6-2 space, disponible, affichage, 6-4 système de fichiers réseau (NFS), 6-2 spouleur d’impression, 8-2 Système X Window, lancement, 11-5 système de fichiers journalisé, 6-2 stty, commande, 2-6 substitution conditionnelle, shell Bourne, 12-88 T substitution d’alias, shell C, 12-112 substitution de commande shell Bourne, 12-83 shell C, 12-107 shell Korn ou POSIX, 12-28 substitution de noms de fichiers shell Bourne, 12-89 shell C, 12-115 shell Korn ou POSIX, 12-32 substitution de tilde, alias de commandes, shell Korn ou POSIX, 12-21 suppression fichiers, 7-7 répertoires, 6-13 suppression des caractères de déclaration, shell Korn ou POSIX, 12-33 suppression des messages de connexion, 1-4 système affichage du nom, 1-7 environnement, 2-1 tâches du système de fichiers, 6-2 fichiers de lancement, 11-2 invite, modification, 11-11 mise sous tension, 1-2 personnalisation de l’environnement, 11-9 sécurité, 10-1 shutdown, 1-5 variables par défaut, 11-2 système d’exploitation affichage du nom, avec la commande uname, 1-7 connexion, 1-2 déconnexion, 1-5 système de fichiers définition, 6-1 espace disponible, affichage, 6-4 exemple, illustration, 7-4 généralités, 6-2 réparation interactive, 9-6 X-10 tee, commande, 5-7 terminal, verrouillage, 10-14 utilisation de la commande lock, 10-14 texte affichage en gros caractères, 5-9 ajout à un fichier, 5-8 texte, fichiers concaténation, 5-4 création à partir des entrées clavier, 5-3 touches de contrôle affichage des paramètres, 2-6 modification, 11-10 traitement des signaux shell Bourne, 12-75 shell C, 12-94 shell Korn ou POSIX, 12-56 traitement pipeline, définition, 4-3 travail d’impression affichage de l’état, 8-9 annulation, 8-8 blocage, 8-12 définition, 8-2 définition d’une priorité, 8-11 déplacement, 8-14 formatage de fichiers, 8-15 lancement, 8-4 travaux liste des process planifiés, 4-19 planification, 4-18 suppression de la planification, 4-20 tty, commande, 2-3 tubes, définition, 5-6 types, système de fichiers CD–ROM, 6-2 types de fichier d’impression, annulation de la détermination automatique, 8-19 AIX Guide de l’utilisateur – Système d’exploitation et unités U unité /dev/rfd0, 9-3 unité /dev/rmt0, utilisation, 9-3 unités, affichage d’informations, 2-2 utilisateur classes, 10-4 exportation de shell, 11-9 groupes affichage d’informations, 10-6 définition, 10-4 ID, passage à un autre, 1-3 shell Bourne, 12-84, 12-85 définies par l’utilisateur, 12-84 prédéfinies, 12-87 shell C, 12-113 variables prédéfinies et d’environnement, 12-118 shell Korn ou POSIX, 12-25 définies par l’utilisateur, 12-26 prédéfinies, 12-25 utilisateurs affichage d’un ID système, 1-8 affichage du système courant, 1-7 V variables d’environnement, affichage des valeurs, 2-7 verrouillage de votre terminal, 10-14 Index X-11 X-12 AIX Guide de l’utilisateur – Système d’exploitation et unités Vos remarques sur ce document / Technical publication remark form Titre / Title : Bull AIX 5L Guide de l’utilisateur Système d’exploitation et unités Nº Reférence / Reference Nº : 86 F2 24EF 02 Daté / Dated : Octobre 2002 ERREURS DETECTEES / ERRORS IN PUBLICATION AMELIORATIONS SUGGEREES / SUGGESTIONS FOR IMPROVEMENT TO PUBLICATION Vos remarques et suggestions seront examinées attentivement. Si vous désirez une réponse écrite, veuillez indiquer ci-après votre adresse postale complète. Your comments will be promptly investigated by qualified technical personnel and action will be taken as required. If you require a written reply, please furnish your complete mailing address below. NOM / NAME : SOCIETE / COMPANY : ADRESSE / ADDRESS : Remettez cet imprimé à un responsable BULL ou envoyez-le directement à : Please give this technical publication remark form to your BULL representative or mail to: BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE Date : Technical Publications Ordering Form Bon de Commande de Documents Techniques To order additional publications, please fill up a copy of this form and send it via mail to: Pour commander des documents techniques, remplissez une copie de ce formulaire et envoyez-la à : BULL CEDOC ATTN / Mr. l. CHERUBIN 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE Phone / Téléphone : FAX / E–Mail / Courrier Electronique +33 (0) 2 41 73 63 96 +33 (0) 2 41 73 60 19 [email protected] Or visit our web site at: / Ou visitez notre site web à: http://www.logistics.bull.net/cedoc http://www–frec.bull.com http://www.bull.com CEDOC Reference # No Référence CEDOC Qty Qté CEDOC Reference # No Référence CEDOC Qty Qté CEDOC Reference # No Référence CEDOC __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] Qty Qté [ _ _ ] : no revision number means latest revision / pas de numéro de révision signifie révision la plus récente NOM / NAME : Date : SOCIETE / COMPANY : ADRESSE / ADDRESS : PHONE / TELEPHONE : FAX : E–MAIL : For Bull Subsidiaries / Pour les Filiales Bull : Identification: For Bull Affiliated Customers / Pour les Clients Affiliés Bull : Customer Code / Code Client : For Bull Internal Customers / Pour les Clients Internes Bull : Budgetary Section / Section Budgétaire : For Others / Pour les Autres : Please ask your Bull representative. / Merci de demander à votre contact Bull. PLACE BAR CODE IN LOWER LEFT CORNER BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE REFERENCE 86 F2 24EF 02 Utiliser les marques de découpe pour obtenir les étiquettes. Use the cut marks to get the labels. AIX AIX 5L Guide de l’utilisateur Système d’exploitation et unités 86 F2 24EF 02 AIX AIX 5L Guide de l’utilisateur Système d’exploitation et unités 86 F2 24EF 02 AIX AIX 5L Guide de l’utilisateur Système d’exploitation et unités 86 F2 24EF 02