UNIX DÉBUTANTS. Olivier Collin CNRS Station Biologique de Roscoff
|
|
|
- Aurore Amélie Généreux
- il y a 10 ans
- Total affichages :
Transcription
1 UNIX DÉBUTANTS Olivier Collin CNRS Station Biologique de Roscoff 1999
2 "UNIX is a registered trademark of the Open Group" Conventions d'écriture: Les commandes UNIX seront indiquées avec une police courrier. Exemple: ls -lr Les exemples d'utilisation des commandes UNIX seront encadrés comme suit: sbr [8]%cd cours ~/cours /util2/si/olivier/cours - 2 -
3 INTRODUCTION...8 HISTORIQUE D'UNIX...9 SYSTEME D'EXPLOITATION...10 SPECIFICITES, CARACTERISTIQUES, PHILOSOPHIE...11 SPÉCIFICITÉS...11 CARACTÉRISTIQUES TECHNIQUES D'UNIX...11 PHILOSOPHIE...12 CONNEXION...13 CONNEXION-MOT DE PASSE...13 CONNEXION...13 MOT DE PASSE...13 CHANGER DE MOT DE PASSE...13 LE SYSTEME DE FICHIER...14 LES FICHIERS...14 L'ARBORESCENCE...16 DONNER UN NOM À UN FICHIER...17 SE DÉPLACER DANS L'ARBORESCENCE UNIX...17 RÉPERTOIRE COURANT...18 LISTER LES FICHIERS...18 CRÉATION D'UN FICHIER...19 COPIER UN FICHIER...19 RENOMMER UN FICHIER...19 EFFACER UN FICHIER...19 CRÉATION ET EFFACEMENT D'UN RÉPERTOIRE...20 AFFICHER LE CONTENU D'UN FICHIER...20 LOCALISER UN FICHIER...20 LE MANUEL EN LIGNE...22 LES IMPRESSIONS...24 IMPRESSION BSD...24 IMPRESSION SYSTÈME V
4 LES SHELLS...26 LE C SHELL...28 LES FICHIERS SPÉCIAUX...28 LES VARIABLES PRÉDÉFINIES DU C SHELL...28 LES VARIABLES D'ENVIRONNEMENT...29 TERMINAISON DES NOMS DE FICHIERS...30 LA REDIRECTION DES ENTRÉES-SORTIES...31 LES TUBES OU PIPELINES...31 L'HISTORIQUE DES COMMANDES...32 LES ALIAS...33 LES SUBSTITUTIONS DES NOMS DE FICHIERS...33 LA GESTION DES PROGRAMMES...34 LE FICHIER.CSHRC...35 LE TCSH (TORONTO C SHELL)...35 L'ÉDITION DE LA LIGNE COURANTE AVEC LE TCSH L'EDITION DE TEXTE...36 VI...36 EMACS...40 LES FILTRES...42 GREP...42 SED...42 TR...43 SORT...44 UNIX ET LES RESEAUX...45 LE COURRIER ÉLECTRONIQUE...45 LE PROGRAMME MAIL...45 LE PROGRAMME ELM...46 LE TRANSFERT DE FICHIERS...46 AUTOMATISATION D'UN TRANSFERT DE FICHIER...47 LOCALISATION DES FICHIERS FTP SUR INTERNET: ARCHIE...48 LES CONNEXIONS À D'AUTRES MACHINES...49 LES COMMANDES R...49 LE WORLD WIDE WEB...50 LA GESTION DES PROCESSUS...52 LES TRAVAUX DES SHELLS (JOBS)...54 LANCEMENT DE PROGRAMMES DE FAÇON "DÉTACHÉE"...54 LANCEMENT DE PROGRAMMES DE FAÇON DIFFÉRÉE...54 AT
5 CRONTAB...55 LES EXPRESSIONS REGULIERES...57 LE C-SHELL : PROGRAMMATION...59 LES STRUCTURES DE CONTRÔLE DU C SHELL...59 CONCLUSION...64 ANNEXE A - COMMANDES DE MANIPULATION DE FICHIERS...65 ANNEXE B - COMMANDES DE VI...66 DÉPLACEMENT DU CURSEUR...66 INSERTION DE TEXTE...66 MODIFICATION DE TEXTE...66 ENREGISTRER ET QUITTER...67 RECHERCHE ET SUBSITUTION DE CARACTÈRES...67 MANIPULATION DES TAMPONS...67 UTILISATION DES COMMANDES EX DANS VI...68 DIVERS TRUCS...68 FICHIER.EXRC...68 TRAVAIL SUR PLUSIEURS FICHIERS...68 ANNEXE C - CARACTÈRES NON IMPRIMABLES...69 ANNEXE D - LES COMMANDES FTP...70 ANNEXE E - LES CARACTÈRES SPÉCIAUX DU SHELL...71 ANNEXE F - CLASSIFICATION DES COMMANDES UNIX...72 ANNEXE G - LES MESSAGES D'ERREURS SOUS UNIX...73 ANNEXE H - EXEMPLE DE FICHIER.CSHRC
6 ANNEXE I - EXTENSIONS DES NOMS DE FICHIERS...76 ANNEXE J - EVOLUTION D'UNIX...77 ANNEXE K UN EXEMPLE DE SCRIPT EN C SHELL...78 ANNEXE L - IDENTIFICATION D'UN SYSTEME UNIX...79 ANNEXE M - CARTE DE RÉFÉRENCE GNU EMACS...80 INDEX
7 - 7 -
8 INTRODUCTION Ce cours a pour objectif de familiariser l'utilisateur avec le système UNIX afin qu'il puisse acquérir une autonomie minimale. Les concepts seront donc à la fois très généraux et très appliqués afin d'offrir une vision d'ensemble et une possibilité réelle d'exploiter le système UNIX. Après une présentation des systèmes d'exploitation et de leurs caractères communs, on étudiera le système de fichiers UNIX, l'interpréteur de commande (shell) du point de vue de l'utilisateur dans un premier temps, puis d'un point de vue plus avancé avec l'élaboration des scripts. L'édition de texte représentant une part non négligeable du travail sur ordinateur, les éditeurs les plus connus du monde UNIX seront présentés. A l'issue de ce cours l'utilisateur sera en mesure de se connecter au système, de naviguer dans l'arborescence du système de fichier, d'effectuer les manipulations de fichiers élémentaires (copier, effacer, déplacer..), d'utiliser l'éditeur de textes vi, de lancer des commandes et d'élaborer des scripts simples. Toutes ces manipulations sont réalisables à partir d'un terminal non graphique. Les travaux pratiques seront effectués sur des micro-ordinateurs se connectant sur des stations Sun Microsystems grâce à un client telnet. Il y a environ 130 commandes exploitables par un utilisateur avancé de UNIX (qui ne soit pas un développeur ou un administrateur système). A l'issu de ce cours, 80 commandes environs auront été étudiées. Ces 80 commandes représentent un corpus de base qui permet, à mon avis d'être complètement autonome avec UNIX. En effet, UNIX est un environnement de développement et un grand nombre de commandes sont très rarement utilisées de façon courante. Une classification des commandes est fournie en annexe G
9 HISTORIQUE D'UNIX Le système précurseur d'unix est Multics. Il s'agissait d'un projet en partenariat entre General Electrics, le MIT (Massachusset Institute of Technology) et les laboratoires Bell. Ce projet a été initié en Devant la lenteur de la progression, les laboratoires Bell se sont retirés du projet. En 1971, Ken Thompson des laboratoires Bell écrit la première version de UNIX. Cette version était écrite en assembleur. L'objectif était de créer un environnement multiutilisateurs et multitâches adapté aux besoins des programmeurs -donc offrant de nombreux outils. En 1973, Dennie Ritchie reécrit entièrement UNIX en langage C, un langage, car l'assembleur était trop dépendant de l'architecture matérielle des machines pour que ce système soit réellement portable. Le système rencontre un grand succès auprès des informaticiens des Laboratoires Bell. Dans les années qui suivirent, les sources du système furent distribué auprès des universités qui l'adoptèrent très rapidement. UNIX était, du fait de la disponibilité du code source, une plateforme idéale pour l'enseignement. Le monde universitaire apporta beaucoup d'améliorations au système UNIX avec de nouveaux programmes, de nouveaux shells, etc. Du fait de la distribution initiale du code source, on ne peut pas réellement parler d'unix mais plutôt de la famille des UNIX. En effet, il existe différentes versions de ce système qui ont été élaborées soit par des universités, soit par des constructeurs (voir en annexe J l'évolution des systèmes UNIX). Chaque UNIX présente quelques particularités et spécificités surtout sensibles pour l'administrateur système. On distingue ainsi deux grands types de systèmes UNIX souvent catégorisés en UNIX système V et UNIX BSD. Le premier est issu de versions commerciales tandis que le second (BSD) est issu de versions universitaires. On trouvera une histoire d'unix à l'adresse suivante: Les développements du système originel étaient confiés aux laboratoires USL (UNIX System Laboratories). En 1993 USL a été racheté à AT&T par Novell. Puis vers la fin 1993, Novell à cédé les droits liés au nom UNIX au consortium X/Open Company Limited. C'est X/Open qui possède la licence du nom UNIX. Des vendeurs de logiciels qui souhaitent vendre un système estampillé "UNIX" doivent livrer un système se conformant aux SPEC Ce sont 1170 spécifications qui décrivent les caractéristiques de tout système UNIX. Les SPEC 1170 sont devenues une nouvelle appellation: UNIX95 ou "single UNIX" et maintenant UNIX 98. L'objectif est de standardiser UNIX pour lutter contre l'émergence de windows NT. Parts de marchés des OS windows 95 windows NT windows 3.1/DOS MacOS Unix Source SVM
10 SYSTEME D'EXPLOITATION Un système d'exploitation permet de procurer une machine virtuelle à l'utilisateur et au programmeur qui n'auront plus à se soucier du fonctionnement intime de la machine. Par exemple si l'on souhaite copier un fichier d'une disquette vers un disque dur on fera: sur Macintosh et windows 95/98 : clic-zip sur PC -DOS : copy a:fichier c: sur UNIX : cp /mnt/fichier. L'utilisateur n'a pas à connaître le nombre d'octets du fichier, le nombre de secteurs de la disquette, la localisation physique des fichiers. Il n'a pas non plus à gérer la mise en route des moteurs de la disquette et du disque dur, le déplacement des têtes de lecture... Le système d'exploitation s'en charge (tant mieux!). Le système d'exploitation est également chargé de gérer la machine, d'ordonnancer les tâches. On remarquera que quel que soit le système d'exploitation, les manipulations restent fondamentalement les mêmes. En effet les ordinateurs sont tous construits suivant un modèle très similaire (CPU, mémoire de masse, périphériques, système de fichier, etc.) ce qui implique des manipulations similaires. utilisateur Shell Commandes intégrées ls vi Noyau UNIX et drivers Fig. 1 - Relation entre noyau UNIX, shell et programme Chaque système d'exploitation possède un interpréteur de commandes qui est chargé de réaliser une interface entre utilisateur et système. Cet interpréteur de commande s'appelle le shell sous UNIX. La première manifestation de l'interpréteur de commande est le prompt, il attend en effet que l'on tape un ordre suivi d'un retour chariot. A ce moment, si l'ordre est correct, l'interpréteur de commande laisse la main au programme appelé par l'utilisateur. Une fois le programme utilisateur terminé, l'interpréteur de commande reprendra la main et attendra de nouveaux ordres. Sous UNIX, il existe différents shells. Le premier a été le Bourne shell (sh). Puis apparurent d'autres shells comme le C shell (csh), le Korn shell, le Bourne Again Shell, etc. Le shell d'unix est très élaboré avec de nombreuses fonctions, des possibilités de programmation... autant de choses qui le rendent indispensable dès qu'on arrive à le maîtriser. Un programme écrit en utilisant les commandes du shell s'appelle un script
11 SPECIFICITES, CARACTERISTIQUES, PHILOSOPHIE Dans ce chapitre, seront évoqués quelques particularités d'unix qui le rendent parfois difficile d'approche pour les utilisateurs de microordinateurs. Spécificités Tout d'abord UNIX est un système multi-utilisateur, il est donc nécessaire de procéder à une phase d'identification et d'authentification avant de pouvoir travailler. On parle de compte utilisateur. Le système est cloisonné, c'est à dire que chaque utilisateur a son propre espace de travail en ce qui concerne les fichiers. Il existe également un utilisateur appellé root ou super-utilisateur qui possède des droits étendus. Ce compte est généralement réservé pour l'administration du système UNIX. UNIX utilise abondament la ligne de commande. Ceci signifie qu'il est nécessaire de saisir le nom des programmes que l'on souhaite lancer. Les commandes sont généralement construites sur le même modèle: commande [options] argument1 argument2 argumentn commande est le nom du programme que l'on appelle options permet de modifier le comportement du programme. Le plus souvent les options sont données avec des tirets argument1 est le nom du fichier sur lequel on souhaite travailler. A noter le fait que l'on peut travailler sur plusieurs fichiers sbr [10]%grep -v ocollin /etc/passwd Dans l'exemple ci-dessus on utilise la commande grep avec l'option -v. Le premier paramètre est ocollin et /etc/passwd est le second paramètre. Une dernière chose, UNIX fait la différence entre les minuscules et les majuscules. Il est impératif de faire attention à ce que l'on saisit. Caractéristiques techniques d'unix Multi-utilisateur (multi-user) et multitâche (multi-tasking) : plusieurs utilisateurs peuvent accéder simultanément au système et exécuter chacun plusieurs programmes. Temps partagé (time sharing) : c'est à dire que les ressources du processeur et du système sont réparties entre les utilisateurs. Entrées/Sorties intégrées au système de fichiers : les périphériques sont représentés par des fichiers - cela rend le système indépendant du matériel et en assure la portabilité - l'accès aux périphériques est donc identique à l'accès aux fichiers ordinaires. Swapper : un mécanisme d'échange entre mémoire RAM et disque dur permet la gestion de la RAM pour l'exécution des processus. Processus réentrants : les processus exécutant le même programme utilisent une seule copie de celuici en RAM
12 Philosophie Le système a été conçu par des programmeurs pour des programmeurs, il est optimisé pour le développement et les tests et à ce titre regorge de nombreux utilitaires de toutes sortes. Chaque programme fait une chose simple, c'est à dire une tâche élémentaire. La sortie de chaque programme doit être réutilisable par un autre programme. Cela permet de créer des outils complexes en combinant plusieurs outils simples. Il existe une interface simple et homogène pour tous les périphériques : tout est fichier, y compris les périphériques qui sont traités comme des fichiers spéciaux. Il est ainsi aisé de procéder à des redirections entre les processus. En ce qui concerne les fichiers spéciaux dédiés aux périphériques, l'avantage est énorme car pour tout programme requierant un nom de fichier peut recevoir également le fichier spécial d'un périphérique. Pour une discussion plus en profondeur, consulter l'article de Ritchie et Thompson intitulé "The Unix Time-Sharing System" disponible à l'adresse suivante: Il est intéressant de constater qu'unix a été développé sans objectifs directeurs, il s'agissait juste de mettre en place un environnement qui satisfasse les besoins d'un programmeur, en l'occurrence K. Thompson
13 CONNEXION Connexion-Mot de passe Connexion UNIX est un système multi-utilisateurs., l'accès à la machine UNIX doit donc être contrôlé. C'est ce que l'on appelle se loguer sur une machine. Quand on s'assoit devant une station UNIX, le premier message qu'elle affiche est : login: Il faut taper votre nom d'utilisateur (ce nom aura préalablement défini lors de l'ouverture d'un compte avec l'administrateur système). Avant de taper votre nom et votre mot de passe, n'oubliez pas qu'unix fait la différence entre majuscules et minuscules. Une fois votre nom saisi, le système affiche alors le message : password: Vous devez alors taper votre mot de passe. Si la machine valide ce mot de passe, elle lancera l'environnement de travail multifenêtré ou bien le shell de votre choix. On se retrouve dans un répertoire personnel, plus souvent appelé home directory. SunOS 5.6 login: ocollin Password: Last login: Tue May 11 16:51:52 from calvin.sb-roscof Sun Microsystems Inc. SunOS 5.6 Generic August 1997 iznogoud [1]% Mot de passe N'oubliez pas que le mot de passe est votre seule protection contre les intrusions et qu'il s'agit de la seule façon de protéger vos données. Voici quelques conseils qui vous permettront de trouver un mot de passe le plus sûr possible. utiliser des majuscules et des minuscules. utiliser des chiffres et des caractères spéciaux. 7 à 8 caractères de long. mnémonique. concaténer des mots pour en créer un autre. Voici quelques conseils sur ce qu'il ne faut pas faire. utiliser un mot de passe que l'on peut trouver dans un dictionnaire. utiliser son nom de famille, un nom de lieu. utiliser un mot trop court Toutes ces recommandations vous permettont d'assurer votre sécurité et celle des autres utilisateurs. Changer de mot de passe Pour changer son mot de passe, il faut utiliser la commande passwd. Le programme demande alors l'ancien mot de passe puis deux fois le nouveau. Si le déroulement est normal, le nouveau mot de passe sera utilisé pour une prochaine session
14 LE SYSTEME DE FICHIER Il s'agit d'un élément fondamental du système UNIX et de tout système d'exploitation. Avant d'aborder l'organisation des fichiers UNIX, il faut tout d'abord effectuer un rappel sur ce que sont exactement les fichiers et répertoires ainsi que sur les permissions associés aux fichiers et répertoires dans UNIX. Les fichiers Un fichier est une ''structure'' contenant du texte ou bien un programme. Dans le cas de fichiers texte on peut bien sûr les afficher à l'écran. Il faut également noter le fait que les répertoires sont des fichiers particuliers qui contiennent des noms de fichiers. Le nom d'un fichier est unique dans le répertoire dans lequel il se trouve. Par contre il est possible d'avoir des fichiers différents situés dans des répertoires différent et ayant le même nom. Le nom d'un fichier peut faire jusqu'à 256 caractères. Il faut éviter d'utiliser les caractères - *? < >! / \. L'espace est à proscrire, attention donc lors de transferts de fichiers à partir de Mac ou de PC. UNIX fait la différence majuscule/minuscule et par conséquent les fichiers Toto et toto sont différents.il existe des fichiers dont le nom commence par un point qui sont des fichiers ''cachés'' que le système n'affiche pas normalement. Il s'agit essentiellement de fichiers de configuration. UNIX étant un système multi-utilisateurs, chaque fichier est caractérisé par des droits d'accès. Les droits d'accès sont établis pour 3 catégories : l'utilisateur (user) : c'est le propriétaire du répertoire ou du fichier. le groupe (group): les groupes sont définis par l'administrateur du système. les autres (others): Il existe une quatrième catégorie (all) qui regroupe les trois autres. Les droits d'accès sont de 4 types : lecture (r): le fait de pouvoir afficher un fichier. écriture (w): le fait de pouvoir modifier et copier un fichier. exécution (x) : le fait de pouvoir exécuter un fichier (script ou programme). aucun (-) : on ne peut rien faire, la protection est totale. On combine ensuite les droits d'accès (r,w,x) pour les 3 classes (u,g,o,a) pour obtenir les droits d'accès du fichier ou du répertoire. Ces droits d'accès sont visibles grâce à la commande ls -l. Voici un exemple de sortie de la commande ls -l : -rw-r--r-- 1 collin 4024 Aug 3 16 :19 introduction.aux -rw-r--r-- 1 collin Aug 3 16 :19 introduction.dvi -rw-r--r-- 1 collin 7130 Aug 3 16 :19 introduction.log -rw-r--r-- 1 collin Aug 3 16 :19 introduction.ps -rw-r--r-- 1 collin Aug 3 16 :25 introduction.tex Les droits d'accès des fichiers introduction.* sont donnés par la chaîne -rw-r--r--. Il s'agit de fichiers autorisés en lecture pour tout le monde et autorisé en écriture pour l'utilisateur
15 type de fichier d rwxr-xr-x permissions des autres permissions du groupe permissions du possesseur Principes de lecture des droits d'accès d'un fichier Nous étudierons le principe de lecture des droits d'accès d'un fichier en prenant comme exemple la chaîne drwxr-xr-x.la première lettre (drwxr-xr-x) permet de déterminer le type de fichier. Il y a 7 types de fichiers dont 2 principaux : - un fichier ordinaire. d un répertoire (directory). l un lien sur un autre fichier ou répertoire. s un ''socket'' utilisé pour les communications. b un fichier spécial de type bloc (pilote de disque). c un fichier spécial de type caractère (pilote de terminal). p un fichier spécial FIFO Les trois lettres suivantes (drwxr-xr-x) correspondent aux droits de l'utilisateur : écriture (w), lecture (r), exécution (x), aucun droit (-). Dans ce cas l'utilisateur peut à la fois lire, écrire et exécuter le fichier. Les trois lettres suivantes (drwxr-xr-x) correspondent aux droits du groupe qui peut lire et exécuter le fichier. Enfin les trois dernières lettres (drwxr-xr-x) correspondent aux droits des autres qui peuvent lire et exécuter le fichier. Les droits d'accès sont bien sûr modifiables à volonté par le propriétaire d'un fichier. On peut souhaiter mettre un fichier disponible en lecture pour tout le groupe. On peut vouloir rendre un fichier de commandes directement exécutable par le shell. Toutes ces modifications sont rendues possibles grâce à la commande chmod. Son utilisation est la suivante : chmod utilisateur opération permission nom_du_fichier Les options utilisateur, opération et permission peuvent prendre les valeurs suivantes: Option Utilisateur Opération Permissions Valeurs u,g,o,a (utilisateur, groupe; autres, tous) +,-, = (ajouter, retirer,laisser tel quel) r,w,x (lecture, écriture, exécution) Voici un exemple d'utilisation de la commande chmod. On utilise la commande ls pour visualiser les modications provoquées par chmod. iznogoud [30]%ls -l total 3 -rwxr-x--x 1 ocollin 1223 Jun majgcg.pl* iznogoud [31]%chmod a+r majgcg.pl iznogoud [32]%ls -l total 3 -rwxr-xr-x 1 ocollin 1223 Jun majgcg.pl* iznogoud [33]%chmod g+w majgcg.pl iznogoud [34]%ls -l
16 total 3 -rwxrwx--x 1 ocollin 1223 Jun majgcg.pl* iznogoud [35]%chmod go-x majgcg.pl iznogoud [36]%ls -l total 3 -rwxr ocollin 1223 Jun majgcg.pl* En général, un fichier appartient à celui qui l'a créé. Il est toutefois possible de changer l'appartenance d'un fichier grâce à la commande chown. Toutefois, étant donné le caractère spécial de la manipulation, il faut être superutilisateur pour exécuter la modification. Il existe une autre méthode pour spécifier les droits d'accès aux fichiers. Au lieu d'utiliser r,w,x on utilisera un code octal. Cette méthode est moins conviviale pour le néophyte mais plus puissante. Droit d'accès aux fichiers droits binaire octal x w wx r r-x rw rwx Un exemple d'utilisation de cette méthode est donné ci-dessous: olrik [6]%ls -l total 3 -rwxr ocollin 1223 Jun majgcg.pl* olrik [7]%chmod 777 majgcg.pl olrik [8]%ls -l total 3 -rwxrwxrwx 1 ocollin olrik [9]%chmod 744 majgcg.pl olrik [10]%ls -l total 3 -rwxr--r-- 1 ocollin 1223 Jun majgcg.pl* 1223 Jun majgcg.pl* L'arborescence Dans UNIX, ainsi que dans les autres systèmes d'exploitation, les fichiers sont organisés de façon hiérarchique. Ils sont rangés dans des répertoires qui peuvent eux-mêmes contenir des répertoires. Le système UNIX possède une arborescence de fichiers quasi-standardisée. Il existe toutefois des petites différences entre les arborescences de l'unix BSD et l'unix système V. L'étude de l'organisation de l'arborescence permet de pouvoir retrouver plus facilement certains types de fichiers. La structure de l'arborescence : / est la racine. C'est la base du système de fichiers. Tous les répertoires sont contenus dans la racine. /bin est le répertoire contenant les binaires (exécutables) des commandes. Ces commandes font partie du système UNIX et de ses utilitaires. Sur SUN ce répertoire possède un lien vers /usr/bin. /dev contient les fichiers spéciaux relatifs aux périphériques (devices) tels que disques, lecteurs de disquettes, lecteurs de bandes, lecteur de CD-ROM, etc. /etc contient les fichiers de configuration et d'administration du système ainsi que des exécutables. /lib contient les bibliothèques des langages de programmation. Sur SUN il y a un lien vers le répertoire /usr/lib. /lost+found est le répertoire des fichiers perdus à l'occasion d'erreurs disque où de problèmes systèmes. /mnt est le répertoire réservé au montage temporaire de partitions de disque
17 /usr contient en général les sous-répertoires pour le spooling, le courrier, les programmes locaux, les exécutables des commandes utilisateurs. /tmp est un répertoire disponible pour tous les utilisateurs permettant le stockage de fichiers temporaires. A chaque redémarrage du système le contenu de ce répertoire est effacé. /home est le répertoire dans lequel se trouvent les répertoires des utilisateurs (home directory). /var contient des fichiers et des répertoires exploités par l'administrateur du système. / /dev /etc /sbin /home /tmp /usr /var defau Rc.d Rc1. Rc3. Init Rc0. Rc2. Cron adm lp mail spool Uucp lp Fig Organisation de l'arborescence UNIX Donner un nom à un fichier Pour nommer un fichier, il existe deux façons de procéder. On peut le nommer de façon absolue ou bien de façon relative. La méthode absolue consiste à donner le chemin exact qu'il faut parcourir dans l'arborescence afin d'arriver au fichier. exemple : /home/info/olivier/cours/introduction.tex On remarque qu'un nom absolu commence toujours par la racine puisque la racine (/) est la base du système de fichier. La désignation relative s'effectue par rapport au répertoire dans lequel on se trouve. Les règles utilisées pour désigner des fichiers sont également valables pour les répertoires. Nom absolu Commence toujours par / Toujours le même Nom relatif Jamais Fonction du répertoire courant Se déplacer dans l'arborescence UNIX Pour changer de répertoire on utilise la commande cd (change directory) suivie du nom du répertoire dans lequel on souhaite se rendre. Un répertoire UNIX possède deux fichiers particuliers :. et.. Le premier est en fait un lien sur le répertoire courant tandis que le second pointe sur le répertoire supérieur dans la hiérarchie du système de fichier. Par conséquent, si on tape cd.. on remonte vers la racine et l'on se retrouve dans le répertoire immédiatement supérieur
18 cd rep1 / cd.. rep1 rep2 cd.. cd. rep3 rep4 On peut s'étonner de l'utilité du fichier. puisque la commande cd. ne provoque aucun déplacement. On l'utilise pour forcer le système à considérer le répertoire courant comme point de départ. Répertoire courant Il est possible de s'égarer dans la hiérarchie des fichiers. A ce moment, il faut utiliser la commande pwd qui va afficher le nom du répertoire courant. D'autre part, si l'on souhaite retourner dans son home directory il suffit de taper cd sans spécifier aucun paramètre. iznogoud [15]%pwd /etc iznogoud [16]%cd /util2/si/olivier iznogoud [17]% on se trouve dans le répertoire etc retour au home Lister les fichiers La commande ls permet de d'afficher le nom des fichiers contenus dans un répertoire. Si on l'utilise sans paramètre, ls n'affiche que le nom des fichiers. Toutefois on peut obtenir des renseignements plus précis sur la taille, la date, l'appartenance, les droits d'accès d'un fichier en utilisant la commande ls -l. iznogoud [4]%ls degompop* passwd.awk toto* du.resultats rhosts tous Il existe de nombreuses options pour utiliser la commande ls. Voici l'éventail de toutes les options possibles: ls [ -abccdffgillmnopqrrstux1 ] Les options les plus intéressantes de la commande ls sont les suivantes: Option Signification -a affiche tous les fichiers, même les fichiers cachés -F ajoute des signes permettant de différencier les exécutables (*), les répertoires (/), les liens symboliques (@) -l format long avec les permissions, le propriétaire, la taille, la date, etc. -R liste les sous-répertoires s'ils existent -s affiche la taille des fichiers en blocs -t affiche en fonction de la date de dernière modification
19 Bien sûr, il est possible de combiner les options entre elles comme dans l'exemple suivant dans lequel on demande un listing long de tous les fichiers, même des fichiers cachés. iznogoud [22]%ls -la total 420 drwxr-x--- 2 ocollin 512 Sep / drwxr-xr-x 62 ocollin 6656 Jun 11 14:18../ -rw-rw-rw- 1 ocollin Sep LogoSFNBok -rw-rw-rw- 1 ocollin Sep LogoSFnoirfondblanc -rw-rw-rw- 1 ocollin Sep OeilSF -rw-rw-rw- 1 ocollin Sep logojrsignok Création d'un fichier Il existe plusieurs méthodes pour créer un fichier: Création avec un éditeur de texte Redirection d'une sortie en utilisant le caractère de redirection > Avec la commande touch Les deux dernières méthodes sont illustrées dans l'exemple ci-dessous: iznogoud [18]%ls iznogoud [19]%cat ~/.login > sortie iznogoud [20]%ls sortie iznogoud [21]%touch sortie2 iznogoud [22]%ls sortie sortie2 Copier un fichier Pour copier (dupliquer) un fichier on utilise la commande cp comme dans l'exemple ci-dessous qui copie le fichier mailcheck dans le fichier mailcheck.bis. olrik [67]%cp mailcheck mailcheck.bis Il est possible avec l'option -r de copier le contenu complet d'un répertoire. olrik [79]%cp -r spool spool2 Dans l'exemple ci-dessus le contenu complet du répertoire spool est copié dans le nouveau répertoire spool2. Renommer un fichier Pour renommer un fichier on utilise la commande mv comme dans l'exemple ci-dessous qui renomme le fichier nba.awk en nba.old. olrik [55]%mv nba.awk nba.old Effacer un fichier On efface un fichier grâce à la commande rm. Le fichier sera effacé si l'on possède bien les droits en écriture. Pour effacer un groupe de fichier il est possible d'utiliser les caractères de substitution (*,?) proposés par le shell. Par exemple rm * efface tous les fichiers visibles d'un répertoire. Prudence donc en manipulant les caractères de substitution. Pour éviter les catastrophes on peut utiliser la commande ls qui permet de voir sur quels fichiers s'appliquera la commande d'effacement. En général, il existe un alias vers la commande rm -i qui demande confirmation avant effacement
20 iznogoud [39]%ls commande* majgcg.pl* utilisateurs utilisateurs.sav iznogoud [40]%rm utilisateurs.sav rm: remove utilisateurs.sav (yes/no)? y iznogoud [41]%ls commande* majgcg.pl* utilisateurs Création et effacement d'un répertoire On crée un répertoire avec la commande mkdir nom du répertoire. Ceci a pour effet de créer le répertoire avec les droits d'accès de l'utilisateur. Ces droits d'accès pourront être bien sûr modifiés par le propriétaire du répertoire avec la commande chmod. Le répertoire créé sera effacé par la commande rmdir. Le répertoire sera effacé s'il est vide de tout fichier ou répertoire. Si l'on souhaite effacer un répertoire et son contenu on utilise la commande d'effacement récursif rm -r nom_du_répertoire. Attention! Tout le contenu sera effacé, il faut manipuler cette commande avec précautions afin d'éviter de perdre des fichiers importants. iznogoud [28]%pwd /util2/si/olivier iznogoud [29]%mkdir repertoire iznogoud [30]%cd repertoire /util2/si/olivier/repertoire iznogoud [31]%mkdir /util2/si/olivier/repertoire2/sousrep mkdir: Failed to make directory "/util2/si/olivier/repertoire2/sousrep"; No such file or directory iznogoud [32]%mkdir -p /util2/si/olivier/repertoire2/sousrep iznogoud [33]%cd /util2/si/olivier/repertoire2/ /util2/si/olivier/repertoire2 iznogoud [34]%ls sousrep/ iznogoud [35]%rmdir sousrep iznogoud [36]%ls iznogoud [37]% On remarquera l'utilisation de l'option -p qui permet de créer de façon immédiate une arborescence de répertoires. Afficher le contenu d'un fichier On peut procéder de plusieurs façons pour afficher un fichier à l'écran. La première utilise la commande cat. Le fichier est intégralement affiché à l'écran. Si le fichier est gros, vous risquez de le voir défiler sur le terminal sans pouvoir lire quoi que ce soit. Il faut donc utiliser dans ce cas la commande more qui affiche le texte à l'écran page par page. Avec more pour avancer dans la lecture on peut utiliser la touche espace qui fait dérouler le texte d'une page ou bien la touche Retour Chariot qui fait avancer le texte d'une ligne. On peut s'assurer qu'un fichier est vraiment lisible grâce à la commande file qui est capable de reconnaître des fichiers textes, des sources en C, des répertoires, des scripts, des fichiers archivés, des exécutables, etc. Localiser un fichier Il est fréquent d'avoir à retrouver un fichier dont on se rappelle que le nom. L'exploration de l'arborescence à la recherche de ce fichier doit être confié à un utilitaire UNIX, find. Cette commande est très puissante car on peut y associer des actions à effectuer sur les fichiers que l'on a retrouvés. Cette puissance se traduit malheureusement par une syntaxe déroutante pour le débutant. Voici la façon la plus simple d'utiliser find iznogoud [37]%find. -name HCA.ps -print./hca.ps
21 find explore l'arborescence à partir du niveau spécifié par chemin et localise les fichiers répondant aux conditions. La condition la plus employée est -name nom_du_fichier. Il ne faut pas non plus oublier de spécifier la condition -print sinon find cherchera le fichier, le trouvera mais ne vous dira rien! Voici d'autres exemples : Pour trouver tous les fichiers portant l'extension.txt à partir du répertoire courant. olrik [2]%find. -name '*.txt' -print./cisco/_solaris/bin/help/_copyright.txt./cisco/_solaris/bin/help/_license.txt./morin/powerpc.txt./news/images.txt./rnsm/loumeau.txt./rnsm/luc.txt./notes/readme.txt./rep.txt./crack/crack-4.1/docs/readme.txt Pour trouver les fichiers de taille supérieure à 500 Ko olrik [7]% find. -size c -print Pour trouver les fichiers modifiés il y a plus de trois jours olrik [8]% find / -mtime +3 -print Ce ne sont que quelques exemples d'utilisation de cette commande extrêmement puissante. Pour plus d'information il faut penser à consulter le manuel en ligne expliqué dans le chapitre suivant
22 LE MANUEL EN LIGNE Le système UNIX est un des premiers systèmes à posséder une documentation en ligne. On remarquera que le manuel en ligne de UNIX n'est pas un complément à une quelconque documentation papier mais qu'il s'agit bien de la vraie documentation du système. On verra donc dans ce chapitre les multiples façons d'utiliser le manuel en ligne afin d'en tirer le maximum. On accède à la documentation grâce à la commande man. On l'utilise d'une façon très simple: %man sujet Les pages du manuel en ligne sont subdivisées en catégories suivant les différents types de personnes qu'elles intéresseront: utilisateurs, développeurs, administrateurs système, etc. Organisation du manuel Catégorie Contenu 1 commandes générales 2 appels systèmes 3 Bibliothèques 4 Périphériques 5 format des fichiers 6 jeux et démos 7 Troff 8 utilitaires de maintenance Par défaut man cherchera dans la section 1 du manuel à moins qu'on ne précise une section particulière avec man -s. Ce fonctionnement est illustré dans les deux exemples ci-dessous. olrik [13]%man passwd passwd(1) User Commands passwd(1) NAME passwd - change login password and password attributes olrik [12]%man -s 4 passwd Reformatting page. Wait... done passwd(4) File Formats passwd(4) NAME passwd - password file Pour obtenir de l'information concernant les différents fichiers disponibles dans les différentes sections du manuel sur une commande, on tape man -k ou bien apropos. olrik [20]%man -k passwd getpw getpw (3c) - get passwd entry from UID nispasswd nispasswd (1) - change NIS+ password information passwd passwd (1) - change login password and password attributes passwd passwd (4) - password file
23 pwconv pwconv (1m) ion from /etc/passwd - installs and updates /etc/shadow with informat yppasswd yppasswd (1) - change your network password in the NIS databa se La commande whatis (ou man -f) permet d'obtenir une description succinte d'une commande UNIX. olrik [24]%whatis passwd passwd passwd (1) - change login password and password attributes passwd passwd (4) - password file Pour obtenir toutes les informations sur un sujet, utiliser la commande whereis comme ci-dessous: olrik [29]%whereis passwd passwd: /etc/passwd /usr/bin/passwd /usr/man/man1/passwd.1 /usr/man/man4/passwd.4 On obtient ainsi l'emplacement des programmes et des fichiers de documentation de la commande
24 LES IMPRESSIONS Sous UNIX, en fonction du système dont on dispose (Système V ou BSD) les commandes d'impressions ne seront pas exactement les mêmes et elles feront l'objet d'une étude séparée. Les impressions sous UNIX se font sous le contrôle du démon d'impression qui est chargé du traitement des documents à imprimer vers les différentes imprimantes accessibles par le système. Chaque système défini toujours une imprimante par défaut vers laquelle les travaux d'impressions sont envoyés quand aucune imprimante n'est spécifiée. Le nom de l'imprimante par défaut est contenu dans une variable d'environnement: PRINTER sous UNIX BSD LPDEST sous UNIX Système V Ces variables sont initialisées avec la commande setenv dans le cas du C shell. Impression BSD Sur ce type de système, pour lancer une impression on utilisera la commande : lpr nom_du_fichier. Sur des sites possédant plusieurs imprimantes connectées, il est nécessaire de préciser vers quelle imprimante sera dirigé le fichier à imprimer grâce à l'option -Pnom_de_l'imprimante. Une fois que le fichier est envoyé à l'imprimante, on peut consulter la file d'attente de cette même imprimante avec la commande lpq (ou lpq -Pnom_de_l'imprimante). sbr [11]%lpr utilisateurs sbr [12]%lpq lp is ready and printing Rank Owner Job Files Total Size active ocollin 571 utilisateurs 1418 bytes sbr [15]%lpr majgcg.pl sbr [16]%lpq lp is ready and printing Rank Owner Job Files Total Size active ocollin 571 utilisateurs 1418 bytes 1st ocollin 573 majgcg.pl 1223 bytes sbr [17]%lprm 571 dfa571sbr dequeued dfb571sbr dequeued cfa571sbr dequeued sbr [18]%lpq Rank Owner Job Files Total Size 1st ocollin 573 majgcg.pl 1223 bytes sbr [19]%lpr -Pspeed utilisateurs On peut en cas d'erreur annuler l'impression en tapant lprm numéro_job. Pour aller plus vite dans le cas ou l'on a lancé qu'une seule impression on peut faire lprm nom_d'utilisateur. Ceci évite d'avoir à faire lpq pour obtenir le numéro de l'impression à éliminer. Impression Système V Avec un UNIX basé sur le système V comme Solaris, les choses se passeront d'une façon légèrement différente. On demande l'impression avec la commande lp nom_du_fichier. Pour spécifier une autre imprimante on utilisera l'option -d nom_de_l'imprimante. La file d'attente est consultable avec la commande lpstat et l'annulation de travaux d'impressions se fait avec la commande cancel. olrik [28]%lp utilisateurs request id is SPARCprinter-6392 (1 file(s)) olrik [29]%lp commande request id is SPARCprinter-6393 (1 file(s)) olrik [30]%lpstat SPARCprinter-392 olrik!ocollin 195 May 27 11:57 on SPARCprinter SPARCprinter-393 olrik!ocollin 1089 May 27 11:
25 olrik [31]%cancel SPARCprinter-392 request "SPARCprinter-392" cancelled
26 LES SHELLS Le shell permet une interface entre utilisateur et le système UNIX. Le shell est un programme comme un autre si bien qu'il est très facile de le changer. Ceci a entrainé l'apparition de différents shells tels que le Bourne shell (sh), le C shell (csh), le Korn shell (ksh), le ''Bourne-again'' shell (bash), le tcsh. Le shell accepte les lignes de commandes, vérifie la syntaxe, appelle les commandes UNIX appropriées et récupère la main quand la commande a été exécutée. Ses fonctionnalités nous permettront donc: une utilisation interactive d'unix la création d'un environnement particulier l'élaboration de programmes (scripts) Dans le tableau ci-dessous sont présentés les shells les plus populaires Shell Binaires Commentaires Fichiers spéciaux Bourne shell /bin/sh Le plus simple.profile Bourne Again shell /bin/bash Remplacant GNU du Bourne shell.bash_profile.bashrc Korn shell /bin/ksh Le successeur du Bourne shell.profile C shell /bin/csh Un shell avec une syntaxe basée sur le langage C.cshrc.login Toronto C shell /bin/tcsh Le C shell amélioré.tcshrc.cshrc.logout Z shell /bin/zsh. On distingue deux familles de shells, les shells issus du Bourne shell et les shells issus du C-shell plutôt présents sur les systèmes BSD. Famille Bourne Bourne shell Korn shell Bourne again shell Z shell Famille C C shell TC shell Quelques spécificités des shells sont indiquées dans le tablau ci-dessous: Shell jobs Histo aliases édition flèche Interface programmation Sh non Non non non non Inexistante sûre (standard) Csh oui Oui oui non non Moyenne à déconseiller Tcsh oui Oui oui oui oui Bonne à déconseiller Ksh oui Oui oui oui non Bonne normalisée Bash oui Oui oui oui oui Bonne normalisée Zsh oui Oui oui oui Oui Excellente normalisée+extensions Chaque shell se caractérise par une syntaxe différente. Par exemple en ce qui concerne l'affectation des variables, on procédera de la façon suivante: set variable valeur en C shell variable = valeur en Bourne shell On trouvera à l'adresse suivante une discussion sur les mérites relatifs des différents shells. Dans le choix d'un shell interviendront plusieurs paramètres Les shells disponibles sur la machine L'expérience antérieure Le fait de devoir programmer ou non des scripts portables
27 En général si l'on souhaite écrire des scripts portables, il est préférable d'utiliser le Bourne shell ou bien un de ses dérivés étant donné qu'il est présent sur tous les systèmes. Dans le cadre d'un cours d'initiation, il s'agit plutôt d'une sensibilisation à la programmation du shell nous étudierons le C-shell qui est utilisé en standard pour les utilisateurs sur Sun. Le choix d'un shell pour la session est déterminé dans le fichier /etc/passwd. Un champ spécial de ce fichier donne le chemin vers le shell qui sera lancé au démarrage d'une session. sbr [1]%grep ocollin /etc/passwd ocollin:vnlhpd9ujmie6:101:100:olivier.collin:/util2/si/olivier:/bin/csh Toutefois, si au cours d'une session on souhaite changer de shell, il suffit de taper le nom du shell souhaité. Dans l'exemple ci-dessous on montre la commutation entre shells. calvin 1% sh $ tcsh calvin 1% bash bash$ ksh $ exit bash$ exit exit calvin 2% exit exit $ exit calvin 2% Dans cet exemple on est passé du Cshell au Bourne shell, puis au Toronto C Shell, puis au Bourne again shell, puis au Korn shell. Pour quitter chaque shell on a tapé la commande exit. On remarquera les prompts différents suivant les shells: % avec C-shell et TC-shell $ avec Bourne, Bash et Korn shell
28 LE C SHELL Dans ce chapitre on présentera le C shell en tant qu'interpréteur de commandes et gestionnaire d'environnement. Les fonctionnalités du C shell sont les suivantes: redirection des entrées/sorties utilisation des métacaractères existence de variables pour personnaliser son environnement existence d'un historique des commandes possibilité de création d'alias existence de structures de contrôle pour l'écriture de programmes contrôle des processus Les fichiers spéciaux Le C shell utilise des fichiers spéciaux pour contrôler la mise en place des variables de l'environnement de l'utilisateur. Ce sont ces fichiers qu'il faut modifier pour tirer le meilleur parti du shell. Les fichiers spéciaux sont les suivants:.cshrc ce fichier est lu et exécuté chaque fois qu'un shell est lancé (un exemple est fourni en annexe H).login ce fichier est lu et exécuté après le.cshrc.logout ce fichier est lu et exécuté à chaque logout Les fichiers.cshrc et.login sont lus à chaque lancement d'un shell (donc d'une session). Le fichier.logout lui est lu à chaque fin de shell (donc de session). Tous ces fichiers vont contenir des instructions à destination du C shell. Ils seront constitués d'appels aux variables prédéfinies ainsi qu'aux variables d'environnement du C shell. Les variables prédéfinies du C shell Ces variables sont initialisées à chaque session du shell. Elles permettent de contrôler l'environnement de l'utilisateur. En voici la liste: Variable argv cdpath cwd echo fignore filec hardpaths histchars history home ignoreeof nobeep noclobber noglob nonomatch notify path prompt Utilisation la liste des arguments passées à la commande courante liste des répertoires à chercher lors de l'utilisation de cd, popd et pushd chemin du répertoire courant Répète chaque commande avant utilisation Liste des extensions de noms de fichier à ignorer dans le mode terminaison de noms de fichier Active le mode terminaison de noms de fichiers Force dirs à afficher le véritable chemin de fichiers dans le cas de liens symboliques La chaîne de caractère à utiliser dans le cas des rappels de commandes ou bien dans le cas des substitutions Le nombre de commandes à mémoriser pour l'historique Le répertoire de base de l'utilisateur Ignore une fin de fichier (EOF) produite à partir du terminal Inactive le beep dans le cas d'ambiguités en mode terminaison de nom de fichier Empêche la redirection vers un fichier existant Inactive la terminaison des noms de fichiers Considère les métacaractères de noms de fichiers de façon littérale Prévient l'utilisateur immédiatement lorsque des travaux se terminent plutôt que d'attendre le prochain prompt Liste des chemins à explorer pour chercher une commande à exécuter Indique quel sera le caractère du prompt
29 savehist shell status term time user verbose Nombre de commandes à sauver dans le fichier.history au moment du logout Donne le chemin du shell utilisé (/bin/csh) Donne le code de sortie de la dernière commande (O=succès, 1=échec) Nom du type du terminal Nom de login de l'utilisateur Indique la commande après substitution Pour les initialiser les variables prédéfinies on procède de la façon suivante: % set var=valeur % set home=/util/si/olivier Pour les inactiver on utilise la commande unset. En utilisant la commande set, on affiche les valeurs des différentes variables utilisées par le shell comme indiqué dans l'exemple ci-dessous: olrik [10]%set argv () cdpath /util2/si/olivier cwd /util2/si/olivier filec history 40 home /util2/si/olivier host olrik ignoreeof lpath (/usr/local/x11r5/bin /home/newsprint/bin /usr/openwin/share/xnews/clien t /usr/bin/x11 /usr/openwin/bin/xview /usr/openwin/bin) mychoice openwin noclobber path (/usr/local/x11r5/bin /home/newsprint/bin /usr/openwin/share/xnews/clien t /usr/bin/x11 /usr/openwin/bin/xview /usr/openwin/bin /util2/si/olivier/bin /us r/local /usr/local/bin /usr/ucb /usr/bin /usr/etc /usr/lang /usr/ccs/bin /usr/sb in/ /home/local/bin /opt/lwperl5/lib/perl5 /usr/local/lib/ghostscript /opt/fsfgm ake/bin/ /opt/gcc2721/bin /opt/fsflibg++/bin /opt/fsfemacs/bin /opt/minerva/bin /opt/fsfbison/bin /opt/acrobat3/bin /opt/fsfgzip/bin /usr/sbin /usr/local/gmt/bi n /usr/local/gmt/lib /opt/latex/local/lib/texmf/bin/solaris /util2/si/olivier.) prompt olrik [!]% shell /bin/csh status 0 syst SunOS term ansi user ocollin On notera qu'il existe des variables contenant des valeurs (par exemple cdpath, path) alors que d'autres fonctionnent comme des drapeaux (par exemple noclobber, filec). Les variables d'environnement Ce sont des variables qui contiendront des informations spéciales comme le répertoire principal, la localisation de la boite à lettre, le type de terminal, etc. Ces données sont ensuite transmises aux programmes lancés par le shell afin qu'ils sachent dans quel contexte ils travaillent. Par exemple vi utilise la variable d'environnement TERM pour procéder à son affichage. Par convention ces variables sont toujours en majuscule. Pour initialiser ces variables on procède de la façon suivante: % setenv VAR valeur iznogoud [1]%echo $TERM xterm iznogoud [2]%setenv TERM vt100 iznogoud [3]%echo $TERM vt100 iznogoud [4]%
30 Variable HOME PATH TERM USER EDITOR EXINIT LOGNAME MAIL PRINTER PWD SHELL TERMCAP Signification Le répertoire de base de l'utilisateur Le chemin de recherche des commandes Le type du terminal Le nom de l'utilisateur L'éditeur par défaut Le nom de l'utilisateur Le fichier qui contient le courrier électronique L'imprimante par défaut Le répertoire courant Le chemin absolu du shell Le fichier de gestion du terminal Pour afficher toutes les variables d'environnement on utilise la commande env comme suit: olrik [12]%env HOME=/util2/si/olivier PATH=/usr/local/X11R5/bin:/home/newsprint/bin:/usr/openwin/share/xnews/client:/u sr/bin/x11:/usr/openwin/bin/xview:/usr/openwin/bin:/util2/si/olivier/bin:/usr/lo cal:/usr/local/bin:/usr/ucb:/usr/bin:/usr/etc:/usr/lang:/usr/ccs/bin:/usr/sbin/: /home/local/bin:/opt/lwperl5/lib/perl5:/usr/local/lib/ghostscript:/opt/fsfgmake/ bin/:/opt/gcc2721/bin:/opt/fsflibg++/bin:/opt/fsfemacs/bin:/opt/minerva/bin:/opt /FSFbison/bin:/opt/Acrobat3/bin:/opt/FSFgzip/bin:/usr/sbin:/usr/local/gmt/bin:/u sr/local/gmt/lib:/opt/latex/local/lib/texmf/bin/solaris:/util2/si/olivier:. LOGNAME=ocollin HZ=100 TERM=vt100 TZ=MET SHELL=/bin/csh MAIL=/var/mail/ocollin PWD=/util2/si/olivier USER=ocollin LD_LIBRARY_PATH=/opt/ARB/lib:/usr/lib/X11:/usr/openwin/lib DISPLAY=iznogoud:0 ARBHOME=/opt/ARB OPENWINHOME=/usr/openwin GDE_HELP_DIR=/home/GDE/GDEHELP MANPATH=/opt/latex/local/lib/texmf/man:/usr/man:/usr/local/man:/opt/LWperl5/man: /util/si/olivier/tk-b11.02/doc/man2:/usr/openwin/man:/usr/local/nmh/man NLSPATH=/usr/local/nls/msg/%L/%N.cat LANG=C LC_TYPE=iso_8859_1 COURRIER=/util2/si/olivier/Courrier FMTIMP=/usr/openwin/share/xnews/client/mp/mp.pro.l.ps.rff LISTE=/util2/si/olivier/liste.imp TEXMFUPD=/opt/latex/local/lib TEXMFDIR=/opt/latex/local/lib/texmf Parmi les variables d'environnement, deux revêtent une importance particulière. Il s'agit des variables TERM et PATH. Sans ces deux variables correctement positionnées il devient quasiment impossible de travailler. Aucune commande ne peut être trouvée et l'affichage devient invivable. Terminaison des noms de fichiers Le C shell peut compléter des noms de fichiers ou d'utilisateurs lorsqu'on tape une commande. Cette fonctionnalité est activée en positionnant la variable filec en faisant set filec. Le plus souvent ce sera fait dans le fichier.cshrc. Il suffit ensuite de taper le début du nom d'un fichier et de taper ESCAPE pour que le shell complète le nom du fichier. Si au lieu de taper ESCAPE on tape Ctrl-D (EOF), le shell affiche les noms de fichiers possibles pour compléter. iznogoud [50]%cd co^d code/ comptage/ config-travail/ cours/ iznogoud [50]%cd conf^d config-travail/ iznogoud [50]%cd config-travail (ici j'avais pressé la touche Escape après conf)
31 La redirection des entrées-sorties Le C shell, comme la plupart des shells, définit 3 types d'entrées/sorties par défaut: L'entrée standard le clavier STDIN La sortie standard l'écran STDOUT La sortie d'erreur standard l'écran STDERR On peut rediriger les entrées et les sorties. Par exemple, la plupart des programmes ont comme sortie standard l'écran alors qu'on souhaiterait voir arriver les données dans un fichier. Il suffit simplement de rediriger la sortie vers un fichier en utilisant les caractères >. Les différentes redirections sont données dans le tableau suivant: Syntaxe Commande > fichier Commande >! Fichier Commande >> fichier Commande >>! Fichier Commande < fichier Commande >& fichier Commande >&! Fichier Commande >>& fichier Commande >>&! Fichier (commande > fichier1) >& fichier2 Utilisation envoie la sortie de la commande vers fichier envoie la sortie de la commande vers fichier et outrepasse l'option noclobber ajoute la sortie de la commande à fichier ajoute la sortie de la commande à fichier en outrepassant l'option noclobber la commande reçoit en entrée le contenu de fichier envoie la sortie standard et l'erreur standard dans fichier envoie la sortie standard et l'erreur standard dans fichier et outrepasse l'option noclobber ajoute la sortie standard et l'erreur standard dans fichier ajoute la sortie standard et l'erreur standard dans fichier et outrepasse l'option noclobber envoie la sortie de commande dans fichier1 et l'erreur dans fichier2 Voici un exemple de redirection. L'affichage du tri s'effectue ordinairement à l'écran mais on préfère le voir arriver dans un fichier appelé fichier-tri. iznogoud [21]%sort /etc/passwd > fichier-tri iznogoud [22]% On remarquera que > crée le fichier ou bien écrase le contenu du fichier préexistant. Si l'on souhaite faire une addition à ce fichier il faut utiliser la redirection >> nom du fichier. Les tubes ou pipelines On redirige la sortie d'une commande vers l'entrée d'une deuxième commande avec les tubes (pipes en anglais). Il suffit de taper : commande_1 commande_2 Cette méthode permet de chaîner les commandes en évitant les fichiers intermédiaires. iznogoud [4]%ps -aux wc -l 46 Dans l'exemple ci-dessus, on compte le nombre de processus sur une machine en envoyant la sortie de la commande ps vers la commande wc. Ci-dessous, la même commande en version "luxe". Noter
32 l'utilisation de la commande echo et les caractères d'échappement ` qui permettent d'inclure la commande ps -aux wc -l. iznogoud [51]%echo Il y a `ps -aux wc -l` processus tournant sur iznogoud Il y a 46 processus tournant sur iznogoud L'historique des commandes Toutes les commandes que l'on tape sont conservées dans une liste contenant les n dernières commandes (n est initialisé dans le fichier.cshrc). Pour afficher cette liste, on tape history. Il est d'autre part possible de répéter les commandes de cette liste. En C shell, il existe de plus de nombreux opérateurs qui permettent de ne rappeler que quelques éléments d'une ligne de commande. La syntaxe en est parfois cryptique. On ne se contentera, dans ce chapitre, que de donner les éléments les plus importants. Si l'on souhaite effectuer de façon intensive de l'édition de ligne de commande, on aura intérêt à utiliser un shell possédant un module d'édition intégré basé sur les commandes de vi ou emacs. Comment rappeler une ligne de commande Caractère Signification!! Rappelle la dernière commande exécutée!: Rappelle la derniere commande exécutée!n Rappelle la commande numéro n!abc Rappelle la dernière commande commençant par abc!?abc Rappelle la dernière commande contenant la chaîne abc Comment corriger la commande précédente ^chaîne1 ^chaîne2 remplace la chaîne 1 par la chaîne 2 dans la dernière commande exécutée. Ceci est particulièrement pratique pour des longues commandes pénibles à taper. olrik [10]%cp /usr/local/etc/htpd/docs/index.shtml ~ocollin cp: cannot access /usr/local/etc/htpd/docs/index.shtml olrik [11]%^htpd^httpd cp /usr/local/etc/httpd/docs/index.shtml ~ocollin olrik [12]% Comment utiliser une partie d'une commande précédente Caractères Signification!$ le dernier argument de la dernière ligne de commande!* l'argument de la dernière ligne de commande!^ le premier argument de la dernière ligne de commande!:0 le nom de la commande de la dernière ligne de commande!:1-4 les 4 premiers arguments Voici quelques exemples d'utilisation de ces opérateurs. sbr [3]%mkdir rep2 sbr [4]%cd!$ cd rep2 /util2/si/olivier/rep2-32 -
33 iznogoud [25]%echo iznogoud [26]%echo!* echo iznogoud [27]%echo!^ echo 1 1 iznogoud [28]%!: echo iznogoud [29]%echo!:2-4 echo Les alias Le mécanisme des alias permet à l'utilisateur de substituer une chaîne à un nom de commande. Cela permet d'éviter de taper des noms de commande trop longs. En général les alias sont stockés dans le fichier.cshrc qui est lu à chaque lancement du shell. Exemples : pour éviter d'avoir à taper la commande history, on peut créer l'alias suivant : alias h 'history more' il suffira ensuite de taper h pour afficher l'historique des commandes. Pour enlever la définition d'un alias on utilisera la commande unalias iznogoud [28]%alias rm 'rm -i' iznogoud [29]%touch fichier iznogoud [30]%rm fichier rm: remove fichier (yes/no)? y iznogoud [31]%unalias rm iznogoud [32]%touch fichier iznogoud [33]%rm fichier iznogoud [34]% Dans l'exemple ci-dessus, on utilise la commande alias pour rendre interactive la commande d'effacement des fichiers (alias rm 'rm -i'). Lorsque qu'on efface un fichier avec la commande rm il est alors nécessaire de confirmer l'effacement. Par contre si on enlève l'alias (unalias rm), lorsqu'on demande l'effacement d'un fichier ceci se passe sans aucune demande de confirmation. Les substitutions des noms de fichiers Le shell autorise la substitution de noms pour les fichiers. Par exemple pour lister les fichiers dont l'extension est c on tape ls *.c. Ceci permet de créer des masques de sélection de noms. Métacaractère Signification * vaut tous les caractères? vaut un caractère [ ] permet de spécifier une liste { } permet de réaliser une "mise en facteur" ~ le home directory L'utilisation de ces masques est particulièrement utile pour manipuler des fichiers comme le montrent les exemples ci-dessous: iznogoud [71]%touch fichier{1,2,3}.{t,tt} iznogoud [72]%ls fichier1.t fichier1.tt fichier2.t fichier2.tt fichier3.t fichier3.tt
34 iznogoud [73]%unalias rm iznogoud [74]%rm fichier[1-3].? iznogoud [75]%ls fichier1.tt fichier2.tt fichier3.tt iznogoud [35]%ls *.c arnudp.c pscan.c red.c iznogoud [9]%mkdir {sequences}{.gb,.ncbi,.nucl,.prot} iznogoud [10]%ls sequences.gb/ sequences.ncbi/ sequences.nucl/ sequences.prot/ L'opérateur {} peut être utilisé pour effectuer une copie de sauvegarde d'un fichier dont le nom est un peu trop long à taper. iznogoud [20]%ls binaries.sunos_5.6.tar iznogoud [21]%cp binaries.sunos_5.6.tar{,.bak} iznogoud [22]%ls binaries.sunos_5.6.tar binaries.sunos_5.6.tar.bak iznogoud [23]% Pour se rendre dans le répertoire de base de l'utilisateur Sévère. iznogoud [55]%cd ~severe /util/si/severe La gestion des programmes Le shell autorise l'exécution simultanée de différents programmes. Seul un seul de ces programmes pourra interagir avec l'utilisateur, ce programme sera dit en avant-plan et les autres seront dits en arrière plan. Pour lancer un programme en arrière plan on tape son nom que l'on fait suivre du signe &. Pour amener un programme de l'arrière plan vers l'avant plan on tape la commande fg. Si on a plus d'un programme en arrière plan, on tape fg % suivi du numéro du programme. Ce numéro est donné par la commande jobs. olrik [44]% make >& /dev/null & [1] olrik [45]%jobs [1] + Running make >& /dev/null olrik [46]%ls -lr ~ > listing & [2] olrik [47]%jobs [1] - Running make >& /dev/null [2] + Running ls -F -lr ~ > listing La commande make >& /dev/null & permet de lancer une compilation (make) en redirigeant les messages de sortie vers une poubelle (>& /dev/null) en tâche de fond (&). A la fin de son exécution normale, le programme lancé en tâche de fonds nous informe avec un message du type : [1] + Done make >& /dev/null Pour suspendre un programme tournant en avant-plan on tape Ctrl-Z. Le programme n'est pas terminé il est juste suspendu et reprendra avec la commande fg. Si par contre on souhaite arrêter un programme en arrière plan on l'élimine avec la commande kill. Pour arrêter un programme en avant plan on utilisera la combinaison de touches Ctrl-D. olrik [54]%make >& /dev/null & [1] olrik [55]%jobs [1] + Running make >& /dev/null olrik [56]%fg %1 make >& /dev/null ^Z Stopped (user)
35 olrik [57]%jobs [1] + Stopped (user) make >& /dev/null olrik [58]%bg [1] + make >& /dev/null & olrik [59]%jobs [1] + Running make >& /dev/null Le fichier.cshrc Il s'agit du fichier de configuration de l'environnement de travail (du shell). Les variables du shell sont positionnées, certaines commandes exécutés au moment de la connexion. Un exemple de fichier SunOS est donné en annexe. Voici la marche à suivre pour personnaliser son environnement de travail: Édition du fichier.cshrc (avec vi par exemple) Insertion des commandes puis sauvegarde du fichier Exécution de la commande source.cshrc pour prendre en compte les modifications Eventuellement exécution de la commande rehash pour reconstruire le chemin (PATH) Le tcsh (Toronto C shell) Il s'agit d'un C shell avec des fonctionnalités supplémentaires, notamment l'édition de la ligne de commande suivant une syntaxe emacs ou vi. C'est un shell qui se révèle être très agréable à utiliser, surtout pour l'édition de commandes. Il est également en mesure de proposer une terminaison pour les noms de fichiers ainsi qu'une correction des noms de fichiers ou de commandes L'édition de la ligne courante avec le tcsh. Tcsh utilise la syntaxe de l'éditeur de texte emacs pour permettre d'éditer la ligne courante (celle que l'on est en train de saisir ou bien celle que l'on vient de rappeler de l'historique). Caractère Flèche en haut Flèche gauche,droite Ctrl-A Ctrl-E Ctrl-B Ctrl-F Ctrl-K Ctrl-Y Action Rappel de la commande précédente Déplacement dans la ligne de commande Aller en début de ligne Aller en fin de ligne Mot précédant Mot suivant Suppression fin de ligne Colle le tampon
36 L'EDITION DE TEXTE On ne peut dans un cours d'introduction étudier en profondeur des éditeurs de textes aussi puissants que vi et emacs. Aussi me limiterai-je aux commandes les plus essentielles. vi Vi (visual display editor) est l'éditeur que l'on trouve en standard sur tous les sytèmes UNIX. Même si on ne l'apprécie pas, il est tout de même indispensable d'en connaître les fonctions les plus rudimentaires. On peut faire une quantité impressionnantes de manipulations avec vi, le seul problème est de savoir comment le faire Une des grandes particularités de vi est la dissociation entre le mode de saisie et le mode commande. Il faut explicitement indiquer à l'éditeur que l'on passe en mode saisie (a,a,i,i,o,o,c,c) et lorsqu'on est en mode saisie on passe en mode commande grâce à la touche Escape. a,a,i,i,o,o,c,c Mode commande Mode Saisie de texte Escape Fig : le passage commande/saisie Vi est une surcouche d'un logiciel d'édition de texte appellé ex. Lorsqu'on est en mode commande on peut lancer des ordres ex en les faisant précéder de deux points (:). Le programme ex peut être configuré avec le fichier.exrc. a,a,i,i,o,o Mode commande Mode édition : Escape Commandes ex.exrc
37 Ci-dessous l'apparence classique d'une fenêtre d'édition de vi. Les débutants remarqueront avec effroi l'absence de tout menu. Avant de présenter les différentes commandes d'édition nous verrons tout d'abord les commandes de déplacement au sein d'un ensemble de lignes. Commande Action h à gauche H Ligne en haut de l'écran (Home) j vers le bas k vers le haut l à droite L Ligne en bas de l'écran 0 (zéro) au début de la ligne $ à la fin de la ligne w un mot à droite (ponctuation = mot) W un mot à droite (sans ponctuation) b en arrière d'un mot B En arrière d'un mot (sans ponctuation) ng Aller à la ligne numéro n G Aller à la fin du fichier ^G ( G) Afficher le numéro de ligne On remarque que les commandes de déplacement permettent de définir des objets. Ainsi w définit un mot (w = word) et $ définit la fin de la ligne. On exploitera cette propriété dans les commandes d'éditions de texte. Vi utilise également les variations majuscules/minuscules pour différentes commandes. De plus il est possible d'affecter un multiplicateur à une commande de déplacement ainsi qu'à beaucoup de commandes vi. Par exemple 6j déplacera le curseur de 6 lignes vers le bas, 4w déplacera le curseur de 4 mots vers la droite, etc. Bien sûr les commandes 0 et $ ne peuvent pas être "multipliées". Une fois que l'on est positionné à l'endroit du texte nous intéressant, on passera en mode saisie de texte avec les commandes suivantes: Caractère i I o O a A Action Insertion avant le curseur Insertion avant le début de la ligne Ouvre une ligne sous le curseur Ouvre une ligne au dessus du curseur Insertion après le curseur Insertion après le fin de la ligne
38 On remarque que l'utilisation ou non d'une majuscule pour passer en mode saisie permet de modifier ou non le positionnement de l'insertion par rapport au curseur. Globalement, le mode commande va nous permettre d'effectuer 3 grands types d'actions: changement de texte: c (changer), r (remplacer), s (substituer) effacement de texte: d (delete-effacer), x (effacer-copier un caractère) copie de texte: y (yank-copie), p (paste-copie) Le tableau suivant résume les principales fonctions du mode commande : Caractère c (change) d (delete) y (yank) p (paste) u (undo) r (replace) s (substitute) x Action qui permet de modifier qui permet d'effacer qui permet de copier vers le tampon qui permet de coller à partir du tampon qui permet d'annuler une commande qui remplace un caractère qui efface un caractère pour le remplacer par du texte qui efface un caractère Les différentes commandes peuvent être combinées avec des objets pour modifier leur action. Voici quelques exemples dans le tableau suivant: Caractère c (change) d (delete) y (yank) p (paste) u (undo) cc cw C ou c$ dd dw D ou d$ yw yy p P u U Action Change la ligne Change le mot Change jusqu'à la fin de la ligne Efface la ligne Efface le mot Efface jusqu'à la fin de la ligne Copie le mot dans le tampon Copie la ligne courante dans le tampon Copie le contenu du tampon après le curseur Copie le contenu du tampon avant le curseur Annule l'édition Restaure la ligne Vi est en fait une surcouche de l'éditeur ex. Celui-ci peut également être invoqué. Les commandes ex commencent par deux points (:). Celles-ci sont le plus souvent des commandes de sauvegarde et de sortie.voici les commandes de ex. Commande Action :x Sauve le fichier si modifié et quitte :wq Sauve le fichier et quitte :w Sauve le fichier :10,20 w nom_fichier Sauve les lignes de 10 à 20 dans le fichier nom_fichier :w %.new Sauve le tampon du fichier courant avec le même nom mais avec une extension différente :q Quitte :sh Appelle un shell :! Commande Exécute une commande UNIX :n,m! commande Envoie les lignes n à m à la commande UNIX :r!commande Lit la sortie de la commande dans le fichier édité
39 En guise de conclusion, le tableau ci-dessous présente les commandes minimales de l'éditeur vi. On n'a pas abordé dans ce chapitre les fonctions de recherche, substitution, etc. Action Commande Sauver le fichier :w Sauver et quitter :wq Quitter sans sauver :q Déplacement du curseur Gauche Flèche, h Droite Flèche, l Haut Flèche, k Bas Flèche, j Insertion/Ajout i Insertion avant le curseur I Insertion après le curseur o Ouvre une ligne sous le curseur O Ouvre une ligne au dessus du curseur a Insertion après le curseur A Insertion après le fin de la ligne Effacer du texte effacer un caractère à gauche X effacer un caractère à droite x effacer une ligne à partir du curseur D effacer une ligne dd Rechercher chercher une chaîne en avant / D'autres commandes vi sont indiquées en annexe B
40 emacs Emacs désigne plus qu'un éditeur mais plutôt une famille d'éditeurs. On en trouve différentes implémentations. Toutefois la version la plus utilisée est la version GNU emacs. L'éditeur emacs de GNU est très puissant et permet en plus de l'édition de texte, la consultation du courrier électronique, la lecture des forums électroniques (News), etc. Il est doté d'extensions qui lui permettent de s'adapter aisément à tout langage de programmation. GNU emacs est distribué gratuitement. Voici l'apparence classique d'une fenêtre de GNU emacs en mode texte sur un terminal non graphique. On a appellé l'éditeur avec la commande suivante: emacs -nw (nw signifie no window). Sur un écran emacs on note le menu, la barre d'information ainsi que le mini tampon en bas. Les commandes d'éditions de emacs sont obtenus par des des combinaisons de touches avec la touche ctrl ou bien la touche Escape (appelée touche META dans les documentations Emacs). La définition de macro est plus aisée qu'avec vi puisque celle ci se fait de façon interactive. Pour le débutant l'aide en ligne est un plus. Action Commande Sauver le fichier Ctrl-X Ctrl-S Sauver et quitter Meta- Z Quitter sans sauver Ctrl-X Ctrl-C Déplacement du curseur Gauche Flèche, Ctrl-B Droite Flèche, Ctrl-F Haut Flèche, Ctrl-P Bas Flèche, Ctrl-N Effacer du texte Effacer un caractère à gauche Ctrl-H ou Backspace
41 Effacer un caractère à droite Ctrl-D Effacer un mot à gauche Meta-H Effacer un mot à droite Meta-D Effacer une ligne à partir du curseur Ctrl-K Rechercher et remplacer Chercher une chaîne en avant Ctrl-S Chercher une chaîne en arrière Ctrl-R Remplacer une chaîne Meta-R Coller une chaîne du tampon Ctrl-Y
42 LES FILTRES grep L'utilitaire grep permet de rechercher une chaîne de caractères dans un fichier texte. C'est un outil extrêmement utilisé dans UNIX et on a vu apparaître différents variants de ce programme: grep, fgrep, egrep, agrep, etc. En utilisation ordinaire on procède comme dans l'exemple suivant: sbr [3]%grep olrik /etc/hosts olrik Le premier paramètre est la chaîne recherchée (olrik) et le deuxième paramètre est le nom du fichier dans lequel on recherche la chaîne (/etc/passwd). Le programme renvoie comme résultat la ligne contenant la chaîne recherchée. On peut également utiliser grep comme un filtre permettant de sélectionner une ligne dans une sortie de programme. olrik [8]%ps -aux grep ocollin ocollin pts/21 O 16:41:33 0:00 ps -aux ocollin pts/21 S 16:41:33 0:00 grep ocollin ocollin pts/21 S 16:32:46 0:01 -csh olrik [9]%ps -aux grep ocollin wc -l 4 olrik [10]%ps -aux wc -l 147 Dans l'exemple ci-dessus, grep a extrait de la sortie de la commande ps les 3 lignes contenant la chaîne de caractère ocollin parmi les 147 lignes fournies par la commande ps. Il est possible de moduler le comportement de grep à l'aide de ses options. Par exemple grep -v imprime les lignes ne contenant pas la chaîne indiquée. sed sed (stream editor) est un éditeur de flux. Il peut être utilisé pour écrire des petits programmes de conversion. Dans ce chapitre, on ne considérera sed que de la façon la plus simple c'est à dire en tant que moyen de remplacer des chaînes de caractères dans un fichier. entrée sed sortie Fig. - Flux et fonctionnement de sed La syntaxe simplifiée de sed est la suivante : sed commande nom_du_fichier
43 Les commandes les plus utiles sont les suivantes : Commande s/xx/yy/ s/xx/yy/g /xx/d Action substitue xx par yy substitue xx par yy dans tout le fichier efface les lignes contenant xx Voici un exemple d'utilisation de sed. Il va remplacer la chaîne baba par la chaîne bobo dans le fichier appellé fich1. Comme la sortie de sed s'effectue sur la sortie standard, il faut la rediriger vers un fichier appellé fich2. olrik [22]%sed s/baba/bobo/ fich1 > fich2 On peut optimiser les remplacement de sed en les soumettant à des conditions. L'exemple suivant permet de remplacer la chaîne blabla par patati dans toute ligne du fichier infile contenant la chaîne de caractère olivier. olrik [29]%sed /olivier/s/blabla/patati/g infile On peut également utiliser sed pour éliminer certaines lignes d'un fichier avec la commande suivante: sed /expression/d En voici un exemple: olrik [30]%sed /olivier/d infile Il existe bien sûr d'autres options pour une utilisation pointue de sed. Pour les connaître il faut consulter le manuel en ligne. tr tr est un filtre permettant de traduire des caractères. entrée tr sortie La syntaxe de tr est la suivante : tr [options] [chaîne1 [chaîne2]] iznogoud [23]%echo ABCDEFGH > majuscules iznogoud [24]%tr 'A-Z' 'a-z' < majuscules abcdefgh iznogoud [25]% Les options de tr sont les suivantes : -d enlève les caractères de la chaîne1 -s réduit une chaîne de caractères identiques de la chaîne2 à un seul Comme tr lit sur l'entrée standard, il ne faut pas oublier de rediriger le fichier que l'on veut traiter vers tr grâce à une redirection classique (<) ou bien grâce à un tube ( )
44 On remarquera que sed et tr ont des fonctions complémentaires. sed est orienté chaînes de caractères alors que tr est orienté caractères. Sort Comme son nom l'indique, sort est un utilitaire UNIX qui permet d'effectuer des tris dans des fichiers et même des fusions de fichiers. Pour effectuer le tri, sort découpe chaque ligne du fichier en mots qui sont ensuite utilisés pour effectuer le tri ligne par ligne. Sort prend en entrée un fichier et lance sa sortie sur la sortie standard. Par défaut le séparateur de champs est un espace ou une tabulation mais il est possible de le modifier pour s'adapter aux différents fichiers. Comme toute commande UNIX sort possède un certain nombre d'options qui permettront d'adapter le logiciel à la tâche que l'on souhaite faire. Option Action -r Tri inverse -n Tri sur valeur numérique -o Écrit dans un autre fichier -u Supprime les lignes identiques On peut également spécifier les champs sur lesquels on souhaite effectuer le tri. Par exemple la ligne : ps -aux sort +n1 trie la sortie de la commande ps sur le deuxième champ (+1) qui est un chiffre (option n). On peut également modifier le séparateur de champ avec l'option -t. Par exemple la ligne: sort -t: +2n /etc/passwd trie le fichier des mots de passe en fonction du 3eme champ qui est le champ des UID (donc numérique)
45 UNIX ET LES RESEAUX Le courrier électronique Les applications de courrier électronique permettent de recevoir sur son poste de travail ou tout au moins dans son répertoire de travail les messages de personnes sur le réseau Internet. Les fonctions élémentaires sont l'envoi de message, l'effacement ou l'archivage de vieux messages et la réponse à des messages. Le programme mail On étudiera le fonctionnement du plus simple des programmes de courrier électronique disponible sur UNIX. Expédition de courrier Pour expédier un courrier on tape mail adresse. Le format de l'adresse est le suivant: Si l'on envoie un courrier à quelqu'un sur le même site on peut s'abstenir de fournir le nom du domaine. Une fois que l'on a tapé mail adresse, le programme demande de spécifier le sujet du message. Une fois le sujet tapé et validé par retour chariot, le programme passe automatiquement en mode de saisie du corps du message. On peut saisir autant de lignes qu'on le souhaite en incluant des retours chariots. Pour terminer cette saisie, il faut taper un point en début de ligne suivi d'un retour chariot ou bien taper Ctrl-D. iznogoud [28]%mail [email protected] Subject: Utilisation du programme mail Voici le corps du message Une nouvelle ligne. EOT Consultation du courrier Le programme mail est également utilisé pour consulter son courrier électronique. Il suffit de taper mail pour voir apparaitre la liste des messages stockés dans la boite. Le prompt du programme mail est le symbole &. Pour lire ses messages les commandes sont print, type. Le message courant est alors affiché avec les mêmes mécanismes de contrôles que ceux de more. Pour répondre à un mail on tape r ou bien R. Le petit r permet de répondre à l'expéditeur ainsi qu'a toutes les personnes ayant re cu une copie du message. Le grand r permet de ne répondre qu'à l'expéditeur. Les messages peuvent également être sauvés ou effacés. La commande save numéro-du-message nom-du-fichier sauve le message dans le fichier spécifié. La commande write fait la même chose mais enlève les en-têtes du message. Pour quitter le programme on tape quit ou bien exit. olrik [114]%mail mailx version 5.0 Fri Jul 15 21:21:05 PDT 1994 Type? for help. "/var/mail/ocollin": 1 message 1 new >N 1 ocollin Sat Jun 19 16:24 14/359 test mail & type Message 1: From ocollin Sat Jun 19 16:24 MET 1999 Date: Sat, 19 Jun :24: From: ocollin (Olivier.Collin) To: ocollin Subject: test mail ceci est un test & r To: ocollin Subject: Re: test mail OK j'ai compris EOT & & s 1 "1" [New file] 15/
46 & quit New mail has arrived. Le programme elm Le programme mail n'est plus réellement un modèle d'ergonomie par rapport aux standards actuels et on lui préférera souvent le programme elm qui fonctionne lui aussi sur un simple terminal VT100. Elm propose une interface de gestion de boite à lettre électronique avec des menus simples et très faciles à utiliser. Pour la composition de messages on utilise un éditeur tel que vi ou emacs. Mailbox is '/var/mail/ocollin' with 1 message [ELM 2.4 PL25] N 1 Jun 17 Olivier.Collin (16) Utilisation du programme mail You can use any of the following commands by pressing the first character; d)elete or u)ndelete mail, m)ail a message, r)eply or f)orward mail, q)uit To read a message, press <return>. j = move down, k = move up,? = help Command: Le transfert de fichiers ftp (file transfer protocol) est un programme chargé de gérer le transfert de fichiers d'une machine à une autre. Il procède en deux phases : tout d'abord l'établissement d'une connexion puis le transfert des fichiers de façon interactive avec l'utilisateur. Pour transférer des fichiers d'une machine à une autre on utilise la commande ftp. La syntaxe simple en est la suivante: ftp nom_hôte L'établissement de la connexion exige un mot de passe. Il est donc nécessaire d'être titulaire d'un compte sur les deux machines impliquées dans le transfert. Il existe un cas particulier, celui des ftp dits anonymes. La plupart des grands centres informatiques mettent à la disposition de la communauté des programmes, des utilitaires, etc. Pour récupérer ces programmes, il suffit simplement de se connecter sur la machine serveur et d'indiquer à la requête login anonymous et de répondre à la demande du mot de passe par votre adresse électronique. Le transfert de fichier peut s'effectuer dans les deux sens, on peut récupérer ou déposer des fichiers. Pour récupérer un fichier on tape get tandis que pour déposer un fichier on tape put. Pour obtenir la liste des fichiers disponibles c'est la commande ls qu'il faut employer (Voir en annexe D la liste complète des commandes ftp). olrik [16]%ftp iznogoud.sb-roscoff.fr Connected to iznogoud.sb-roscoff.fr. 220 iznogoud FTP server (SunOS 5.6) ready. Name (iznogoud.sb-roscoff.fr:ocollin): ocollin 331 Password required for ocollin. Password: 230 User ocollin logged in. ftp> get licence.dat 200 PORT command successful. 150 ASCII data connection for licence.dat ( ,61420) (99 bytes). 226 ASCII Transfer complete. local: licence.dat remote: licence.dat 101 bytes received in seconds (30 Kbytes/s) ftp> bye 221 Goodbye
47 olrik [17]% Automatisation d'un transfert de fichier Voici une procédure qui permettra de transférer un fichier par ftp de façon automatique. Ceci est très pratique en cas de congestion du réseau ou de saturation d'une machine. Il est ainsi possible de rapatrier des fichiers pendant des heures creuses. Il faut tout d'abord créer le fichier.netrc. La syntaxe de ce fichier est la suivante : machine nom-de-la-machine login anonymous password votre-adresse Un exemple d'une ligne de mon fichier.netrc pour se connecter sur le serveur ftp anonyme de l'université de Rennes 1 : machine ftp.univ-rennes1.fr login anonymous password [email protected] Ce fichier doit être en lecture et écriture pour l'utilisateur seulement. Ensuite il faut écrire le script de récupération des fichiers avec votre éditeur de texte favori. Voici un exemple de script que l'on appellera recup. Le script donné en exemple permet de se connecter sur la machine ftp.univ-rennes1.fr, de se déplacer dans le répertoire /pub, récupère le fichier README puis se déconnecte (bye). ftp << FIN -v ftp.univ-rennes1.fr cd pub get README bye FIN Il suffit alors de lancer le script à l'heure souhaitée avec la commande at. Voici deux exemples qui permettent de lancer le script appelé recup à 23 heures 30. On notera la différence de syntaxe entre SunOS et Solaris. at 2330 recup (sur SunOS 4.1.*) at -f recup 23:30 (sur Solaris) Le compte rendu d'exécution est envoyé par courrier électronique. Le contenu du courrier électronique est donné ci-dessous: Return-Path: <ocollin> Date: Thu, 17 Jun :18: From: ocollin (Olivier.Collin) To: ocollin Subject: Output from "at" job Your "at" job "/var/spool/cron/atjobs/ a" produced the following output: /util2/si/olivier Connected to sir.univ-rennes1.fr. 220 sir.univ-rennes1.fr FTP server (Version wu-2.4(2) Mon Jun 2 12:37:12 EDT 1997) ready. 331 Guest login ok, send your complete address as password ************************************************************** 230- * * 230- * CRI-UR1 * 230- * Centre de Ressources en Informatique * 230- * Universite de Rennes 1 - France * 230- * * 230- ************************************************************** Nous utilisons le serveur ftp de l'universite de Washington Si vous rencontrez des problemes dans l'utilisation de ce 230- serveur, adressez un courrier a [email protected]
48 Guest login ok, access restrictions apply. 250-Please read the file README 250- it was last modified on Thu Jan 8 09:23: days ago 250 CWD command successful. 200 PORT command successful. 150 Opening ASCII mode data connection for README (736 bytes). 226 Transfer complete. local: README remote: README 752 bytes received in seconds (1.9e+02 Kbytes/s) 221 Goodbye. Localisation des fichiers ftp sur Internet: Archie. Un serveur Archie est une machine connaissant la liste des fichiers disponibles sur l'ensemble des serveurs ftp et désormais les serveurs WWW. En donnant au serveur Archie, le nom du fichier qui nous intéresse, celui-ci répondra par la liste des machines sur lesquelles se trouve le fichier. Le logiciel Archie est en fait un produit commercial, propriété de la société Bunyip Information System basée à Montréal. Cette société a arrêté ses activités en mars On pourra trouver des renseignements concernant Archie sur le serveur de cette société à l'adresse: D après cette société, Archie référence le contenu de 1500 serveurs ftp anonymes et archives WWW soit un total de fichiers. La mise à jour se fait tous les deux mois. Il est à noter que le service Archie sera de moins en moins utilisé pour la découverte d'information sur les fichiers ftp. Il est supplanté par des services beaucoup plus performants tel FTPSearch. Toutefois il est le seul que l'on puisse utiliser avec une session telnet. C'est pourquoi il est présenté dans ce cours. On peut interroger un serveur Archie de différentes manières: soit en se connectant par telnet au serveur Archie, soit en utilisant un programme client spécifique (xarchie, anarchie, archie), soit en utilisant une passerelle WWW. Etant donné que dans ce cours nous voyons les différents aspects d'unix en mode commande, nous nous consacrerons au client telnet. La liste des serveurs Archie librement accessibles (et encore en marche) est la suivante: Nom de la machine Pays Commentaire archie.bunyip.com Canada archie.cs.mcgill.ca Canada archie.switch.ch Suisse Arrêt programmé 29/09/99 archie.rutgers.edu US iznogoud [5]%telnet archie.switch.ch Trying Connected to sunsite.cnlab-switch.ch. Escape character is '^]'. AUTHORISED ACCESS ONLY! WARNING: You are using an insecure access method your data is exposed to network sniffing sunsite.cnlab-switch.ch login: archie Welcome to archie.switch.ch **** archie.switch.ch will close down on 28 September 1999 **** Please read the details: # Bunyip Information Systems, Inc., 1993, 1994, 1995 # Terminal type set to `vt '. # `erase' character is `^?'
49 # `search' (type string) has the value `sub'. archie.switch.ch> Voici un exemple d'une session Archie. On se connecte au serveur en donnant comme login archie. L'accès est autorisé sans authentification. On se retrouve alors en mode archie. On peut alors taper les commandes archie pour rechercher un fichier. Les connexions à d'autres machines Une fois que l'on est connecté sur une machine il est possible d'ouvrir une connexion sur une autre machine grâce au programme telnet que l'on invoque de la façon suivante: telnet nom_machine olrik [11]%telnet sbr.sb-roscoff.fr Trying Connected to sbr.sb-roscoff.fr. Escape character is '^]'. SunOS UNIX (sbr) login: ocollin Password: Last login: Wed May 26 16:34:17 from olrik SunOS Release (GENERIC) #2: Wed Oct 23 10:52:58 PDT 1991 You have new mail. sbr [1]% Les commandes r On désigne sous cette appellation un ensemble de commandes qui permettent de lancer des programmes sur des machines distantes (r signifiant remote). Les commandes r sont subordonnées à l'existence d'un fichier spécial, le fichier.rhost. Il contient la liste des machines autorisées à exécuter des commandes. Sur un grand nombre de sites, pour des raisons de sécurité, les commandes r sont souvent désactivées vis à vis de l'extérieur. rsh se connecte à la machine spécifiée et exécute la commande. (Attention, il ne faut pas confondre le rsh BSD avec le shell restreint du Bourne shell). sbr [5]%rsh olrik ls grep licence licence-c licence-c1 licence-f licence-f1 licence.dat rcp permet de copier des fichiers entre des machines sbr [5]%rcp olrik.sb-roscoff.fr:/etc/vfstab vfstab.olrik sbr [6]%ls vfstab.olrik vfstab.olrik rlogin permet de se connecter à une machine. sbr [7]%rlogin olrik Last login: Thu Jun 17 11:40:58 from iznogoud Sun Microsystems Inc. SunOS 5.4 Generic July
50 You have new mail. olrik [1]% Le world wide web Il est possible d'utiliser un naviguateur en mode texte sous UNIX. Il s'agit de Lynx. Ce naviguateur n'affichera pas les images (nous sommes en mode texte) mais il pourra tout de même assurer la naviguation avec les balises HTML. Il n'est par contre pas capable d'afficher les cadres (FRAMES) et dans le cas de sites n'assurant pas la gestion des naviguateurs ne tolérant pas les cadres (avec la balise NOFRAME), il ne sera pas possible de visiter ce site. Les sites totalement basés sur les images sont également difficilement exploitables avec Lynx. A noter que dans tous les cas, si un site n'est pas exploitable par Lynx, c'est qu'il est mal conçu. Les non-voyants utilisent des naviguateurs basés sur Lynx ou un produit similaire. Pour lancer lynx on procède comme indiqué dans l'exemple suivant: iznogoud [17]%lynx Il est nécessaire de positionner certaines variables d'environnement notamment le site de départ. Ceci s'effectue avec la commande setenv. iznogoud [19]%setenv WWW_HOME L'apparence classique d'une fenêtre lynx est montrée dans la figure ci-dessous: on a lancé lynx sur le site officiel de lynx. Lynx Information Lynx Lynx is a text browser for the World Wide Web. Lynx runs on Un*x, VMS, Windows 95/98/NT but not 3.1 or 3.11, on DOS (386 or higher) and OS/2 EMX. The current developmental version is also available for testing. Ports to Mac are in beta test. * How to get Lynx, and much more information, is available at Lynx links. * Many user questions are answered in the online help provided with Lynx. Press the '?' key to find this help. * If you are encountering difficulty with Lynx you may write to [email protected]. Be as detailed as you can about the URL where you were on the Web when you had trouble, what you did, what Lynx version you have (try '=' key), and what OS you have. If you are using an older version, you may well need to upgrade. Maintained by [email protected]. Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back. Arrow keys: Up and Down to move. Right to follow a link; Left to go back. H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list Avec lynx, il est bien évidemment impossible de naviguer avec la souris puisque nous nous trouvons en mode texte. Les flèches de déplacement ( )sont donc utilisées. Leur usage est le suivant:
51 Lien précédent Document précédent Lien suivant Document sélectionné
52 LA GESTION DES PROCESSUS UNIX est un système multi-tâches, c'est à dire qu'il est possible d'exécuter plusieurs programmes en même temps. Avant l'avènement des stations graphiques capables de multi-fenêtrage, il était nécessaire de disposer de fonctionnalités de gestion des processus. Dans la terminologie UNIX, on appelle processus ou tâche, un programme en cours d'exécution. Un processus sous UNIX est caractérisé par différentes variables: un identifiant: PID son propriétaire: UID son répertoire de travail les fichiers ouverts pour ce processus le masque de création de fichier: umask la taille maximum des fichiers créés: ulimit la priorité du processus le terminal de contrôle Chaque processus est le fils d'un autre processus. Le premier de tous les processus est le processus init. On obtient la liste de ses processus grâce à la commande ps. Par défaut cette commande ne liste que les processus dont on est le propriétaire. Voici un exemple de sortie de la commande ps: iznogoud [7]%ps PID TT S TIME COMMAND pts/0 S 0:01 -csh pts/1 S 0:01 -csh pts/3 S 0:01 -csh On récupère les numéros des processus (PID), le terminal (TT) auquel est associé ce processus, son état (S), le temps écoulé (TIME) depuis la création du processus et la commande. Il est parfois nécessaire d'obtenir une liste plus précise des processus tournant sur une machine. Pour ce faire on utilisera les options de la commande ps. Sur les machines Sun, étant donnée la migration BSD/SVR5, il existe deux commandes ps (/usr/ucb/ps et /bin/ps) qui possèdent toutes deux des options d'utilisation différentes. iznogoud [6]%ps -aux more USER PID %CPU %MEM SZ RSS TT S START TIME COMMAND root pts/3 O 15:37:07 0:00 ps -aux ocollin pts/3 S 15:37:07 0:00 more root ? S May 05 61:25 fsflush root ? S May 05 2:08 /usr/sbin/syslogd root ? S May 05 0:44 /etc/init - La signification des champs de la première ligne du résultat de la commande ps est donnée ci-dessous: Champ USER UID PID %CPU %MEM SZ RSS STAT TIME COMMAND Signification nom de login du propriétaire du processus nom de login du propriétaire du processus Numéro d'identification du processus Puissance de calcul consommée par le processus Mémoire consommée par le processus Mémoire virtuelle consommée par le processus Mémoire réelle utilisée Etat du processus Temps CPU utilisé Ligne de commande utilisée pour lancer le processus
53 PPID Numéro d'identification du processus père Les différentes valeurs possibles pour le champ STAT (S) sont les suivantes: Valeur Signification R running : processus en cours S sleeping : processus dormant I Idle : processus en attente T : processus stoppé D : en attente d'une ressource disque P : en attente d'une page mémoire X : en attente de mémoire W : swappé = passé de mémoire vive en mémoire disque N : priorité d'exécution diminuée > : priorité d'exécution augmentée Pour exercer un contrôle sur les programmes en cours, il est possible d'envoyer des signaux qui demanderont au programme de changer d'état. En tant qu'utilisateur l'utilisation des signaux sert surtout à tuer un programme devenu fou. Il existe une douzaine de signaux qui sont répertoriés ci-dessous: Nom du signal Numéro Utilisation HUP 1 INT 2 Interruption du programme (CTRL-C) QUIT 3 Interruption et génération d'un fichier core (CTRL-\) KILL 9 Interruption impérative SEGV 11 Violation de la segmentation mémoire TERM 15 Fin de programme STOP 17 Arrête le programme. Possibilité de reprise avec CONT TSTP 18 Arrête le programme (CTRL-Z) CONT 19 Reprise de l'exécution d'un programme arrêté après un CONT ou un TSTP CHLD 20 Le statut d'un processus fils a changé USR1 30 Réservé à l'utilisateur On notera la différence entre l'arrêt et l'interruption d'un programme. L'arrêt stoppe l'exécution du programme et celui-ci attend alors un signal de reprise. Dans le cas de l'interruption d'un programme celui-ci quitte la mémoire du système. C'est en utilisant la commande kill que l'on transmet un signal à un processus. % kill pid % kill -signal pid iznogoud [4]%ps PID TT S TIME COMMAND pts/0 S 0:01 -csh pts/1 S 0:01 -csh 4111 pts/3 S 0:01 -csh 4688 pts/4 S 0:01 -csh iznogoud [5]%kill iznogoud [6]%ps PID TT S TIME COMMAND pts/0 S 0:01 -csh pts/1 S 0:01 -csh 4688 pts/4 S 0:01 -csh Tous les processus ne "meurent" pas après avoir reçu un signal KILL. On parle alors de zombies. Quand un processus disparait il informe son processus père de sa disparition. Celui-ci doit alors confirmer la nouvelle et le PID du processus fils est ôté de la table des processus. Si pour une raison ou une autre le processus mourant ne reçoit pas de confirmation il devient un zombie. Il faut attendre le redémarrage du système pour se débarrasser des zombies. On ne peut pas les tuer ils sont déjà morts
54 les travaux des shells (jobs) Ces fonctionnalités sont offertes par les shells (C shell) qui permettront de lancer les programmes, de les arrêter, de les faire passer en avant-plan ou bien en arrière-plan. Pour lancer un programme en tâche de fond, on rajoute le signe & à la fin de la ligne de commande. Par exemple: % cc -o scanner scanner.c & La ligne ci-dessus lance la compilation du programme scanner en tâche de fond. Les programmes que l'on peut lancer en tâche de fond sont des programmes longs, non interactifs et dont on peut rediriger la sortie vers un fichier. Typiquement, il s'agira de programmes de recherche de fichiers, des compilations, etc. On notera que les processus lancés en tâche de fond sont déconnectés du clavier et qu'il est donc impossible d'interagir avec eux. Le seul moyen est de les faire passer en avant plan avec la commande fg. Pour les exemples se reporter aux pages 33 et 34. Lancement de programmes de façon "détachée" Quand un long programme doit être lancé et que l'on sait devoir interrompre sa session, il faut lancer ce programme avec la fonction nohup. La sortie d'un programme lancé avec nohup peut être redirigée. Par défaut elle est envoyée dans un fichier nohup.out. Il s'agit d'une commande UNIX placée dans le répertoire /usr/bin. iznogoud [2]%/usr/bin/nohup ls -lr & [1] 7471 iznogoud [3]%Sending output to nohup.out Dans l'exemple ci-dessus, on demande un listing récursif des fichiers. Une autre possibilité pour lancer des programmes sans être tributaire d'une session est l'utilisation des outils at et crontab expliqués plus loin. Lancement de programmes de façon différée Avec UNIX il est possible de lancer des programmes consommateurs de puissance de calcul à des horaires "creux". Ceci sera effectué avec la commande at. On pourra également automatiser des tâches régulières avec crontab. At Cette commande extrêmement utile est déroutante de part la multiplicité des façons de l'utiliser. La syntaxe générale de at est la suivante: at -f programme_différé heure Par exemple pour lancer le script mailcheck à 23 heures on fera:
55 at -f mailcheck 23:00 ou bien echo "mailcheck" at 23:00 On peut également utiliser un incrément qui permet de spécifier un délai par rapport au moment ou est lancé la commande. On peut demander un incrément en minutes, heures, jours, semaines, mois ou années. Voici un exemple de saisie en direct des commandes à exécuter. On appelle at avec l'heure d'exécution et ensuite après l'invite on saisit directement les différentes commandes. Pour quitter le mode de saisie on tape Ctrl-D. olrik [37]%at 1400 at> source ~/.gcg at> fetch x65558 at> <EOT> warning: commands will be executed using /bin/csh job a at Thu May 27 14:00: L'exemple ci-dessus exécutera à 14 heures ce même jour la séquence source et fetch. On consulte la file d'attente des travaux différés avec la comande atq. Pour enlever un job on utilisera ensuite la commande atrm comme indiqué dans l'exemple ci-dessous: olrik [40]%atq Rank Execution Date Owner Job Queue Job Name 1st May 27, :00 ocollin a a stdin 2nd May 27, :00 ocollin a a stdin olrik [41]%atrm a a: removed olrik [42]%atq Rank Execution Date Owner Job Queue Job Name 1st May 27, :00 ocollin a a stdin Crontab Le système fait appel à un démon appelé cron qui scrute en permanence les fichiers créés par la commande crontab. Ces fichiers sont placés dans /var/spool/cron/crontabs. L'appel de la commande crontab lance un éditeur de texte qui permettra l'édition du fichier qui va contenir les références des programmes à lancer ainsi que les heures ou date de lancement. Le format d'une entrée crontab est le suivant: Minutes heures jour_du_mois mois jour_de_la_semaine commande Pour spécifier une entrée dans la crontab on utilisera: un nombre deux nombres séparés par un tiret une liste de nombres séparés par des virgules un astérisque pour une valeur fixe pour une gamme de valeurs pour toutes les valeurs possibles du champ Voici un extrait de la crontab de la machine sbr de la Station Biologique de Roscoff:
56 #calcul de la maree du jour a Roscoff 0 8 * * * /home/roscoff/src/pmaree/maree.proc #verification des comptes dormants (sur SBR) * * /var/log/sbr/scripts/cpt_dormant #comptabilite du routeur CISCO 0,10,20,30,40,50 * * * * /var/log/cisco/bin/getipacct * * * /var/log/cisco/scripts/synthese_jour * * * /var/log/cisco/scripts/stat_mois * * * /var/log/cisco/scripts/synthese-gros #statistiques du serveur WWW 5 5 * * * /var/log/www/wwwstat > /home/local/etc/httpd/docs/log/en_cours.html #5 1 1 * * /var/log/www/stat_mois #50 23 * * * /home/local/etc/httpd/docs/accesswatch-1.32/accesswatch.pl ##recherche et effacement des fichiers core non utilises depuis plus de 1 jour #a 4 heures chaque matin 0 4 * * * find / -name core -atime +1 -exec rm -f \; Commentaires: Le calcul de la marée est lancé tous les jours à 8h00 Tous les 28 du mois, à 6h00 est lancé le script de détection des comptes dormants Toutes les 10 minutes est lancée la comptabilité du routeur CISCO. Les statistiques sont lancées tous les jours à 23h54, 23h57 et 23h58 Tous les jours à 05h05 sont lancées les statistiques du serveur WWW Tous les jours à 04h00 est lancée une procédure de recherche et d'effacement des fichiers core. A noter l'utilisation de la syntaxe de la commande find. Comment mettre en place la crontab Lancement de la commande crontab -e qui lance l'éditeur par défaut pour saisir les paramètres. Il est prudent de positionner la variable d'environnement EDITOR avec la commande setenv EDITOR vi (en C shell) car crontab lance l'éditeur ex par défaut
57 LES EXPRESSIONS REGULIERES Une expression régulière permet de décrire un motif ou une chaîne de caractères. De nombreux programmes UNIX utilisent les expressions régulières: grep, awk, PERL, sed, etc. La notation des expressions régulières fait appel à une syntaxe particulière basée sur des caractères spécifiques ayant chacun une signification particulière. Ces caractères sont appelés méta-caractères. En voici la liste : \ ^ $. [ ] ( ) * +? Principe des expressions régulières: un caractère simple (c.a.d. pas un métacaractère) "vaut" lui-même un métacaractère "vaut" différents caractères on peut "bloquer" un métacaractère avec \ Une expression régulière est donc constituée par: une ancre qui permet de positionner le motif par rapport au début ou à la fin de la ligne un ensemble de caractères constitutifs de la base du motif un opérateur appliqué à l'ensemble de caractères Métacaractère Signification ^ désigne le début d'une ligne $ désigne la fin d'une ligne. désigne n'importe quel caractère + indique 1 ou n répétition du caractère considéré? indique 0 ou 1 répétition du carctère considéré * indique 0 ou n répétition du caractère considéré [] permet de spécifier un ensemble de caractères Le méta-caractère \ est une séquence d'échappement permettant de spécifier des symboles particuliers (par exemple \t est une tabulation) ou bien de spécifier les méta-caractères de façon littérale (\* désigne le caractère * lui-même et non pas le méta-caractère de répétition). Caractère Signification c le caractère c \c séquence d'échapppement ou caractère littéral c ^ début de ligne $ fin de ligne. n'importe quel caractère [c1c2.. tout caractère appartenant à l'ensemble c1c2....] [^c1c2. tout caractère n'appartenant pas à l'ensemble c1c2.....] [c1-c2] tout caractère compris dans l'intervalle ASCII allant de c1 à c2 [^c1- c2] tout caractère non compris dans l'intervalle ASCII allant de c1 à c2 r1 r2 une chaîne correspondant soit à r1 soit à r2 (r1)(r2 ) une chaîne xy ou r1 correspond à x et r2 à y (r)* la chaîne r répétée 0 ou n fois (r)+ la chaîne r répétée 1 ou n fois (r)? la chaîne r répétée 0 ou 1 fois (r) la chaîne r
58 Exemples : ^C désigne un motif comportant un C au début d'une ligne C$ désigne un motif comportant un C à la fin d'une ligne ^C$ désigne une chaîne de caractère constituée par une ligne composée du seul caractère C ^.$ désigne une ligne avec un seul caractère quelconque ^...$ désigne une ligne contenant 3 caractères quelconques \.$ désigne un point à la fin d'une ligne D'autres exemples seront présentés durant la présentation orale
59 LE C-SHELL : PROGRAMMATION Dans un cours d'initiation, il ne sera pas envisageable de traiter en profondeur la programmation du shell. On verra simplement comment automatiser des tâches simples à l'aide d'exemples. Quand on écrit un programme en shell, on parle de scripts, ce sont des programmes contenant les instructions à exécuter. Etant donné que le shell possède de nombreuses structures de contrôle, il est possible d'arriver rapidement à des scripts relativement sophistiqués. Avant de passer à la programmation proprement dite, voici un petit exemple qui permet d'aborder le problème. On procède en plusieurs étapes: 1. édition du fichier contenant les commandes (avec vi) 2. modification des droits du fichier pour le rendre exécutable (chmod) 3. lancement du script olrik [27]%vi statut 1 #!/bin/csh 2 # donne l'etat de la machine 3 4 set d=`date` 5 echo "Date : $d[2-3] $d[6]" 6 echo "Heure : $d[4]" 7 echo "Nb utilisateurs : `who wc -l`" olrik [28]%chmod u+x statut olrik [29]%statut Date : May 28 DST Heure : 09:35:22 Nb utilisateurs : 21 Les structures de contrôle du C shell Le C shell dispose comme tous les autres shells de structure de contrôle de flux qui permettront une programmation efficace. foreach nom(liste_noms) commande end if (expression) commande if (expression) then commande endif commande breaksw case motif2 commande breaksw default: commande breaksw endsw while (expression) commandes end repeat nb_de_fois commande if (expression) then commande else commande endif switch (chaîne) case motif : Voici quelques exemples de l'utilisation des structures de contrôle:
60 Utilisation de foreach 1 #!/bin/csh 2 3 foreach repertoire ($home) 4 ls -lr $repertoire pr -h "Repertoire $repertoire" 5 end Utilisation de la conditionnelle if #!/bin/csh if ( -e.cshrc) then echo "Le fichier.cshrc existe" endif On remarque l'utilisation des tests sur les fichiers. Ceci est extrêmement utilisé dans les scripts d'administration système. Voici la liste des tests sur les fichiers: Opérateur Signification -d le fichier est un répertoire -e le fichier existe -f le fichier est un fichier texte -o l'utilisateur possède le fichier -r l'utilisateur a les droits en lecture -w l'utilisateur a les droits en écriture -x l'utilisateur a les droits en exécution -z la taille du fichier est nulle! négation des opérateurs précédents Utilisation du communtateur switch echo System configuration echo "====================" echo 1 - Plotter echo 2 - Laser Printer echo 3 - Xwindow echo 4 - SetKeys for SeqEd/LineUp/GelEnter/GelAssemble echo '' echo 5 - Back to main menu echo '' echo -n 'Enter your choice... ' set reponse = $< breaksw clear switch ($reponse) case 1: hpgl HP7550 /dev/ttyb A4 case 2: postscript breaksw case 3: xwindows breaksw case 4: setkeys breaksw case 5: set jeton_bis = 0 breaksw default: echo Error...Try again... endsw end clear breaksw # case 12 system configuration
61 Quelques exemples supplémentaires: #!/bin/csh # renomme des fichiers *.seq en *.nuc foreach fichier (`ls *.seq`) echo $fichier set base = `basename $fichier.seq` echo $base mv $fichier $base.nuc end #!/bin/csh echo "Entrez les codes d'accession des sequences..." echo "" set ligne = $< echo "Recherche en cours..." foreach numero ($ligne) fetch $numero end echo "" echo "Les sequences ont ete deposees dans le repertoire courant" On remarquera que ce script ne comporte aucune gestion d'erreur en cas de saisie incorrecte de la part de l'utilisateur. Un exemple de script avec des structures de contrôle de passage des arguments est fourni en annexe K
62 AWK Awk, ainsi nommé d'après les initiales de ces concepteurs: Aho, Weinberger, Kernighan est un langage de programmation utilisé dans des tâches de manipulations de fichiers. Le champ d'application de awk est le reformatage de données, le contrôle de données, la recherche de motifs, l'établissement de rapports, etc. De telles tâches seraient automatisables avec d'autres langages mais l'utilisation de awk s'avère plus simple et plus rapide. Les travaux sur awk ont commencé en 1977 au sein des laboratoires ATT/Bell pour aboutir à un concept définitif en Il faut toutefois noter que awk tend à être remplacé par PERL. Un programme awk est une suite de motifs et d'actions qui seront appliqués sur les fichiers. Awk est basé sur une boucle de lecture implicite et est donc capable de scanner un fichier et de découper chaque ligne en plusieurs champs. C'est sur ces champs que seront effectués les tests, basés sur les expressions régulières. On peut lancer awk de 2 façons: a - en lui donnant le programme immédiatement sur la ligne de commande si celui est assez court awk 'programme' fichier_a_traiter awk '/toto/' /etc/passwd b - en lui donnant le nom du fichier contenant les instructions awk -f fichier_instructions fichier_a_traiter Awk dispose de variables prédéfinies Variable ARGC ARGV FILENAME FNR FS NF NR OFMT OFS ORS RS Signification nombre d'arguments en ligne de commande tableau des arguments de la ligne de commande nom du fichier d'entrée courant nombre d'enregistrements dans le fichier courant séparateur de champ (par défaut espace) nombre de champs de l'enregistrement courant nombre d'enregistrements lus format de sortie pour les nombres séparateur de champ pour la sortie séparateur d'enregistrement de sortie (retour chariot par défaut) séparateur de ligne en entrée (retour chariot par défaut) Le cœur d'un programme est constitué par des instructions du type: /motif/ {action} La découverte d'un motif lors de la lecture d'une ligne entrainera une action. De plus, dans le corps d'un programme awk, il est possible de spécifier des actions que l'on souhaite voir être effectuées en début ou en fin. Elles sont matérialisés de la façon suivante: BEGIN {action_début} et END{action_fin} Le squelette d'un programme AWK se présentera donc ainsi: BEGIN {action_début} /motif_1/ {action} /motif_2/ {action} /motif_3/ {action} END{action_fin} Dans la mise en œuvre des actions on utilisera un jeu d'instructions que l'on appliquera à des variables. Les instructions fréquemment utilisées sont indiquées dans le tableau ci-dessous:
63 Instruction Action = affectation if conditionnelle for boucle pour while boucle tant que ++ incrémentation de 1 += incrémentation variable Awk initialise automatiquement les variables. Les variables peuvent être des chaînes de caractères ou des nombres suivant le contexte. Lors de la lecture d'une ligne, celle-ci est divisée en champs. Chaque champ est stocké dans une variable spéciale. La ligne complète est stockée dans la variable $0 et chaque champ de la ligne est stocké dans une variable $1, $2, $3, etc. Le nombre de champs est contenu dans la variable NF. Quelques petits exemples: Le script ci-dessous calcule le nombre de lignes vides d'un fichier. On notera l'utilisation de l'expression régulière ^$ ainsi que l'utilisation de l'opérateur d'incrémentation ++. BEGIN {x=0} /^$/ { x++} END {print x} Un autre exemple plus complexe. ############################################################################# # permet de realiser l'extraction des sequences en aminoacide a partir d'un # fichier GenBank ou EMBL qui lui possede la sequence en nucleotides et en # aminoacides. En general la sequence en aminoacide se trouve dans le champ # commentaire du fichier. # # utilisation: awk -f aaseq_xtract.awk fichier_a_extraire > fichier_sortie # ############################################################################# BEGIN { OK = 1 } /^ *[A-Z]*"$/ { chaine = $0; # gsub (/"/,"",chaine); print chaine; # derniere ligne de la seq d'aa OK = 1; # OK est un drapeau permettant de savoir # quand on a fini de lire la seq d'aa } { if (OK!= 1) print $0 } /translation/ {# gsub (//translation=/,""); print $0; # premiere ligne de la seq d'aa OK = 0; }
64 CONCLUSION Ce cours nous a permis de faire un rapide tour du système UNIX. Malgré son aspect ésotérique et cryptique, UNIX est un système dont la puissance ne peut que le faire apprécier de l'utilisateur. Le seul problème réside dans l'approche plus délicate par rapport à d'autres systèmes. UNIX a été conçu par des programmeurs pour des programmeurs donc pour des personnes utilisant de façon intensive l'informatique. Il regorge d'outils et utilitaires de toutes sortes. Il est étonnant de constater que UNIX reste un des seuls systèmes répandus à conserver la ligne de commande (si on compare avec Windows et MacOS). Ceci se traduit certes par une convivialité moindre mais la possibilité de réaliser des scripts s'avère extrêmement puissante. Enfin, j'attirerai votre attention sur l'âge d'unix. Ce système de 30 ans possède en quelque sorte une "sagesse" qui a été insufflée par les innombrables programmeurs ayant participé au développement de ce système d'exploitation. Chaque commande UNIX possède très souvent des ressources insoupconnées. Il suffit, pour se persuader de ceci et lorsque l'on doit résoudre un problème, de consulter attentivement les pages du manuel de chaque commande. Bien souvent, il existe une option toute simple qui fera économiser un temps de développement important
65 Annexe A - Commandes de manipulation de fichiers Commande cd pwd mkdir rmdir ls file more cat cp mv rm touch lpr lpq lprm chmod Action change de répertoire indique le répertoire courant crée un répertoire efface un répertoire affiche le contenu d'un répertoire indique le type de fichier affiche le contenu d'un fichier affiche le contenu d'un fichier copie un fichier déplace ou renomme un fichier efface un fichier crée ou met à jour un fichier imprime un fichier affiche la file d'impression retire un fichier de la file d'impression établi les droits d'accès pour un fichier
66 Annexe B - Commandes de vi Déplacement du curseur Action Touche Descendre d'une ligne j, <return>, + Monter d'une ligne k, - Un caractère à gauche h, <ctrl-h> Un caractère à droite l, <space> Début de la ligne 0, ^ Fin de la ligne $ En avant d'un écran <ctrl-f> En arrière d'un écran <ctrl-b> En avant d'un demi écran <ctrl-d> En arrière d'un demi écran <ctrl-j> Début du fichier 1G Fin du fichier G Déplacer le curseur à la ligne numéro x xg Début de la première ligne sur l'écran Début de la dernière ligne sur l'écran Début de la ligne du milieu sur l'écran H L M Début de la prochaine phrase ) Début de la phrase précédente ( Insertion de texte Action Ajout de texte après le curseur Ajout de texte après la ligne Insérer le texte avant le curseur Insérer le texte au début de la ligne Crée une nouvelle ligne vide après la ligne courante Crée une nouvelle ligne vide avant la ligne courante Touche a A i I o O Modification de texte Action Modification du mot courant Modification de la ligne courante Effacer le caractère Effacer le caractère avant le curseur Touche cw, cw C x X Effacer le mot dw, dw Effacer la ligne dd Effacer le texte jusqu'à la fin de la ligne D, d$ Colle la ligne suivante à la ligne courante J
67 Colle le texte du tampon après le curseur Colle le texte du tampon avant le curseur p P Répète la dernière commande de modification. Remplace le caractère courant r Remplace le texte jusqu'à la fin de la ligne R Remplace du caractère par du texte s Annule la commande précédente u Transpose les caractères xp Change minuscule/majuscule (et inversement) ~ Copie un mot dans le tampon yw Copie la ligne courante dans le tampon Y, yy Copie x lignes dans le tampon x yy Enregistrer et quitter Action Touche Quitter sans enregistrer :q! Quitter et enregistrer :x, :wq, ZZ Enregistrer le fichier courant :w Enregistrer sous un nom différent :w filename Enregistrer les lignes 1 à 10 :1,10w filename Forcer l'enregistrement :w! filename Recherche et subsitution de caractères Action Touche Rechercher la chaîne de caractères texte /texte Renouveler la même recherche n Renouveler la même recherche en arrière N Recherche le prochain caractère x Fx Recherche le prochain carcatère x Fx Recommence la recherche du caractère ; Renouveler la même recherche en arrière N Action Substitue la chaîne yyy à la chaîne xxx dans la ligne courante Substitue la chaîne yyy à la chaîne xxx partout dans la ligne courante Substitue la chaîne yyy à la chaîne xxx dans tout le fichier Substitue la chaîne yyy à la chaîne xxx dans tout le fichier avec confirmation Touche :s/xxx/yyy :s/xxx/yyy/g :g/xxx/s//yyy/g :g/xxx/s//yyy/cg Manipulation des tampons Action Copie de la ligne courante dans le tampon par défaut Touches yy Y
68 Copie de n lignes dans le tampon par défaut Copie de la ligne courante dans le tampon x Copie de n lignes dans le tampon x Copie du tampon par défaut après le curseur Copie du tampon par défaut avant le curseur Copie du tampon x après le curseur Copie du tampon x avant le curseur nyy "xyy "xnyy p P "xp "xp Utilisation des commandes ex dans vi Affiche les numéros de ligne Retire l'affichage des numéros de lignes Insère un fichier :set nu :set nonu :r filename Divers trucs Trouver le numéro d'une ligne Ctrl-G Lancer une commande du shell :!commande Lancer une commande shell et récupérer la sortie dans vi :r! commande Trouver les parenthèses ou crochets fermants % Fichier.exrc :set all Display all Set options :set autoindent Indent following lines to the indentation of previous line. :set ts=4 set tab stop to 4 char :set ignorecase Ignore case during pattern matching. :set list Show special characters in the file. :set number Display line numbers. :set shiftwidth=n Width for shifting operators << and >> :set showmode Display when in Insert, Append, or Replace mode. :set wrapmargin=n Set right margin 80-n for autowrapping lines (inserting newlines). 0 turns it off. Travail sur plusieurs fichiers Ouvre un fichier :e fichier Ouvre un fichier sans sauver le fichier courant :e! fichier Passer au fichier suivant :n Passer au fichier suivant sans sauver le fichier courant :n!
69 Annexe C - Caractères non imprimables Cette liste est donnée pour pouvoir effectuer des changements de caractères en utilisant le filtre tr. On rappelle qu'on peut mettre en évidence les caractères non imprimables d'un fichier grâce à la commande cat -v. Décimal Octal Hexa Caractère Signification Ctrl-@ NUL Ctrl-A SOH (Start of Heading) Ctrl-B STX (Start of Text) Ctrl-C ETX (End of Text) Ctrl-D EOT (End of Transmission) Ctrl-E ENQ (Enquiry) Ctrl-F ACK (Acknowledge) Ctrl-G BEL (Bell) Ctrl-H BS (Backspace) Ctrl-I HT (Horizontal Tab) A Ctrl-J LF (Linefeed) B Ctrl-K VT (Vertical tab) C Ctrl-L NP (New page) D Ctrl-M CR (Carriage return) E Ctrl-N SO (Shift out) F Ctrl-O SI (Shift in) Ctrl-P DLE (Data link escape) Ctrl-Q DC1 (X-ON) Ctrl-R DC Ctrl-S DC3 (X-OFF) Ctrl-T DC Ctrl-U NAK (no acknowledge) Ctrl-V SYN (Synchronous idle) Ctrl-W ETB (End transmission block) Ctrl-X CAN (Cancel) Ctrl-Y EM (End of medium) A Ctrl-Z SUB (Substitute) B Ctrl-[ ESC (Escape) C Ctrl- FS (File separator) D Ctrl-] GS (Group separator) E Ctrl- RS (Record separator) F Ctrl- US (Unit separator) F DEL
70 Annexe D - Les commandes ftp Dans le tableau ci-dessous les commandes les plus usitées. Commande ascii binary cd close dir get help lcd ls open put pwd Action Transfert de fichiers textes Transfert de fichiers binaires Change de répertoire sur le serveur Termine la session ftp Listing complet du répertoire du serveur Récupère un fichier à partir du serveur Aide en ligne Change de répertoire localement Listing court du répertoire du serveur Se connecte à un nouveau système Envoie un fichier vers le serveur Affiche le répertoire courant du serveur La liste complète est donnée en appuyant sur?! cr macdef proxy send $ delete mdelete sendport status account debug mdir put struct append dir mget pwd sunique ascii disconnect mkdir quit tenex bell form mls quote trace binary get mode recv type bye glob mput remotehelp user case hash nmap rename verbose cd help ntrans reset? cdup lcd open rmdir close ls prompt runique On obtient l'aide relative à une instruction avec la fonction help comme ci-dessous: ftp> help prompt prompt force interactive prompting on multiple commands
71 Annexe E - Les caractères spéciaux du shell Voici une petite liste des caractères spéciaux du shell les plus utilisés. Cette liste n'est bien sûr pas exhaustive. Caractère Signification, utilisation - tube (pipe) redirige la sortie standard < redirige l'entrée standard > edirige la sortie standard & exécute une commande en tâche de fond? correspond à un caractère * correspond à zéro ou n caractères ; séparateur de commandes ~ répertoire maison! commande history $var contenu de la variable var
72 Annexe F - Classification des commandes UNIX Gestion de fichiers cd change de répertoire chgrp change le groupe possesseur d'un fichier chmod change les droits d'accès d'un fichier chown change le possesseur d'un fichier cp copie un fichier file donne le type d'un fichier find recherche un fichier ln crée des liens ls donne la liste des fichiers mkdir crée un répertoire mv déplace ou renomme les fichiers ou les répertoires pwd affiche le répertoire courant rcp copie un fichier sur un système distant rm efface un fichier rmdir efface un répertoire Consultation de fichiers cat affiche le contenu d'un fichier head affiche le début d'un fichier more affiche le contenu d'un fichier écran par écran tail affiche la fin d'un fichier Comparaison de fichiers cmp compare deux fichiers comm compare les éléments des fichiers diff comparaison de deux fichiers diff3 comparaison de trois fichiers dircmp comparaison de répertoires sdiff comparaison de deux fichiers côte à côte Recherche dans un fichier egrep version étendue de grep fgrep recherche littérale de mots grep recherche de motifs dans un fichier strings recherche du texte dans un fichier binaire Edition de texte ed ex emacs vi Manipulation de texte awk language de traitement de fichiers texte cut sélectionne les colonnes à afficher dd fmt reformate les lignes pour obtenir environ une même longueur fold reformate les lignes pour obtenir exactement une même longueur join fusionne des colonnes paste fusionne des colonnes sed filtre de traitement de fichiers texte sort tri de fichiers tr traducteur de caractères uniq affiche les lignes uniques dans un fichier Impression cancel lp lpstat pr annule une impression envoie une impression affiche l'état de l'imprimante reformate un texte pour impression Gestion des processus at exécute des commandes à une heure donnée crontab automatisation de l'exécution de certaines commande kill envoie un signal à un processus ps donne la liste des processus uptime donne la charge du système who donne la liste des utilisateurs connectés
73 Annexe G - Les messages d'erreurs sous UNIX Voici quelques messages d'erreurs susceptibles d'apparaître lors d'une session de travail avec UNIX. arguments too long: Ce message apparait quand il y a trop d'arguments sur la ligne de commande. Par exemple avec la commande ls * exécutée dans un répertoire contenant trop de fichiers. broken pipe Ceci arrive quand lors d'un "pipe" un des programmes en amont s'arrête de façon impromptue. bus error (core dumped) Gros plantage d'un programme. command not found On cherche à utiliser une commande qui n'existe pas ou qui ne se trouve pas dans le chemin de son shell ($PATH). directory not empty On cherche à effacer un répertoire qui contient encore des fichiers permission denied On a tenté d'exécuter un programme pour lequel on ne possède pas les droits en exécution segmentation fault (core dumped) Ce message apparait quand le programme que l'on fait tourner tente d'écrire dans une zone mémoire à l'extérieur de l'espace mémoire qui lui a été assigné
74 ANNEXE H - Exemple de fichier.cshrc Voici un exemple de fichier.cshrc tel qu'il existe sur une station SunOS # initial setup file for both interactive and noninteractive # C-Shells # ################################################################# # Set openwin as my default window system set mychoice=openwin # set up search path # add directories for local commands set lpath = ( ) if ( ${?mychoice}!= 0 ) then if ( ${mychoice} == "openwin" ) then set lpath = ( /usr/openwin/bin/xview /usr/openwin/bin $lpath ) endif endif set path = (. ~ $lpath ~/bin /usr/local /usr/ucb /usr/bin /usr/etc) # cd path #set lcd = ( ) # add parents of frequently used directories #set cdpath = (.. ~ ~/bin ~/src $lcd) # set this for all shells set noclobber # aliases for all shells alias cd alias cp alias mv alias rm alias pwd #alias del #umask 002 'cd \!*;echo $cwd' 'cp -i' 'mv -i' 'rm -i' 'echo $cwd' 'rm -i' # skip remaining setup if not an interactive shell if ($?USER == 0 $?prompt == 0) exit # settings for interactive shells set history=40 set ignoreeof #set notify #set savehist=40 #set prompt="% " #set prompt="`hostname`{`whoami`}\!: " #set time=100 # commands for interactive shells #date #pwd # other aliases #alias a #alias h #alias u #alias ^L #alias list #alias lock alias 'history \!* head -39 more' unalias clear cat lockscreen
75 #alias m #alias mroe #alias type #alias. #alias.. #alias, #alias dir #alias pdw #alias la #alias ll #alias ls #alias pd #alias po #alias pp #alias +w #alias -w #alias x #alias j #alias bye #alias ciao #alias adios #alias psg #alias punt #alias r #alias run more more more 'echo $cwd' 'set dot=$cwd;cd..' 'cd $dot ' ls 'echo $cwd' 'ls -a' 'ls -la' 'ls -F' dirs popd pushd 'chmod go+w' 'chmod go-w' 'chmod +x' 'jobs -l' logout logout logout 'ps -ax grep \!* grep -v grep' kill rlogin source #alias nms 'tbl \!* nroff -ms more' #alias tms 'tbl \!* troff -t -ms >! troff.output &' #alias tpr 'tbl \!* troff -t -ms lpr -t &' #alias ppr 'lpr -t \!* &' # nroff -ms # troff -ms # troff & print # print troffed #alias lp1 #alias lq1 #alias lr1 #alias sd #alias edit #alias help #alias key #alias mkae 'lpr -P1' 'lpq -P1' 'lprm -P1' 'screendump rastrepl lpr -v &' textedit man 'man -k' make
76 ANNEXE I - Extensions des noms de fichiers On trouvera dans ce tableau les extensions de fichiers les plus couramment utilisées dans le monde UNIX. Extension Type - Description.a Archive, bibliothèque de programmes.c Code source d'un programme en langage C.h Fichier d'entêtes d'un programme en C.f Code source d'un programme en Fortran.o Fichier objet (issu d'une compilation).s Code source en assembleur.z Fichier compressé avec compress.tar Fichier d'archive généré par tar.shar Fichier d'archive shell.sh Script en Bourne shell.csh Script en C shell.pl Script en PERL.html Code source HTML.gz Fichier compressé par gzip.ps Fichier Postscript.eps Fichier Postscript encapsulé.1 jusqu'à.8 Fichiers du manuel On pensera également à utiliser la commande file qui permet de déterminer le type d'un fichier. Cette commande dépend du contenu du fichier /etc/magic
77 ANNEXE J - Evolution d'unix Unics UNIX V1 UNIX V BSD 1979 UNIX V Syst IV 1982 SunOS 1983 Syst V UNIX V8 Mach 1986 AIX HP-UX Syst Vr4 Mach 25 Nextstep 1989 UNIX V10 Nextstep 1990 OSF/ SunOS 412 Linux0. 01 NetBSD 1992 UNIXw are Solaris 1993 FreeBS D OSF/3 Digital UNIX Linux Openstep 1997 Rhapsody 1998 Digital UNIX Mach AIX HP-UX 11.0 UNIXw are 71 Solaris 7 Tm64 UNIX Linux 2.2 FreeBS D 31 NetBSD 13 IBM HP SUN Digital Apple MacOS X
78 ANNEXE K Un exemple de script en C shell #!/bin/csh # script pour faire des comparaisons de sequence 2 a 2 # O.Collin 4 fevrier 1999 # test du nom de la machine set machine = `hostname` if ($machine!= jaffar) then echo "Desole, ce script ne tournera que sur jaffar..." exit 1 endif # test des parametre du script if ($#argv == 0) then echo "Erreur de syntaxe..." echo "Utilisation du script : comp repertoire " exit 1 endif rm resultats touch resultats # inclusion de la sequence d'initialisation du GCG source /opt/gcg/gcgstartup gcg gcgsupport # on passe dans le repertoire cd $argv[1] # traitement proprement dit: comparaison des sequences deux a deux foreach fichier1 (`ls`) foreach fichier2 (`ls`) echo "Comparaison du fichier $fichier1 avec le fichier $fichier2" echo "Comparaison du fichier $fichier1 avec le fichier $fichier2" >>&../resultats set fin1 = `grep source $fichier1 awk '{FS="."}{print $3}'` echo "Le nombre nucleotides de $fichier1 est $fin1" set fin2 = `grep source $fichier2 awk '{FS="."}{print $3}'` echo "Le nombre nucleotides de $fichier2 est $fin2" # generation de la ligne de commande gap $fichier1 $fichier2 -BEG1=1 -BEG2=1 -END1=$fin1 -END2=$fin2 -NOREV1 -NOREV2 - GAP=50 -LEN=3 -OUT=/dev/null gap $fichier1 $fichier2 -BEG1=1 -BEG2=1 -END1=$fin1 -END2=$fin2 -NOREV1 -NOREV2 - GAP=50 -LEN=3 -OUT=/dev/null >>&../resultats end end cd.. # retour a la case depart # on traite le fichier des resultats awk '/Comparaison/ {printf("%s\t%s\t",$4,$8)} /Similarity/ {printf ("%s\n", $3)} ' resultats awk '/Comparaison/ {printf("%s\t%s\t",$4,$8)} /Similarity/ {printf ("%s\n", $3)} ' resultats > resultat.final
79 ANNEXE L - IDENTIFICATION D'UN SYSTEME UNIX Caractère SVRx BSD Nom du noyau /unix /vmunix Initialisation du terminale /etc/inittab /etc/ttys Séquence de boot Répertoires /etc/rc.d Fichiers /etc/rc.* shells sh, ksh sh, csh Impressions lp, lpstat, cancel lpr, lpq, lprm commande ps ps -ef ps -aux
80 ANNEXE M - Carte de référence GNU Emacs
81 Index & &.,33..cshrc,27, 34.login,27.logout,27.netrc,47 A alias,32 apropos,21 Archie,48 at,47, 55 exemple ftp,47 atq,55 atrm,55 awk,62 B BSD,8 C C shell programmation,59 variables d'environnement,28 variables prédéfinies,27 cancel,23 cat,20 cd,17 chmod,14 exemple,15 chown,15 connexion,12 cp,18 cron,55 crontab,55 Ctrl-Z,34 D droits d'accès,13 E elm,46 emacs commandes de base,40 entrées/sorties redirection,30 env,29 expression régulière,57 F fg,33 fichier copie,18 création,18 droits d'accès,13 effacement,19 localisation,20 nom,13 nom absolu,16 nom relatif,16 renommer,19 visualisation,20 fichiers arborescence,15 tests C shell,60 filec,30 find,20 foreach,60 ftp,46 anonyme,46 automatisation,47 commandes,46 G grep,42 H historique,31 history,31 home directory,12 I if,60 impression,23 J jobs,34 K kill,34, 53 L ligne de commande,10 login,12 lp,23 LPDEST,23 lpq,
82 lpr,23 lprm,23 lpstat,23 ls,17 options,18 Lynx,50 M mail,45 man,21 manuel,21 méta-caractères,57 mkdir,19 more,20 mot de passe,12 modification,12 sécurité,12 Multics,8 multitâche,10 multi-utilisateur,10 mv,19 N naviguateur lynx,50 nohup,54 nom d'un fichier,13 P password,12 PATH,29 PID,52 PRINTER,23 processus,52 signalisation,53 prompts,26 ps,52 pwd,17 R rcp,50 répertoire création,19 rlogin,50 rm,19 root,10 rsh,50 S script,9 sed,42 set,28 setenv,29 shell,9, 25 choix,25 signaux,53 sort,44 super-utilisateur,10 switch,60 système V,8 T tcsh édition commandes,34 telnet,49 TERM,29 touch,18 tr,43 tubes,31 U unset,28 V vi,36 commandes de base,39 W whatis,22 whereis,22 X X/Open,8-82 -
Unix/Linux I. 1 ere année DUT. Université marne la vallée
Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins
Aide-Mémoire unix. 9 février 2009
Aide-Mémoire unix Nicolas Kielbasiewicz 9 février 2009 Le système d exploitation unix est de plus en plus présent aujourd hui. Comme tous les projets Open Source, on le trouve sous différentes formes :
TP1 - Prise en main de l environnement Unix.
Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents
«Astrophysique et instrumentations associées» Cours UNIX. 2006 Benoît Semelin
M2 «Astrophysique et instrumentations associées» Cours UNIX 2006 Benoît Semelin Les OS OS = Operating System : Programme de base qui assure la gestion du matériel (clavier, écran, disque dur...), du système
Année 2007. Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique
Année 2007 Cours Unix-Shell par Karam ALLALI Ecole Spéciale d Informatique Table des matières 1 Introduction. 5 1.1 Historique.................................... 6 1.2 Système d exploitation.............................
Premiers pas en Linux
Premiers pas en Linux 1 Bref historique Linux Système d'exploitation créé en 1991. Par Linus Torvalds un étudiant nlandais. Développé et amélioré par des centaines de spécialistes dans le monde. Particularité
La mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
PLAN Introduction à UNIX Patrick Fuchs Dynamique des Structures et Interactions des Macromolécules Biologiques Université Paris Diderot [email protected] 2 PLAN Système d'exploitation
TP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
TD séances n 3 et n 4 Répertoires et Fichiers sous Unix
Ce TP est destiné à vous familiariser avec les fichiers sous l'environnement UNIX. Fortement axé sur la pratique, il aborde la création, la manipulation et la suppression des répertoires et fichiers. 1
Introduction au Système d Exploitation Unix/Linux
1 iere partie: Système de Gestion de Fichier B. Jacob IC2/LIUM 17 septembre 2013 Plan 1 Notions de fichier 2 Notions de répertoire 3 Organisation des répertoires 4 Identification d un fichier dans l arborescence
Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél. +41 032 718 2000, [email protected].
Terminal Server 1. Présentation Le terminal server est un service offert par les serveurs Windows 2000 ou par une version spéciale de windows NT 4.0 server, appelée Terminal Server. Un programme client
Module : Informatique Générale 1. Les commandes MS-DOS
1 Les commandes MS-DOS I. Introduction Le DOS est le système d'exploitation le plus connu, sa version la plus commercialisée est celle de Microsoft, baptisée MS-DOS (Microsoft Disk Operating Système).MS-DOS
Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3
UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Système d Exploitation I Programme : Filière SMI S3 Pr. El Mostafa DAOUDI Département de Mathématiques et d Informatique
Shell Bash Niveau débutant
Niveau débutant Introduction Les distributions actuelles de GNU/Linux offrent à l utilisateur un environnement graphique équivalant aux systèmes d exploitation propriétaires du marché. Mais cette ergonomie
Cours Unix 1. Présentation d UNIX. Plan du cours 1
Cours Unix 1 Michel Mauny Plan du cours 1 1. Présentation d Unix (a) Historique (b) Fonctionnalités (c) Unix aujourd hui 2. Connexion et déconnexion ETGL D après http://www.francenet.fr/~perrot/cours unix.html
C.M. 1 & 2 : Prise en main de Linux
Grégory Bonnet [email protected] GREYC Université Caen Basse Normandie Diaporama original : Jean-Philippe Métivier - Boris Lesner But de cet enseignement 1 - Apprendre à manipuler un système Unix/Linux
Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...
Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 Gestion des utilisateurs et des groupes...4 Introduction...4 Les fichiers de base...4 Quelques commandes d'administration...5
Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux
Contents 1 Premiers pas en Linux 1 1.1 Bref historique Linux....................... 1 1.2 Généralités............................. 1 1.3 Arborescence sous Linux...................... 2 1.4 Commandes fondamentales....................
Impression sous Linux
Stéphane Gill [email protected] Table des matières Introduction 2 Gestion de la file d attente d impression 2 Impression d un fichier 2 Contenu de la file d attente d impression 3 lprm,
Installation de Windows 2003 Serveur
Installation de Windows 2003 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows
Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5
Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 La Sauvegarde...4 Les différents types...4 Planification...4 Les outils...5 Quelques commandes...5 La commande tar...5 La
Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre 2010 http://www.loligrub.be
Linux et le Shell Francois BAYART Atelier du samedi 20 Novembre 2010 http://www.loligrub.be 1 Le «système» 2 FHS http://fr.wikipedia.org/wiki/filesystem_hierarchy_standard Filesystem Hierarchy Standard
Programmation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
FreeNAS 0.7.1 Shere. Par THOREZ Nicolas
FreeNAS 0.7.1 Shere Par THOREZ Nicolas I Introduction FreeNAS est un OS basé sur FreeBSD et destiné à mettre en œuvre un NAS, système de partage de stockage. Pour faire simple, un NAS est une zone de stockage
Bon ben voilà c est fait!
Bon ben voilà c est fait! Au programme : - Exploration de l arborescence et informations systèmes - Action sur les dossiers et fichiers - Gestion des autorisations - Conversion pdf en text - Connexion
Comment configurer Kubuntu
Comment configurer Kubuntu Configuration du réseau... 1 Configurer votre système Linux sur le réseau...1 Vérifier manuellement l adresse IP...5 Connecter un lecteur réseau distant Windows/Mac grâce au
Retrospect 7.7 Addendum au Guide d'utilisation
Retrospect 7.7 Addendum au Guide d'utilisation 2011 Retrospect, Inc. Certaines parties 1989-2010 EMC Corporation. Tous droits réservés. Guide d utilisation d Retrospect 7.7, première édition. L utilisation
TP 1 : prise en main de Windows. TP 1 : prise en main de Windows
TP 1 : prise en main de Windows TP 1 : prise en main de Windows Objectif du TP : prise en main de Windows manipulation de l'environnement utilisation de quelques logiciels de récupération de données Introduction
HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)
SYSTEME Chapitre 1 HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.) Ce qu'est un S.E. = partie intelligente d'un système donné. Les S.E. ont évolué au fil des années. Ils dépendent de l'architecture des ordinateurs
GUIDE DE L UTILISATEUR Recoveo Récupérateur de données
Table d index : 1. Généralités 1 2. Installation du logiciel 2 3. Suppression du logiciel 2 4. Activation du logiciel 3 5. Récupération de données perdues 4 6. Interprétation du résultat 6 7. Enregistrement
Introduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 2 : Language de commandes, Scripts Shell D après un cours de Julien Forget (Univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ [email protected]
WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0
WINDOWS NT 2000: Travaux Pratiques -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 TABLE DES MATIÈRES Installer un boitier Serveur...3 Fonctions du boitier :...3 Installation du boitier Hp Jetdirect
LOGICIEL ALARM MONITORING
LOGICIEL ALARM MONITORING Superviseur des centrales Galaxy - 1 - APPLICATIONS 4 Application locale sur le site 4 Application à distance 4 RACCORDEMENTS 4 CARACTERISTIQUES MATERIELLES 5 Centrale Galaxy
Personnes ressources Tice. Académie de Rouen
Personnes ressources Tice Académie de Rouen Objectifs Acquérir les connaissances de base concernant Linux Découvrir la solution technique SambaEdu3 : serveur de fichiers sous Linux Mettre en oeuvre cette
L informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Installation et Réinstallation de Windows XP
Installation et Réinstallation de Windows XP Vous trouvez que votre PC n'est plus très stable ou n'est plus aussi rapide qu'avant? Un virus a tellement mis la pagaille dans votre système d'exploitation
Cyberclasse L'interface web pas à pas
Cyberclasse L'interface web pas à pas Version 1.4.18 Janvier 2008 Remarque préliminaire : les fonctionnalités décrites dans ce guide sont celles testées dans les écoles pilotes du projet Cyberclasse; il
Chapitre 3 : Système de gestion de fichiers
: 3.1- Introduction Le système de gestion de fichiers (SGF) est la partie la plus visible d un système d exploitation qui se charge de gérer le stockage et la manipulation de fichiers (sur une unité de
Protocoles DHCP et DNS
Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)
Serveur d application WebDev
Serveur d application WebDev Serveur d application WebDev Version 14 Serveur application WebDev - 14-1 - 1208 Visitez régulièrement le site www.pcsoft.fr, espace téléchargement, pour vérifier si des mises
Table des matières ENVIRONNEMENT
ENVIRONNEMENT Présentation de Windows 7.................13 Démarrer Windows 7......................15 Quitter.................................15 Les fenêtres..............................16 Généralités............................17
Affectation standard Affectation modifiée (exemple)
1 sur 5 13/02/2005 11:44 Les fonctions qui vont être abordées vont vous apprendre à : comprendre l'arborescence Poste de travail, disque Répertoire ou dossier Chemin absolu, relatif utiliser l'explorateur
Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla
Table des matières Table des matières Généralités Présentation Interface Utiliser FileZilla Connexion FTP Connexion SFTP Erreurs de connexion Transfert des fichiers Vue sur la file d'attente Menu contextuel
SYSTÈME DE GESTION DE FICHIERS
SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S
INFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : [email protected] téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table
TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Installation de Windows 2000 Serveur
Installation de Windows 2000 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows
Couche application. La couche application est la plus élevée du modèle de référence.
Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
TP1 : Initiation à l algorithmique (1 séance)
Université de Versailles Vanessa Vitse IUT de Vélizy - Algorithmique 2006/2007 TP1 : Initiation à l algorithmique (1 séance) 1 Prise en main de l environnement Unix : rappels et compléments Le but de la
Architecture de la plateforme SBC
Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur
PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]
PPe jaune Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP] Sommaire 1) Architecture réseau... 3 2) Introduction FTP... 4 3) Le rôle du protocole FTP... 4 4) Diagramme
LINUX REMPLAÇANT WINDOWS NT
189 Cette installation fonctionne chez moi à Veyre. Vous pouvez consulter et télécharger les fichiers à : http://perso.wanadoo.fr/gerard.blanchet/ veyre/ Mais c'est tout à fait adapté à un établissement
Projet Administration Réseaux
EL KHATIT Zouhair, L3 ASR N : 20072486 Projet Administration Réseaux Thème : SFTP & SCPOnly I- SFTP (Secure File Transfer Protocol) : Introduction: Le SFTP permet de transférer des fichiers par une connexion
Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT
Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer
Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.
Tutoriel d'utilisation de Chamilo Chamilo 1.8.6.2-1.8.7 Version Administrateur Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local. Table des matières Le serveur...2
Utilisation d'un réseau avec IACA
Utilisation d'un réseau avec IACA Réseau IACA composé d'un ou plusieurs serveurs et de station 95 ou 98 ou ME ou NTWS ou 2000 ou XP Pro. Le réseau Le serveur est un ordinateur sur lequel a été installé
PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille
PRESENTATION RESSOURCES Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille 1) Introduction, Objectifs et Intentions Le BTS SN (Systèmes Numériques) intègre la formation
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur
Outils pour la pratique
Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.
Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide
Symantec Backup Exec 12.5 for Windows Servers Guide d'installation rapide 13897290 Installation de Backup Exec Ce document traite des sujets suivants: Configuration requise Conditions préalables à l'installation
HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation
HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM Manuel d'utilisation OPTIMALOG 2008 Table des matières I Table des matières Part I Gestionnaire d'alarmes Optim'Alarm
Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR CUPS. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS
Journée Josy/PLUME Outils logiciels libres utiles à tout ASR CUPS Maurice Libes Centre d'océanologie de Marseille UMS 2196 CNRS Plan - Présentation de Samba Contexte utilisation Laboratoire Objectifs,
(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )
Système d Exploitation d : MS-DOS MicroSoft Disk Operating System C est un système d exploitation développé par la société Microsoft. Il offre une interface textuelle basée sur un ensemble de commandes.
La Comptabilité UNIX System V Acctcom
Introdution La Comptabilité UNIX System V Acctcom (Groupe GLACE) Hervé Schauer [email protected] Acctcom est le système de comptabilité (accounting) d Unix System V. Il a été conçu pour permettre une facturation
l'ordinateur les bases
l'ordinateur les bases Démarrage de l'ordinateur - Le bureau, mon espace de travail - J'utilise la souris - Ouvertes ou fermées, les fenêtres - Dans l'ordinateur, tout est fichier - Le clavier : écrire,
Table des matières. 2011 Hakim Benameurlaine 1
Table des matières 1 SERVICE D IMPRESSION... 2 1.1 Introduction... 2 1.2 Système BSD... 2 1.2.1 Commandes d impression... 3 1.2.2 Filtres d impression... 3 1.2.3 LPRng (Line PRinter next generation)...
Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn
Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn [email protected] U. Laval - Mars 2013 1 2 Plan de la présentation 1.Accéder à une grappe 2.Fichiers
1 Démarrage de Marionnet
Institut Galilée Administration Système Année 2011-2012 INFO 2ème année Master Info 1 Master Image & Réseau 1 T.P. 1 Administration Système Le logiciel Marionnet (www.marionnet.org) offre la possibilité
Chapitre 2 Accès aux partages depuis votre système d'exploitation
Chapitre 2 Accès aux partages depuis votre système d'exploitation Ce chapitre présente des exemples d'accès à des partages sur le périphérique ReadyNAS Duo via différents systèmes d'exploitation. En cas
Table des matières. 2011 Hakim Benameurlaine 1
Table des matières 1 OpenSSH... 2 1.1 Introduction... 2 1.2 Installation... 2 1.3 Test de connexion... 2 1.4 Configuration du serveur ssh... 3 1.5 Contrôle du service ssh... 4 1.6 Log... 4 1.7 Client ssh...
Manuel d utilisation email NETexcom
Manuel d utilisation email NETexcom Table des matières Vos emails avec NETexcom... 3 Présentation... 3 GroupWare... 3 WebMail emails sur internet... 4 Se connecter au Webmail... 4 Menu principal... 5 La
Module 0 : Présentation de Windows 2000
Module 0 : Présentation de Table des matières Vue d'ensemble Systèmes d'exploitation Implémentation de la gestion de réseau dans 1 Vue d'ensemble Donner une vue d'ensemble des sujets et des objectifs de
Microsoft Windows NT Server
Microsoft Windows NT Server Sommaire : INSTALLATION DE WINDOWS NT SERVER... 2 WINNT.EXE OU WINNT32.EXE... 2 PARTITION... 2 FAT OU NTFS... 2 TYPE DE SERVEUR... 2 Contrôleur principal de Domaine (CPD)....
Manuel d'impression réseau
Manuel d'impression réseau 1 2 3 4 5 6 7 Configuration sous Windows 95/98/Me Configuration sous Windows 2000 Configuration sous Windows XP Configuration sous Windows NT 4.0 Configuration sous NetWare Configuration
TP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)
TP n 2 : Installation et administration du serveur ProFTP Objectifs du TP Comprendre le fonctionnement du protocole FTP Installation et compilation d un paquet source Configuration, lancement et administration
Informatique I. Sciences et Technologies du Vivant (Semestre 1)
Informatique I Sciences et Technologies du Vivant (Semestre 1) Vincent Lepetit [email protected] http://cvlabwww.epfl.ch/~lepetit/courses/sv https://www.coursera.org/course/intro-cpp-fr 1 Cours 1
Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap
Page 1 of 7 Rechercher sur le Web Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap Accueil Actualité Windows Vista Windows Server Active Directory TCP/IP Securité Qui
Symantec Backup Exec Remote Media Agent for Linux Servers
Annexe I Symantec Backup Exec Remote Media Agent for Linux Servers Cette annexe traite des sujets suivants : A propos de Remote Media Agent Comment fonctionne Remote Media Agent Conditions requises pour
Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :
Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : http://www.hegerys.com/documentation/magicsafe-windows-doc.pdf
Configuration de l imprimante sous Gnu/Linux www.ofppt.info
ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail www.ofppt.info DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Concepts de base de l'impression
LINUX - ADMINISTRATION PROGRAMME DE FORMATION
LINUX - ADMINISTRATION Objectifs : Cette formation a pour objectif de vous apprendre les éléments de base de l'administration en commençant par un rappel des commandes de bases et l'apprentissage de la
Cours Shell Unix Commandes & Programmation. Révision corrigée du 31/01/2003
Cours Shell Unix Commandes & Programmation Révision corrigée du 31/01/2003 Sébastien ROHAUT 2002-2003 Table des matières 1 PRÉSENTATION...6 1.1 Définition...6 1.2 Historique...6 1.2.1 Les origines...6
STATISTICA Version 12 : Instructions d'installation
STATISTICA Version 12 : Instructions d'installation STATISTICA Entreprise Server Remarques : 1. L'installation de STATISTICA Entreprise Server s'effectue en deux temps : a) l'installation du serveur et
Guide de configuration de SQL Server pour BusinessObjects Planning
Guide de configuration de SQL Server pour BusinessObjects Planning BusinessObjects Planning XI Release 2 Copyright 2007 Business Objects. Tous droits réservés. Business Objects est propriétaire des brevets
Séance 0 : Linux + Octave : le compromis idéal
Séance 0 : Linux + Octave : le compromis idéal Introduction Linux est un système d'exploitation multi-tâches et multi-utilisateurs, basé sur la gratuité et développé par une communauté de passionnés. C'est
PARAGON SYSTEM BACKUP 2010
PARAGON SYSTEM BACKUP 2010 Paragon System Backup 2010 2 Manuel d'utilisation SOMMAIRE 1 Introduction...3 1.1 Comment System Backup protège mon ordinateur?...3 1.1.1 Emplacement du stockage des clichés...
Organiser le disque dur Dossiers Fichiers
Ce document contient des éléments empruntés aux pages d aide de Microsoft Organiser le disque dur Dossiers Fichiers Généralités La connaissance de la logique d organisation des données sur le disque dur
L'accès aux ressources informatiques de l'ufr des Sciences
L'accès aux ressources informatiques de l'ufr des Sciences Infrastructure et document produit par le service des ressources Informatiques de l'ufr des sciences. Introduction : Ce document présente les
Réaliser un inventaire Documentation utilisateur
Référence : 11662 Version N : 6 Créé le : 29 Janvier 2014 Créé par : Bruno RICHOUX Téléphone : 0811 65 60 02 Sommaire 1. Conventions... 3 2. Introduction... 4 3. Principes généraux... 5 3.1. Depuis les
Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un
ESZ Introduction à l informatique et à l environnement de travail Éric Gaul (avec la collaboration de Dominic Boire) Partie 1: Concepts de base Ordinateur Logiciel Mémoire Données Entrées/sorties Périphériques
Démarrer et quitter... 13
Démarrer et quitter... 13 Astuce 1 - Ouvrir, modifier, ajouter un élément dans le Registre... 14 Astuce 2 - Créer un point de restauration... 18 Astuce 3 - Rétablir un point de restauration... 21 Astuce
FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères
FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant
ECLIPSE ET PDT (Php development tools)
ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement
Les commandes relatives aux réseaux
SHELL Les commandes relatives aux réseaux L'accès aux ou via les réseaux est devenu vital, aussi, les commandes traditionnelles de connexion et de transfert de fichiers ont été remplacées par des commandes
WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB
WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB Installation et administration d un serveur web Module 25793 TP A5 (1/2 valeur) Chapitre 14 Mise en place d un serveur ftp Le plus grand
