Découverte d'UNIX - ISIMA

174 vues

Publié le

Ce cours est un cours d'introduction à UNIX / LINUX. Ce cours est enseigné en première année à l'ISIMA

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
174
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Découverte d'UNIX - ISIMA

  1. 1. http://www.isima.fr/~loic Septembre 2017
  2. 2. 2 Initiation UNIX/C • 2 semaines • Système d'exploitation UNIX / Linux • Langage C • Bases fondamentales pour les trois années § Langage C++, C#, JAVA, Swift § Cours de système § Utilisation des machines
  3. 3. Ordinateur ?
  4. 4. 4 Écran (LCD) Clavier Souris Unité centrale Scanner… Imprimante… Tablette graphique… Trackball…
  5. 5. 5
  6. 6. 6 Processeur Unité de contrôle Mémoires auxiliaires Unité de mémorisationUnité de traitement Unité d'E/S Mémoire / RAMCalcul Décodage instructions
  7. 7. Mémoire Registre Cache RAM Disque dur SSD / classique Clé USB CD / DVD / Blu-ray 7 Locale Centrale Auxiliaire Temps d'accès Prix
  8. 8. 8 Ordinateur ? • Poste personnel § PC, Portable § Mac § Smartphone • Terminal § Alpha : clavier + écran texte en liaison asynchrone § X : X-Windows + processeur • Serveur
  9. 9. 9 Serveur Serveur Terminal Terminal Protocole de communication (http, …) Service Demandeur Relation • client /serveur • Maître esclave Répondre à des requêtes
  10. 10. 10 Système d'exploitation (SE ou OS) • Interface utilisateur / machine § Texte / Graphique • Gestion § Ressources (fichiers, mémoires, périphériques) § Données / programmes des utilisateurs § Conflits entre les utilisateurs • Architecture multiutilisateur • Ex : Windows, Linux, UNIX, Mac OS, AS400, … • Langage de commande : shell / DOS, powershell
  11. 11. 11 • Terminaux X • Serveurs § ETUD LINUX § TSE1 WIN2016 § BERZET LINUX • PCs pour TP spécifiques avec SE virtuels • Mac
  12. 12. 12 Et pour vous ? • Distribution LINUX d'usage libre • § 8.1 | 10 | Server § Produits de développement (Visual, Visio, …) § MS Office ?
  13. 13. Le monde UNIX (LINUX)
  14. 14. 14 Plan • Organisation des/ses données § Fichiers et répertoires • Se (dé)connecter • Changer de mot de passe • Faire plusieurs choses à la fois § Processus • Communiquer § Réseau • Donner des ordres ! § Commandes shell
  15. 15. 15 UNIX ? • Multitâches • Multiutilisateurs • Bonne répartition des ressources • Outils de développement • Intimement lié au langage C • Portable → multi architecture
  16. 16. 16 1969 1975 1977 1979 1986 Développement en interne Version 6 Version 7 (commerciale) Berkeley Software Distribution (libre) System V Essai de normalisation par OSF (BDS 4.3 & System V.V3) • Norme POSIX (1983) • SVID (System V Interface Definition 1984) IBM / AIX d'influence OSF SUN/ SUN OS/Solaris d'influence BSD 1991 LINUX, complètement réécrit, libre
  17. 17. Exemple d’interface graphique 17 SHELL TERMINAL XTERM
  18. 18. 18 Langage de commandes • SHELL (UNIX) • Donner des ordres au Système d'exploitation • "Interpréteur de commandes" • 2 grandes familles • Toute commande exécutée via une interface graphique peut être faite textuellement. Bourne Shell (sh) Cshell (csh) Korn Shell (ksh) tcsh Bourne Again Shell (bash)
  19. 19. 19 Le Shell • Interface § Mode texte le plus souvent § Mode "ligne de commande" § "Terminal" , "xterm" • Choix du shell activé lors de la connexion • Syntaxe : § Nom_commande [options] [arguments] § Au moins un espace entre les différents éléments de la commande ?> $ firefox & $ soffice & $ ls –l /tmp $ prompt ou invite de commande
  20. 20. 20 Fichiers (1) • Fichier "classique" § Fichier texte § Fichier binaire • Répertoire • Lien symbolique • Autres § Tubes nommés, sockets, … • Périphérique (device) • Terminal, imprimante, disque
  21. 21. Fichiers (2) • Texte § Affichable et compréhensible à l'écran § Gestion des accents, fin de ligne ? § Ex : code source, script shell • Binaire § Exécutable § Données d’une application § Pas lisible à l’écran § Ex : fichier d'un éditeur de texte (OO, Word, mp3/4, divx) 21
  22. 22. 22 Structure arborescente Répertoire « racine » Unique root Sous-répertoire 1 Sous-répertoire 2 Sous-répertoire 3 Sous-répertoire 11 Sous-répertoire 12 Sous-répertoire 21 Sous-répertoire 22 Sous-répertoire 23 / usr home bin etud prof fc bin local
  23. 23. 23 Chemin = path • Emplacement où trouver un répertoire ou un fichier • Enumération des différents répertoires nécessaires • Séparateur de répertoires : slash home/etud
  24. 24. 24 Chemin absolu Répertoire racine usr home bin local bin archisima fc etud prof /home/etud
  25. 25. 25 Chemin relatif home etud prof fc etudiant1 etudiant2 gouinaud laurenco loic chris ../../etud/etudiant1 ? parent ou .. parent ou .. Répertoire § courant § parent
  26. 26. 26 Répertoires particuliers bin dev home local mnt tmp usr / Répertoire principal d’un utilisateur : $HOME ~ ~loic
  27. 27. 27 Commandes (1) $ ls list segments $ cd change directory $ pwd print working directory $ ls $ ls -al $ cd /home/prof/loic $ cd .. $ cd $HOME $ cd ~laurenco $ cd
  28. 28. 28 Commandes (2) $ mkdir make directory $ rmdir remove directory $ cp copy $ tree $ mkdir tps $ rmdir tps $ cp source destination $ cp original copie $ cp fic.txt ../sauv $ cp –r * ../sauv tps doit être VIDE
  29. 29. 29 Commandes (3) $ mv move $ rm remove $ mv original nouveau_nom $ mv fic.txt /tmp/ $ mv * ../a_sauver $ rm fic.txt $ rm –ri repertoire $ rm –rf /poubelle/*
  30. 30. 30 Obtenir de l'aide ? • Son voisin ;-) § En cours et en accès libre • Internet • Le manuel ?>man <commande> ?>man man ?>apropos <commande> ?>info <commande>
  31. 31. 31 Connexion • Environnement multiutilisateur • Connexion sécurisée § Identifiant : login § Mot de passe : password • Sécurité des mots de passe § Dictionnaire § Fréquence des changements § Caractères "spéciaux" : chiffres majuscules @ # ~ – • Session On verra comment changer de mot de passe en TP
  32. 32. 32 Déconnexion / logout • Obligatoire à la fin de chaque utilisation § Commande logout en mode texte § Icône ou menu en mode graphique • Sortie propre de la session § Courtoisie § Sécurité • Terminal "locké" pendant la mise en veille § Blocage temporaire sinon … § Courtoisie
  33. 33. 33 Administrateur / root • Utilisateur particulier avec droits § Privilèges systèmes • Administration de la machine § Vérification de la bonne marche § Gestion des utilisateurs § Sauvegarde / installation § Démarrage / Arrêt • Interdiction § de se connecter § d'essayer de se connecter
  34. 34. 34 Manipuler des fichiers textes $ touch $ cat $ more $ head $ tail $ vi $ wc $ which $ commande fichier.txt $ more resultats.txt $ tail -20 fic.log $ vi roman $ vi
  35. 35. 35 Protection des données • Objets protégés § Répertoires § Fichiers § Commandes § Ressources • Utilisateurs § Administrateur § Utilisateur DROITS
  36. 36. 36 Droits • 3 niveaux § Propriétaire user u § Groupe du propriétaire group g § Autres others o § Tous les utilisateurs all a • 3 types de droits § Lecture read r § Écriture write w § Exécution execute x (a = u g o) o g u a
  37. 37. 37 Commandes $ ls –l $ chmod $ chgrp $ chown Administrateur ! -rwxr--r-- 1 loic users 8699 Nov 15 2010 Xfloodit.c drwxr-xr-x 2 loic users 4096 Nov 15 2010 xlib -rwxr--r-- 1 loic users 7237 Nov 15 2010 xlib2.c d rwx rwx rwx u g o
  38. 38. 38 chmod $ chmod –R a+r index.html $ chmod –R u+rwx,go= * $ chmod go-rwx fic.log $ chmod +x dir $ chmod 755 fic d rwx rw- rw- u 7 r w x 4 2 1
  39. 39. 39 Lien physique • Deux noms distincts pour un même fichier • Original effacé ? Lien toujours valide • Même numéro d’inode • Limité à une partition • Limité aux fichiers $ ln fichier raccourci INODE = numéro unique attribué au fichier par le SE ls -i
  40. 40. 40 Lien symbolique / Raccourci ? • Fichier / répertoire • 2 inodes différents • Original effacé ? Lien invalide • Passe la limite de la partition • Très utilisé pour éviter la duplication de données $ ln -s fichier raccourci $ which firefox $ ls –l /usr/local/bin/firefox […] firefox -> firefox9a1
  41. 41. 41 Path (1) • Liste de répertoires où trouver les programmes • Visualisation $ waterfox bash : waterfox: command not found $ $ echo $PATH /usr/lib64/qt8/bin:/usr/local/sbin:/usr /sbin:/bin:/usr/local/bin $
  42. 42. 42 Path (2) • Le répertoire courant ? "." : peut être ajouté au PATH, mais pas obligatoire • Commandes utiles § whereis : permet de rechercher un fichier dans l'arborescence connu § which : permet de savoir quel exécutable est utilisé § locate commande : permet de localiser la commande § find : permet la recherche
  43. 43. 43 Redirections • Une application = boîte noire • Fichiers standards § Entrée standard § Sortie standard § Sortie d'erreur standard Application Entrée standard Sortie standard Sortie d'erreur standard 0 1 2
  44. 44. 44 $ cat riri fifi loulou > famille $ cat donald >> famille $ ps –aux > res $ more res $ commande 2> fichier $ wc < fic ó wc fic $ moyenne < donnees $ commande < fichier Ne pas appeler un fichier test
  45. 45. 45 $ Moyenne ↩ 15 ↩ 20 ↩ 13 ↩ -1 ↩ La moyenne est : 16 (3 éléments) $ $ moyenne < liste1.txt ↩ Saisir un nombre (-1 pour arrêter) La moyenne est : 16 (3 éléments) $ Saisir un nombre (-1 pour arrêter) 15 ↩ 20 ↩ 13 ↩ -1 ↩
  46. 46. 46 FIND find <répertoire> <critères de sélection> <action> • Exploration récursivement dans les répertoires • Affiche les fichiers qui répondent aux critères. $ find rep –name nom –print $ find . –name "essai.c" –print $ find / -name nom –print 2> /dev/null
  47. 47. 47 Caractères génériques • Remplacer un ou plusieurs caractères § ? : tout caractère § * : toute chaîne de caractères, y compris la chaîne vide. $ ls fic? fic1, fic2 $ $ ls fic* fic1, fic2, fichier1, fichier2 $
  48. 48. 48 Processus (1) • Programme en train de s'exécuter § Instructions machine • Ensemble des données manipulées § Mémoire • Informations utiles au système § Contexte d'exécution (pile, fichiers, …) • Problème : gestion du temps / processeur § Ordonnanceur § Multiprocesseur • Numéro unique (PID)
  49. 49. 49 Processus (2) • Processus système ou daemon § Pas associé à un terminal § Propriétaire : administrateur • Processus utilisateur § Tâche particulière § Durée de vie limitée § Généralement associé à un terminal • Nombre de processus limité par le système
  50. 50. 50 Etats d'un processus • Actif • Ready § Prêt à être exécuté • Terminé • Endormi / suspendu § En attente d'une saisie par exemple • Zombie (defunct) § Terminé mais toujours référencé (PID)
  51. 51. 51 Liste des processus $ ps $ ps –l • PPID, UID $ ps –aux ou ps aux $ ps -ef $ top PID TTY TIME CMD 1224 pts/1 00:00:00 bash 3836 pts/1 00:00:00 ps
  52. 52. 52 Commande kill • Demande de fin $ kill -15 PID • Mauvaise fin $ kill -9 PID • Arrêt temporaire $ kill –STOP PID • Reprise après arrêt $ kill –CONT PID $ kill PID
  53. 53. 53 Modes d'exécution des processus • Avant-plan (foreground) § Exécution séquentielle § Interaction avec l’utilisateur • Mode arrière-plan (background) § Utilisation concurrente • Job § Processus en arrière-plan § Processus suspendu § Processus graphique détaché
  54. 54. 54 Contrôle de processus (1) $ commande É $ commande & É $ jobs interactif batch $ vi options.txt $ firefox & [1] 1720 $ xeyes & [2] 2345 [n° Job] PID [1] En cours d’exécution firefox & [2] En cours d’exécution xeyes &
  55. 55. 55 Contrôle de processus (2) $ xeyes & [3] 1837 $ xeyes $ fg [3] Stoppé xeyes & $$ bg [3] xeyes & $ [CTRL+Z] $ kill %3 $ fg $ fg numéro $ fg %numéro $ bg $ bg numéro $ bg %numéro $ kill %numéro [CTRL + C] Arrêt prog en cours
  56. 56. Exécution de processus • Séquentielle § Processus après processus • Concurrente § En même temps 56 $ (c1;c2;c3;…;c4) > fichier
  57. 57. 57 Exécution concurrente Com 1 E S Err Com 2 E S ErrTUBE ou PIPE Idée : Lancer des processus "en parallèle" communiquant entre eux Com 2 peut commencer avant que Com 1 ne termine Rediriger la sortie de l'un vers l'entrée de l'autre ?>Com1 | Com 2 ?>ps –aux | less cat fichier | grep loic
  58. 58. 58 NICE $ nice +n commande & • Valeurs du n dépendant du shell § À vérifier par la commande … • 0 → 40 (défaut : 20) • -20 → 20 (défaut : 10) • Valeur faible, priorité forte • Valeur haute, priorité faible • Valeurs négatives pour le système time processus
  59. 59. 59 NOHUP • Déconnexion ð Arrêt des programmes • Calcul long ? § No hang up (signal d'arrêt) $ nohup commande [< fichier1] [> fichier2] &
  60. 60. 60 Autres commandes $ at heure § Exécuter les commandes de l'entrée std à la date spécifiée § Droits : at.allow at.deny $ cron § Tâches périodiques en arrière-plan § Fichier crontab
  61. 61. 61 $ rm * § Sans savoir où l'on est (pwd) $ rm *;o § Au lieu de rm *.o $ mv à 14h du mat • Appeler un fichier du nom d'une commande ou d'un périphérique : null, test
  62. 62. 62 Editeur vi • Editeur de texte en mode terminal (1976) • Présent sur toutes les machines UNIX § Indispensable • 2 modes d'utilisation § Mode insertion § Mode commande (par défaut) Prendre un éditeur moderne en utilisation courante
  63. 63. 63 Mode commande • Déplacement Flèches du clavier h ◄ j ▼ k ▲ l ► :<numéro_ligne> • Quitter :q :wq :q! ZZ • Sauvegarder :w :w "nom" • Informations :se nu :se showmode
  64. 64. 64 Édition • Entrer en mode insertion i a r • Sortir du mode insertion : ESC • Effacer : x • Copier/couper/coller yy ou <n>yy dd ou <n>dd P p • Remplacer le mot courant : cw
  65. 65. 65 Recherche • Recherche et/ou remplace :/<motif> :s/chaine1/chaine2/g :1,$s • Suivant n • Précédent N Ce n’est pas P
  66. 66. 66 Divers • Répète la dernière commande : . • Annuler : u U • Concaténer deux lignes J • Fichier de configuration .exrc
  67. 67. 67 Imprimante (1) • Imprimante/photocopieuse commune au rez de chaussée ( ne fonctionne que sous les environnements Windows) • Attention au gaspillage de papier • Envoyer à l'imprimante quelque chose qu'elle comprend • Utilisable avec la carte étudiant
  68. 68. 68 Imprimante (2) $ lpr $ lpq $ lprm • Autre jeu d’instructions (System V) • lp, lpstat, cancel • a2ps (ascii to Ps) $ lpq $ lpr < fich L'option –P permet de spécifier une imprimante si nécessaire Sous Unix
  69. 69. 69 Variables d’environnement • DISPLAY • ENV • HOME • PATH • PS1 et PS2 • PWD • SHELL • TERM • USER $ echo $PATH $ vi .bashrc PATH=$PATH:~/bin $ source .bashrc ou $ . .bashrc $ echo $PATH
  70. 70. 70 alias $ alias rm="rm –i" $ alias ll="ls –l" $ ll $ alias $ unalias
  71. 71. 71 Réseau • Communication entre des ordinateurs § Reliés entre eux (avec ou sans fil) • Internet § La toile § World Wide Web WWW • Protocoles § Manière de communiquer § IP, TCP, UDP, FTP, SMTP, HTTP, POP/IMAP …
  72. 72. 72 Adresse ? • URL Uniform Resource Locator § http://www.isima.fr:80 • DNS Domaine Name Server § Transcription Nom ↔ Adresse IP § http://193.55.95.26 § Sinon fichier /etc/hosts • DHCP 127.0.0.1 localhost 127.0.0.1 www 193.55.95.26 www.isima.fr
  73. 73. 73 VoIP BOX = MODEM + ROUTEUR Wifi WiFi ≠ Internet CPL ? RJ45
  74. 74. 74 TX Serveurs Intranet Pare-feu Proxy Concentrateur VPN
  75. 75. 75 Connexion "directe" Connexion par VPN
  76. 76. 76 Appareils actifs • Passerelle • Proxy • Pare-feu firewall • Switch • Modem • Routeur • Concentrateur (hub) • Concentrateur VPN
  77. 77. 77 Carte Interface Réseau • Fil ou sans fil • Adresse MAC § Numéro de série de la carte § Prises sécurisées à l’ISIMA
  78. 78. 78 Mes données ? Network Information Service NIS etud fc glouglou /home/etud/ login Données Dupliquées? Network File System
  79. 79. 79 Connexion à distance classique etud TX exam ssh sshd etud> ssh exam exam> Relations client-serveur client serveur client serveur « Manipuler une machine comme si on y était »
  80. 80. 80 ssh / telnet (1) • ssh § Communication sécurisée – Port 22 § Pas dispo sous Windows < 10 • telnet § Connexion en clair § Port 23 - Démon telnetd • Adresse IP ou nom logique • Résolution nom via DNS ou /etc/hosts •PuTTY •Virtualisation VIEUX
  81. 81. 81 ssh / telnet (2) • Session distante texte • Commandes identiques au shell $ quit $ exit $ who $who am i $ last $hostname $ ping • Session distante graphique $ xterm –e ssh machine $ ssh –X machine
  82. 82. 82 Transfert de fichiers (1) • Commande scp • Clients texte : sftp / ftp • Client graphique libre : filezilla scp toto.txt loic@fc.isima.fr:temp
  83. 83. 83 ftp / sftp • (Secured) File Transfer Protocol • Historique et sur le net • Modèle client-serveur + démon • Transfert de fichiers § Machines différentes § Inutile si NFS • Ports usuels : 20 et 21 (ftp) , 22 (sftp) • Modes § Actif : ouverture dynamique de ports § Passif Transfert de fichiers (2)
  84. 84. 84 Regrouper des fichiers • Mettre des fichiers dans un seul fichier pour pouvoir les transporter/archiver plus facilement • Non compressé § Commande tar § Options c v x f • Compressé § zip / unzip § gzip[2] / gunzip § compress / uncompress .z .gz .zip tar cvfz arch.tar repertoire
  85. 85. 85 Fichiers de configuration • Fichiers ou répertoires cachés • Initialisation (connexion/session) .bash_profile .bashrc • Application .exrc .mozilla A MANIPULER AVEC PRECAUTION
  86. 86. 86 Script shell (1) • Liste de commandes dans un fichier texte § Fichier batch • 2 familles de syntaxe § Bourne shell et dérivés (bash) § C-shell et dérivés (tcsh) • Choisir le shell § Spécifié à la première ligne du script • Scripts autorisés sont dans /etc/shells
  87. 87. 87 Script shell (2) • Première ligne du script #!/bin/bash • Rendre le fichier exécutable chmod u+x script • Exécuter $ ./script #!/bin/bash # dire bonjour echo "Bonjour" echo $USER
  88. 88. 88 Variables • Mécanisme de substitution § Type de base : la chaîne de caractères • Deux types § Variable locale au shell • Non partagées par les autres programmes § Variable d'environnement ou exportée • Transmises aux applications lancées $variable ${variable}
  89. 89. 89 Caractères spéciaux • # commentaire • ' apostrophe quote • " guillemet double quote • ` antiquote • protéger (échapper) un caractère chaînes de caractères find /usr/bin –size +10k –exec cp '{}' $HOME/tmp ;
  90. 90. 90 Chaines de caractères • 'chaine' § Chaine non substituée § Plus aucun caractère spécial • "chaine" § Les caractères spéciaux sont valables sauf § Variables évaluées • `chaine` § Interprétée comme une commande echo "$USER" -> loic echo '$USER' -> $USER echo `date`
  91. 91. Boucle simple 91 i=1 while [ $i -le 100 ] do echo $i i=`expr $i + 1` done for i in `seq 1 100` do … done for i in un deux do echo $i done rep="" while [ -z "$rep" ] do read $rep done Commande
  92. 92. Condition 92 if [ $i -le 100 ] then echo "trop petit" fi if test expression then [else] fi if [ expression ] then [ else ] fi if [ -n "$rep" ] then echo "non nul" fi
  93. 93. 93 Ligne de commande et paramètres $# : nombre de paramètres $* : liste entière set : permet de redéfinir la liste shift n : décaler la liste vers la gauche ($$ : PID du script) $toto blague carambar Exécutable $0 1er paramètre $1 2nd paramètre $2
  94. 94. 94 Commande mail - lecture • n° : lire le mail numéroté • x : sortir, messages gardés • q : sortir, messages dans la mbox § var/spool/mail • s n° <nom_fichier> : sauvegarder • d n° : destruction du mail § d 1-3 Le SE peut vous envoyer des mails !!!
  95. 95. 95 Communiquer ? • Site Internet perso § Charte sur le contenu § https://isima.fr/~login § Répertoire $HOME/public_html § Attention aux droits (a+rx) des répertoires et des fichiers § Fichier index.html doit exister avec droit • Transférer ses fichiers par sftp par le VPN
  96. 96. <html> <head> <title> Bienvenue sur ma page </title> </head> <body> <p>Bienvenue sur ma page</p> </body> </html> 96 Fichier texte : index.html

×