View
1
Download
0
Category
Preview:
Citation preview
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
Recommended