Plan de cours INTRODUCTION INSTALLATION DE LINUX TRAVAILLER SOUS LINUX SYSTEME DE FICHIERS COMMANDES FONDAMENTALES GESTION DES UTILISATEURS ET DES GROUPES PERMISSIONS D ’ACCES AUX FICHIERS LES PROCESSUS COMMANDES FILTRES INSTALLATION ET ARCHIVAGE LES SCRIPTS SHELL CONFIGURATION RESEAU LES APPLICATIONS:Telnet, Ftp LA PROGRAMMATION C SOUS LINUX LINUX Mr MANSOUR
INTRODUCTION FONCTION D’UN SYSTEME D ’EXPLOITATION PERPHERIQUES UTILISATEURS SYSTEME D ’EXPLOITATION PROCESSEUR/MEMOIRE RESEAU LINUX Mr MANSOUR
GESTION DES UTILISATEURS ORGANISATION DES FICHIERS GESTION DES E/S GESTION DES PROCESSUS GESTION DES UTILISATEURS ORGANISATION DES FICHIERS GESTION DES E/S PARTAGE DES RESSOURCES GESTION DES COMMUNICATIONS LINUX Mr MANSOUR
SYSTEME MULTI-TACHES Il n ’attend pas la fin d ’une tâche pour prendre en charge une nouvelle tâche. Le processeur fonctionne en temps partagé entre les différentes tâches créées. Un utilisateur peut demander l ’exécution de plusieurs tâches LINUX Mr MANSOUR
SYSTEME MULTI-UTILISATEURS LE SYSTEME GERE TOUS LES UTILISATEURS: Identification Authentification Sécurité et droits Partage des ressources Chaque utilisateur peut demander l ’exécution de plusieurs tâches LINUX Mr MANSOUR
CARACTERISTIQUES DE LINUX Multi-tâches et multi-utilisateurs Ouvert, indépendant du matériel Ecrit en langage C Populaire Sécurisé Nombreux utilitaires et logiciels libres LINUX Mr MANSOUR
LES PRINCIPALES DISTRIBUTIONS LINUX RedHat Debian Mandrake Slackware Suse LINUX Mr MANSOUR
INSTALLATION DE LINUX LINUX Mr MANSOUR
TRAVAILLER SOUS LINUX LE CHARGEMENT DE BIOS L ’EXECUTION DU CHARGEUR DE SYSTEME LILO L ’UTILISATEUR PEUT DONNER DES DIRECTIVES A LILO CHARGEMENT DE SYSTEME D ’EXPLOITATION DANS LA MEMOIRE VIVE OUVERTURE DE LA SESSION LINUX Mr MANSOUR
OUVERTURE DE LA SESSION Le travail sous LINUX , même en dehors de tout contexte réseau, implique une connexion au système. Une session n ’est jamais anonyme. Le processus d ’identification est classique: Donner le nom d ’utilisateur (login:) puis le mot de passe (password:) Observer le prompt [user@machine rép-perso] LINUX Mr MANSOUR
Interpréteur vde commande disponibles sous Linux: Interpréteur de commande Bourne: Cet interpréteur de commande est officiellement distribué avec les systèmes Unix.Le nom de fichier exécutable est sh, et il est installé en /bin/sh. Interpréteur de commande C: Il tire son nom de son langage de programmation qui ressemble pour la syntaxe au langage de programmation C.Il n’est pas compatible avec l’interpréteur de commande Bourne.le nom de fichier exécutable est csh. Interpréteur de commande korn: Il combine les meilleurs caractéristiques des deux interpréteurs de commande précédents.Le nom du fichier exécutable est ksh LINUX Mr MANSOUR
Interpréteur de commande à jeu réduit: Lorsque vous désirez que l’utilisateur du système ait un accès limité au serveur linux, l’interpréteur de commande à jeu réduit est utilisé. Il est typiquement utilisé pour des utilisateurs invités qui ne font pas partie du système, et dans des installations sécurisés où les utilisateurs doivent être restreints à travailler seulement dans leur propre environnements limités. Interpréteur de commande Bash: C’est une amélioration de l’interpréteur de commande Bourne et c’est l’interpréteur de commande par défaut de la plupart des systèmes linux. L’interpréteur Bash (/bin/bash) est capable de stocker l’historique des commandes que vous avez utilisées. Bash est un produit du projet GNU de la fondation de logiciel libre(free software foundation).Bash peut stocker les commandes de vos sessions précédentes LINUX Mr MANSOUR
Interpréteur de commande Tcsh: Il est également connu sous le nom interpréteur de commande TC et c’est une amélioration de l’interpréteur de commande C.Les interpréteurs de commandes C et TC ne sont pas compatibles avec l’interpréteur de commande Bourne Interpréteur de commande A (ash): C’est un clone de l’interpréteur de commande Bourne. Il est généralement adapté aux ordinateurs qui ont très peu de mémoire. Interpréteur de commande Z (zsh): Il possède les meilleures caractéristiques de l’interpréteur de commande Tcsh.Il peut émuler toutes les caractéristiques de l’interpréteur Korn et possède le plus grand nombre d’utilitaires. LINUX Mr MANSOUR
SHELL Le Shell lancé à chaque connexion peut être choisi lors de la création de compte utilisateur; (par défaut ;on choisit le Shell bash. Pour connaître le shell et ses commandes interne, on consulte son manuel: man bash LINUX Mr MANSOUR
GESTION DES UTILISATEURS ET DES GROUPES Useradd nom_user passwd nom_user userdel [-r] nom_user Structure de /etc/passwd : Ce fichier comprend 7 champs, séparés par le symbole: nom de connexion ancienne place de mot de passe crypté numéro d ’utilisateur UID numéro de groupe GID nom complet répertoire personnel shell Structure de /etc/group : Ce fichier comprend 4 champs, séparés par le symbole: nom du groupe x pour remplacer le mot de passe la liste des membres du groupe LINUX Mr MANSOUR
Les groupes: un groupe est un ensemble d ’utilisateurs qui partagent les mêmes fichiers et répertoires. Chaque utilisateur doit faire partie au moins d ’un groupe, son groupe primaire. Chaque utilisateur possède un groupe par défaut, précisé par son identifiant GID dans le fichier /etc/passwd. Tout utilisateur peut faire partie de plusieurs autres groupes, appelés ses groupes secondaires. Pour lister tous les groupes d ’un utilisateur: groups nom_user Pour créer un nouveau groupe: groupadd nom_groupe Pour supprimer un groupe: groupdel nom_groupe Pour ajouter un utilisateur à un groupe, le plus simple est d ’éditer le fichier /etc/group et d ’ajouter une liste d ’utilisateurs(séparés par des virgules) sur la ligne du groupe LINUX Mr MANSOUR
LE PROCESSUS DE CONNEXION Les scripts de connexion: le script /etc/profile commun à tous les users y compris root celui-ci cherche à exécuter tous les scripts /etc/profile.d/*.sh puis il ya exécution de $HOME/.bash_profile :il s’agit ainsi d ’un fichier de démarrage personnel et paramétrable. A son tour il exécute $HOME/.bashrc dans lequel il est recommandé de placer toutes les fonctions ou alias personnels puis le prompt utilisateur s’affiche LINUX Mr MANSOUR
Création d ’un nouveau compte Par des commandes: Useradd username passwd username par l ’utilitaire « linuxconf » LINUX Mr MANSOUR
DECONNEXION ET ARRET Pour se déconnecter , entrer exit ou logout Evidement, 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. L’arrêt de la machine linux est une tâche d ’administrateur. LINUX Mr MANSOUR
Arrêt immédiat: halt (= shutdown -h now ) Pour arrêter le système, l’administrateur « root » lance l ’une des commandes suivante: Arrêt immédiat: halt (= shutdown -h now ) arrêt différé: shutdown -h <nb mn> reboot ou shutdown -r [<nb mn> | now ] ou reboot ou ctrl-alt-del LINUX Mr MANSOUR
SYSTEME DE FICHIERS LINUX Un système de fichiers est une façon d’organiser et de stocker une arborescence sur un support(disque,disquette,cd...). Linux possède son système appelé: ext2 La liste des répertoires principaux: / /bin /boot /dev /etc /home /lib /mnt /opt /root /sbin LINUX Mr MANSOUR
Parcourir et lister les répertoires: /tmp /usr /var /proc Parcourir et lister les répertoires: ls ls rep cd chemin cd .. File fichier pwd mkdir rep rmdir rep LINUX Mr MANSOUR
Les différentes catégories de fichiers: fichiers normaux : * texte : courrier, sources des programmes, scripts, configuration ... * exécutables : programmes en code binaire fichiers répertoires: ce sont des fichiers conteneurs qui contiennent des références à d"autres fichiers. fichiers spéciaux: situés dans /dev, ce sont les points d"accès préparés par le système aux périphériques. Le montage va réaliser une correspondance de ces fichiers spéciaux vers leur répertoire "point de montage". par exemple, le fichier /dev/hda permet l"accès et le chargement du 1er disque IDE fichiers liens symboliques: Ce sont des fichiers qui ne contiennent qu"une référence (un pointeur) à un autre fichier. Cela permet d"utiliser un même fichier sous plusieurs noms sans avoir à le dupliquer sur le disque. LINUX Mr MANSOUR
Gestion des fichiers: Cp [option] source destination Principales options: -R : recopie récursive -i : avertit l ’utilisateur de l ’existence d ’un fichier du même nom et lui demande s ’il veut le remplacer. -v :affiche en clair le nom des fichiers copiés rm [option] fichiers -i :pour demander confirmation à l ’utilisateur pour chaque fichier. -r :pour supprimer un répertoire et ses sous répertoires -f :pour supprimer les fichiers protégés en écriture sans demander de cofirmation mv [option] source destination -i : demande confirmation pour chaque fichier. -u : pour ne pas supprimer le fichier si sa date de modification est postérieure à celle du fichier remplaçant. LINUX Mr MANSOUR
Gestion des Documents: Fichier d’Entrée Standard: Exemple: Cat <entrer> La commande cat attend une entrée du clavier. Vous pouvez entrer autant de lignes que vous désirez.Pour indiquer la fin de l’entre,vous devez appuyer sur les touches <Ctr> et d. Fichier de Sortie Standard: ls Fichier d’Erreur Standard: LINUX Mr MANSOUR
Redirection: Redirection d’entrée: Redirection de sortie: Exemples: Cat < test1 <entrer> Cat 0< test1 <entrer> Redirection de sortie: Cat test1 > test2 Cat test1 >> test2 Cat test 1> test2 Cat test 1>> test2 LINUX Mr MANSOUR
FILTRES Le filtre grep: Grep cherche dans un fichier un motif de caractères et affiche toutes les lignes contenant ce motif.le filtre grep ne peut pas être utilisé sans spécifier une expression régulière. Syntaxe : grep regular_expression [nom de fichier] Exemples: Grep job <entrer> Work Job Task <Ctrl> d Grep ‘root’ /etc/passwd LINUX Mr MANSOUR
Vous pouvez spécifier des expressions régulières complexes en utilisant les caractères résumés dans le tableau suivant: Caractère Utilisation Exemple [ ] Correspond à un des caractères d’un ensemble de caractères Grep ‘’New[abc] ‘’nom de fichier [ ] avec trait d’union Correspond à un caractère d’une suite de caractère Grep ‘’New[a-c]’’ nom de fichier ^ Début d’une ligne Grep ‘’^new[abc]’’ nom de fichier ^ entre [ ] Correspond au motif qui ne contient aucun des caractères de la suite spécifiée Grep ‘’new[^a-c]’’ nom de fichier $ Fin de ligne Grep ‘’new[abc]$’’ nom de fichier . Correspond à n’importe quel caractère Grep ‘’New.[abc]’’ nom de fichier LINUX Mr MANSOUR
Options du filtre grep: -n :Ceci imprime chaque ligne correspondant au motif , avec son numéro de ligne. Le nombre est imprimé au début de la ligne. -c :Ceci imprime seulement un compte des lignes correspondantes au motif. -v :Ceci imprime toutes les lignes qui ne correspondent pas au motif spécifié par l’expression régulière. Le filtre wc: Le filtre wc est utilisé pour compter le nombre de lignes,mots,et caractères dans un fichier disque ou dans l’entrée standard. Syntaxe: wc [options] [nom de fchier/s] Exemple: wc sample <enrer> 2 7 29 Le fichier sample consiste en deux lignes, sept mots, et 29 caractères LINUX Mr MANSOUR
Option Fonction -l Affiche le nombre de lignes -w Affiche le nombre de mots -c Affiche le nombre de caractères LINUX Mr MANSOUR
<press Ctrl and d> 1 4 14 Comme wc est un filtre , il utilise l’entrée standard si aucun nom de fichier n’est donné, comme il est montré ci-dessous: Wc <entrer> Wc est un filtre <press Ctrl and d> 1 4 14 LINUX Mr MANSOUR
Le filtre cut: Option Fonction -f<col_number(s)> Le filtre cut est utile lorsque l’on veut extraire des colonnes spécifiques de la sortie de certaines commandes. Il peut aussi être utilisé pour extraire des colonnes spécifiques de fichiers. Syntaxe cut [option] [nom de fichier/s] Option Fonction -f<col_number(s)> Affiche les colonnes spécifiques -c<character_number(s)> Affiche les caractères spécifiques -d<col_delimiter> Spécifie le délimiteur de colonne LINUX Mr MANSOUR
Exemples: Cut –d ‘ :’ –f1 /etc/passwd Cut –c1-5 /etc/passwd LINUX Mr MANSOUR
Le filtre tr: Le filtre tr peut être utilisé pour remplacer un ensemble de caractères par un autre. Exemples: Tr ‘:’ ‘ ‘ </etc/passwd Cette commande remplace toutes les occurrences du caractère’:’ dans le fichier /etc/passwd par un espace, et affiche la sortie sur la sortie standard. L’option –s est utilisée pour comprimer plusieurs occurrences d’un caractère en un seul caractère, comme il est montré ci-dessous: Exemple: Who <entrer> Root tty1 sept 28 17:02 Pour changer le séparateur de colonne en seul espace, on doit utiliser tr –s, comme il est montré ci-dessous: Who > tempo Tr –s ‘ ‘ <tempo Root tty1 sept 28 17:02 LINUX Mr MANSOUR
Je suis heureux d’apprendre linux JE SUIS HEUREUX D’APPRENDRE LINUX Une autre utilisation du filtre tr est la conversion majuscules-minuscules. Exemple : Tr ‘[a-z] ‘ ‘[A-Z]’ Je suis heureux d’apprendre linux JE SUIS HEUREUX D’APPRENDRE LINUX LINUX Mr MANSOUR
TUBES: Sous linux , les filtres et les autres commandes peuvent être combinés de telle manière que la sortie standard d’un filtre soit l’entrée standard d’un autre fichier ou commande. Exemple: Ls > tempfil e More tempfile Ls | more LINUX Mr MANSOUR
Changements des droits: De façon générale, l"utilisateur qui crée un fichier en devient le propriétaire, et le groupe auquel l"utilisateur appartient (au moment de la création) devient le groupe du fichier. Changer le propriétaire: chown [-R] nv-user fichiers Commande réservée au propriétaire actuel des fichiers ou des répertoires (et à root) L"option -R (récursif) permet d"agir sur l"ensemble des sous-répertoires. Exemple : chown -R stage4 /home/stage1 LINUX Mr MANSOUR
Changer le groupe propriétaire: chgrp [-R] nv-groupe fichiers Ceci doit être effectué par root ou le propriétaire, à condition que celui-ci soit membre du nouveau groupe. Exemple : chgrp -R stage4 /home/stage1 Changer les 2 en même temps: chown nv-user nv-groupe fichiers chown nv-user fichiers Dans ce cas, en plus, le groupe propriétaire des fichiers est changé pour le groupe primaire du nouveau propriétaire. LINUX Mr MANSOUR
Changer les permissions sur les fichiers: Syntaxe: chmod [u g o a] [+ - =] [r w x] fichiers par exemple: chmod u+x fichier on peut regrouper les catégories si on veut exercer la même action : par exemple: chmod ug+w fichier chmod go-rwx fichier chmod [-R] <action-droits> fichiers exemple : chmod -R go-rwx /home/toto LINUX Mr MANSOUR
chmod u=rwx,g=rw,o=r fichiers EXEMPLES: chmod u=rwx,g=rw,o=r fichiers chmod u=rwx,g=r fichiers chmod u=rwx,g=r,o= fichiers LINUX Mr MANSOUR
Notation octale des permissions: Binaire ----- Droit ----- Octal 000 -------- (---) ------- 0 001 -------- (--x) ------- 1 010 -------- (-w-) ------- 2 011 -------- (-wx) ------- 3 100 -------- (r--) ------- 4 101 -------- (r-x) ------- 5 110 -------- (rw-) ------- 6 111 -------- (rwx) ------- 7 LINUX Mr MANSOUR
chmod 700 /home/rep-a-moi Exemples chmod 700 /home/rep-a-moi chmod 764 test LINUX Mr MANSOUR
son propriétaire est l"utilisateur qui l"a créé Rappelons les règles simples de propriété qui s"appliquent à la création d"un fichier ou d"un répertoire : son propriétaire est l"utilisateur qui l"a créé son groupe est le groupe primaire de ce même utilisateur Mais quelles sont les permissions attribuées par défaut à l"utilisateur propriétaire, au groupe propriétaire et à tous les autres ? Les permissions maximales accordées par un fichier et un répertoire sont 666 (-rw-rw- rw-) et 777 (-rwxrwxrwx). On peut restreindre ces permissions lors de sa création. C"est le rôle de la commande umask de fixer les permissions masquées, autrement dit les droits non accordés aux fichiers et répertoires lors de leur création. Exemple de calcul de permissions effectives, affectées lors de la création d"un répertoire, par un utilisateur dont le masque de protection est 027 777 = 111 111 111 permissions maxi = rwx rwx rwx - 027 = 000 010 111 masque de protection = 750 = 111 101 000 permissions effectives = rwx r-x --- LINUX Mr MANSOUR
La programmation Shell Un script bash est un fichier de type texte contenant une suite de commandes shell, exécutable par l’interpréteur (ici le programme /bin/bash), comme une commande unique. Un script peut être en ligne de commande, comme dans un autre script. Le langage bash gère notamment: La gestion des entrées-sorties et de leur redirection Des variables définies par le programmeurs et des variables systèmes Le passage de paramètres Des structures conditionnelles et itératives Des fonctions internes Saisie du script: Utiliser vi ou mc ( mc ne traite pas les accents) Les lignes commençant par le caractère dièse # sont des commentaires. LINUX Mr MANSOUR
En fait si le Shell par défaut est bash , cette ligne est superflue. Le script doit débuter par l’indication de son interpréteur écrite sur la première : # !/bin/bash. En fait si le Shell par défaut est bash , cette ligne est superflue. Exemple: # !/bin/bash # script bonjour Echo’echo bonjour tout le monde’ Exécution du script: Rendre le script exécutable Lancer l’exécution du script Entrées-sorties: Ce sont les voies de communication entre le programme bash et la console: Echo Read LINUX Mr MANSOUR
Les variables bash: Variables programmeur: De façon générale, elles sont de type texte. On distingue les variables définies par le programmeur et les variables systèmes. Syntaxe: Variable=valeur On peut initialiser une variable à une chaîne vide: Chaîne_vide= Référence à la valeur d’une variable: faire précéder son nom de symbole $ Pour afficher toutes les variables: set Pour empêcher la modification d’une variable, invoquer la commande readonly Variables exportées: Toute variable est définie dans un Shell. Pour qu’elle deviennent globale elle doit être exportée par la commande: Export variable LINUX Mr MANSOUR
Export : pour obtenir la liste des variables exportées Opérateur {} dans les variables: Dans certains cas en programmation, on peut être amené à utiliser des noms de variables dans d’autres variables. Comme il n’y a pas de substitution automatique, la présence de {} force l’interprétation des variables incluses. Exemple: User=’’/home/stage ’’ Echo $user U1=${user}1 Echo $u1 Variables d’environnement: Ce sont les variables systèmes dont la liste est consultable par la commande env | less Les plus utiles sont : $HOME, $PATH, $USER, $PS1, $SHELL, $ENV … Variables prédéfinies spéciales: Elles sont gérées par le système.Elles ne sont accessibles qu’en lecture. LINUX Mr MANSOUR
C’est la valeur de sortie de la dernière commande. Ces variables sont automatiquement affectées lors d’un appel de script suivi d’une liste de paramètre. Leurs valeurs sont récupérables dans $1, $2….$9 $? C’est la valeur de sortie de la dernière commande. Elle vaut 0 si la commande s’est déroulée sans pb. $0 Cette variable contient le nom du script $1 à $9 Les premiers arguments passés à l’appel du script $# Le nombre d’arguments passés au script $* La liste des arguments à partir de $1 LINUX Mr MANSOUR
La commande test: Syntaxe: Test expression ou [ expression ] Tester un fichier: Test option fichier Ou [ option fichier ] LINUX Mr MANSOUR
Les principales options: Signification -e Il existe -f C’est un fichier normal -d C’est un répertoire -r|-w|-x Il est lisible|modifiable|exécutable -s Il n’est pas vide LINUX Mr MANSOUR
Tester une chaîne: Syntaxe : [ option chaîne ] Option signification -z | -n La chaîne est vide / n’est pas vide = | != Les chaînes comparées sont identiques | différentes LINUX Mr MANSOUR
Tester un nombre: Syntaxe: [ nb1 option nb2 ] Option Signification -eq | -ne Égal | différent -lt | -gt Strict.inf | Strict. sup -le | -ge Inf ou égal | sup ou égal LINUX Mr MANSOUR
Opérations dans une commande test: Option Valeur [ expr1 –a expr2 ] (and) 0 si les 2 exprs sont vraies [ expr1 –o expr2 ] (Or) 0 si l’une des 2 exprs est vraie [ ! Expr ] négation LINUX Mr MANSOUR
Structures conditionnelles: Syntaxe: If condition Then Instruction1 Instruction2 …… ….. Else ……. fi LINUX Mr MANSOUR
Choix multiples: Syntaxe: Case valeur in Expr1) commandes ;; …. Esac Exemple: Read langue Case $langue in Français) echo ‘’ bonjour’’ ;; Anglais) echo ‘’ hello’’ ;; Espagnol) echo ‘’buenos dias ‘’ ;; *) echo ‘’ erreur de choix ’’ ;; esac LINUX Mr MANSOUR
Structure itératives: Boucle for: Syntaxe: For variable [ in liste ] Do Commandes Done Exemples: For nom in koko lolo toto Echo $nom ‘’à bientôt’’ LINUX Mr MANSOUR
Boucle while: For file in /home/stage/* Do Cp $file /tmp Done Syntaxe: While condition Do …. done LINUX Mr MANSOUR