name: inverse layout: true class: center, middle, inverse --- # Inès de Courchelle ## Informatique 1 ## Les commandes unix  --- layout: false # Aujourd'hui ## Objectifs - Prise en main d'un terminal - Créer, modifier et supprimer des fichiers et des répertoires - Copier/coller et Couper/coller des fichiers et des répertoires - Consulter et changer les droits de fichiers et de répertoires - Afficher les processus - Manipuler un pipe - La recherche dans un fichier et dans un répertoire --- # Plan ## Today 1. Rappels 2. Les systèmes d'exploitation 3. La navigation dans l'arborescence 4. Les droits d'accès 5. Les processus 6. La manipulation des informations --- # Plan ## Today 1. .under[Rappels] 2. Les systèmes d'exploitation 3. La navigation dans l'arborescence 4. Les droits d'accès 5. Les processus 6. La manipulation des informations --- # La composition ## Programme - Il est l'unité de base d'un algorithme - Il a un début et une fin ## Instructions - Un programme impératif est une suite finie d'instructions comprisent entre le début et la fin - L'instruction de base est l'écriture (sortie, affichage ...) d'information dans le terminal - Exemple de programme complet : HELLO WORLD ``` PROGRAMME Bonjour DEBUT ECRIRE("bonjour tout le monde") FIN ``` --- # Écrire un algo ## Déclaration ``` VARIABLES : i,j : entiers x,y : réels estTrouvé : booleen reponse : chaine de caractères ``` ## Affectation - Mettre une valeur dans une variable en cohérence avec son type - La première affectation de valeur à une variable est appelée initialisation - On la représente par une flèche #### Exemple ``` i ← 4 reponse ← "Bonjour" ``` .underR[Attention] : Avant d'affecter une valeur il ne faut pas oublier de déclarer la variable --- # Instructions ## Interaction avec l'utilisateur #### Exemple .pull-left[ ``` ECRIRE("Quel est ton age ?) LIRE(age) ``` ] .pull-right[ ``` ECRIRE("Quel est ton nom et ton prénom ?) LIRE(nom) LIRE(prenom) ``` ] .underR[ATTENTION] S'il y a plusieurs entrées, Alors il faut un **LIRE** pour chaque entrée --- # Instructions ## Les conditions .pull-left[ #### SI ...ALORS ``` SI [CONDITION est VRAI] ALORS ... FIN SI ``` #### Si ... SINON SI... ``` SI [CONDITION est VRAI] ALORS ... SINON SI [CONDITION est VRAI] ALORS ... SINON ... FIN SI ``` ] .pull-right[ #### SI ... SINON ``` SI [CONDITION est VRAI] ALORS ... SINON ... FIN SI ``` #### SELON ``` SELON [VARIABLE] CAS [VALEUR]: CAS [VALEUR]: CAS [VALEUR]: DEFAUT: FIN SELON ``` ] --- # Instructions ## Une boucle #### Pour .pull-left[ Quand on sait combien de fois on veut réaliser une opération ] .pull-right[ ``` POUR i ALLANT de 0 à N FAIRE ... FIN POUR ``` ]
.underR[Attention : ] On prend l'habitude de faire commencer les boucles à 0 --- # Instructions ## Les conditions #### Exemple ``` PROGRAMME Boucle VARIABLES i: entier DEBUT POUR i ALLANT de 0 à 10 FAIRE ECRIRE("tour N°i =" + i ) FIN POUR FIN ``` .underR[Attention : ] - Ici, on va aller de 0 à 9 soit [0 ; 10 [ - Ne pas oublier de déclarer le i dans les variables --- # Instructions ## Une boucle #### Tant que Faire ... .pull-left[ Quand on doit répéter une opération en fonction tant qu'une condition est vérifiée ] .pull-right[ ``` TANT QUE [CONDITION EST VRAI] FAIRE ... FIN TANT QUE ``` ]
#### Faire ... Tant que .pull-left[ Quand on doit répéter une opération en fonction tant qu'une condition est vérifiée ] .pull-right[ ``` REPETER ... TANT QUE [CONDITION EST VRAI] ``` ] --- # Les fonctions ## Définitions Une FONCTION est une suite d'instructions qui prend une liste de paramètres en entrée et produit (retourne) un résultat en sortie au code appelant cette fonction. ## Objectifs - factoriser du code - automatiser des procesus - diviser du code --- # Les fonctions ## Exemple ```c // Fonction qui permet de convertir une température, exprimée en C, en F // Precondition : 1 réel correspondant à la température en degre // Postcondition : 1 réel correspondant à la température converti en fahrenheit FONCTION temperature(degre: reel) : reel VARIABLE res : reel DEBUT res <- 9/5 * degre + 32 RETOURNER res FIN ``` ## Les types de retours 1. *FONCTION temperature(degre: reel) : reel* .arrow[] renvoi un réel 2. *RETOURNER res* .arrow[] la variable res doit être de type réel --- # Les fonctions ## Les prédicats Les prédicats sont des fonctions qui renvoient un booleen ## Exemple ```c // Fonction qui permet de vérifier si un entier est positif ou pas // Precondition : 1 entier // Postcondition : 1 booleen : vrai si a > 0 ou faux si a =< 0 FONCTION estPositif(a : entier) : booleen DEBUT retourner (a > 0) //retourne le résultat booleen de a > 0 FIN ``` --- # Les fonctions ## La documentation ! Pour chaque fonctions nous devons définir : 1. Un **résumé** qui tient sur une ligne 2. Les **préconditions** : décrit la nature et l’ensemble des contraintes sur tous les paramètres d’entrée, afin que la fonction puisse s’exécuter correctement 3. La **post-condition** : décrit le résultat produit par la fonction et ses contraintes éventuelles --- # Les procédures ## Définitions - Une **PROCÉDURE** est ensemble d’instructions, prenant entrée des paramètres **MAIS** qui ne retourne rien - Souvent utilisées pour réaliser des affichages ou réaliser des traitements ## Objectifs - factoriser du code - automatiser des procesus - diviser du code --- # Les procédures ## Exemple ```c // Procédure qui affiche à l'utilisateur le plus grand nombre entre 2 entiers // Precodition : 2 entiers // Postcondition : affichage à l'écran du plus grand nombre PROCEDURE AfficherMaximum(a, b : entier) DEBUT SI a > b ALORS ECRIRE("Le maximum est :" + a) SINON ECRIRE("Le maximum est :" + b) FIN SI FIN ``` .underR[Attention] : une procédure ne renvoie rien donc pas besoin de préciser de type de retour (y'en a pô) --- # Plan ## Today 1. Rappels 2. .under[Les systèmes d'exploitation] 3. La navigation dans l'arborescence 4. Les droits d'accès 5. Les processus 6. La manipulation des informations --- # Les systèmes d'exploitation ## Définition .pull-left[ Ensemble de programmes responsables de la liaison entre : - Les applications informatiques de l’utilisateur - Les ressources matérielles d’un ordinateur ] .pull-right[
] --- # Les systèmes d'exploitation ## Tâches à différents niveaux - Interface utilisateur - Gestion des périphériques - Gestion de la mémoire secondaire - Gestion de la mémoire principale - Gestion de la mémoire --- # Les systèmes d'exploitation ## Tâches : Interface utilisateur #### Interprète de commandes
#### Interface Graphique .pull-left[
] .pull-right[
] --- # Les systèmes d'exploitation ## Tâches : Gestion des périphériques #### Les pilotes - Petit programme qui permet au système d’exploitation de communiquer avec un périphérique matériel. - Sans pilote, l’OS ne saurait pas « parler » le langage spécifique du périphérique. .under[Exemples] - Pilote d’imprimante - Pilote de carte graphique - Pilote de carte son - Pilote de carte réseau - ... --- # Les systèmes d'exploitation ## Tâches : Gestion de la mémoire secondaire #### Structuration des données - .under[Les Fichiers :] enregistrés sous forme de fichier (document, image, musique, programme, etc.). Chaque fichier a des formats. **Exemple :** rapport.docx, photo.png, musique.mp3. - .under[Les Répertoires / Dossiers :] Les fichiers sont regroupés dans des répertoires hiérarchiques. **Exemple : Documents/Cours/INFO1/CM4/notes.txt** .pull-left[
] .pull-right[
] --- # Les systèmes d'exploitation ## Tâches : Gestion de la mémoire secondaire #### Structuration des données - .under[Les Systèmes de fichiers :] Les systèmes de fichiers sont des méthodes utilisées par le système d’exploitation pour organiser, gérer et accéder aux données stockées sur la mémoire secondaire (disque dur, SSD, clé USB, carte mémoire, etc.). Sans système de fichiers, les données ne seraient qu’une suite de bits illisible pour l’utilisateur. - FAT32 (ancien, utilisé sur clés USB et cartes mémoire). - NTFS (Windows, supporte gros fichiers, sécurité avec permissions). - ext4 (Linux, performant et moderne). - APFS (macOS, optimisé pour SSD). - .under[les Métadonnées :] Chaque fichier/dossier a des informations supplémentaires gérées par l’OS. **Exemple :** nom du fichier, taille, date de création/modification, droits d’accès, propriétaire. --- # Les systèmes d'exploitation ## Tâches : Gestion de la mémoire principale #### Structuration des données La mémoire vive (RAM) est utilisée par le système d’exploitation pour stocker temporairement les programmes en cours d’exécution et les données qu’ils utilisent.
--- # Les systèmes d'exploitation ## Tâches : Gestion de la mémoire principale #### Gestion de la mémoire La gestion de la mémoire consiste à attribuer et contrôler l’utilisation de la RAM par les différents programmes et processus, pour : - éviter les conflits (deux programmes qui veulent utiliser la même zone), - optimiser les performances, - assurer la sécurité et la stabilité du système. #### Exemples concrets Lorsque plusieurs applications sont ouvertes (navigateur, traitement de texte, musique), l’OS répartit la RAM entre elles. Si la RAM est saturée, l’OS utilise un fichier de swap sur le disque (moins rapide que la RAM). Quand une app se ferme, sa mémoire est libérée pour d’autres programmes. --- # Les systèmes d'exploitation ## En résumé
[source wikipedia]
--- # Les systèmes d'exploitation ## Des exemples - Ordinateur personnel : Windows ( 95,98, XP, 10 …), MacOs, Gnu Linux, … - smartphone/ tablette: Andoïd, IOS, Black Berry OS.. - TV: android TV, tvOs, …
--- # Les systèmes d'exploitation ## Unix - Historique #### 1969 Ken Thompson développe une première version d’Unix sur un mini-ordinateur PDP-7. .pull-left[
] .pull-right[
] --- # Les systèmes d'exploitation ## Unix - Historique #### 1972 Dennis Ritchie introduit ensuite le langage C
#### 1973 Réécriture de façon portable et maintenable d'unix grâce au langage C --- # Les systèmes d'exploitation ## Unix - Aujourd’hui, son héritage est omniprésent - La plupart des systèmes modernes (macOS, iOS, Android, Linux, etc.) sont directement dérivés d’Unix ou fortement influencés par ses concepts ## Linux - Créé en 1991 par Linus Torvalds comme noyau libre, inspiré d’Unix mais développé indépendamment. - Logiciel libre (sous licence GPL). Tout le monde peut l’utiliser, le modifier et le redistribuer.
--- # Les systèmes d'exploitation ## Linux .pull-left[ - code source disponible (openSource) - gratuit - noyau linux développé par la communauté - Ubuntu, fedora, Red Hat .. ] .pull-right[
]
## Unix .pull-left[ - code source pas disponible - développé par des entreprises ou institutions spécifiques, mises à jour contrôlées. - coût suivant les fournisseurs - Oracle, IBM, Hewlett Packard, Apple ... - OS X, Solaris, All Linux ] .pull-right[
] --- # Historique des versions
.piti[[source](https://fr.wikipedia.org/wiki/Unix#/media/Fichier:Unix_history-simple.svg)]
--- # Système d'exploitation ## À l'école #### Écran d'accueil
#### Les menus .pull-left[
] .pull-right[
] --- # La ligne de commande ## La console La console est l’interface textuelle du système d’exploitation, qui permet d’utiliser les commandes du système ## Intérêt - rapidité - pas d'infarce graphique - raccourcis claviers
.piti[[source](https://www.lifewire.com/ways-to-open-a-terminal-console-window-using-ubuntu-4075024)]
--- # Plan ## Today 1. Rappels 2. Les systèmes d'exploitation 3. .under[La navigation dans l'arborescence] 4. Les droits d'accès 5. Les processus 6. La manipulation des informations --- # L'arborescence ## Description - Ubuntu adhère à la norme sur la hiérarchie des systèmes de fichiers - Système d'arbre - Différents dossiers
.piti[source image:https://thesagediary.files.wordpress.com/2018/09/linuxfile.png]
- Dossier racine : .under[/] - Dossier des périphériques : .under[/media/votre_nom/] - Dossier personnel : .under[/home/votre_nom/] --- # L'arborescence ## Les dossiers principaux - .under[/bin :] stock les commandes système utilisée par tout le monde. C’est là dedans que l’on trouve les commandes basics. - .under[/sbin :] ces commandes sont accessibles qu’à l’administrateur et en plus on a des commandes plus sensibles. - .under[/lib :] contient toutes les bibliothèques du système (Bibliothèque : petit bout de programme nécessaire à faire fonctionner d’autre programmes). - .under[/boot :] contient le grub, et tous les programmes de démarrage. - .under[/dev :] pour « device » (périphérique) contient les paramètres « driver ». - .under[/etc :] contient tout les fichiers de configuration des différents logiciels. - .under[/opt :] c’est pour installer les programmes. Ce répertoire contient les logiciels installés manuellement (c’est à dire ceux que l’on a par exemple compilé). - .under[/root :] n’est presque plus utilisé (administrateur sur windows) car c’est le premier dossier que l’on essaye de cracker. Donc par défaut sur Ubuntu et sur Windows ce compte est désactivé. Pour ce connecté en tant que « root » (super administrateur) on tape « sudo ». « Sudo –i » permet d’ouvrir une connexion en tant que « root » permanente. .piti[Description compléte des dossiers [ici](https://doc.ubuntu-fr.org/arborescence)] --- # L'arborescence ## À l'école #### Votre dossier personnel home-directory, home, espace personnel ...
--- # L'arborescence ## À l'école #### La racine
--- # Les déplacements ## cd - pwd .arrow[] indique l'endroit où on se trouve - cd chemin .arrow[] indique l'endroit où on souhaite aller - cd .. .arrow[] on repart un dossier en arrière - cd ../.. .arrow[] on repart deux dossiers en arrière - . .arrow[] désigne le répertoire courant (où on se trouve)
--- # Dossier personnel home-directory, home, espace personnel ... ## Accès 1 ```bash cd /home/etu/votre_login/ ``` ## Accès 2 ```bash cd ``` ## Accès 3 ```bash cd ~ ``` --- # Les déplacements ## Les chemins .pull-left[ ## Chemin absolu commence au répertoire de la racine ## Chemin relatif commence à partir du répertoire courant ] .pull-right[
] --- # Les déplacements ## Où se situe votre dossier depuis la racine ?
--- # Les déplacements ## Où se situe votre dossier depuis la racine ? .underR[Explications] : - à gauche l'interface graphique - à droite l'invite de commande .under[C'est exactement la même chose] - à gauche c'est graphique et jolie - à droite c'est textuel et plus rapide
--- # Les déplacements ## Où se situe votre dossier depuis la racine ?
--- # Les déplacements ## Où se situe votre dossier depuis la racine ? #### Déplacement ```shell cd home ```
--- # Les déplacements ## Où se situe votre dossier depuis la racine ? Tout les "dossier personnel, home-directory, espace personnel ..." sont stockés dans le répertoire/dossier/directory appelé "etu"
*ici, dans l'interprète de commande je n'ai pas affiché le contenu du dossier home* --- # Les déplacements ## On va se déplacer à l'interieur En utilisant la commande ```shell cd etu ``` ## Puis on va afficher le contenu En utilisant la commande ```shell ls ``` --- # Les déplacements ## Où se situe votre dossier depuis la racine ?
--- # Les déplacements ## Où se situe votre dossier depuis la racine ?
#### ICI ? - En graphique, trop lourd, trop de fichiers .arrow[] PAS d'affichage - En textuel, pas de problème .arrow[] tout s'affiche ! --- # Les déplacements ## Où se situe votre dossier depuis la racine ?
--- # Les fichiers ## Définition - Un fichier est un ensemble de données dans un même contenant - Il peut avoir une extension ou pas ## Les commandes #### Afficher le contenu d'un répertoire ```bash ls ``` #### Afficher le contenu d'un répertoire + éléments cachés ```bash ls -a ``` --- # Les fichiers ## Les commandes #### Afficher le contenu d'un répertoire + détails + cachés ```bash ls -la ```
--- # Les répertoires ## Définition - gestion similaire aux fichiers en Unix - En anglais : Directory
--- # Les répertoires ## La commande de création ```bash mkdir monRepertoire mkdir -p monRepertoire/monSousRepertoire ``` ## La commande de suppression ```bash rmdir monRepertoire rm -r monRepertoire ``` .underR[Attention] rmdir supprime un répertoire vide --- # Plan ## Today 1. Rappels 2. Les systèmes d'exploitation 3. La navigation dans l'arborescence 4. .under[Les droits d'accès] 5. Les processus 6. La manipulation des informations --- # Les droits ## Définition Un fichier ou un répertoire posséde : - 3 types d'utilisateurs - 3 types d'accès .pull-left[ | user | group | others | |-------|-------|--------| | rwx | rwx | rwx | | 4+2+1 | 4+2+1 | 4+2+1 | ] .pull-right[ - r : read : lecture : 4 - w : write : écriture : 2 - x : eXecution - exécution : 1 ]
## La commande ```bash chmod 777 nomDufichier chmod 777 nomDuRepertoire -R ``` *-R : Permet de rajouter la récursivité et d'appliquer les changements de droits à l'ensemble des fichiers* --- # Les droits ## Exemple 1 : Création des droits | nom Fichier | user | group | others | Commande | |----------------|------|-------|--------|--------------------------| | horcruxe | rwx | r-- | --- | chmod 740 horcruxe | | grandeSalle | rwx | rwx | rwx | chmod 777 grandeSalle | | foretInterdite | r-- | --- | --- | chmod 400 foretInterdite | | salleCommune | rwx | --- | --- | chmod 700 salleCommune |
## Exemple 2 : Enlever des droits | nom Fichier | Quoi ? | Commande | |----------------|---------------------------------------------|--------------------------| | horcruxe | enlever le droit de lecture à tout le monde | chmod -r horcruxe | | grandeSalle | enlever le droit d'ecriture au groupe | chmod g-w grandSalle | | foretInterdite | enlever la lecture à l'utilisateur | chmod u-r foretInterdite | | salleCommune | enlever l'exécution aux autres | chmod o-x salleCommune | --- # Les droits ## Exemple 3 : Ajouter des droits | nom Fichier | Quoi ? | Commande | |----------------|---------------------------------------------|--------------------------| | horcruxe | Ajouter le droit de lecture à tout le monde | chmod +r horcruxe | | grandeSalle | Ajouter le droit d'ecriture au groupe | chmod g+w grandSalle | | foretInterdite | Ajouter la lecture à l'utilisateur | chmod u+r foretInterdite | | salleCommune | Ajouter l'exécution aux autres | chmod o+x salleCommune |
--- # Les droits ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Plan ## Today 1. Rappels 2. Les systèmes d'exploitation 3. La navigation dans l'arborescence 4. Les droits d'accès 5. .under[Les processus] 6. La manipulation des informations --- # Les processus ## Définition - Ensemble d'instructions à exécuter - Hierarchisation des processus dans les commandes UNIX - Différents types - .under[Interactifs :] la plupart des processus s'exécutent en utilisant des E/S avec un utilisateur - .under[Non Interactifs :] certains processus gèrent en arrière plan des choses sans interaction (démons ## Cycle de vie
--- # Représentation ## Lire un processus dans le terminal
.pull-left[ | nom de la colonne | explication | | ---- | --- | | uid | Propriétaire du processus | | pid | Numéro du processus | | ppid | Père du processus | | C | Utilisation CPU | | stime | Temps où le processus à commencer | | tty | Terminal associé au processus | | time | Total de CPU utilisé | | cmd | Nom du processus | ] .pull-right[
] --- # Les processus ## Les commandes d'affichage #### Processus du prompt en cours ```bash ps ``` #### Processus du système en utilisant la syntaxe traditionnelle ```bash ps -ef ``` #### Processus du système en utilisant la syntaxe BSD ```bash ps -ax ``` --- # Les processus ## Les commandes d'affichage #### Arborescence des processus ```bash ps -ejH ``` #### Processus apartement à l'utilisateur ```bash ps -aux ps -x -u
``` --- # Pipe ## Définition - Un pipe est un moyen de communication entre deux commandes. - En Unix, il nous permet de connecter le flot de sortie d’une commande au flot d’entrée d’une autre. Ainsi on peut enchaîner plusieurs commandes sur un flot initial. - Autrement dit, la sortie de la première commande est redirigée en entrée de la seconde. - Le pipe sur le terminal est représenté par |. - Ce caractère est accessible au clavier via la touche AltGr (située à droite de la barre espace) et la touche 6 (située au dessus de la touche t et y)
--- # Pipe ## Les commandes #### Afficher le contenu d'un répertoire contenant beaucoup de fichiers ```bash ls -l | more ``` - .under[La sortie de la commande ls -l est envoyé en entrée de la commande more] - *utiliser la barre espace du clavier pour avancer petit à petit* #### Compter le nombre de ligne affiché par la commande ls -l ```bash ls -l | wc -l ``` - .under[La sortie de la commande ls -l est envoyé en entrée de la wc -l] - .underG[wc -l] permet de compter le nombre de lignes --- # Rechercher un processus ## Comment ? - avec un pipe - avec la commande grep ## C-à-d #### La commande ```bash ps -ef | grep nomduprocessus ``` #### Exemple ```bash ps -ef | grep teams ``` --- # Tuer un processus ## Pourquoi ? .pull-left[ - Par exemple firefox plante impossible de le fermer ou de le redémarrer - Parce que ... ] .pull-right[
] ## Comment ? #### solution 1 ```bash kill
``` #### solution 2 ```bash killall
``` --- # Plan ## Today 1. Rappels 2. Les systèmes d'exploitation 3. La navigation dans l'arborescence 4. Les droits d'accès 5. Les processus 6. .under[La manipulation des informations] --- # Les fichiers ## touch Créer un fichier vide ```bash touch monfichier ``` ## cat Afficher le contenu de 1 ou plusieurs fichiers ```bash cat monfichier cat monfichier1 monfichier2 ``` --- # Copier/coller ## Les fichiers ```bash cp source destination cp chemin1/monFichier chemin2/ cp chemin1/monFichier chemin2/nouveauNom ``` ## Les répertoires ```bash cp -r source destination cp -r chemin1/rep chemin2/ cp -r chemin1/rep chemin2/nouveauNom ``` --- # Couper/coller ## Les fichiers ```bash mv source destination mv chemin1/monFichier chemin2/ mv chemin1/monFichier chemin2/nouveauNom ``` ## Les répertoires ```bash mv source destination mv chemin1/rep chemin2/ mv chemin1/rep chemin2/nouveauNom ``` .underR[attention] : il n'y a pas besoin de -r avec la commande **mv** --- # Grep ## Définition Rechercher une chaîne de caratères dans un fichier ## Les commandes #### Rechercher classique 1 ```bash grep jimmy ledZeppelin.txt ``` #### Rechercher classique 2 ```bash grep Jimmy ledZeppelin.txt ``` .underR[Attention] *Grep est sensible à la case. C-à-d la majuscule est prise en compte* --- # Grep ## Autres #### Afficher les numéros de lignes ```bash grep -n jimmy ledZeppelin.txt ``` #### Rechercher en oubliant la sensibilité à la case ```bash grep -i jiMmY ledZeppelin.txt ``` #### Rechercher le mot complet ```bash grep -w jimmy ledZeppelin.txt ``` --- # Find ## Définition Rechercher un fichier dans une arboresence de fichiers ## Les commandes #### Rechercher un fichier ```bash find -name ledZeppelin.txt ``` #### Rechercher un fichier terminant par une extension ```bash find *.txt ``` .underR[Attention] *la recherche est descend dans l'arborescence à l'endroit où la commande a été effectuée* --- # Les E/S ## Les standards Chaque commande a - une entrée standard .arrow[] par défaut le clavier - une sortie standard .arrow[] par défaut l'écran - une sortie d'erreur standard .arrow[] par défaut l'écran ## Les redirections Il y a donc la possibilité de rediriger les différentes entrées et sorties via les commandes de redirection : - **<** redirection de l'entrée standard - **>** redirection de la sortie standard - **2>** redirection de la sortie erreur standard - **>>** concaténation et redirection de la sortie standard - **2>>** concaténation et redirection de la sortie erreur standard --- # Les E/S ## Les redirections En Unix, tout est fichier. Il existe un fichier appelé "null", dont le chemin absolu est **/dev/null/**. Tout ce qui est copié dans ce fichier n'existe plus, il est perdu. Ce fichier permet donc de rediriger les erreurs d'une commande ou encore d'un script.
- Le premier **ls -R** soulève des erreurs car nous n'avons pas la permission pour voir le contenu de certains dossiers - Le deuxième **ls -R 2> /dev/null** permet d'enlever l'affichage des erreurs d'accès. --- # Les E/S ## Exemple Pour écrire dans un fichier #### La commande ```shell echo "bonjour ! ça va ?" > monFichier.txt ``` #### Le resultat Dans *monFichier.txt*, il y aura le contenu suivant : ```shell bonjour ! ça va ? ``` --- # Le manuel ## La commande ```bash man ls ``` - pour naviguer : la barre espace - pour quitter : q - pour chercher : / + motRecherché ## Résultat
--- --- # Conclusion ## Les objectifs - Prise en main d'un terminal - Créer, modifier et supprimer des fichiers et des répertoires - Copier/coller et Couper/coller des fichiers et des répertoires - Consulter et changer les droits de fichiers et de répertoires - Afficher les processus - Manipuler un pipe - La recherche dans un fichier et dans un répertoire