Katy Blanc kblanc@i3s.unice.fr
Libre basé sur le respect de l utilisateur : droit d utiliser, de modifier et de partager un logiciel comme il le souhaite Open Source Possibilité d accéder au code source: voir comment le programme a été fait, pouvoir modifier le code source Gratuit Pas de licence : logiciel accessible sans payer 2
Système d exploitation libre et open source. Tout comme la plupart des logiciels qui y sont disponibles. Des dizaines de distributions différentes : Ubuntu, Debian, ArchLinux, Fedora, etc Des millions de machines (super-calculateurs, serveurs Web, machines personnelles, smartphones, matériels embarqués, etc ) Tianhe-2 (Kylin Linux) Des communautés actives grâce à des millions d utilisateurs 3
Distribution GNU/Linux pour les débutants Gratuit et simple à installer : http://fr.openclassrooms.com/informatique/cours/reprenez-le-controle-al-aide-de-linux/tester-et-installer-ubuntu 4
Découverte de Gnu/Linux et Ubuntu, prise en main de votre environnement Commandes de base en gestion des fichiers Gestion des utilisateurs et des droits Les informations complémentaires: liens, alias et installations Les variables et les redirections Les scripts Shell Récapitulatif 5
6
7
8
9
Fond d écran Autre thèmes à télécharger sur : www.gnome-look.org 10
11
Découverte de Gnu/Linux et Ubuntu, prise en main de votre environnement Commandes de base en gestion des fichiers Gestion des utilisateurs et des droits Les informations complémentaires: liens, alias et installations Les variables et les redirections Les scripts Shell Récapitulatif 13
Arrêtez de cliquer!! Terminal ou Interpréteur de commande ou Shell Outil indispensable pour un ingénieur Pourquoi: Traitements sur un nombre important de fichiers en UNE ligne Renommer toutes mes photos avec le nom contenant la date de création Rechercher tous les fichiers dont le nom contient un «old» sur toute ma machine Recherche le fichier qui contient le mot «main» Travail sur une machine sans interface graphique serveur à distance (Tianhe-2), objet connecté, système embarqué 14
nom_utilisateur @ nom_machine : répertoire_courant $ Une commande est décomposée en 3 partie: le nom de la commande: TOUJOURS en premier ses options: commence toujours par un tiret des arguments date cal cal y cal 2012 cal m juin Manuel des commandes : man commande / pour rechercher un mot et q pour quitter 15
Les chemins pour désigner un répertoires ou un fichier La racine ou «root» / Les chemins absolus commence TOUJOURS depuis la racine /dev/console /home/john/docs/cours /home/bob/src/a.out Les chemins relatifs dépendent de là où vous êtes Si vous êtes dans home -> bob/date Si vous êtes dans / -> usr/bin/grep 16
Les répertoires relatifs spéciaux Répertoire courant. Répertoire parent.. Si vous êtes dans le répertoire /home/bob et vous voulez avoir le chemin relatif de /usr/bin../../usr/bin Les répertoires absolus spéciaux votre homedir ~ homedir d un utilisateur quelconque ~bob ~john Si vous êtes l utilisateur bob, /home/bob/src/a.out devient ~/src/a.out ou ~bob/src/a.out 17
Donner le chemin absolu du répertoire courant : pwd Lister les fichiers et les répertoires : ls Ses options ls /usr ls a Bureau ls l.. -a : lister TOUS les fichiers (même les fichiers cachés) -l : lister en version longue, avec toutes les informations Se déplacer : cd cd ~ cd.. cd /home/user/bureau Créer un fichier vide : touch Créer un répertoire vide : mkdir Ecrire dans un fichier : gedit Afficher le contenu d un fichier: cat 18
Copier : cp fichier_a_copier nom_de_la_copie cp test.txt test2.txt cp test.txt../bureau/test2.txt cp test.txt../bureau/ Ses options -r : récursivement = copier le répertoire et TOUT ce qu il contient Déplacer ou Renommer un fichier ou un répertoire: mv fichier_a_deplacer destination mv test.txt Documents mv test.txt test3.txt Supprimer : rm Ses options Pas de corbeille! Suppression définitive! -r : récursivement = supprimer le répertoire et TOUT ce qu il contient 19
Références à plusieurs dossiers Chaine de caractère quelconque * ls *ne ls *ne* Un seul caractère quelconque? ls anne? ls annee?? Un ensemble de caractères définit [ ] ls annee[45]* Un caractère quelconque SAUF ceux préciser [^ ] ls anne[^4]* 20
Découverte de Gnu/Linux et Ubuntu, prise en main de votre environnement Commandes de base en gestion des fichiers Gestion des utilisateurs et des droits Les informations complémentaires: liens, alias et installations Les variables et les redirections Les scripts Shell Récapitulatif 21
Les systèmes Unix sont multi-utilisateurs: gérer les permissions par sécurité Le 1 er caractère: le type du fichier - pour les fichiers ordinaires d pour les dossiers/répertoires l pour les liens symboliques Les droits selon que ce soit un fichier ou un répertoire Droit Fichier Répertoire Lecture (r) Lire le fichier Voir le contenu du répertoire Ecriture (w) Modifier le fichier Renommer, supprimer ou déplacer les fichiers contenus dans le répertoire Exécuter (x) Exécuter le fichier (ne vaut rien sans r) Traverser le répertoire et aller dans ses sous-répertoires 22
Trois niveaux de droits d accès utilisateur (u) groupe (g) autres (o) Les permissions sont exprimées de trois façons: Symbolique: rwx ou r-x ou --x Binaire 111 ou 101 ou 001 Octales 7 ou 5 ou 1 23
Commande pour modifier les droits: chmod Option r pour le faire récursivement En symbolique chmod u+x fichier chmod g-w fichier chmod o-rwx fichier chmod a+rw fichier En base 8/ en octale chmod 750 fichier chmod 650 fichier 24
Le super-utilisateur root a tous les droits Utiliser la commande sudo avant votre commande pour devenir ponctuellement un super-utilisateur, votre mot de passe vous sera demandé. Exemple: touch fichier ls l fichier ->normalement j ai le droit de lecture gedit fichier ->écrire quelque chose dans le fichier et l enregistrer cat fichier -> on peut voir son contenu chmod u-r fichier cat fichier sudo cat fichier 25
Seul les utilisateurs inscrit dans le groupe sudo ont le droit d utiliser la commande sudo ATTENTION: vous pouvez supprimer ou modifier des fichiers sensibles pour le fonctionnement de votre machine Les utilisateurs: toutes les informations dans le fichiers /etc/passwd login : mot_de_passe : numero_utilisateur : numero_de_groupe : commentaire : repertoire : interpreteur Commandes pour gérer les utilisateurs useradd nom_utilisateur option m pour créer son homedir en même temps passwd nom_utilisateur userdel nom_utilisateur 26
Devenir un autre utilisateur que soit: commande su Qui suis-je? whoami Les groupes: toutes les informations dans le fichiers /etc/group nom_groupe : champ_special : numero_groupe : membre1, membre2, Commande de gestion des groupes: addgroup nom_groupe groupdel nom_groupe Commande utile : chercher un mot dans un fichier avec la commande grep pattern fichier 27
Découverte de Gnu/Linux et Ubuntu, prise en main de votre environnement Commandes de base en gestion des fichiers Gestion des utilisateurs et des droits Les informations complémentaires: liens, alias et installations Les variables et les redirections Les scripts Shell Récapitulatif 28
Traditionnellement, un nom = un fichier en mémoire En créant un lien physique, un autre accès à ce fichier en mémoire sera créé Commande pour créer un lien physique: ln ancien_fichier lien Combien de liens physiques? Voir le compteur de référence (ls l) La commande rm permet de décrémenter ce compter. Quand le compteur tombe à 0, l espace mémoire est libéré. Tout lien physique est comme un fichier quelconque. Ce n est un lien que par sa création. 29
Un lien symbolique contient un accès vers le chemin d un fichier. Créer grâce à l option s : ln s fichier lien Propriétés du lien symbolique N incrémente pas le compteur de référence. Un lien symbolique est de type l (1 er caractère de ls l ) Toutes les permissions pour tous le monde: ce sont en fait les permissions du fichier de destination qui seront appliquées La suppression de la destination n affecte pas le lien symbolique 30
Résumer par un mot une commande ou suite de commandes ou un chemin que l on utilise souvent: alias nom_alias=«commande» Commande alias sans paramètre: liste les alias existants Commande pour supprimer les alias : unalias nom_alias Ces commandes de création et de suppression ne sont valables que pour la session en cours: uniquement pour votre terminal ouvert. Pour créer et supprimer définitivement des alias, modifier le fichier ~/.bashrc qui permet l initialisation de votre terminal 31
Vu précédemment : par la logithèque Par le terminal, pour les applications disponibles sur le dépôt APT: pour installer une application sudo apt-get install appli Pour supprimer sudo apt-get remove appli Pour les applications non disponibles sur le dépôt: Chercher l archive (sur internet), voir installation sur ubuntu 64 bits Décompresser l archive : tar xvzf application.tar.gz Se rendre dans le répertoire créé Suivre les instruction du fichier README.txt (qui consiste souvent à faire :./configure make; sudo make install) 32
Découverte de Gnu/Linux et Ubuntu, prise en main de votre environnement Commandes de base en gestion des fichiers Gestion des utilisateurs et des droits Les informations complémentaires: liens, alias et installations Les variables et les redirections Les scripts Shell Récapitulatif 33
Il existe 3 types de variables: Les variables utilisateur (celle que vous créez pour vos programmes): a, my_var, Les variables prédéfinies du shell : PATH, HOSTNAME, USER, Les variables prédéfinies des commandes Unix: TERM, Attention: il y a une différence entre une variable var et sa valeur $var La commande echo pour afficher un message ou une valeur: echo $PATH Pour initialiser une variable, on utiliser le signe = : x=23 y=«bonjour» la commande read : read p «Entrez votre prénom» prenom 34
Entrée et sortie d une commande Entrée stdin, canal 0: par défaut, elle provient du clavier Sortie standard stout, canal 1: par défaut l écran Sortie d erreur sterr, canal 2: par défaut l écran On peut rediriger l entrée d une commande pour la récupérer depuis un fichier: read ligne < fichier.txt Rediriger la sortie standard pour la stocker dans un fichier: ls l > sortie.txt ou ls l 1> sortie.txt Utile : si vous utiliser cat sans paramètre, il attend que vous utiliser la clavier comme entrée. Avec cette astuce, vous pouvez écrire dans un fichier sans passer par gedit en redirigeant la sortie dans un fichier : cat > fichier2.txt Rediriger la sortie d erreur pour la stocker dans un fichier: ls inexistant 2> erreur.txt 35
Rediriger sans écraser le contenu du fichier : >>, 1>> ou 2>> Rediriger la sortie d erreur vers la standard 2>&1 Combiner les redirections: Prog <fichier.txt 1> fichier.out 2> fichier.err Rediriger la sortie standard d une commande dans une variable var=$(ls *) ou var=`ls *` Attention: c est la sortie standard qui est stockée, pas la sortie d erreur Rediriger la sortie d une commande vers l entrée d une autre ls l * > tmp.out ou ls l * wc -l wc l < tmp.out rm tmp.out 36
Un enchainement de commandes peut être écrit dans un scripts pour être réutilisable: La première ligne d un script permet de préciser l interpréteur de commande: #!/bin/bash Il aura généralement une extension.sh Il sera exécutable Et sera exécuté par l appel de son nom./script.sh Les paramètres d un script : $0: nom du script $1, $2, $3 les paramètres passés à la commande $# le nombre de paramètres $* l ensemble des paramètres On peut exécuter un script en donnant juste son nom si son répertoire parent a été préalablement ajouté à la variable PATH 37