Introduction à Linux Abdelouahed Gherbi Hiver 2014 LOG 710 Hiver2014 1 Plan • Précurseurs de Linux – Unix – GNU Project – Minix • Linux aujourd’hui • Commandes de base de Linux LOG 710 Hiver2014 2 Introduction to Linux Précurseurs de Linux : Unix • Unix : un système d’exploitation multi-utilisateur et multi- taches. • Première version crée en 1969 à Bell Labs. • Développeurs : Ken Thompson, Dennis Ritchie, Brian Kernighan. • Unix a été réécrit en C en 1971. LOG 710 Hiver2014 3 Introduction to Linux Précurseurs de Linux : Projet GNU • Projet défini par Richard Stallman en 1984 : • • • GNU : GNU’s Not Unix But • • • Le logiciel doit être libre de toutes restrictions commerciales Développer un système d’exploitation similaire à Unix mais libre pour la copie et modification Premier compilateur GNU C libre en 1991 Mais pas de système d’exploitation !!! • • Le noyau de GNU n’a jamais été complété La combinaison de GNU et du noyau de Linux forme le système d’exploitation GNU/Linux operating system, utilisé par des millions et quelque fois incorrectement appelé Linux (www.gnu.org) LOG 710 Hiver2014 4 Introduction to Linux Précurseurs de Linux : Unix • Minix : – Une version simplifiée d’Unix mais pour l’enseignement. – Développé par Prof. Andrew Tanenbaum • Naissance de Linux : – Linus torvalds étudiant d’informatique à l’université de Helsinki a développé en 1991 ce qui allait être le noyau de Linux – Linux par la suite été développé par une communauté de plus en plus grandissante de volontaires – Linux est utilisé sous la licence GNU General Public License • Le code source est librement disponible pour copie, étude et modification. • Débat Tanenbaum–Torvalds : " I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)“ (Andrew Tanenbaum to Linus Torvalds) LOG 710 Hiver2014 5 Introduction to Linux Linux d’aujourd’hui • Linux : – Système d’exploitation 32/64 bits à part entière – Multi-tâches et multi utilisateurs – Multi platforms • Plusieurs distributions disponibles – – – – – – RedHat, Fedora, SuSE, Ubuntu, Debian, CentOS LOG 710 Hiver2014 6 Linux d’aujourd’hui • Développement de logiciels sous Linux • Les langages de programmation modernes sont supportés : Java, C/C++, Perl, Python, etc. • Librairies logicielles de développement d’interfaces graphiques GTK+ et Qt • Environnement de développement intégrés (IDEs) : NetBeans, Eclipse, etc. LOG 710 Hiver2014 Linux d’aujourd’hui • Exécution de logiciels pour Windows sous Linux • Il est possible d’installer et exécuter certains logiciels pour Windows sous Linux • Wine aide à exécuter plusieurs applications Windows (http://www.winehq.org/) • Cedega permet d’exécuter un grand nombre d’applications de Jeux pour Windows sous Linux (http://www.cedega.com/) LOG 710 Hiver2014 Linux d’aujourd’hui • • • • Linux est multi plateformes Linux est déployé sur les supercalculateurs et serveurs Linux est le système d’exploitation (OS) le plus utilisé sur les serveurs Linux est la pierre angulaire de la pile logicielle LAMP (Linux, Apache, MySQL, Perl/PHP/Python) • Selon Top500.org, Linux monopolise 82% des systèmes utilisés sur les supercalculateurs • Systèmes embarqués et mobiles – – – – Wind River Linux 4 (http://www.windriver.com/) RTLinux (http://www.rtlinuxfree.com/) Android (basé sur le kernel de Linux) Embedded Linux (http://www.timesys.com/) Source : www.top500.org LOG 710 Hiver2014 Commandes de base de Linux • Obtenir de l’aide • Sous Linux on utilise la commande man (manual) pour avoir de l’aide : – La commande man -k <keyword> • Trouver toutes les commandes associées avec un mot clé – man <command> • Affiche l’aide pour une commande – La sortie est une page à la fois : • utiliser f pour avancer et • Utiliser b pour reculer d’une page • Utiliser q pour quitter. LOG 710 Hiver2014 Introduction to Linux Commandes de base de Linux • • • • • • • Gestion de fichiers Linux (Unix en général) tout est basé sur le concept du système de fichiers Tout (ou presque) est considéré comme un fichier Les fichiers sont stockés dans un système hiérarchique ayant une racine unique (/) Les fichiers de données sont structurés dans des répertoires (directories ou folders) Les répertoires sont imbriqués Les fichiers sont nommés (pathname) • • • • • Chemin absolu : /usr/local/lib Chemin relatif : spool/linux A un instant donné on se trouve au niveau d’un répertoire donne : le répertoire courant (current working directory) Une fois logé un utilisateur se trouve au niveau de son répertoire par défaut (home): /home/username Exemples de chemins : – \ le répertoire racine (root) – . Le répertoire courant – .. Le répertoire parent – ~ mon répertoire par défaut (home) LOG 710 Hiver2014 11 Commandes de base de Linux • Gestion de fichiers – – – – – – – – – – Lister les fichiers d’un répertoire (ls) Affiche le répertoire en cours (pwd) Changement de répertoire (cd) Création de répertoires (mkdir) Suppression de répertoires(rmdir) Copie de fichiers (cp) Déplacement et renommage de fichier/répertoire (mv) Suppression de fichiers (rm) Affiche le contenu d’un fichier (cat) Affichage page par page (more) LOG 710 Hiver2014 12 Commandes de base de Linux • Exemple de commande ls -l /etc • Redirection de la sortie ls -l >output • Redirection de l’entrée wc <input • Pipe LOG 710 Hiver2014 ps aux | grep netscape | wc -l Introduction to Linux Commandes de base de Linux • • • • • Commandes diverses (utilitaires) Affiche la date et l’heure (date) Liste des utilisateurs en ligne (who) Affiche le nom de l’utilisateur (whoami) Modification du mot de passe (passwd) LOG 710 Hiver2014 14 Introduction to Linux Commandes de base de Linux • • • • • Gestion des processus Commande en arrière-plan : cmd & Liste des processus en cours : ps Liste des processus en cours : top Annulation d’un processus : kill PID LOG 710 Hiver2014 15 Introduction to Linux Commandes de base de Linux • Gestion des droits d’accès • Linux est un système multi-utilisateurs • Les utilisateurs peuvent être organisés en groupes – Chaque utilisateur a un identificateur (UID), un groupe initial (GID) et une liste de groupes (groups) – Utiliser la commande id et la commande groups • Pour des raisons de protection d’information et de sécurité Linux utilise et géré les droits d’accès • Chaque fichier a un propriétaire (owner) • Linux définit des droit d’accès pour le propriétaire, le groupe et les autres (others) • Linux définit trois genres de droit d’accès : Lecture (read), Écriture (write) et Exécute LOG 710 Hiver2014 16 Commandes de base de Linux • Gestion des droits d’accès • La commande (ls -l) liste un répertoire en format long (détails) : -rwxrwxr-x -rw-rw-r--rw-rw-r-drwxrwxr-x Droit d’accès LOG 710 Hiver2014 1 1 1 7 rvdheij rvdheij rvdheij rvdheij rvdheij rvdheij rvdheij rvdheij Propriétaire 5224 221 1514 1024 Groupe Dec Dec Dec Dec 30 30 30 31 03:22 03:59 03:59 14:52 hello hello.c hello.s posixuft Introduction to Linux Commandes de base de Linux • • • • • Gestion des droits d’accès Modifier les droits d’accès (chmod) Déterminer les droits d’accès (umask) Changer le propriétaire (chown) Changer le groupe d’un fichier (chgrp) LOG 710 Hiver2014 18