Sommaire 1. Historique - OS - Fonctionnalités d’Unix - POSIX 2. Les fonctions de l’administrateur 3. Structures des fichiers 4. Connexion - Déconnexion 5. Installation UNIX: Linux 6. Syntaxe d’une commande Unix 7. Les commandes Unix de bases 8. Les re-directions et les Pipes 9. La gestion de fichiers 10. Répertoires et fichiers 11. La sécurité des accès fichiers 12. Les éditeurs de textes 13. Création d’un compte utilisateur 14. Gestion des comptes utilisateurs 15. X11/CDE 16 Processus - Lancement différé 17. La programmation Shell 18. Gestion des périphériques 19. Configuration réseau © A. Ibriz, Cours Unix Page : 1 Cours Linux Partie I: Introduction et Utilisation A. IBRIZ © A. Ibriz, Cours Unix Page : 2 1.L'histoire d'UNIX - 1966 : les laboratoires Bell (filiale d'AT&T) ont besoin pour leur usage interne, d'un système d'exploitation pour le traitement de textes et le développement d'applications. Ken Thomson et son équipe sont chargés de ce travail. - 1969 : apparition de la 1ère version d'UNIX. Le nom UNIX provient de UNICS (UNiplexed Information and Computing System), système d'exploitation qui a succédé à Multics dans les laboratoires Bell. - 1973 : nécessité de rendre UNIX portable sur d'autres ordinateurs. Denis Ritchie réécrit alors entièrement UNIX en langage C qui a d'ailleurs été créé dans ce but précis. Ceci explique les liens profonds entre le langage C et UNIX. - 1974 : AT&T propose les 1ères licences aux universités ce qui apporta un enrichissement en extensions et en utilitaires variés à UNIX (en particulier, l'Université de Berkeley). Cette date correspond au début de la popularité et de la diversité d'UNIX. - 1978 : AT&T présente à l'industrie les 1ères versions commerciales. - années 80 : AT&T autorise le clonage d'UNIX par d'autres constructeurs. Ainsi, apparaissent ULTRIX sur DEC, BSD sur SUN, AIX sur IBM, etc. Ces versions constructeur dérivent toutes des 2 versions présentes à l'époque et qui sont : - System V pour des configurations moyennes et petites ; USL (Unix Systems Labs, filiale d'AT&T) en est responsable actuellement ; - BSD (Berkeley Software Distribution) pour des configurations importantes dans le domaine scientifique). À noter qu'il existe quelques différences de syntaxe entre certaines commandes UNIX de type System V et celles de type BSD. Dans le document suivant, la syntaxe utilisée est celle utilisée par la version BSD sur Linux (stations utilisées pour ce cours). © A. Ibriz, Cours Unix Page : 3 1.2 L’Operating System (O.S.) 1.2.1. Les Fonctions d ’un système d ’Exploitation • Gestion et Ordonnancement des tâches • Gestion : • de la Mémoire • des Interruptions • des Périphériques • des Fichiers • des Programmes • des Travaux en cours • du Temps • Traitement des erreurs et reprises • Communication et synchronisation => Les systèmes d'exploitations définissent comment on peut exploiter la machine sur laquelle ils sont installés => Un de ces systèmes les plus populaires est le système Unix. © A. Ibriz, Cours Unix Page : 4 1.2.2. Positionnement de l ’OS dans un système informatique UTILISATEURS Programmes d'apllication SOFT Interpréteur de commandes et utilitaires Soft de base SYSTEME D'EXPLOITATION Microcode HARD Matériel MACHINES © A. Ibriz, Cours Unix Page : 5 1.3 Le système UNIX 1.3.1 Les Fonctionnalités du système UNIX Les 4 fonctions principales d'UNIX sont : • Gestion des ressources de l'ordinateur Ce qui a fait le grand succès d'UNIX, c'est le fait d'être un système d'exploitation multi-tâches et multiutilisateurs. En effet, sous UNIX, le temps d'utilisation du processeur de l'ordinateur est réparti entre différentes tâches ce qui se traduit par l'exécution simultanée de programmes. D'autre part, UNIX traite les commandes de plusieurs utilisateurs en même temps. Dans ce contexte, il doit répartir les ressources entre les différentes tâches et utilisateurs de façon transparente pour ces derniers. • Gestion des données Celle-ci consiste en l'organisation, la maintenance et l'accès aux unités de stockage (mémoire, disques durs, bandes magnétiques, etc.) • Communication entre utilisateurs C'est par exemple le courrier électronique ou les transferts de fichiers dont l'utilisation est expliquée plus loin. • Environnement de programmation Ce sont les compilateurs (C et quelquefois Fortran), éditeurs de textes, outils d'aide à la programmation (débogueurs, etc.). © A. Ibriz, Cours Unix Page : 6 A la base, Unix est un système multi-tâches. • Il permet l'exécution de plusieurs processus en parallèle. => Plusieurs personnes peuvent, avec une grande sécurité, exécuter plusieurs applications à la fois sur une seule machine. Aujourd'hui, Unix reste un des systèmes les plus populaires, surtout dans les milieux de recherche et développement. © A. Ibriz, Cours Unix Page : 7 1.3.2 Le Shell • Le shell est un interpréteur de commandes : il permet à l'utilisateur de dialoguer avec le système. C'est le programme généralement exécuté lorsqu'un utilisateur se connecte. Il affiche un "prompt", et attend les commandes de l'utilisateur. • Le shell est aussi un langage de programmation interprété puissant. Il offre à l'utilisateur un environnement composé d'un ensemble de variables et d'alias et un langage de commandes. Il existe différents shells : • sh : Bourne Shell (shell standard unix) • ksh : Korn Shell • csh : C Shell • tcsh : extension de C Shell • bash : GNU: Bourne advanced Shell © A. Ibriz, Cours Unix Page : 8 1.4 La norme POSIX POSIX est le sigle de Portable Operating System Interface. L'IEEE (Institute of Electronical and Electronics Engineers) a instauré la norme POSIX pour promouvoir la portabilité d'applications dans l'environnement UNIX. POSIX.1 n'est cependant pas réservé uniquement à Unix, beaucoup d'autres systèmes d'exploitation Windows NT, DEC VMS l'implémentent. POSIX 1 : Norme de portabilité de niveau source déjà largement acceptée. POSIX 1 fournit une interface de programmation d'application (API) en langage C au système d'exploitation. IEE et ISO ont approuvé cette norme. POSIX.2 : Norme pour l'interpréteur de commande (shell) et pour les outils, c'est à dire respectivement le processeur de commandes et les programmes utilitaires. IEEE a approuvé cette norme. POSIX.3: Norme de test et de contrôle. IEE a approuvé cette norme. POSIX.4 Norme pour la programmation en temps réels et pour les "trhead". Cette norme a été intégrée à POSIX.1 sous la forme de POSIX 1.b (Temps réels) POSIX1.c (unité d'exécution), POSIX 1.d (extension temps réel). POSIX 1.b et POSIX 1.c ont été approuvées par IEEE. © A. Ibriz, Cours Unix Page : 9 POSIX.5 API en langage ADA correspondant à POSIX.1. IEE et ISO ont approuvé cette norme. POSIX.6 Norme pour la sécurité du système. Cette norme est devenue POSIX 1.e. POSIX.7 : Norme pour l'administration des système. Elle est de nos jours appelée P1287. Elle a été approuvée par IEEE et l'ISO. POSIX.8 Norme pour les réseaux POSIX .9 API en langage FORTRAN correspond à POSIX.1 POSIX.10 Norme sur le profil de l'environnement d'application de super-ordinateur (AEP). POSIX.11 Norme proposée pour le traitement de transaction AEP. POSIX.12 Norme concernant les services indépendant des protocoles. Elle est devenue POSIX.1.g POSIX 13 Norme pour le profil d'environnement d'application en temps réel. © A. Ibriz, Cours Unix Page : 10 POSIX.14 Norme concernant le profil d'environnement d'applications en multitraitement POSIX.15 Norme pour le traitement de batch. POSIX16 Norme supprimée. POSIX.17 Norme pour les services de répertoires (X400, X500). Elle est devenu P1224.2, P1326.2, P1327.2 et P1328.2 POSIX .18 Norme donnant le profil POSIX POSIX.19 Norme supprimée POSIX 20 Norme pour les extensions en temps réel en ADA. Elle est devenu POSIX.5.b POSIX.21 Norme pour la communication de système distribuée en temps réel POSIX.22 Guide d'encadrement pour la sécurité …… © A. Ibriz, Cours Unix Page : 11 2. Les fonctions d’un Administrateur Système Unix 2.1 Rôle de l'administrateur • La profession • ne pas confondre avec l'Administration • profession de généraliste peu connue • mais très recherchée • Ses fonctions • maintenir le bon fonctionnement de son parc • résoudre tout type d'incidents • gérer les utilisateurs (création, expiration, limitations) • organiser et maintenir les systèmes de fichiers • surveiller la sécurité du système • configurer au mieux les machines • installer et mettre à jour les nouveaux logiciels • enrichir l'environnement de base fourni par le constructeur • administrer le réseau local et l'accès au réseau public • planifier l'évolution de son parc • choisir de nouveaux équipements • participer à des développements • guider et conseiller les utilisateurs • fonction de pilote © A. Ibriz, Cours Unix Page : 12 2.3 Connaissances de l'administrateur • Connaître Unix • son architecture (noyau, processus, file-system) • ses concepts • ses utilitaires • ses forces • ses faiblesses • Connaître l'environnement • les équipements matériels • les produits logiciels • les besoins des utilisateurs • s'entendre avec les autres administrateurs système • Suivre l'évolution • être en état permanent de veille technologique © A. Ibriz, Cours Unix Page : 13 2.4 Types d'administrations • Administration d'une machine • plus d'intérêt aujourd'hui • Administration d'un réseau de machines homogènes • travail pépère • si routine : administration devient exploitation • Administration d'un réseau de machines hétérogènes • ca c'est du sérieux ! c'est un travail de professionnel • la complexité croît avec le taux d'hétérogénéité • Administration d'un réseau de site • on peut, par l'ampleur de la tâche, devenir un grand gourou • mais on s'arrache les cheveux © A. Ibriz, Cours Unix Page : 14 2.5 Les commandes d'administration • Langages d'administration • shell (Bourne) • expressions régulières • awk • perl • python • Outils d'administration de base • sed • grep • find • Outils d'administration spéfifiques • admintool (Sun), smit (Aix), sysadm (SysV) • tivoli (général) • Manuels : section 8 • man © A. Ibriz, Cours Unix Page : 15 3. La structure des fichiers Dans n'importe quel système d'exploitation, la première chose qu'il faut apprendre est son système de fichiers. 3.1 Structure Le système de fichiers Unix (comme tous les systèmes d'exploitation courant) est composé d'une hiérarchie de répertoires. Le répertoire racine est désigné par un « / » (slash). Il contient des fichiers et d'autres répertoires. Arborescence du système UNIX / etc bin lost+found © A. Ibriz, dev home lib mnt Cours Unix proc root sbin tmp usr var Page : 16 • Le répertoire racine / Il sert de référence lorsqu’on donne un nom absolu de fichier. Exemple : /home/licence_pro/.bashrc En effet le nom absolu de tout fichier commence par le / et réciproquement, tout nom commençant par / représente le nom absolu et unique d’un fichier. Ce répertoire contient principalement les sous répertoires de base nécessaires au démarrage (bin, etc, ...) ainsi que ceux qui serviront pour le rattachement des partitions (usr, users, ...). • Le répertoire /boot Ce répertoire contient le fichier noyau du système chargé par la machine, ainsi que des fichier de configuration du démarrage • Le répertoire /mnt il est disponible pour le rattachement de système de fichier à partir de supports amovible (disquette, bande, dat, ...). Son utilisation est en général ponctuelle (récupération de fichier, copies, archivage, ...). • /lost+found Dans ce répertoire est copié les blocs ayant présentés un problème lors de l’utilisation de la commande fsck © A. Ibriz, Cours Unix Page : 17 • les répertoires de commandes /bin, /sbin, /usr/bin Il contienne des exécutables, qui sont directement appelés lors d’une commande tapée au clavier, par le shell. • Répertoire de fichiers temporaires /tmp Lors de l’exécution de programmes utilitaires (éditeur, compilateur, ..) des fichiers temporaires sont crées. Ils sont en général, situé dans le répertoire /tmp. Remarque : a) Les droits rwx pour tous les utilisateurs doivent être positionnés sur le répertoire /tmp. Aussi, il ne faut pas l’utiliser pour y stocker des informations confidentielle ou importantes. b) Les fichiers sous /tmp ont une durée de vie qui ne dépasse pas celle du programme qui les a créés. Au démarrage, ce répertoire est donc vide généralement. Dans le cas d’un arrêt anormale de la machine, il est possible d’avoir des fichiers temporaire au démarrage qui ont été créés par un éditeur vi par exemple. Il est donc important de réaliser des sauvegarde avant d’effectuer une purge de ce répertoire. • Les répertoires des bibliothèques /lib, /usr/lib Répertoires contenant des fichiers utilisés pour la compilation , par des utilitaires (éditeurs), pour la gestions des terminaux, .... © A. Ibriz, Cours Unix Page : 18 • Répertoire des périphériques /dev Il contient tous les drivers des éléments associés à la machine (écran, disques, disquette, lecteur de bande, imprimantes, voies de communications, ...). Il contient aussi, un fichier permettant de créer ( ou de régénérer...) les entrées associées au périphériques. • Répertoire de l’administrateur /etc Ce répertoire contient les commandes utilisées pour l’administration du système ainsi que les fichiers associés. Ces commandes sont des binaires fournis avec unix ainsi que des programmes en shell script. On trouve principalement • Les commandes: Initialisations (init, shutdwon, halt, ..) Gestion des périphériques (mknod, ..) Gestion des systèmes de fichiers (fsck, mkfs, mount , umount, ...) Gestion divers (cron, accton, ..) • Les fichiers : Associés aux commandes (gettydefs, inittab, rc, mnttab, ..) Définitions d’utilisateurs ( passwd, group, ..) Terminaux (termcap, ttys, printab, ...) © A. Ibriz, Cours Unix Page : 19 • Répertoire /usr Ce répertoire utilisé par les utilisateurs (users). Il sert de parent à d’autres sous répertoires qui sont principalement : • man : documentation en, ligne des commandes unix • doc : (guides, ...) • dict (dictionnaires) associés aux commandes de traitement de texte • games : jeux ... • include : fichiers de définition des structure de données du noyau unix et des bibliothèques (fichier.h) • adm : fichiers d’enregistrement de l’activité système • spool : stockage de fichier temporaire mais devant subsister en cas d’arrêt du système (impression, communications , messagerie,...) • src : fichiers sources • news : informations publiques Remarque : Le répertoire contient en général des fichiers et des programmes en lecture uniquement en raison de la sécurité d’accès. 3.2 Traverser la hiérarchie La commande pour se déplacer dans la hiérarchie des répertoires s’appelle cd. Elle fait partie du shell , l'interface utilisateur. La commande ls permet de voir le contenu d'un répertoire. © A. Ibriz, Cours Unix Page : 20 4. Connexion et déconnexion On suppose ici, que l'utilisateur a déjà été enregistré sur le système et que donc, son identité est présente dans des fichiers particuliers gérés par l'administrateur du système. 4.1 Procédure de connexion Celle-ci peut être scindée en 2 phases : • Connexion logique • Session de travail a) Connexion logique La connexion logique doit avoir lieu entre le terminal (écran + clavier) et l'ordinateur sur lequel on veut travailler. Le terminal peut être aussi un autre ordinateur (stations UNIX, PCs, Macintosh, etc.). Cette connexion dépend de la liaison matérielle entre le terminal et l'ordinateur. Dans le cas le plus simple de la liaison directe, il suffit d'allumer le terminal. © A. Ibriz, Cours Unix Page : 21 b) Initialisation de la session de travail C'est durant cette étape que l'utilisateur va devoir s'identifier auprès du système. Cette identification a lieu de la façon suivante : • affichage du message login: après lequel il faut rentrer son nom d'utilisateur (ou logname) ; • affichage du message Password: après lequel il faut rentrer son mot de passe. Celui-ci n'est pas affiché pendant la frappe pour éviter bien sûr que quelqu'un d'autre puisse l'apercevoir. Remarque: Souvent il apparaît un message demandant de spécifier le type de terminal utilisé (ex : vt100) et ceci de façon à ce que les éditeurs fonctionnent correctement ; si ce message n'est pas affiché, un type de terminal est pris par défaut. Après la connexion, différents messages en provenance de l'administration du système (mots du jour, présence de courrier dans la boîte à lettres, etc.) sont affichés. L'utilisateur est effectivement prêt à travailler quand il reçoit l'invite du système consistant en un marqueur en début de ligne. Ce marqueur est variable selon les machines (ex : $ ou nom_utilisateur@nom_machine>) © A. Ibriz, Cours Unix Page : 22 4.2 Mot de passe 4.2.1 Changement de passe Le changement de mot de passe s'effectue avec la commande passwd. Le changement de mot de passe s'effectue en entrant d'abord le mot de passe actuel puis en entrant le nouveau mot de passe que l'on doit retaper pour confirmation. Old password: New password: Retype new password: © A. Ibriz, Cours Unix Page : 23 4.2.2 Qualités d'un "bon" mot de passe Des personnes peuvent essayer d'accéder de façon illégale à un système UNIX. Un des moyens dont ils disposent est d'entrer sur un compte utilisateur en déterminant son mot de passe. Ils utilisent des chaînes de caractères appartenant à des dictionnaires ou correspondant à des informations personnelles sur l'utilisateur (prénom, nom, numéro de téléphone, etc.). Il est donc nécessaire que votre mot de passe respecte certaines règles de sécurité : • il doit posséder au moins 7 caractères et contenir au moins une lettre majuscule, un chiffre et un caractère de ponctuation, et ceux-ci à l'intérieur et non en début ou fin de mot de passe. Généralement, seuls les 8 premiers caractères sont pris en compte ; • il ne doit pas contenir des données relatives à votre identité comme votre nom d'utilisateur ou une information livrée par la commande finger (voir plus loin) ; • il ne doit pas appartenir à des dictionnaires, tel quel ou sous sa forme canonique (c'est à dire, épuré de tous les caractères non-alphabétiques), à moins qu'il contienne des majuscules autres que le premier caractère ; • il ne doit pas contenir des répétitions de caractère ; • il doit être suffisamment simple pour s'en rappeler ; il ne faut pas le noter sur papier ou dans un fichier ni le donner à quelqu'un d'autre. Exemple de "bons" mots de passe: (2 mots courts séparés par un ou plusieurs caractères de ponctuation ou chiffres) : ble!1the ou si%@sol. © A. Ibriz, Cours Unix Page : 24 4.3 Procédure de déconnexion Celle-ci dépend du type de session qui a été ouverte. • Si un environnement graphique est en place (tel que celui créé par X Windows, l'environnement multi-fenêtrage) , il existe généralement un menu "logout" (ou "exit") qui permet de quitter cet environnement et ainsi de terminer la session de travail. Parfois aussi, ce menu ne permet simplement que de quitter l'environnement graphique. Il faut ensuite procéder à l'étape de déconnexion ci-dessous. • En l'absence d'un environnement graphique, une simple commande telle que logout ou exit, entrée après l'invite du système, suffit pour terminer la session de travail. © A. Ibriz, Cours Unix Page : 25 5. Installation LINUX 5.1 Avant de commencer Avant de commencer votre installation, essayez de répondre à ces quelques questions : • Est-ce que mon matériel est compatible avec Linux-Mandrake ? Les points essentiels sont : • Est-ce que mon processeur est bien compatible i386 ? (c'est le cas des : Intel3.2 486, Pentium, Pentium Pro, Pentium MMX, Pentium II & III, AMD2,3 K6, Cyrix3.4 6x86, 6x86 MX etc.). C'est le seul point qui peut normalement vous empêcher d'installer votre système Linux-Mandrake. • Est-ce que ma carte vidéo est reconnue par Linux ? C'est un point essentiel si vous souhaitez utiliser votre système linux de façon graphique. (Néanmoins, cela ne vous empêchera pas d'en installer la base. ) • Ma carte son, mon modem, ma carte réseau etc. sont-ils compatibles avec Linux ? • Est-ce que je possède des périphériques SCSI ? Il est bon de vérifier à l'avance si vous possédez des disques durs ou un lecteur de CD-Rom SCSI. Essayez également de connaître leurs caractéristiques (modèle de la carte SCSI par exemple). Ces informations sont importantes pour le bon déroulement de l'installation même si, souvent, la détection se font de manière automatique. • Est-ce que j'ai des périphériques PCMCIA ? Si vous installez Linux-Mandrake sur un portable, il y a de fortes chances que vous utilisiez des périphériques PCMCIA. Il faudra l'indiquer lors de la procédure d'installation de Mandrake afin qu'ils soient reconnus. © A. Ibriz, Cours Unix Page : 26 • Quels sont les paramètres actuels de mes divers périphériques ? Si votre PC tourne déjà sous un autre système d'exploitation que Linux, le fait de noter tous les paramètres utilisés par l'autre système peut s'avérer être un grand gain de temps lors de l'installation de Linux-Mandrake. En effet, certaines cartes ne sont pas toujours reconnues immédiatement et il vous sera alors demandé de rentrer manuellement leurs paramètres. Par exemple, si vous possédez une carte réseau ISA NE2000, vous devrez certainement spécifier son ``adresse de base'', et son ``irq''. Concrètement, si vous utilisez déjà Windows(tm) sur votre PC, allez faire un tour dans le panneau de configuration et notez les adresses de base et les irq utilisés pour : • la carte réseau • la carte modem • la carte son • toute autre carte présente dans le PC Renseignez-vous sur la quantité de mémoire vive présente sur votre machine. Essayez de repérer sur quels ports série et parallèles sont connectés votre souris et votre imprimante. Enfin, si votre machine est connectée à un réseau local, elle doit avoir une adresse IP d'attribuée. Tentez de réunir tous les renseignements concernant votre adresse IP, celle de la passerelle réseau, etc. • Comment sont configurés les disques-durs de ma machine ? Si vous possédez un seul disque dédié à l'installation de Linux-Mandrake, alors aucun problème. Dans le cas contraire, il vous faut repérer sur lequel vous allez réaliser l'installation. A défaut de leur numéro d'ordre, renseignez-vous sur leurs tailles respectives, cela vous sera très utile lors de l'installation. De même, il serait bon que vous ayez une idée des différentes partitions présentes sur chaque disque si vous avez déjà un système d'exploitation installé. Par exemple, avez-vous un seul volume ``C:`` ou également un volume ``D:``, voire d'autres volumes ? © A. Ibriz, Cours Unix Page : 27 5.2 Les supports d'installation. Il existe plusieurs moyens d'installer Linux-Mandrake. Le plus courant est l'installation à partir du CD-ROM mais on peut également l'effectuer à partir d'un serveur FTP, par NFS (réseau local), ou même d'un volume SMB (Microsoft). Selon la méthode choisie, vous allez peut-être devoir utiliser une disquette d'installation supplémentaire. • Installation à partir du CD-ROM ou par NFS (réseau) Installation à partir d'un serveur FTP, d'un volume SMB, d'un lecteur de CD-ROM connecté par port PCMCIA, ou d'un disque dur © A. Ibriz, Cours Unix Page : 28 5.2 Lancement de la procédure d'installation. Si votre ordinateur permet de « booter » sur le CD-ROM, faites-le, sinon, démarrez sur la disquette de boot (disquette 1). Note : dans ce dernier cas, vous devrez peut-être forcer le BIOS de votre machine à démarrer sur le lecteur de disquette. Vous devez voir apparaître un écran d'accueil : © A. Ibriz, Cours Unix Page : 29 Un Linux minimal est alors lancé. Il va détecter les ressources de votre système et servir de base à la suite du programme d'installation. • Choix de la langue d'installation. Vous devez maintenant voir apparaître une boite de dialogue vous permettant de choisir la langue d'installation. Déplacez-vous dans la liste avec les touches de votre clavier. Choisissez ``French'' pour une installation en français. Appuyez sur ``Entrée''. © A. Ibriz, Cours Unix Page : 30 Choix du type de clavier. Une fois la langue d'installation choisie, il vous est demandé de sélectionner un type de clavier. Comme pour la langue d'installation, il est important de sélectionner ``fr-latin1'' comme type de clavier si vous souhaitez bénéficier des avantages de Mandrake au niveau de la francisation. Note : une fois votre système Linux installé, vous pouvez modifier ce choix de clavier avec la commande /usr/sbin/kbdconfig © A. Ibriz, Cours Unix Page : 31 Classe d’Installation © A. Ibriz, Cours Unix Page : 32 Type d’Installation © A. Ibriz, Cours Unix Page : 33 Mot de passe de l ’utilisateur root © A. Ibriz, Cours Unix Page : 34 Ajout d ’un Utilisateur © A. Ibriz, Cours Unix Page : 35 Disquette de démarrage © A. Ibriz, Cours Unix Page : 36 • Choix de la méthode d'installation. Vous avez le choix entre cinq méthodes d'installation différentes. Bien entendu, si vous installez la version Linux-Mandrake PowerPack, vous utiliserez certainement l'installation par CD-ROM. Sélectionnez une de ces méthode pour l'installation de Linux-Mandrake : • CD-ROM local : c'est la méthode idéale si vous possédez un lecteur de CD-ROMs et la version Linux Mandrake PowerPack. • Image NFS : cette méthode peut-être utilisée si vous avez accès à un serveur NFS (Network File System = Système de Fichiers en Réseau) qui contient Linux-Mandrake sur votre réseau local. • Disque dur : utilisez cette méthode si vous avez le CD Linux-Mandrake recopié sur un disque-dur présent sur votre machine. Cette méthode requiert la disquette supplémentaire d'installation. • FTP : si vous avez un accès haut débit vers un serveur FTP distant hébergeant la distribution Mandrake, utilisez cette méthode. Cette méthode requiert également l'utilisation de la disquette supplémentaire. • Image SMB : utilisez cette méthode si vous installez Linux-Mandrake depuis un volume partagé Microsoft Windows(tm). Cette méthode nécessite encore la disquette supplémentaire. © A. Ibriz, Cours Unix Page : 37 • Installation à partir du CD-ROM local : La procédure d'installation va alors tenter de détecter un lecteur de CD-ROM ATAPI (IDE). La plupart des lecteurs de CDROM installés sur les machines grand public répondent à cette norme. Si vous avez une machine plus évoluée, vous possédez peut-être un lecteur SCSI. Si vous avez une machine ancienne, vous possédez peut-être un lecteur CD-ROM ``propriétaire'' (ex: Mitsumi(tm), Aztech(tm), Panasonic(tm), Sony(tm)...). Ces deux derniers cas sont plus compliqués à gérer car vous allez devoir entrer les paramètres nécessaires à leur détection. © A. Ibriz, Cours Unix Page : 38 • Création des partitions pour Linux Il est maintenant nécessaire de décrire le partitionnement de votre disque pour Linux. Une partition est une zone logique indépendante de votre disque dur. Vous pouvez avoir une partition contenant Linux, une deuxième contenant DOS ou Windows(tm), etc. On peut ainsi faire cohabiter plusieurs systèmes d'exploitation sur un même disque. Pour Linux, vous allez devoir créer au minimum deux partitions : • une partition principale • une partition dite de ``swap'' (permettant de décharger le contenu de la mémoire vive lorsqu'elle est trop chargée) Néanmoins, les utilisateurs plus expérimentés choisiront parfois de créer une voire deux partitions supplémentaires pour leur système linux. Par exemple : • une partition pour les répertoires utilisateurs • une partitions pour les programmes qui seront installés plus tard sur la machine • une partition pour /tmp (fichiers temporaires) • etc. Dans tous les cas, il est fortement conseillé de sauvegarder toutes les données importantes contenues sur le disque que vous allez utiliser pour installer Linux ! © A. Ibriz, Cours Unix Page : 39 • Changer la taille de vos anciennes partitions Si vous avez au moins 500 Mo de récupérable sur votre ancien système, il suffit alors de modifier la taille des partitions déjà utilisées. Pour cela, il faudra utiliser le programme ``fips.exe'' (sous dos) ou un utilitaire commercial (``Partition Magick'' par exemple). Seul le programme fips.exe est livré avec Linux-Mandrake. Vous le trouverez sur le CD-Rom d'installation dans le répertoire ``dosutils/''. La documentation de cet utilitaire (perfectionné) est présente dans dosutils/fipsdoc/. Attention, ``fips'' permet de redimensionner les partitions fat16 (DOS) et fat32 uniquement. Lisez attentivement la documentation de cet utilitaire avant de commencer. Mais rassurez-vous, ``fips'' a été conçu pour un niveau de sécurité maximal et il conservera votre ancienne configuration disque, que l'on peut restaurer en cas de problème. Dans tous les cas, vous devez interrompre la procédure d'installation de Linux-Mandrake ici si vous devez changez la taille de vos partitions, puis la relancer quand cette opération est terminée. © A. Ibriz, Cours Unix Page : 40 • Choix de l'outil de gestion des partitions Linux. Linux-Mandrake est fourni avec deux utilitaires permettant de partionner vos disques. L'un, ``Disk Druid'', est simple et agréable à utiliser. L'autre, ``Fdisk'', est plus ancien, mais permet de faire plus de choses . Choisissez ``Disk Druid''. Linux utilise une nomenclature particulière pour nommer les disques : •chaque disque IDE s'appelle /dev/hdx (par exemple, si vous avez deux disques IDE, ils s'appelleront /dev/hda et /dev/hdb). •chaque disque SCSI s'appelle /dev/sdx (par exemple, /dev/sda et /dev/sdb). Chaque partition a également un numéro. Ainsi, la première partition du premier disque IDE s'appelle /dev/hda1, la seconde /dev/hda2 etc.4.1 © A. Ibriz, Cours Unix Page : 41 Partitions du disque © A. Ibriz, Cours Unix Page : 42 • La partition principale : Choisissez maintenant sur quel disque sera installée votre partition principale. • La partition de swap : Lorsque le système d'exploitation manque de mémoire physique, il peut déplacer le contenu de partie de RAM temporairement inutilisées pour faire de la place à un programme ayant besoin de mémoire supplémentaire. Dès que l'accès à des données déplacées devient nécessaire, le système d'exploitation doit déplacer de nouveau d'autres données, pour réintroduire en mémoire les données stockées temporairement sur le disque. Le système Linux reconnaît cette gestion du swap (swapping, échanger). Si sur l'ordinateur possède moins de 16 Mo de RAM, il est nécessaire d'effectuer une partition de swap de 16 Mo. • Déterminer votre taille de partition swap : une règle simple est de prendre au moins une taille équivalente à la mémoire vive disponible sur votre système, ou un peu plus. • Vous pouvez prendre deux fois la taille de votre mémoire vive. En tout état de cause, il vaut mieux avoir une partition de swap trop grosse qu'une trop petite ! (De toute manière, vous serez limité à 128 Mo. ) © A. Ibriz, Cours Unix Page : 43 • Sélection des programmes (packages) à installer. Nouvelle boite de dialogue vous permettant de choisir les packages à installer sur votre système. Faites défiler la liste des composants disponibles à l'aide des touches flêches de votre clavier et sélectionnez (avec la barre d'espace) les groupes à installer. Si vous souhaitez utilisez Linux-Mandrake en mode graphique avec KDE, vous devez sélectionner le groupe ``X Window System''. Vous devez savoir, une fois votre système complètement installé, qu'il sera toujours possible d'installer des packages non sélectionnés ici (avec glint, kpackage ou la commande rpm). Vous pourrez également désinstaller facilement un package qui ne vous sevirait pas. A la fin de la liste, une case à cocher vous propose de tout installer : il vous faudra près d'un gigaoctet disponible sur votre partition pour cela. Si vous cochez la case ``Sélectionnez individuellement chaque paquetage'', vous devrez spécifier un à un chaque package RPM à installer dans une sous-boite de dialogue. Une fois les choix de packages effectués, vous pouvez continuer l'installation en appuyant sur le bouton ``Ok'' (avec la barre d'espace). • L'installation. Vos partitions Linux vont alors être formatées et l'installation proprement dite va se dérouler sur plusieurs minutes (entre 10 minutes et 50 minutes selon les capacités de votre matériel et la somme de tout ce qui doit être installé). Notez que le formatage de vos partitions avec l'option ``vérification des blocs défectueux peut parfois prendre beaucoup de temps sur certains disques. © A. Ibriz, Cours Unix Page : 44 • Recherche de la souris. La souris est normalement détectée sans problèmes. Choisissez ``Emuler le 3ème bouton'' si vous avez une souris à deux boutons. • Choix de la carte vidéo. • Choix du type de moniteur. • Configuration du réseau. • Configuration de la zone horaire. • Spécification des ``services'' à lancer au démarrage. • Configuration de votre imprimante. • Choix du mot de passe de ``root'' • Création d'un disquette de boot ``LILO''. • Création du ``multiboot LILO''. • Création du ``multiboot LILO''. ``LILO'' (LInux LOader) est un petit programme qui vient s'installer dans les tous premiers secteurs de votre disque dur et qui vous permet de lancer Linux à partir de la partition sur laquelle il est installé. Mais LILO est également assez perfectionné pour gérer plusieurs systèmes d'exploitation. Ainsi, vous pourrez choisir sur quel système démarrer en tapant par exemple ``linux'' ou ``dos'' au redémarrage de votre machine. © A. Ibriz, Cours Unix Page : 45 Installez LILO sur le MBR (Master Boot Record) de votre disque si aucun autre ``multiboot'' n'y est déjà installé (sinon ce dernier sera tout simplement écrasé). Vous devez absolument installer LILO sinon votre système Linux ne démarrera pas (sauf avec la disquette LILO de la section précédente). Si un autre système d'exploitation est déjà installé, veillez également à le faire prendre en compte par LILO sinon ce dernier ne démarrera pas non plus ! Vous pourrez modifier les paramètres de LILO une fois votre système Linux redémarré, en éditant le fichier /etc/lilo.conf, puis en relançant LILO en tapant ``lilo''. • Redémarrage. Vous êtes arrivé au bout de la procédure d'installation de Linux-Mandrake : vous pouvez maintenant retirer la disquette éventuellement présente dans votre lecteur et laisser le système redémarrer. Quand vous voyez s'afficher le message ``LILO boot:'', appuyez sur la touche ``TAB'' pour voir les choix possibles. Vous pouvez alors taper ``linux'' ou un autre choix. Si vous ne tapez rien, le système Linux démarre lui-même au bout de cinq secondes. © A. Ibriz, Cours Unix Page : 46 6 Syntaxe d'une commande UNIX 6.1 Introduction Lorsque la connexion est établie, un prompt s'affiche à gauche de l'écran : il attend de votre part une commande, un ordre qu'il pourra interpréter et exécuter. Le prompt est spécifique de la machine (le prompt de la machine est : pro$). Chaque commande saisie au clavier doit être validée par un "return" (Enter) pour être exécutée. Soit : pro$commande -options <arguments> • commande : ce que l'on veut faire • options (facultatives) : comment on le fait • arguments (éventuels) : sur quoi on le fait (fichiers ..) Exemple: ls -la /usr/dupont La commande doit être saisie impérativement en minuscules pour être reconnue. 6.2 Commandes de contrôle • exit sortie (fin de session) • • • • • CTRL-D sortie (équivalent du logout si on est au prompt) CTRL-U annulation de la ligne courante (Ex:mot de passe erroné) CTRL-C interruption d'un processus CTRL-Z suspension d'un processus (bg, envoi en tache de fond ) CTRL-S et CTRL-Q contrôle de flux (arrêt et reprise de l'édition) © A. Ibriz, Cours Unix Page : 47 6.3 Aides en ligne man <commande> OU man <application> La commande "man" (pour manual) fournit des informations (description, options, syntaxe) sur une commande UNIX ou une application donnée . Toute la documentation Unix s'accède par les manuels classés en 8 thèmes: 1 les commandes utilisateurs 2 les appels système 3 les appels des librairies 4 les périphériques 5 les formats de fichiers 6 les jeux 7 les tables et standard 8 les commandes d'administration Ainsi on parlera de ls(1), open(2), passwd(1) et passwd(5). Exemple: man ls, man emacs, man chmod). © A. Ibriz, Cours Unix Page : 48 7. Les commandes UNIX de bases 7.1 Introduction Les commandes liées à la manipulation des fichiers et des répertoires sont : Création mkdir vi emacs Gedit créer un répertoire éditeur de texte éditeur de texte editeur de text mode graphique Destruction rm détruire un fichier rmdir détruire un répertoire Déplacement ou duplication cp copier un fichier/répertoire mv déplacer un fichier/répertoire Regarder le contenu ls regarder le contenu d'un répertoire cat afficher le contenu d'un fichier more afficher le contenu d'un fichier © A. Ibriz, Cours Unix Page : 49 7.2 Commandes utilitaires passwd Permet de changer de mot de passe. who Affiche la liste des utilisateurs connectés. date Affiche la date. cal <mois> <année> Affiche le calendrier du mois, de l'année spécifiée. Par défaut, années et mois courants. cal 9 1998 : calendrier du mois de septembre 1998 echo <chaîne> Retourne les arguments donnés. echo est notamment utile pour soumettre des données à un pipe, pour éditer le contenu de variables d'environnement etc ... echo [email protected] > .forward (crée le fichier de réacheminement des mails, cf messagerie) echo $USER © A. Ibriz, Cours Unix Page : 50 groups Affiche le(s) groupe(s) auquel appartient un utilisateur. finger @<adresse_serveur> Affiche la liste des utilisateurs connectés sur un serveur donné. finger @univ-tln.fr quota -v Retourne l'espace disque autorisé et utilisé (quota et nombre de fichiers) sur la totalité du compte. L'unité du quota est en kilooctets, donc par exemple : 10000 signifie 10 Mega-octets. du * Retourne l'espace disque utilisé dans un répertoire donné (répertoire courant par défaut). L'unité est en demi-blocs (soit 512 caractères) <CTRL-D> L'ensemble de la session a été enregistré dans le fichier typescript (par défaut). © A. Ibriz, Cours Unix Page : 51 8. Les Redirections et les « pipes » 8.1 Redirection De nombreuses commandes lisent leurs données (entrée = input) à partir de l'entrée standard (stdin), par défaut le clavier, et écrivent leurs résultats (sortie = output) dans la sortie standard (stdout) et les erreurs dans la sortie-erreur standard (stderr), par défaut l'écran, selon le schéma : Lecture Ecriture Standard Input ====> Commande ====> Standard Output + Error [clavier] [Ecran] Si l'on souhaite rediriger les entrées et sorties, la commande prendra la syntaxe suivante : commande [-options] [arguments] < input-file > output file avec les métacaractères de redirection suivants : < > >> >& >>& redirige l'entrée standard redirige la sortie standard redirige et concatène la sortie standard redirige les sorties standard et erreur redirige et concatène les sorties standard et erreur © A. Ibriz, Cours Unix Page : 52 8.2 Pipe Le caractère "|" (opérateur pipe) redirige la sortie standard (sdtout) d'une commande dans l'entrée standard (stdin) d'une autre commande. Plusieurs commandes peuvent être combinées ainsi. commande1 | commande2 | ... © A. Ibriz, Cours Unix Page : 53 9. La gestion des fichiers 9.1 Edition et manipulation de fichiers pwd Affiche le nom du répertoire courant. ls Liste le nom des fichiers. ls -l édition du catalogue des fichiers du répertoire courant ls -la édition de tous les fichiers du répertoire courant (y compris les fichiers "cachés" commençant par un .) ls -lt édition du catalogue par date (récente > ancienne) ls -lR lecture de la hiérarchie complète des fichiers cd <répertoire> Permet de se placer dans un répertoire donné. cd /usr/bin pour aller dans le répertoire /usr/bin cd ~ retour au répertoire d'accueil cd seq changement de répertoire relatif (descente) cd .. retour au répertoire père Le symbole .. représente le répertoire parent. Le symbole . représente le répertoire courant. Le symbole ~ représente le répertoire d'accueil (home directory). Le tilde "~" et le point point ".." peuvent être utilisés dans les chemins d'accès. © A. Ibriz, Cours Unix Page : 54 mkdir <répertoire> Crée un répertoire (Make directory). rmdir <répertoire> Supprime un répertoire (vide) (Remove directory). cat <fichier> Edition complète du fichier au terminal en mode déroulant. cat mm.seq édite le fichier mm.seq more <fichier> Edition du fichier au terminal en mode page. Pour obtenir l'aide en ligne : h Pour éditer la page suivante : barre-espace Pour éditer la ligne suivante : Return Pour rechercher une chaîne de caractères : /chaîne Pour remonter d'une page : b Pour quitter : q less <fichier> Edition du fichier au terminal en mode page (équivalent de more). Pour obtenir l'aide en ligne : h head -n <fichier> Affiche les n 1ères lignes du fichier. © A. Ibriz, Cours Unix Page : 55 tail -n <fichier> Affiche les n dernières lignes du fichier. wc -l -w -c <fichier> Retourne le nombre de lignes, de mots, de caractères dans le fichier indiqué. sort <fichier> Tri un fichier. cp <file1> <file2> Copie le contenu de <file1> dans <file2>, en détruisant <file2> s'il existait. mv <file1> <file2> Renomme ou déplace <file1> en <file2> (Move). mv mm.seq aa.seq : renomme mm.seq en aa.seq mv <file1> <répertoire> Déplace (et éventuellement renomme) <file1> dans <répertoire>. mv mm.seq ~/data : déplace le fichier mm.seq dans le répertoire préexistant data mv mm.seq ../liens/bar : renomme mm.seq en bar et le déplace dans le répertoire préexistant liens © A. Ibriz, Cours Unix Page : 56 touch <fichier> Crée un fichier vide. rm <fichier> Supprime le fichier (Remove). rm mm.seq supprime le fichier mm.seq rm afl*.seq supprime tous les fichiers commençant par afl rm -i *.seq supprime tous les fichiers ayant le suffixe .seq, en demandant préalablement confirmation de destruction pour chacun d'eux. rm -r <répertoire> Supprime un répertoire, ainsi que tous les sous-répertoires et les fichiers qu'il contient (Remove récursively). grep <chaîne> <fichier> Recherche une chaîne de caractères (pattern) dans un fichier donné et édite les lignes la contenant. grep GDB * recherche la chaîne GDB dans tous les fichiers du répertoire courant grep cours -i *.txt recherche la chaîne cours trouvée indifféremment en minuscules ou majuscules dans tous les fichiers .txt du répertoire courant grep error -v *.txt édite toutes les lignes, exceptées celles contenant le mot error grep "valeur de la variable" arc.for : recherche la chaîne valeur de la variable dans le fichier arc.for grep 'caractère "A"' table.txt : recherche la chaîne caractère "A" dans le fichier table.txt © A. Ibriz, Cours Unix Page : 57 find <répertoire> -name <fichier> -print Recherche le fichier dans toute l'arborescence (fichiers et sous-répertoires) issue du répertoire indiqué. find . -name mm.seq -print; recherche le fichier mm.seq depuis le répertoire courant find ~ -name a.out -print; recherche le fichier a.out depuis le home directory cmp <file1> <file2> cmp (compare) édite le numéro des lignes différentes entre deux fichiers. diff <file1> <file2> Edite les lignes différentes entre deux fichiers. © A. Ibriz, Cours Unix Page : 58 10. Répertoires et fichiers 10.1 Syntaxe des fichiers Le système de fichiers (file system) est un arbre (organisation hiérarchique) dont les noeuds sont des répertoires (directories) et les feuilles des fichiers. Le fichier (chemin/nom) peut être désigné : • Soit par un path absolu (chemin absolu), qui commence par le caractère "/" (racine de l'arbre) suivie de la liste des noeuds (sous-répertoires, séparés par le caractère "/"), qu'il faut suivre depuis la racine pour atteindre le fichier Exemple : /env/univ-tln/home/dupont/mm.seq • Soit par un path relatif : le fichier dans ce cas est désigné depuis le répertoire courant Exemple : home/dupont/mm.seq (si on le désigne depuis /env/univ-tln) Exemple : mm.seq (si on le désigne depuis /env/univ-tln/home/dupont) Le home directory est le répertoire d'accueil dans lequel on se trouve après avoir établi la connexion sur le compte. Certains caractères ne sont pas autorisés dans le nom du fichier. Notamment, par exemple, le caractère espace, accepté dans les noms de fichiers sous Mac, joue le rôle de séparateur sous UNIX (il sépare commande, options et paramètres les uns des autres). Pour manipuler malgré tout un fichier qui contient ce type de caractère, le nom de ce fichier devra être encadré de guillemets (ex: rm "seq 23.dat"). En règle générale, il est préférable de se limiter aux caractères alphabétiques, numériques ainsi que "-" et "_". © A. Ibriz, Cours Unix Page : 59 Exemples : nom.txt : fichier texte nom.doc : fichier de documentation nom.gif : fichier image nom.for : programme fortran etc... Certains utilitaires sous UNIX (éditeurs de texte ...) conservent les deux dernières versions du fichier. Dans ce cas, si l'on modifie le contenu d'un fichier déjà existant, le nom de l'avant dernière version est "marqué" d'un signe particulier, tel que "~" (EX: toto et toto~) ou " %". © A. Ibriz, Cours Unix Page : 60 10.2 Troncature Sous UNIX, le caractère de troncature (caractère "joker") est le caractère * : il peut remplacer n'importe quel groupe de caractères d'un nom de fichier donné : il permet ainsi de simplifier la commande et/ou de généraliser une opération sur tout un ensemble de fichiers. Exemples : ls *.gif rm ar* édite tous les fichiers .gif (images) détruit tous les fichiers commençant par ar 10.3 Droits d'accès aux fichiers Dans tout système UNIX, les répertoires et fichiers ont des droits d'accès. Ceux ci sont indiqués par la commande "ls -la" (voir "man ls"). Par exemple : drwxr-xr-x -rw-r--r--rw-r--r-drwxr-xr-x 2 martin 1 martin 1 martin 37 martin © A. Ibriz, ibg ibg ibg ibg 11264 Oct 31 19:27 4763 Oct 31 15:19 70786 Oct 31 01:07 1024 Oct 30 20:29 seq lookup.list ftp.log src Cours Unix Page : 61 chmod Commande qui permet de changer les droits d'accès d'un fichier. chmod <droits> <fichier> Les droits peuvent être désignés de deux manières possibles : chmod <utilisateurs>+/-<droits> <fichier> ou chmod <droits (octal)> <fichier> Sous UNIX, on distingue trois catégories d'utilisateurs : u : le propriétaire (user) g : le groupe o : les autres (others) ainsi que trois types de droits, donnés sur 3 colonnes (rwx) : r : lecture (read) w : écriture (write) x : exécution - : aucun droit © A. Ibriz, Cours Unix Page : 62 Pour un fichier les droits sont exprimés par une chaîne de 10 caractères : tuuugggooo t : type du fichier - : fichier ordinaire d : répertoire (directory) l : lien symbolique c ou b : fichier spécial uuu : droits du propriétaire ggg : droits du groupe ooo : droits des autres Pour modifier le droit d'accès d'un fichier donné, utiliser la commande chmod (voir man chmod). © A. Ibriz, Cours Unix Page : 63 Exemple: chmod u+r toto donne le droit de lire le fichier toto à l'utilisateur (vous-même) chmod g+w toto autorise une personne du même groupe que vous à lire le fichier chmod o+x toto autorise n'importe qui à executer le fichier Droits d'accès et sa correspondance en octal : --- : 0 --x : 1 -w- : 2 r-- : 4 -wx : 3 r-x : 5 rw- : 6 rwx : 7 On peut, ainsi, définir par chmod, les droits en octal. Exemples : chmod 600 * attribuera : rw------- à tous les fichiers chmod 644 * attribuera : rw-r--r-- à tous les fichiers chmod 750 * attribuera : rwxr-x--- à tous les fichiers © A. Ibriz, Cours Unix Page : 64 umask umask <valeur> La commande umask suivie d'une valeur (3 chiffres en octal) définit le mode de création de fichiers ou de catalogues . On peut notamment fixer cette valeur en ajoutant la commande umask au fichier du home directory nommé .profile Par défaut, les droits d'accès d'un compte sont définis par umask 027 : cela signifie que la lecture des fichiers et leur exécution ne peuvent se faire que par l'utilisateur et ceux associés à son groupe (personne a priori), et que l'écriture ne peut se faire par personne d'autre. La valeur de umask (masque au sens informatique) est soustraite aux droits par défaut des fichiers (666) et des répertoires (777) à leur création. Exemples: umask 027 modifie les droits de la manière suivante : les fichiers 666 deviennent 640 les répertoires 777 deviennent 750 © A. Ibriz, Cours Unix Page : 65 10.4 Montage – Démontage de disque 10.4.1 Rappels Les unités de disques ou de disquettes sont gérés par le système Unix comme des fichiers. Mais pour que le système les gère, il est nécessaire de les déclarer dans lefichier /etc/fstab, et de les mettre a disposition du système unix, c’est à dire de les “ monter ” (mount) ou de les “ démonter ” (umount). 10.4.2 Déclaration des disques La déclaration des différents disques sont au sein du fichier /etc/fstab. (FileSystemTable). La syntaxe est la suivante : Device (/dev/hdxx) Point de montage (/usr) Type de file system option de montage Options Remarque : Il faut que le disque ou la partition soit préalablement •formaté(e) (format, fdformat) •le file system soit transféré correctement (mkfs) 10.4.3 Montage Démontage de disques Pour les disques ou disquettes amovibles, il est nécessaire pour les utiliser, de monter les partitions (mount). Il en est de même pour les supports amovibles (type disquette). Mais lorsque vous voulez changer de disquette, il est impératif de démonter (umount) l’unité de disquette avant de l’éjecter du lecteur. En effet le système unix ne fait aucune distinction entre les disquettes et les disques durs. Pour lui, ce sont tous des supports informatiques de données. En résumé : • Monter un disque • Démontage de disque © A. Ibriz, -> mount /dev/nom répertoire de montage -> umount /dev/nom Cours Unix Page : 66 10.5 Rappels commandes Unix • Les variables alias, unalias • Les informations sur • le système et l'environnement : id, uname, logname, tty, w, who • les programmes et les commandes : man, whereis, which • les fichiers : diff, awk, gawk, cat, grep, head, tail, file, more • les répertoires : ls, pwd, find • La date : cal, date • Le courrier électronique : elm, mail Manipulation de fichiers et répertoires: cd, rm, rmdir, mkdir chmod, cp, mv, ln sort, touch, uniq • Compression, décompression, archivage : gzip, gunzip, compress, uncompress, uudecode, uuencode, tar • Communication distante : rlogin, telnet, talk, ytalk • Divers : echo, sleep • Processus : kill, ps © A. Ibriz, Cours Unix Page : 67 11. La sécurité des accès fichiers 11.1 Catégories d'utilisateur Pour les droits d'accès, on distingue trois catégories d'utilisateurs : le propriétaire, les utilisateurs qui appartiennent au même groupe que le propriétaire, et les autres. Seul le propriétaire d'un fichier a le droit de modifier ses permissions. 11.2 Les droits d'accès Il y a trois types de droit: droit de lecture, droit d'exécution, et droit d'écriture. Le propriétaire peut donner ou enlever ces droits à chacune des trois catégories d'utilisateur. Pour savoir quels sont les droits associés à un fichier ou un répertoire, on utilise la commande ls avec l'option « -l ». La commande affichera une chaîne de dix caractères au début de la ligne qui montre les droits actuels. Le premier caractère indique si l'objet est un fichier, répertoire, ou lien. Puis, il y a trois groupes (propriétaire, membre de groupe, autre) de trois caractères : « r » (lecture), « w » (écriture), et « x » (exécution). Par exemple : $ ls -l bob -rw-r----- 1 anne 1820 Jan 18 13:28 bob Ici, on voit que le propriétaire (anne) a le droit de lire et de modifier mais pas d'exécuter le fichier « bob »; les membres de son groupe ont le droit de le lire; et les autres n'ont aucun droit d'accès à ce fichier. Pour les répertoires, les permissions sont un peu spéciales. Pour pouvoir entrer dans un répertoire, il faut avoir le droit d'exécution. Le droit de lecture ne suffit pas à lui seul. Exemple : $ ls -ld Bin drwxr-xr-x 7 anne 512 Jan 19 12:06 Bin L'utilisateur « anne » a tous les droits sur le répertoire courant. Les membres de son groupe et les autres peuvent le lire. 11.3 Modifier les droits On modifie les droits d'accès à un fichier ou un répertoire avec la commande chmod. © A. Ibriz, Cours Unix Page : 68 12. Les éditeurs de texte 12.1 Introduction Il y a deux catégories d'éditeurs, ceux appelés « éditeurs de ligne » et ceux appelés « éditeurs d'écran complet ». Editeur de ligne : BOF!!!! La première catégorie n'est guère intéressante car les éditeurs qui lui appartiennent ne permettent de voir qu'une seule ligne à la fois. Ces logiciels datent d'une époque ou tout le monde travaillait avec les terminaux qui n'étaient pas beaucoup plus évolués que des machines à écrire. Editeur d’écran complet : HUMMM!! La deuxième catégorie est venue avec l'arrivée des terminaux plus intelligents qui permettent a l'éditeur d'écrire un caractère directement dans n'importe quelle ligne ou colonne affichée à l'écran. On peut donc travailler sur un texte qui remplit tout l'écran, les changements que l'on effectue se reflètent dans le texte affiché, et la position du curseur sur l'écran indique la position dans le fichier. Aujourd'hui, on a deux éditeurs de ce genre qui continuent à s'imposer dans le monde Unix : vi -- un éditeur un peu difficile à apprendre au début mais qui peut être convenable pour des taches simples et qui existe sur toutes les machines Unix -- et emacs -- un puissant éditeur qui peut faciliter l'édition d'un programme, d'un rapport ou d'un mémoire (en conjonction avec un outil comme latex). Toutefois, emacs est moins répandu que « vi ». Avec la venue du système de fenêtrage X, la signification « d'écran complet » a quelque peu évoluée : L'écran de l'ancien terminal (p.ex. le VT100) est devenu une fenêtre xterm, ce qui a permis à vi et emacs de faire le passage a X sans le moindre souci. Or, le fait de dépendre d'une fenêtre xterm implique que certaines capacités de ce nouveau système de fenêtrage X sont sous-exploitées. Par exemple, l'utilisation de la souris n'est pas intégrée avec l'éditeur vi. De ce fait, on utilise toujours les touches du clavier pour déplacer le curseur. Les dernières versions d'emacs ont résolu ce problème en créant leur propres fenêtres de travail intégrées à X.. © A. Ibriz, Cours Unix Page : 69 13. Création d’un compte utilisateur 13.1 L’interface utilisateur Avant l'époque des postes de travail et des systèmes de fenêtrage, l'interface utilisateur d'Unix consistait uniquement d'un interpréteur de commandes qui s'appelle le “ shell ”. Aujourd'hui, le shell reste un élément très important mais l'addition du système de fenêtrage X11 permet l'utilisateur d'exploiter beaucoup plus facilement le potentiel inhérent d'un système multi-tâche. Le shell (interpréteur de commandes) Dans son mode interactif, le shell n'est qu'un programme qui lit ce que l'utilisateur tape sur le clavier et qui affiche des messages à l'écran. Le shell comprend ses propres commandes (les commandes built-in) et, de plus, il permet à l'utilisateur d'accéder aux autres commandes Unix (qui sont, en fait, des autres programmes). Par exemple, la commande cd pour changer le répertoire courant est une commande propre au shell, alors que la commande ls pour afficher le contenu d'un répertoire est une commande du système Unix. Les principaux services que le shell offre à l'utilisateur sont : • Changer de répertoire • Exécuter d'autres programmes • Se référer à plusieurs fichiers à la fois avec des métacaractères • Diriger les données émises par un programme dans un fichier ou vers un autre programme • Contrôler l'exécution des programmes y compris • Activer plusieurs programmes à la fois • Suspendre un programme • Tuer un programme • Voir un historique des commandes (et en répéter une) • Créer des commandes personnalisées (les aliases) • Personnaliser son environnement de travail. © A. Ibriz, Cours Unix Page : 70 13.2 Les variables d’environnement PATH Lorsque l'utilisateur essaie d’exécuter un programme sans préfixer le nom du programme avec un chemin indiquant le répertoire qui le contient, le shell cherchera à le trouver dans un des répertoires spécifiés par la variable de l'environnement “ PATH ”. La commande “ echo ” vous permet de voir sa définition actuelle: $ echo $PATH /usr/etc:/bin:/usr/bin:/logiciels/public/divers/bin: $ Pour ajouter une répertoire, vous pouvez entrer $ setenv PATH ${PATH}:/chemin $ echo $PATH /usr/etc:/bin:/usr/bin:/logiciels/public/divers/bin: /chemin Si vous voulez que cette rédéfinition soit mémoriser, il faut ajouter la commande “ setenv ” dans votre fichier .login. 13.3 La variable du shell History Cette variable définisse le nombre de commandes qui seront mémorisées dans l'historique des commandes. Par exemple, si history est égal à 10, seul les 10 dernières commandes sont disponibles. . La commande “ echo ” vous permet de voir sa définition actuelle: $ echo $history 100 $ Puisque history est une variable du shell est non de l'environnement, il faut utiliser la commande “ set ” pour la modifier : $ set history=10 $ echo $history 10 $ Si vous voulez garder cette définition pour tous les shells que vous allez démarrer, vous devez mettre la commande “ set ” dans le fichier .cshrc. © A. Ibriz, Cours Unix Page : 71 13.4 Fichier de configuration .login Le fichier “ .login ” est lu et les commandes qu'il contient sont exécutées uniquement lorsque l'utilisateur se log sur une machine. Il est donc utile d'y mettre les définitions qui risque forte peu de changer en cours de route. 13.5 Fichier de configuration .cshrc A chaque fois que l'utilisateur démarre un shell (par exemple lors du démarrage d'un xterm), le programme shell lit et exécute les commandes contenues dans le fichier “ .cshrc ”. C'est donc dans ce fichier que l'utilisateur met les commandes qui définissent ses alias et quelques variables du shell telle que history. 13.6 Fichier de configuration .mailrc Dans ce fichier, on peut définir le répertoire dans lequel on veut stocker tous les dossier du courrier électronique. On peut aussi y mettre des alias pour les adresses fréquemment utilisées. Exemple d'un fichier .mailrc : set folder='Mail' alias jp [email protected] Avec les définitions ci-dessus, mail jp ... enverra un courrier-électronique à l'adresse [email protected], et mail -f +jean-pierre lira le dossier ~/Mail/jean-pierre. © A. Ibriz, Cours Unix Page : 72 13.7 Création d'un compte utilisateur • Création manuelle Avant de créer un nouvel utilisateur, il est indispensable de connaître correctement le besoin, soit: • La place disponible en espace disque, • Le shell qu'il désire avoir, • L'utilisation potentiels d'outils. Pour créer un utilisateur martin manuellement, il faut modifier les fichiers suivants: • /etc/passwd • /etc/group • Modifier les droits d ’accès au(x) répertoire(s) et au(x) fichier(s) • pour le(s) utilisateur(s) • pour le(s) membre(s) du groupe © A. Ibriz, Cours Unix Page : 73 Format du fichier /etc/passwd Ce fichier est un fichier ASCII contenant la liste des utilisateurs déclarés sur la machine, à raison d'une ligne d'information par utilisateur. Ce fichier doit être en lecture seulement, pour des raison de sécurité. nom:m_d_p:UID:GID:Information:répertoire:shell • nom • m_d_p • UID • GID • information • répertoire • shell : Nom de connexion de l'utilisateur : Mot de Passe crypte : Numéro d'identification de l'utilisateur : Numéro d'identification du groupe de l'utilisateur : Commentaires : le nom absolu du répertoire de connexion : interpréteur de commande lancé à la connexion. Format du fichier /etc/group Le fichier /etc/group est un fichier ASCII contenant la listre des groupes déclarés sur la machine à raison d'une ligne d'information pour chaque groupe. nom:mot_de_passe:GID:membres • nom • mot_de_passe • GID • membres © A. Ibriz, : nom logique du groupe : mot de passe crypté : numéro d'identification du groupe : liste de utilisateurs Cours Unix Page : 74 • Création de l'environnement • Création de son répertoire d'accueil • Création des fichiers de configuration (.login, .shellxxx, …) • L'utilisateur peut maintenant se connecter, mais il est nécessaire de lui configurer correctement son compte, son bureau au sens de Wndows ou X11. • Modifier les droits d ’accès au(x) répertoire(s) et au(x) fichier(s) • chmod pour le(s) utilisateur(s) • chgrp pour le(s) membre(s) du groupe 13.8 Création automatique avec adduser Syntaxe : adduser –d répertoire –u n°uid –g nom_du_group –s shell nom_login 13.9 Suppression d'un utilisateur avec userdel Syntaxe : userdel © A. Ibriz, Cours Unix Page : 75 14. Gestion des comptes utilisateurs 14.1 Introduction Une bonne gestion d'un compte utilisateur se pose sur la base de trois éléments : • choisir un bon mot de passe et le modifier périodiquement avec la commande passwd. • configurer son environnement de travail interactif (de la section “ système de fichiers ”) • Organiser ses fichiers (de la section “ système de fichiers ”). • Les noms cachés En général, les noms (des fichiers ou des répertoires) qui commencent par un point “ . ” ne sont pas affichés lorsqu'on regarde le contenu d'un répertoire. Ces noms sont cachés parce qu'ils sont plutôt des fichiers de configuration que l'utilisateur n'a normalement pas besoin de consulter. Deux exemples typiques sont les fichiers “ .login ” et “ .cshrc ”. Les noms “ .. ” et “ . ” sont réservés pour représenter le père du répertoire courant et le répertoire courant lui-même. • Organisation des répertoires personnels Lorsque l'on crée un compte pour quelqu'un, on lui attribue un répertoire personnel. L'utilisateur a donc le droit d'y créer ses propres sous-répertoires ainsi que des fichiers. Il est fortement conseillé de bien exploiter cette ressource pour ne pas tout mélanger dans un seul répertoire. En général, tous les utilisateurs créent les sous-répertoires suivants: • bin • src • lib • obj • mail : pour les programmes et scripts : pour lkes codes sources : pour les librairies : pour les .obj : pour stocker le courrier électronique Pour plus facilement distinguer les noms de répertoires des noms de fichiers, on peut adopter la convention que les noms des répertoires commencent avec une lettre majuscule. © A. Ibriz, Cours Unix Page : 76 15. X11 / CDE 15.1 CDE Dans le monde Unix, on commence à se standardiser sur le système de gestion de fenêtres Common Desktop Environment (CDE). Ce système présente une interface graphique qui se rapproche aux interfaces Windows ou Macintosh. •Panneau de commande •Lanceur d'applications •Fenêtre terminal • Panneau de commande Après le login, l'ordinateur vous ouvre un écran qui comporte un panneau de commande au bas de l'écran. Le panneau de commande comporte une série d'icônes et de boutons. Tant les icônes que les boutons sont actifs : on peut lancer une application en double-cliquant avec le bouton gauche de la souris. • Panneau de commande (command panel) Une chose à savoir est que vous avez en fait 4 écrans complets à votre disposition. C'est la signification des boutons one-two-three-four dans le panneau de commande. Pour le moment vous êtes dans l'écran un. Si vous cliquez sur le bouton Two, vous passerez à l'écran deux, etc. Chacun des écrans est appelé un workspace. • Lanceur d’application Pour sélectionner le menu du lanceur d'application, cliquez sur la flèche au-dessus de l'icône 'lanceur d'application'. Ce menu est une liste des applications configurée par votre administrateur de système. Deux applications souvent présentent dans cette liste sont un éditeur de texte et un terminal. © A. Ibriz, Cours Unix Page : 77 15.2 Présentation générale de KDE. • Qu'est-ce que KDE exactement ? Pour comprendre KDE, il faut tout d'abord prendre conscience du fait qu'il s'agit de plusieurs ``composants logiques'' bien distincts : • un gestionnaire de fenêtre (kwm) : c'est lui qui est responsable de la ``décoration des fenêtres et de leur comportement. • une barre d'outils perfectionnée (kpanel), comportant le menu K, des boutons pour les bureaux virtuels, d'autres menus et des raccourcis, le ``dock panel'' et... une horloge ! • un gestionnaire de fichier perfectionné : KFM (K File Manager), qui gère également les icônes du bureau sur le fond d'écran. KDE c'est également une norme respectée par toutes les applications "K" qui peuvent ainsi, par exemple, communiquer entre elles (``glisser-déposer'',``copier-coller'' etc.). Tout ceci forme ainsi un environnement cohérent, complet, puissant et agréable qui vous permet de travailler efficacement. © A. Ibriz, Cours Unix Page : 78 • L'interface graphique de KDE. Un écran KDE de base est constitué de plusieurs éléments. © A. Ibriz, Cours Unix Page : 79 De haut en bas: • la barre des tâches. Chaque application X lancée sous KDE est symbolisée dans la barre des tâches par son nom et une icône, comme sous Windows (tm). Ainsi, à tout moment, vous pouvez sauter d'une application à une autre en cliquant simplement sur les boutons de la barre des tâches. • Les raccourcis du bureau : il en existe plusieurs par défaut (par exemple, la poubelle, le répertoire ``home'' etc.). Vous pouvez créer vous-même vos propres raccourcis, par exemple en faisant glisser et copier une icône du répertoire ``Gabarit'' sur le bureau, puis en cliquant bouton-droit sur l'icône nouvellement créée pour configurer ses propriétés. Les icônes inutiles peuvent être supprimées en les glissant dans la poubelle (si on veut pouvoir les récupérer par la suite), ou tout simplement en cliquant bouton-droit dessus, puis en choisissant ``supprimer''. • La barre d'outils (configurable dans le menu K->Panneau->Configurer. Vous pouvez y déposer une ou plusieurs icônes du bureau. Vous y trouvez le menu ``K'' qui comporte lui-même des sous-menus vers un grand nombre d'applications X présentes sur votre système. Tout à droite, il y a une petite horloge. Si vous laissez trainer le curseur de la souris dessus, vous verrez également apparaître la date. Enfin, quelques boutons permettent de passer d'un bureau de travail à un autre, de quitter KDE ou de ``bloquer'' l'écran. © A. Ibriz, Cours Unix Page : 80 15.3 Montage et démontage des périphériques courants sous KDE. Une des particularités de Linux-Mandrake est de fournir un accès plus facile aux périphériques utilisés couramment par l'utilisateur. Le montage est symbolisé par une petite pastille verte qui ``s'allume'' à côté de l'icône correspondante. Le CD-ROM est monté. Le CD-ROM est démonté. Le ``démontage'' est moins intuitif : vous devez presser l'icône correspondant au périphérique concerné avec le bouton droit de la souris, puis sélectionner ``détacher (umount)''. Notes: • Il ne faut pas éjecter le support (cd-rom ou disquette) tant que le périphérique est monté (attaché) car les entréessorties n'y sont pas synchrones (risque de perte de données). • Le lecteur de CD-ROM refusera donc de s'ouvrir tant qu'il n'a pas été ``détaché'', mais attention aux disquettes ! • si le CD-ROM refuse le ``démontage'', vérifiez que vous n'êtes pas positionné dans un répertoire du CD-ROM (en console ou autre) et qu'aucun lecteur de CD-Audio n'est lancé (kscd par exemple). • Le montage automatique des disquettes n'est possible qu'avec des disquettes de type DOS. Vous devrez utiliser la commande ``mount'' en tant que root pour les autres. © A. Ibriz, Cours Unix Page : 81 • Kpackage permet de gérer vos packages RPM... © A. Ibriz, Cours Unix Page : 82 16 Processus - Lancement différé 16.1 Processus • Introduction • Le système UNIX est un système d'exploitation multi-utilisateurs et multi-tâches. Le calculateur partage son temps entre tous les processus présents à un moment donné. • Le multitâches est réalisé par l'élection d'un processus parmi d'autres, pour un temps déterminé. Le calculateur exécute pendant une tranche de temps les instructions de ce processus. • L'aspect multi-utilisateurs est une extension du multitâches, qui permet à plusieurs utilisateurs de faire exécuter leurs processus respectifs par le calculateur. • Processus du noyau : • lorsque le calculateur est mis en service, le processus 1, nommé init, est crée : il est responsable des demandes de login sur chaque terminal. • le scheduler alloue du temps CPU alternativement à tous les processus actifs du système. • le swapper est activé lorsque plusieurs processus sont exécutés et que le noyau n'a plus de place en RAM (mémoire courante). Il possède le numéro 0. Il détermine, suivant des critères variés, le processus qui doit être déporté sur le disque. • le pagedaemon est activé lorsqu'un processus requiert une page non présente en RAM. Le processus 1 est l'ultime Parent de tous les processus. Les processus peuvent engendrer d'autres processus (processus enfants). Chaque processus possède un numéro d'identification, le process id ou pid. Ce pid est attribué séquentiellement, débutant de 0, et est incrémenté à chaque création. Un utilisateur ne peut contrôler un processus s'il n'en est pas propriétaire. © A. Ibriz, Cours Unix Page : 83 ps Affiche les informations sur les processus en cours ps -fu nom_login liste complète de tous les processus rattachés à l'utilisateur donné. ps -eaf liste complète de tous les processus Signification des champs retournés : • UID nom de l'utilisateur • PID numéro d'identification du processus • PPID numéro d'identification du processus père • STIME heure à laquelle le processus a été lancé • TIME temps CPU utilisé par le processus • CMD commande <ctrl-c> Termine le processus premier-plan courant <ctrl-z> Stoppe l'exécution du processus premier-plan courant (qui pourra être relancé par bg). kill kill -9 <numéro_de_PID> Arrête le processus désigné. <commande> & Lance un programme en arrière plan. sort -r ~/words > ~/edit/dico/words & xterm & lance une nouvelle fenêtre xterm jobs Affiche les jobs (et leur numéro) stoppés et/ou passés en arrière-plan. fg %<numéro_job> Ramène le job courant de l'arrière-plan au premier plan (foreground). bg %<numéro_job> Relance un job stoppé et le place en arrière-plan (en tache de fond, background). © A. Ibriz, Cours Unix Page : 84 16. 2 Lancement d'un programme en différé batch <programme> Lance un programme en batch (exécution immédiate, au moment où le système, load level system, le permettra). batch (return) sort < infile > outfile <CTRL-D> batch <<! (return) diff file1 file2 2>&1 >outfile | mailx mygroup ! at -f <programme> Lance un programme en différé. Possibilité de spécifier le moment auquel le programme sera lancé. at -f <programme> now + 1 minute : lance le programme dans la minute suivante at -f <programme> tomorrow + 10 hours at -l : affiche les jobs lancés par at ou batch at -r <numero_job> : détruit le job donné at -m 0730 tomorrow (return) sort < infile > outfile <CTRL-D> atq Edite les jobs en attente, lancés avec la commande at. cancel <numero_job> Supprime un job en attente. cancel 845657231.b © A. Ibriz, Cours Unix Page : 85 17. La programmation Shell © A. Ibriz, Cours Unix Page : 86 18. Gestion des périphériques © A. Ibriz, Cours Unix Page : 87 19.Configuration réseau © A. Ibriz, Cours Unix Page : 88