Master Pro. Géo. Cours Unix/Linux Chapitre 1 : Introduction et commandes de base Prérequis : Cours Systèmes d'exploitation Connaître les caractéristiques fondamentales du système Objectifs du chapitre : Unix/Linux. Comprendre les procédures de connexion et déconnexion du système Linux. Introduction Historique Distributions Eléments de contenu : La licence GPL de GNU Le noyau Connexion Déconnexion Commandes de base - Page 1 - Master Pro. Géo. Cours Unix/Linux 1. Introduction Ce manuel, présente le système d'exploitation Linux. Un système ayant les fondements de celui du système Unix, l'un des premiers systèmes d'exploitation multi-utilisateurs, multitâches. Les caractéristiques fondamentales de Linux que nous allons aborder (système de fichiers, gestion de la mémoire, gestion des processus, langages de commandes, …), seront ceux du système Unix également. 1. Historique du système LINUX Linus Torvalds, étudiant à l'université d'Hélsinki, travaille sur un projet du nom de Minix permettant d'exploiter les fonctionnalités multi-tâches du processeur i386. Ce système s'avérant trop limité, Linus Torvalds décida de développer un système d'exploitation. Ce système vu le jour en août 1991 sous le nom de LINUX/UNIX. Linus Torvald est le propriétaire de LINUX/UNIX mais le code source est gratuitement distribué selon les termes du GPL (General Public Licence). Cela signifie que tout le monde peut utiliser ou même commercialiser ce système à condition de rendre à leur tour disponible toutes les modifications apportées. De ce fait, LINUX/UNIX appartient au monde du "logiciel libre". 2. Les caractéristiques de Linux : Linux est un système multi plate-forme (pouvant tourner sur des machines ayant des architectures différentes, intel x86, Sun Sparc, etc…). Il est également multi-utilisateurs (plusieurs personnes peuvent en même temps travailler sur le même ordinateur), mais aussi multi-tâches (plusieurs applications peuvent être lancées en même temps sans qu'aucune n'affecte les autres) et multi-processeurs (il peut être installé sur des machines ayant plus qu'un processeur). C'est un système fiable, robuste, puissant et efficace. Il utilise très peu de ressource et fonctionne quasiment aussi bien sur un ordinateur bas de gamme que sur un haut de gamme. Il est distribué gratuitement avec son code source, basé sur le principe du logiciel libre et selon le terme de la licence GPL. Il est développé par de nombreux programmeurs (la plupart bénévoles) impliquant une évolution rapide et un résultat de qualité. 3. Les différentes distributions Une distribution se présente sous forme de fichiers téléchargeables sur des sites ftp ou sous forme d’un ou plusieurs CD-ROM (ou DVD-ROM). Une distribution est un ensemble composé du noyau, d’applications et de documentations. Il existe beaucoup de distributions sur le marché, en voici quelques une commentées : - Page 2 - Master Pro. Géo. Cours Unix/Linux RedHat Les programmes installés sont le plus souvent directement utilisables, elle convient donc parfaitement aux débutants qui bénéficient également d'interfaces graphiques pour la configuration et l'administration. Les utilisateurs avertis trouvent également leur compte dans la cohérence, la qualité et le dynamisme de cette distribution. L'apport principal de RedHat est le concept de paquetage (.rpm) qui comprend le logiciel ainsi que tous les utilitaires permettant sa configuration, son installation, sa désinstallation ainsi que sa mise à jour. Debian C'est la distribution d'un groupe de bénévoles. Ses adeptes reconnaissent l'esprit GNU qui anime depuis toujours le développement de LINUX/UNIX. Très complète et conçue de façon efficace, cette distribution permet de tout dimensionner selon ses besoins. D'importants intervalles de temps séparent cependant parfois deux mises à jour stables et sa prise en main est parfois délicate, surtout pour les débutants. Debian possède son propre format de paquetage (.deb). Mandrake Distribution française bien finie. Tout Son installation reprend celle de RedHat. Les paquetages sont des .rpm. Elle est à recommander à tous ceux qui veulent utiliser leur machine rapidement sans passer trop de temps à jouer le rôle de l'ingénieur système. S.u.S.E La SuSE est une distribution de choix pour celui qui souhaite installer et utiliser rapidement LINUX/UNIX mais ne souhaite pas s'intéresser de trop près aux détails de son fonctionnement. Distribution commerciale de grande qualité, incluant de nombreuses applications pré-configurées. L'installation et l'administration sont grandement facilitées par les outils fournis. Convient à la fois aux utilisateurs novices qui auront peu de mal à l'installer, et aux utilisateurs expérimentés. Slackware Destinée à ceux qui souhaitent acquérir en douceur une bonne maîtrise d'Unix, qui veulent mettre en place un serveur, et ceux pour qui la facilité de déploiement est particulièrement importante. Elle compte encore de très nombreux adeptes parfois convaincus mais semble en perte de vitesse et les mises à jour se font rares. De plus sa conception ancienne lui confère quelques défauts. Corel LINUX/UNIX Corel LINUX/UNIX est une distribution basée sur Debian et faite par Corel (Wordperfect, etc.). Elle s'adresse aux débutants et se veut très facile d'installation. - Page 3 - Master Pro. Géo. Cours Unix/Linux Caldera Ressemble beaucoup à RedHat. Les paquetages sont des .rpm. Dès le départ le noyau est configuré pour une utilisation réseau : IPX, SMB, IP, NFS. Très peu de modifications des fichiers de configuration sont nécessaires. La détection automatique du matériel fonctionne assez bien. D'autres distributions existent, fedora core, ubuntu sont des exemples. Il y a celles qui permettent de démarrer linux à chaud, sans préalable installation (Knoppix, par exemple). 4. La licence GPL de GNU Le code source de LINUX/UNIX est accessible gratuitement, ce qui fait que ce système peut être compilé sur d'autres plates-formes que le PC. Afin de permettre la distribution de programmes exempts de droits, la fondation FSF (Free Software Foundation, traduisez Fondation pour les logiciels libres) a développé un projet nommé GNU (pour la petite histoire, GNU est un acronyme récursif signifiant GNU is Not Unix). Les utilitaires GNU sont soumis à une licence d'utilisation de LINUX/UNIX (GPL, General Public Licence), expliquant les dispositions légales vis-à-vis de l'utilisation, la distribution et la modification de LINUX/UNIX. Voici à titre indicatif quelques aspects de cette licence permettant de la comprendre: • La licence permet la modification du programme original, et sa diffusion (sous licence GPL). • La licence autorise la vente du logiciel libre sous sa forme originelle ou modifiée, à condition que le vendeur autorise la diffusion (même gratuite) de ce logiciel. • La licence autorise l'utilisation du logiciel à des fins lucratives (permettant des bénéfices). • Les logiciels sous la licence GPL appartiennent à leurs auteurs et personne ne peut s'approprier une partie ou l'intégralité des droits d'auteur. • La licence n'implique aucune forme de rémunération des auteurs. Cette licence est parfois appelée copyleft, en opposition à copyright, un mot anglais qui signifie "droits d'auteur" (right signifie droite tandis que left signifie gauche). 5. Le Noyau Le noyau joue le rôle d'intermédiaire entre les programmes et le matériel. Il gère la mémoire pour tous les programmes en cours d'exécution (processus), et s'assure qu'ils occupent tous une part équitable (ou non) du temps processeur. En plus, il fournit une interface aux programmes pour communiquer avec votre matériel. - Page 4 - Master Pro. Géo. Cours Unix/Linux Démarrage du noyau Après le chargement du bios, il y a exécution du chargeur de système LILO (Linux/Unix Loader) ou GRUB, installé le plus souvent dans le MBR). Le prompt du chargeur s'affiche, et au bout de quelques secondes (durée réglable), le système par défaut se charge. Usuellement, cette initialisation s'effectue en mode multi-utilisateurs avec les services réseau activés (niveau d'exécution par défaut et qui est réglable dans un fichier de configuration appelé /etc/inittab). La numérotation des noyaux LINUX/UNIX : La numérotation du noyau LINUX/UNIX est basée sur trois nombres, par exemple : 2.0.12. • Le premier nombre (dans notre cas le "2") indique la version majeure du noyau. Aujourd'hui, le noyau en est à sa deuxième version. • Le deuxième nombre peut être considéré comme un numéro de version mineure. Attention, les versions mineures impaires indiquent une version de développement. Actuellement, la version stable est la 2.6. • Le dernier numéro indique les évolutions mineures. Dans un noyau stable, il s'agit souvent de corrections ; dans un noyau instable, il peut s'agir de nouvelles fonctionnalités. Remarque : Le numéro de version de votre noyau est obtenu en tapant la commande uname –a 6. Connexion Travailler sous le système LINUX/UNIX, même en dehors de tout contexte réseau, implique une connexion au système. Une session monoposte n'est jamais anonyme. Le processus d'identification est classique : • Donner le nom d'utilisateur (login :) • puis le mot de passe (password :) • Si le compte est authentifié sur la machine, il y a rappel de la précédente connexion sous le même nom. • Observer le prompt [user@machine rép-perso] • celui-ci est modifiable; sa notation symbolique, [\u@\h \W]\$, est donnée par echo $PS1(voir sa définition dans le fichier /etc/profile). Lorsque l'utilisateur est authentifié, il disposera des ressources du système selon les permissions (les droits des fichiers) que l'administrateur (le "root") lui a accordées. - Page 5 - Master Pro. Géo. Cours Unix/Linux Multi-connexions Le système LINUX/UNIX est multi-utilisateurs Comment le voir si on ne dispose que d'une seule machine ? On peut se connecter plusieurs fois sur une même machine sous des identités différentes. Pour cela on peut ouvrir des terminaux ou consoles virtuelles avec Ctrl-Alt-Fx, x=1 à 6, puis passer de l'une à l'autre avec la même commande. 7. Déconnexion et arrêt (volontaire) • Pour se déconnecter, à partir de l'invite des commandes, taper l'une des commandes suivantes : exit, logout ou ctrl D. Cela relance l'attente de login. • Evidemment, il ne faut pas éteindre brutalement ou rebooter sauvagement ! Chaque processus actif doit recevoir du noyau du système la directive de s'arrêter proprement, les systèmes de fichiers doivent être démontés. • En cas de coupure brutale, le système effectuera des réparations au prochain démarrage, à l'aide de l'utilitaire fsck, avant de procéder à l'initialisation du système. • Un utilisateur quelconque peut se connecter au démarrage, en tapant son login et son mot de passe. L'arrêt est une tâche d'administration. • Pour arrêter le système, l'administrateur root lance l'une des commandes suivantes : o Arrêt immédiat halt (ou shutdown -h now ou init 0). o Arrêt différé shutdown -h <nb mn> il s'écoule <nb min> minutes entre l'avertissement et l'arrêt. o Redémarrrage : shutdown -r [<nb mn> | now] ou reboot ou ctrl-alt-del ou init 6. 8. Introduction aux commandes • Interpréteur de commandes L'utilisateur peut taper des commandes lorsqu'il l'invite du système apparaît. Toute commande entrée sera interprétée par l'interpréteur de commandes (ou shell). Le terme shell veut dire coquille pour exprimer l'idée d'interface entre utilisateurs et système UNIX et a été introduit par opposition au noyau du système. Il existe des dizaines d'interpréteurs de commandes sous UNIX mais les 2 principaux (que nous retrouvons sur la plupart des systèmes) sont le Bourne-shell (sh) et le C-shell (csh). Le choix de l'interpréteur activé à la connexion est fait à l'enregistrement de l'utilisateur dans le système. Dans la plupart des cas, c'est le C-shell. - Page 6 - Master Pro. Géo. Cours Unix/Linux Par défaut, il s'agit ici du shell BASH, le plus utilisé, lancé par la commande /bin/bash Pour connaître le shell et ses commandes internes, consulter son manuel : man bash La syntaxe générale d’une commande : commande [options] paramètres En général, les options sont précédées du symbole '-' et peuvent être groupées (ex : rpm -ivh <nom-package>). Les paramètres précisent les fichiers concernés. Historique des commandes : • Les touches flèches haut et bas permettent de parcourir les dernières commandes de l'utilisateur, stockées dans le répertoire personnel dans le fichier /home/etudiantx/.bash_history. Rôle des alias o Grâce aux alias des commandes, l'utilisateur peut créer des noms de commandes, construites bien sûr par combinaison des commandes standard, et même renommer les commandes de base (ne pas en abuser !) o Exemples d'alias, destinés à simplifier la vie, comme ll à la place de ls -l), cd.. à la place de cd .. o Pour en voir la liste, commande alias o Pour en ajouter en cours de session, par exemple : alias x="startx" Importance des options [etudiantx@p0x ] cd se placer dans son rép personnel Comparer les effets de : ls ls -l liste avec les attributs des fichiers ls -a liste complète, y compris les fichiers cachés, qui commencent par un point ls -la ls -R liste "récursive" des contenus des sous-rép. ls --help pour tout savoir ! Manuel des commandes Si on veut de l'aide sur les règles d'utilisation ou encore sur les fonctionnalités d'une commande, on peut utiliser l'aide en ligne grâce à la commande man (comme MANual pages) de la façon suivante : man nom_commande Exemple : man ls - Page 7 - Master Pro. Géo. Cours Unix/Linux man man Note : L'affichage des "manual pages" se fait à l'aide de la commande more, afficheur page par page dont on verra l'utilisation plus loin. Pour faire avancer l'affichage, il suffit de taper la barre d'espace. Si on ne connaît pas la syntaxe de la commande, il est possible de faire une recherche par mot-clé dans le système de "manual pages") à l'aide de la commande suivante : man -k mot-clé Exemple : man -k list ; man -k directories Créer et consulter des fichiers textes • touch fich1 fich2 crée les 2 fichiers vides • On peut lire, créer ou modifier des fichiers de textes (par ex. des scripts, des fichiers de configuration) avec vi, l'éditeur apparemment rustique mais irremplaçable, qui reste le préféré de beaucoup d'administrateurs Unix. Pour seulement consulter un fichier texte, le plus simple consiste à utiliser les commandes • cat (texte court) ou less (texte long). Par exemple, examiner le fichier d'initialisation par less /etc/inittab En mode graphique, sous X-KDE (lancer startx), l'éditeur kedit est automatiquement • appelé quand on ouvre un fichier texte dans l'explorateur kfm Connaître les utilisateurs La commande fondamentale est id qui donne (par défaut d'options) l'uid (N° identifiant), le gid (N° de son groupe primaire), et la liste de tous ses groupes. Exemple : [etudiant1@p01 ] id uid=501(etudiant1) gid=501(etudiant1) groups=501(etudiant1), 504(etudiants) • id toto renseigne sur toto • id -u • id -gn donne l'uid (le numéro de l'utilisateur) donne le nom de login - Page 8 -