M1101a – Cours 2€¦ · Shell Plan du cours 1 Shell 2 Système de fichiers 3 Documentation en...

Post on 26-Jul-2020

1 views 0 download

Transcript of M1101a – Cours 2€¦ · Shell Plan du cours 1 Shell 2 Système de fichiers 3 Documentation en...

M1101a – Cours 2Shell, Gestion de fichiers

Département Informatique

IUT2, UGA

2020/2021

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 1 / 40

Plan du cours

1 Shell

2 Système de fichiers

3 Documentation en ligne

4 Commandes pour manipuler fichiers et répertoires

5 Résumé

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 2 / 40

Shell

Plan du cours

1 Shell

2 Système de fichiers

3 Documentation en ligne

4 Commandes pour manipuler fichiers et répertoires

5 Résumé

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 3 / 40

Shell

Shell : introduction

shell = interpréteur de commandesIntermédiaire (shell = coquille)entre l’utilisateur et le système d’exploitationCommandes permettant de piloter tous lesaspects du système :

fichiersprocessusréseaupériphériques...

Exemples de commandes :lspswho

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 4 / 40

Shell

Shell : utilité immédiate

Un shell permet de :Gagner du temps par rapport à l’utilisation d’une interfacegraphique

manipulation d’un grand nombre de fichiersnavigation dans une arborescence complexe et profonde...

Accéder à tous les logiciels du système< 10% accessibles par les menusÉcrire des scripts...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 5 / 40

Shell

Shell : utilité plus générale

Le shell est un outils très puissantcombinaison de commandes simples−→ tâches complexesautomatisation de tâches répétitives...

Un shell est présent dans tous les systèmesUnix/Linux : nombreux shells disponiblesMacOSX : un système Unix en fait, même shell que LinuxWindows : cmd.exe, PowerShell, shells Linux

Aller au-delà de la simple utilisation d’un systèmeadministration systèmerésolution de problèmes...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 6 / 40

Shell

Shell : 2 types de commandes

Commandes externes (au shell)tous les programmes disponibles sur le système

commandes système Unixcompilateurséditeursapplications diverses

le shell sert de lanceurindépendantes du type de shell utilisé

Commandes internescommandes propres au shell,exécutées par le shell lui-mêmeleur exécution ne nécessite pas le lancementd’un autre programme que le shellcertaines peuvent varier d’un shell à l’autreexemples : cd, alias, ...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 7 / 40

Shell

Shell : 2 modes d’utilisation

Mode interactiftaper une commande au claviervalider avec la touche “Entrée”

−→ le shell interprète la commande immédiatement

Mode scriptécrire une suite de commandes dans un fichier textelancer l’exécution du fichier

−→ le shell exécute automatiquement le contenu du fichierligne par ligne (comme un programme Ada)

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 8 / 40

Shell

Shell : logiciels

Plusieurs shells existent :Bourne Shell (sh) : shell historique (Steve Bourne, 1978)Korn Shell (ksh) : sur certains systèmes Unix propriétairesC-Shell (csh) : syntaxe proche du langage CBourne Again Shell (bash) : version améliorée de shDebian Almquist Shell (dash) : version rapide et légère de sh, shellutilisé par défaut pour /bin/sh (shell utilisé par les scripts dusystème)TENEX Shell (tcsh) : version améliorée de cshZ Shell (zsh) : très riche...

Différences :fonctionnalitéssyntaxe de leur langage interneconvivialité de leur “interface utilisateur”(facilité avec laquelle l’utilisateur peut taper/éditer une commandeen mode interactif)

En TP, nous utilisons le shell bash(shell par défaut dans la plupart des distributions Linux)

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 9 / 40

Shell

Syntaxe d’une ligne de commande

Syntaxe identique en mode interactifou dans un fichier de commandes (script)Composition :

un logicielun espaceses éventuels arguments (paramètres), séparés par des espacesun caractère de fin de ligne

Exemple de commande :ls -l -a ←↩

logiciel argument 1 argument 2 Entrée/fin de ligne−→ Résultat :

ls : liste les fichiers-l : en format long-a : y compris les fichiers cachéspas d’autre argument : liste le répertoire courant

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 10 / 40

Shell

Autres exemples de commandes

dateAffiche la date et l’heureman COMMANDEAffiche des informations (le manuel) sur la commande passée enparamètrecat FICHIERAffiche le contenu d’un fichier (bien pour du texte)...

Énormément de logiciels disponibles en ligne de commande∼ 5000 sur les stations Linux de l’IUT2> 10000 sur un système Linux très complet

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 11 / 40

Shell

Interface de la ligne de commande du shellOn peut :

éditer la ligne en cours de saisie :−→ flèches gauche et droite, BackSpace, Supprrelancer une commande précédente sans avoir à la retaper :−→ flèches bas et haut, commande historycopier du texte n’importe où :−→ bouton de gauche de la souris (1, 2 ou 3 clics)coller du texte dans la ligne de commande,à l’emplacement du curseur(et pas ailleurs !, la position du pointeur importe peu) :−→ bouton du milieu de la souriscompléter automatiquement un nom de commandeou un nom de fichier :−→ touche tabulationinterrompre une commande :−→ touches Ctrl-ceffacer l’écran :−→ touches Ctrl-l...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 12 / 40

Shell

Sensibilité à la casse

Les systèmes Unix (et donc Linux) sont sensibles à la casseIls font la différence entre minuscules et majuscules pour

les logiciels et commandesles noms de fichierstout ce qui porte un nom

−→ Il faut donc respecter la casse dans le shell !Les logiciels et commandes usuelles sont en minuscules

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 13 / 40

Système de fichiers

Plan du cours

1 Shell

2 Système de fichiers

3 Documentation en ligne

4 Commandes pour manipuler fichiers et répertoires

5 Résumé

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 14 / 40

Système de fichiers

Contenu d’un système de fichiers (SF)

Dans tous les systèmes :Fichiers : suite d’octets représentant un texte (selon un certainencodage), un programme exécutable, des données binaires, ...Répertoires ou dossiers (directory) : contiennent des fichierset/ou des répertoires

Dans les systèmes Unix et Linux :Liens symboliques : vus plus tardFichiers “spéciaux” représentant les périphériques du systèmeTubes nommés, sockets : seront vus au semestre 3 ...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 15 / 40

Système de fichiers

Organisation d’un système de fichiers

Organisation hiérarchique −→ arbreFichiers et répertoires accessibles indépendamment des supportsphysiques de stockage (disques durs, serveurs de fichiers)

−→ Pas de “lecteurs” ni de “lecteurs réseau”La racine de l’arbre est un dossier appelé "/" (slash)

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 16 / 40

Système de fichiers

Arborescence Unix standard

Standard : FHS (Filesystem Hierarchy Standard)

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 17 / 40

Système de fichiers

Arborescence spécifique à l’IUT2

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 18 / 40

Système de fichiers

Vocabulaire, notations

Entrée : tout fichier ou répertoireRépertoire racine (root directory)

c’est le répertoire qui contient tout le SFnotation : / (slash)

Répertoire père d’une entréec’est le répertoire auquel cette entrée appartientnotation : .. (point point)

Répertoire personnel d’un utilisateur (home directory, homedir)c’est le répertoire qui lui est réservé pour stocker ses fichiersil porte en général le nom de cet utilisateur (toto)notation : ∼ (tilde)

Répertoire courant d’un shell (current/working directory)c’est le répertoire de travail de ce shellau lancement d’un shell, c’est initialement le répertoire personnelnotation : . (point)

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 19 / 40

Système de fichiers

Désigner une entrée (chemin d’accès)

Pour identifier une entrée dans une commande du shell, il faut ladésigner par son nom et par un chemin qui permet d’y accéder ausein du SFPour construire ce chemin, on énumère la liste des répertoiresqu’il faut "traverser" au sein du SF pour atteindre l’entrée.Il y a deux "points de départ" possibles pour ce chemin :

le répertoire racine (/) : on parle alors de chemin absolule répertoire courant (.) : on parle alors de chemin relatif

Les noms des différents répertoires qui composent un cheminsont énumérés, séparés par le caractère /

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 20 / 40

Système de fichiers

Chemin absolu

/users/info/etu-s1/toto/m1101a/tp01/essai.adb~/m1101a/tp01/essai.adb

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 21 / 40

Système de fichiers

Chemin relatif simple

Répertoire courant : /users/info/etu-s1/toto/

./m1101a/tp01/essai.adbm1101a/tp01/essai.adb

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 22 / 40

Système de fichiers

Chemin relatif avec remontée dans l’arbre

Répertoire courant : /users/info/etu-s1/toto/m1101a/tp02/

./../tp01/essai.adb../tp01/essai.adb

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 23 / 40

Système de fichiers

Caractères de substitution (jokers, wildcards)

Permettent de manipuler plusieurs fichiers/répertoires en uneseule commandePrincipe : désigner plusieurs entrées sans les nommerexplicitementLe caractère * permet de remplacer une suite quelconque(y compris vide) de caractèresLe caractère ? permet de remplacer un caractère et un seul,n’importe lequelEntre crochets [] on peut énumérer une liste de caractèrespossibles

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 24 / 40

Système de fichiers

Caractères de substitution : exemples

~/m*m1101a/tp0?m1101a/tp0[12]m1102/tp*/*.adb

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 25 / 40

Documentation en ligne

Plan du cours

1 Shell

2 Système de fichiers

3 Documentation en ligne

4 Commandes pour manipuler fichiers et répertoires

5 Résumé

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 26 / 40

Documentation en ligne

Types de documentation

Documentation intégrée au logicielPages de manuel (dans /usr/share/man/)informations minimales sur les logicielsPages info (dans /usr/share/info/)informations plus détaillées sur les logiciels (mais pas tous)Autres docs : fichiers dans /usr/share/doc/

TexteHTMLPostScript (PS)PDF...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 27 / 40

Documentation en ligne

Consulter la documentationDans le shell

doc intégrée : ex : COMMANDE --helppage de manuel en anglais : man COMMANDEpage de manuel en français : man-fr COMMANDE(commande locale à l’IUT2)page info : info COMMANDEautres docs :

less FICHIER (pour fichier texte)zless FICHIER (pour fichier texte compressé avec gzip)

Dans un navigateur Webpages de manuel : http://transit/cgi-bin/man/man2htmlpages info : http://transit/cgi-bin/info2wwwautres docs : liens sur intranet

Dans un navigateur graphique : yelppages de manuelpages infologiciels GNOME...

...Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 28 / 40

Documentation en ligne

Exemples de page de manuel : ls

NAMEls - list directory contents

SYNOPSISls [OPTION]... [FILE]...

DESCRIPTIONList information about the FILEs (the current directory by default).Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.

-a, --alldo not ignore entries starting with .

[...]

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 29 / 40

Documentation en ligne

Exemple de page de manuel : ps

NAMEps - report a snapshot of the current processes.

SYNOPSISps [options]

DESCRIPTIONps displays information about a selection of the active processes. Ifyou want a repetitive update of the selection and the displayedinformation, use top(1) instead.

[...]

EXAMPLESTo see every process on the system using standard syntax:

ps -eps -efps -eFps -ely

[...]

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 30 / 40

Documentation en ligne

Conventions syntaxiques des pages de manuel

Pour spécifier de façon non ambiguë la syntaxe d’une commande, lesconventions suivantes sont utilisées :

Mot entre crochets : [mot]−→ mot est facultatifil peut donc apparaître 0 ou 1 foisMot avec points de suspension : mot...−→ mot peut apparaitre entre 1 et n foisMot avec crochets et points de suspension : [mot]...−→ mot peut apparaitre entre 0 et n foisMots séparés par une barre verticale : mot1|mot2−→ on peut taper soit mot1, soit mot2Mot en gras et en minuscule : mot−→ mot devra être tapé tel quelMot en majuscules, non gras : MOT−→ représente un terme général qui devra être instancié

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 31 / 40

Commandes pour manipuler fichiers et répertoires

Plan du cours

1 Shell

2 Système de fichiers

3 Documentation en ligne

4 Commandes pour manipuler fichiers et répertoires

5 Résumé

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 32 / 40

Commandes pour manipuler fichiers et répertoires

Manipuler des répertoires

pwd (print working directory)Affiche le chemin absolu du répertoire courantcd [RÉPERTOIRE] (change directory)Change le répertoire courant. Sans paramètre, c’est le répertoirepersonnel qui devient le répertoire courant (cd ≡ cd ˜)ls [RÉPERTOIRE]... (list)Affiche le contenu du répertoire. Sans paramètre, c’est le contenu durépertoire courant qui est affiché (ls ≡ ls .)mkdir RÉPERTOIRE... (make directory)Crée un répertoirermdir RÉPERTOIRE... (remove directory)Supprime un répertoire s’il est viderm -r RÉPERTOIRE... (remove)Supprime un répertoire et tout ce qu’il contientcp -r RÉP-SOURCE RÉP-DESTINATION (copy)Copie le répertoire source et tout ce qu’il contient vers la destination oule nouveau nom indiqué (selon que RÉP-DESTINATION existe ou pas)mv RÉP-SOURCE RÉP-DESTINATION (move)Renomme/déplace répertoire source en/vers répertoire destination(selon que RÉP-DESTINATION existe ou pas)

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 33 / 40

Commandes pour manipuler fichiers et répertoires

Visualiser ou éditer des fichiers texte

cat [FICHIER]...Affiche le contenu du(des) fichier(s) en une fois.more [FICHIER]...Affiche, page par page, le contenu du(des) fichier(s).On ne peut pas revenir en arrière.less [FICHIER]...Affiche, page par page, le contenu du(des) fichier(s).On peut faire défiler dans les 2 sens avec les flèches haut et bas.gedit [FICHIER]... &Edite/crée le(s) fichier(s) avec l’éditeur de texte gedit

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 34 / 40

Commandes pour manipuler fichiers et répertoires

Copier des fichiers et des répertoires

cp [-r] ENTRÉE-SOURCE ENTRÉE-DESTINATIONCopie un fichier ou un répertoire source unique.La copie s’appellera ENTREE-DESTINATIONou sera contenue dans ENTRÉE-DESTINATIONcp toto.txt titi.txt -> création de titi.txt (ou écrasement)cp -r tp01 tp02 -> création de tp02 s’il n’existait pas avantcp toto.txt /tmp -> création de /tmp/toto.txt (ou écrasement)cp toto.txt /tmp/monfichier.txt

-> création de /tmp/monfichier.txt (ou écrasement)

cp [-r] ENTRÉE-SOURCE... REP-DESTINATIONCopie plusieurs fichiers ou répertoires sourcesvers un répertoire destination préexistantcp -r * /tmp/toto -> copie de tous les fichiers et répertoires dans /tmp/toto.

/tmp/toto doit exister au préalable.

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 35 / 40

Commandes pour manipuler fichiers et répertoires

Renommer ou déplacer des fichiers et des répertoires

mv ENTRÉE-SOURCE ENTRÉE-DESTINATIONRenomme ou déplace un fichier ou un répertoire source unique.La source sera renommée en ENTRÉE-DESTINATIONou sera contenue dans ENTRÉE-DESTINATIONmv toto.txt titi.txt -> renomme toto.txt en titi.txtmv tp01 tp02 -> renomme tp01 en tp02 s’il n’existait pas avantmv toto.txt /tmp -> déplace toto.txt vers /tmp/mv toto.txt /tmp/monfichier.txt -> déplace et renomme toto.txt

mv ENTRÉE-SOURCE... REP-DESTINATIONDéplace plusieurs fichiers ou répertoires sourcesvers un répertoire destination préexistantmv * /tmp/toto -> déplace tous les fichiers et répertoires dans /tmp/toto.

/tmp/toto doit exister sinon erreur.

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 36 / 40

Commandes pour manipuler fichiers et répertoires

Supprimer des fichiers et des répertoires

rm FICHIER...Supprime le(s) fichier(s)rmdir RÉPERTOIRE...Supprime le(s) répertoires(s)Ils doivent être vides.rm -r ENTRÉE...Supprime le(s) fichier(s) et répertoire(s)Les répertoires sont supprimés avec tout leur contenu !

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 37 / 40

Commandes pour manipuler fichiers et répertoires

Affichage et messages d’erreur

Les commandes pwd, ls, cat, more, less, ...affichent leur résultat dans le terminalLes commandes mkdir, cd, cp, mv, ...n’affichent rien en cas de succèsEn cas d’échec, elles affichent un message d’erreur qu’il fautsavoir analyser et interpréter

No such file or directoryPermission denied...

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 38 / 40

Résumé

Plan du cours

1 Shell

2 Système de fichiers

3 Documentation en ligne

4 Commandes pour manipuler fichiers et répertoires

5 Résumé

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 39 / 40

Résumé

Résumé

Puissance du shellQuelques commandes à connaître par cœurSavoir retrouver les autres commandes rapidementSavoir trouver les options des commandes dans les docs

Département Informatique (IUT2, UGA) M1101a – Cours 2 2020/2021 40 / 40