المهم للمهههههههههههههههههههههههههم

الموضوع في 'أرشيف المنتدى التعليمي' بواسطة king-0X, بتاريخ ‏20 مارس 2008.

  1. king-0X

    king-0X نجم المنتدى

    إنضم إلينا في:
    ‏21 فيفري 2008
    المشاركات:
    1.598
    الإعجابات المتلقاة:
    1.695
      20-03-2008 16:52
    :besmellah1:
    Cours utilisateur UNIX

    1. Historique du document
    2. Préambule
    3. Principes de base UNIX
    3.1 Les processus ou process l
    3.2 Définition d'un système d'exploitation l
    3.3 Environnement l
    4. Présentation du système UNIX
    4.1 Les utilisateurs UNIX l
    4.2 Les fonctions principales l
    4.3 Structure du système UNIX l
    4.4 Le shell l
    5. Ouverture et fermeture de session
    5.1 Ouverture de session l
    5.2 Changement de password l
    5.3 Fermeture de session l
    6. Commandes UNIX et redirection
    6.1 Syntaxe d'une commande l
    6.2 Les entrées sorties l
    6.3 Redirection des entrées sorties l
    6.4 Redirection des erreurs l
    6.5 Les pipes l
    7. Le système de fichiers
    7.1 Les types de fichier l
    7.2 Atteindre un fichier l
    7.3 Visualiser les fichiers l
    7.4 Commandes de gestion des répertoires l
    7.5 Commandes de gestion des fichiers l
    7.6 Les liens l
    7.7 Les inodes l
    7.8 Les métacaractères l
    8. Les droits d'accès
    8.1 Identification de l'utilisateur l
    8.2 Définition des droits d'utilisateur l
    8.3 Commandes associées l
    9. Gestion des processus
    9.1 Les caractéristiques d'un processus l
    9.2 Visualiser les processus l
    9.3 Commandes de gestion des processus l
    9.4 Lancer en processus en tâche de fond l
    10. Les titres UNIX
    10.1 Modifier les données d'un fichier l
    10.2 Edition de fichiers avec critères l
    10.3 Comparaison de fichiers l
    11. Les commandes grep et find
    11.1 Les expressions régulières l
    11.2 La commande grep l
    11.3 La commande find l
    12. Expressions régulières et sed
    12.1 Les expressions régulières l
    12.2 La commande sed l
    13. La commande awk
    13.1 Présentation l
    13.2 Critères de sélection l
    13.3 Les actions l
    13.4 Les variables et opérations sur les variables l
    13.5 Les structures de contrôle l
    13.6 Les tableaux l





    1. Historique du document
    27 décembre 1999 version 1.0 du document.

    2. Préambule
    UNIX est un système d'exploitation d'une richesse incroyable, il serait bien prétentieux d'essayer en quelques pages d'en faire le tour. C'est pourquoi je me suis fixé comme objectif de ne présenter que les commandes les plus courantes qui permettront à un utilisateur de se débrouiller avec n'importe quel système UNIX, de HP-UX à Solaris en passant par Linux sans oublier les autres.
    Ce document s'adresse à toute personne ayant une petite expérience d'un système informatique, il s'adresse aussi à ceux connaissant déjà UNIX qui voudraient approfondir certaines notions.
    Le but de ce document n'est pas de traiter de l'administration d'un système UNIX.

    3. Principes de base UNIX
    3.1 Les processus ou process
    Tout logiciel est à la base un programme constitué d'un ensemble de lignes de commandes écrites dans un langage particulier appelé langage de programmation. C'est uniquement quand on exécute le logiciel que le programme va réaliser la tâche pour laquelle il a été écrit, dans ce cas là on dira qu'on a affaire à un processus ou process. En d'autres termes le programme est résolument statique, c'est des lignes de code, alors que le process est dynamique, c'est le programme qui s'exécute.
    Par exemple le logiciel Winword sous Windows est en fait un bête programme écrit dans un langage abscons qui a été ensuite compilé pour le rendre compréhensible par la machine, ce n'est uniquement que quand vous le lancez, que vous avez alors affaire au process Winword.
    3.2 Définition d'un système d'exploitation
    Un système d'exploitation est un ensemble de programmes chargé de faire l'interface entre l'utilisateur
    et le matériel. C'est à dire que quand un utilisateur tape une commande au niveau d'un logiciel (ou application), le logiciel interprète la commande, la transmet au système d'exploitation qui la transmet au matériel dans un format compréhensible.
    Un exemple vaut mieux qu'un grand discours, quand vous ouvrez un fichier dans votre traitement de texte favori, vous avez appuyé sur l'icône qui va bien, votre traitement de texte interprète l'action d'ouverture de fichier et transmet l'ordre au système d'exploitation, ce dernier va alors commander au contrôleur du disque dur de chercher les pistes correspondantes sur le disque qui correspondent au fichier en question. Normalement un logiciel ne devrait jamais " discuter " avec le matériel, le système d'exploitation se place entre les deux pour transmettre et éventuellement rejeter des commandes illicites.

    3.3 Environnement
    Un environnement est dit fenêtré quand il y a possibilité de pouvoir faire apparaître plusieurs fenêtres, il va de pair avec l'utilisation d'une souris, Windows est par exemple un exemple d'environnement fenêtré. On parle aussi d'environnement graphique.
    A l'opposé on trouve aussi des environnements textuels non graphiques, DOS en est un bel exemple.



    4. Présentation du système UNIX
    4.1 Les utilisateurs UNIX
    Sur un système UNIX, on trouve deux types de personnes, celle qui va utiliser le système dans le but de produire quelque chose, le système UNIX est pour elle un moyen, un outil. Cette personne est l'utilisateur UNIX, on peut trouver dans cette catégorie, le programmeur, l'utilisateur de base de données, etc. La deuxième catégorie de personnes est chargée de l'installation, de la configuration et de la bonne marche du système UNIX, ce sont les administrateurs systèmes UNIX.
    Sur un système UNIX, les utilisateurs UNIX ont des droits limités, c'est à dire que certaines commandes leurs sont interdites et ils n'ont pas accès à certaines parties du système. Les administrateurs systèmes ont par contre tous les droits sur le système.
    Généralement sur un système UNIX, on limite volontairement le nombre d'administrateur (appelé
    ROOT ou super utilisateur).

    4.2 Les fonctions principales
    UNIX est un système d'exploitation dont voici les tâches principales :

    Partage des ressources équitables
    UNIX veille à ce que toutes les ressources de l'ordinateur (imprimante, mémoire, ...) soient partagées équitablement entre tous les processus.
    Par exemple si vous travaillez sur une appli du genre base de données, vous lancez une requête (commande dans le langage base de données) coûteuse en temps, pour patienter rien ne vous empêche de vous lancer un Doom de derrière les fagots. Vous vous retrouvez donc avec deux process lancés en même temps, c'est le système d'exploitation qui est chargé de faire en sorte que les deux process puissent utiliser les ressources de manière équitable et que le deuxième process lancé n'attende pas la terminaison du premier pour se lancer.
    Le fait de pouvoir exécuter plusieurs process ou tâches en même temps, en parallèle, est appelé multitâches. UNIX est multitâches.

    Interface avec le matériel
    UNIX par définition des systèmes d'exploitation fait en sorte qu'aucun process accède directement à une ressource matériel (disque dur, lecteur de disquette,...). Pour accéder à ces ressources on passe par l'intermédiaire de fichiers spéciaux, un fichier spécial est vu pour un utilisateur comme un fichier classique, pour écrire sur une disquette dans le lecteur de disquette, on n'a qu'à écrire dans le fichier spécial du lecteur de disquette. De même pour lire dans un disque dur, on va lire le fichier spécial du disque dur.












    Gestion de la mémoire
    Il existe deux types de mémoire, la mémoire volatile et la mémoire statique, quand on éteint et rallume l'ordinateur, toutes les données présentes dans la première ont disparu, et les données dans la seconde sont toujours présentes. Concrètement la mémoire volatile se trouve dans la RAM, la mémoire statique dans le disque dur. Dans le vocabulaire Unix, quand on parle de mémoire on sous entend mémoire volatile ou RAM, c'est la convention qui sera adoptée pour la suite du cours.
    Tout programme qui s'exécute, ou process, a besoin de mémoire pour y stocker notamment les données qui manipulent. Malheureusement l'ordinateur dispose généralement d'une quantité de mémoire limitée et non extensible. UNIX doit donc faire en sorte que la mémoire soit bien partagée entre tous les process, un process ne doit pas s'accaparer toute la mémoire, sans quoi les autres process ne pourraient plus fonctionner.
    La mémoire est vue comme une ressource matérielle, UNIX doit donc vérifier qu'aucun process accède à la mémoire directement où ne se réserve une zone de la mémoire.

    Gestion des fichiers
    UNIX fournit les outils nécessaires pour stocker les données et pour pouvoir les récupérer rapidement et facilement. Il fournit les outils pour pouvoir visualiser l'ensemble des fichiers de manière simple.
    Ces fichiers se trouvent sur le disque dur, on nomme cela un système de fichiers ou File System en anglais.
    UNIX fournit, en outre, un mécanisme de protection des fichiers. Plusieurs utilisateurs peuvent travailler en même temps sur la même machine, c'est la notion de multi-utilisateurs. Chaque utilisateur du système dispose de ses fichiers, UNIX lui donne le moyen de protéger ses fichiers, et d'accorder le droit ou non à d'autres utilisateurs d'accéder à ses fichiers.













    4.3 Structure du système UNIX
    Applications
    |
    -----------------------------------------------------------
    | Appels système UNIX |
    -----------------------------------------------------------
    | |
    ------------------------------ ---------------------------
    | Gestion de processus | | Système de gestion de |
    | | | fichiers |
    ----------------------------- ---------------------------
    | |
    | ---------------------------
    | | driver périphérique |
    | ---------------------------
    | |
    -------------------------------------------------------------
    | Contrôle matériel |
    ------------------------------------------------------------
    |
    ------------------------------
    | Matériel |
    ------------------------------
    Concrètement le système d'exploitation est lui aussi un ensemble de programme et de sous programmes regroupés dans ce qu'on appelle un noyau (kernel en anglais).
    On a vu auparavant que les process ne pouvaient pas accéder directement aux ressources matérielles, en fait les process passent par le noyau pour y accéder, pour cela ils disposent d'un ensemble de commandes appelées " appels système " UNIX .
    Ces appels systèmes commandent deux composantes principales du noyau, le gestionnaire de processus et le système de gestion de fichiers. Le premier a pour rôle de faire en sorte que les process s'exécutent et accèdent à la mémoire de manière équitable, on le nomme aussi scheduler. Le deuxième a pour rôle la gestion du système de fichiers, notamment pour ce qui concerne les droits d'accès.
    Ce sont ces deux derniers composants du noyau qui accèdent directement au matériel.

    4.4 Le shell
    Pour faire marcher l'ordinateur, l'utilisateur dispose des logiciels ou d'un utilitaire qui lui permet la saisie directe de commandes. On appelle cet utilitaire le shell (coquille en français). Son rôle est d'interpréter les commandes de l'utilisateur avant transmission au noyau, c'est pourquoi on parle aussi d'interpréteur de commandes. On trouve l'équivalent sous DOS qui peut être considéré comme un shell.
    Il existe plusieurs types de shell, ils se différencient par la syntaxe et la richesse des commandes. Le plus commun est le Bourne-Shell, on trouve aussi le C-Shell qui s'apparente au langage de programmation C, le Korn Shell, le Posix Shell, et sous Linux le bash-shell.

    5. Ouverture et fermeture de session
    5.1 Ouverture de session
    Avant de tenter une connexion, il faut d'abord vous assurer que vous ayez été déclaré sur la machine, c'est à dire que vous possédiez un compte utilisateur caractérisé par un nom ou login et un mot de passe associé.
    A la mise sous tension, apparaissent à l'écran toute une liste de termes plus ou moins barbares, vous pouvez ignorer tout ça. Au bout d'un certain temps apparaît enfin le message login: avec un curseur qui clignote. Le système attend que vous rentriez votre login. Rentrez votre login. Puis tapez Enter,
    apparaît alors le message Password, tapez votre mot de passe, vous pouvez vous rendre compte que votre mot de passe n'apparaît pas en clair à l'écran, il est remplacé pour des raisons de sécurité évidente par des *.
    A la mise sous tension, vous pouvez aussi disposer d'une interface graphique de connexion, au lieu d'avoir un simple login: avec le curseur qui clignote, vous avez une fenêtre ou bannière qui vous invite à saisir votre login et votre mot de passe. C'est notamment le cas pour la configuration par défaut de la Mandrake 6.0, mais aussi pour les versions récentes de HP-UX et de Solaris.
    Une fois le login et le mot de passe saisi, deux possibilités peuvent s'offrir à vous, vous pouvez retrouver un écran noir, avec tout simplement un caractère du genre $ ou > (appelé prompt) suivi du curseur qui clignote apparaît. Vous êtes dans un shell prêt à taper des commandes. Par exemple, sous Linux le prompt par défaut est le suivant:
    [[email protected] login]$
    Ou alors vous pouvez trouver un environnement fenêtré avec utilisation de la souris, où il vous sera possible de lancer un shell pour pouvoir taper des commandes UNIX.

    5.2 Changement de password
    En vous déclarant sur la machine, on vous a imposé un mot de passe, vous pouvez le changer, pour cela vous disposez de la commande passwd. Certains UNIX font en sorte que vous ne puissiez pas saisir un mot de passe simple, il faudra mettre au moins 6 caractères, avec au moins un, voie deux, caractère non alphabétique.
    Rappelons que quand vous saisissez votre mot de passe, il ne paraît pas en clair, aussi par précaution, le système vous demande de le saisir deux fois.
    ATTENTION : Evitez de vous servir du pavé numérique, car d'un poste à un autre, il peut y avoir des grosses différences à ce niveau là.
    Si vous avez oublié votre mot de passe, vous devez vous adresser à l'administrateur du système (root) qui est le seul habilité à vous débloquer.
    >passwd
    Old passwd :******
    Setting password for user : olivier
    New password :******
    Reenter password :******
    >
    ATTENTION : Sur certains systèmes, on ne doit pas taper passwd mais yppasswd, demandez le à votre administrateur. Pour informations, on utilise yppasswd pour les clients NIS.

    5.3 Fermeture de session
    Quand on a fini d'utiliser le système, on doit se déconnecter ou fermer la session. Si vous êtes dans un environnement non graphique, il vous suffit au prompt de taper logout. Vous vous retrouvez alors avec le prompt de login, un autre utilisateur pourra alors utiliser la machine.
    Dans un environnement graphique, vous avec une commande Exit, ou Logout, qui a strictement le même effet.
    Vous devez veiller à vous déconnecter quand vous n'utilisez plus le système, pour des raisons de sécurité, mais aussi tout simplement pour libérer le poste de travail.


    6. Commandes UNIX et redirection
    6.1 Syntaxe d'une commande
    La syntaxe standard d'une commande UNIX est la suivante :
    commande -options arg1 arg2 arg3
    Les options varient en fonction de la commande, le nombre des arguments qui suivent dépend aussi de la commande, par exemple la commande :
    sort -r mon-fichier
    sort (trier) permet de trier un fichier, l'option r (reverse), permet de trier en sens inverse le fichier. L'argument unique de la commande est le nom du fichier. Avec
    cp -R mon-repertoire nouveau-repertoire
    La commande cp (copy) copie un répertoire (option R) vers un autre répertoire, on a ici deux arguments.
    On peut coupler deux options : ps -ef, avec cette commande on a l'option e et f (voir plus loin la signification de la commande).
    A noter que pour introduire une option on met -, ce n'est pas nécessaire pour certaines commandes (tar par exemple).

    6.2 Les entrées sorties
    Il y a trois sortes d'entrées sorties ou flux de données : le premier est l'entrée standard, c'est à dire ce que vous saisissez au clavier, le deuxième est la sortie standard, c'est à dire l'écran, plus précisément le shell, et le troisième est la sortie standard des messages d'erreurs consécutifs à une commande, qui est généralement l'écran.
    Chacun de ces flux de données est identifié par un numéro descripteur, 0 pour l'entrée standard, 1 pour la sortie standard et 2 pour la sortie standard des messages d'erreur.

    6.3 Redirection des entrées sorties
    Quand vous lancez une commande dans un shell, il peut y avoir du texte qui s'affiche suite à l'exécution de la commande, ce texte par défaut, s'affiche dans le shell. On dit que le shell (ou terminal) est la sortie standard, c'est là où va s'afficher tous les commentaires d'une commande.
    Vous pouvez changer ce comportement, en tapant :
    ma-commande > mon-fichier
    Tous les commentaires, les sorties, de la commande, ne vont pas apparaître au shell mais être écrits dans un fichier. En d'autres termes, le standard standard est redirigé vers un fichier. Cela peut être utile, si vous avez une commande qui génère énormément de commentaire, et que vous voulez les récupérer, pour les exploiter par la suite, à la terminaison de la commande.
    La redirection > a pour effet de créer le fichier mon-fichier, si ce fichier existait déjà, il est tout simplement écrasé (supprimé et recréé), ce qui peut être gênant si vous ne voulez pas perdre ce qu'il contient, vous disposez donc de la redirection >>. En tapant :
    ma-commande >> mon-fichier
    Le fichier mon-fichier n'est pas écrasé, mais la sortie standard (les commentaires de la commande) sont ajoutés en fin de fichier, à la suite du texte qui était déjà dans le fichier.
    Les redirections marchent dans les deux sens, par exemple en tapant la commande suivante :
    sort < mon-fichier
    Vous envoyez le contenu du fichier mon-fichier vers la commande sort (trie), celle-ci va donc trier le contenu du fichier, par défaut le résultat sort sur la sortie standard, c'est à dire à l'écran, plus précisément sur le shell. Avec :
    sort < mon-fichier > fichier-trie
    On a vu que sort < mon-fichier avait pour effet de trier le fichier mon-fichier, l'expression >fichier-trie a pour effet d'envoyer le résultat (le fichier trié) dans un fichier fichier-trie, le résultat n'apparaît plus à l'écran, mais est sauvegardé dans un fichier.
    Avec la redirection << la commande va lire les caractères jusqu'à la rencontre d'une certaine chaîne de caractères. Exemple avec la commande cat (catalogue, permet d'éditer le contenu d'un fichier).
    >cat << fin je tape du texte jusqu'à la chaîne de caractère fin >
    En tapant la commande, vous revenez à la ligne, mais perdez le prompt, cat va lire (et éditer) les caractères que vous saisissez jusqu'à qu'il rencontre la chaîne fin, à ce moment là, le prompt apparaît à nouveau. Si vous voulez créer un fichier avec un peu de texte à l'intérieur, vous ferez :
    >cat << fin > mon-fichier je tape du texte qui sera sauvegardé dans mon-fichier, pour
    terminer le texte fin >
    Le texte que vous venez de saisir, se trouve donc dans mon-fichier.
    Avec la commande :
    >fichier-vide
    Vous créez un fichier vide fichier-vide.



    6.4 Redirection des erreurs
    Par défaut les messages d'erreur s'affichent à l'écran (sortie standard par défaut), vous pouvez modifier ce comportement. On rappelle que la sortie d'erreur a pour code 2. Vous pouvez sauvegarder dans un fichier vos messages d'erreur, pour analyse ultérieure, en tapant :
    cat mon-fichier 2>fichier-erreur
    Si on rencontre une erreur pendant l'exécutionde la commande d'édition cat de mon-fichier (absence du fichier par exemple), le message d'erreur sera sauvegardé dans le fichier fichier-erreur.
    En tapant :
    sort mon-fichier > fichier-trie
    Vous redirigez le résultat de la commande sort mon-fichier vers le fichier fichier-trie, la sortie standard (descripteur 1) n'est donc plus l'écran (plus précisément le shell ou terminal) mais le fichier fichier-trie.
    Par défaut les messages d'erreur s'affichent dans le shell, vous pouvez faire en sorte qu'ils s'affichent dans le fichier fichier-trie, en tapant :
    sort mon-fichier > fichier-trie 2>&1
    Avec la syntaxe >& vous indiquez que les messages d'erreurs seront redirigés vers la sortie standard qui est le fichier fichier-trie.

    6.5 Les pipes
    Un pipe (en français tube de communication) permet de rediriger la sortie d'une commande vers une autre. En d'autres termes, pour rediriger les résultats (la sortie) d'une commande, on a vu qu'on pouvait taper :
    commande1 > sortie1
    On redirige cette sortie vers une autre commande, ça devient donc une entrée pour cette dernière commande, pour cela vous tapez :
    commande2 < sortie1
    En fait la syntaxe commande1|commande2 (| étant le symbole de pipe) est totalement équivalente aux deux lignes de commandes précédentes.
    Exemple : ls permet la visualisation de fichiers, en tapant ls, on obtient :
    fichier1 fichier2 totofichier
    grep permet la recherche d'une chaîne de caractère dans une liste donnée, en tapant grep toto * (* signifie tous les fichiers, grep recherche la chaîne de caractère toto dans les noms de tous les fichiers), on obtient :
    totofichier
    On a le même résultat avec le |, en tapant :
    ls | grep toto


    La première commande aura pour effet de lister le nom des fichiers se trouvant à l'endroit où l'on a tapé la commande, la sortie standard (le résultat de la commande) est donc une liste de nom, elle est redirigée vers la commande grep, qui va y chercher une chaîne de caractère contenant toto. Le résultat est donc aussi:
    totofichier




    7. Le système de fichiers
    7.1 Les types de fichier
    Il existe trois types de fichier, le fichier qu'on pourrait qualifié de normal, le répertoire ou catalogue (en anglais directory) et les fichiers spéciaux.
    Un fichier normal contient des données, ce fichier peut être lisible, c'est à dire contenir des informations compréhensibles écrites en claire, ce fichier peut être aussi totalement illisible.
    Concrètement un fichier texte qui comme son nom l'indique contient du texte est lisible, alors qu'un exécutable ne l'est pas, si vous cherchez à l'éditer vous ne verrez rien de compréhensible, dans ce dernier cas, on dit aussi qu'on a affaire à un fichier binaire.
    Un répertoire peut être considéré comme un classeur, dans lequel on met des fichiers, c'est un élément d'organisation de l'espace du disque dur. Les fichiers ayant les mêmes " affinités " peuvent ranger sous un même répertoire, de même on peut trouver des sous répertoires dans un répertoire, qui eux-mêmes contiennent des fichiers et d'autres sous répertoires. Ce système hiérarchique fait penser à un arbre, d'où le terme d'arborescence.










    |--------- lib ----- X11
    | |
    | |------- X11R5
    |-------------usr
    | |
    | |
    | |------------src --- samba
    | |
    | |----- Xaw
    |-------|
    /-|
    |-------|
    |
    |
    |
    | |----------olivier----linux
    | | |
    | | |-------temp
    |-------------home
    |
    |
    |----------marcel---- mail
    |
    |------- doc

    Il existe un " ancêtre " à tous les répertoires, c'est la racine ou le / (slash) sur le shéma. Tout répertoire, qui n'est pas la racine elle même, possède un répertoire qui le contient (appelé répertoire père) et peut posséder des sous-répertoires (répertoires fils) et des fichiers .
    Quand on crée un répertoire, le système crée automatiquement deux " fichiers " sous le répertoire, le premier est un " . ", qui représente le répertoire lui-même, le deuxième est un " .. " qui représente le répertoire père.
    Le troisième type de fichier est le fichier dit spécial, qu'on a abordé brièvement auparavant, rappelons que l'on doit passer par eux si on veut dialoguer avec un périphérique matériel.


    7.2 Atteindre un fichier
    Nommer un fichier
    Tout fichier, qu'elle que soit son type, doit pouvoir être identifié, c'est pourquoi on les nomme avec un nom en rapport avec le fichier. Ce nom comporte au maximum 255 caractères, sachant qu'il existe une distinction entre les lettres minuscules et majuscules, et que certains caractères sont interdits, ce sont par exemple le /, les parenthèses (), l'espace ou *.

    Le chemin d'accès
    Ce fichier est rangé dans un répertoire du système de fichiers, on doit pouvoir y accéder, en suivant un chemin dans l'arborescence.
    |--------- lib ----- X11
    | |
    | |------- X11R5
    |-------------usr
    | |
    | |
    | |------------src --- samba
    | |
    | |----- Xaw
    |-------|
    /-|
    |-------|
    |
    |
    |
    | |----------olivier----linux----HOW-TOppp
    | | |
    | | |
    | | |-------temp
    |-------------home
    |
    |
    |----------marcel---- mail
    |
    |------- doc


    Pour indiquer le chemin du fichier (HOW-TOppp dans notre exemple), on part de la racine (/), on indique le premier répertoire traversé, puis les autres, en séparant chacun des répertoires d'un /. Ainsi donc pour notre fichier le chemin d'accès est :
    /home/olivier/linux
    En indiquant /home/olivier/linux/HOW-TOppp le fichier est parfaitement identifié, en effet on sait où le trouver puisqu'on a son chemin, et le nom du fichier HOW-TOppp.
    A noter qu'on peut avoir des fichiers portant le même nom dans le système de fichiers dés lors qu'ils n'ont pas le même chemin, et donc qu'ils ne se trouvent pas au même endroit.
    On dit que le chemin du fichier est absolu parce qu'à la vue de son chemin d'accès, en partant de la racine, on sait exactement où se trouve le fichier.
    Un chemin est dit relatif, quand il n'est pas nécessaire, d'indiquer le chemin complet, de l'endroit où on se trouve dans l'arborescence il suffit de rajouter le chemin par rapport à ce même endroit.
    En admettant qu'on se trouve sous /home/olivier, si l'on veut accéder à notre fichier HOW-TOppp, le chemin relatif au répertoire courant est ./linux, le point représentant le répertoire courant comme on l'a vu auparavant. Ce qui donne en chemin absolu /home/olivier/linux.

    Les commandes
    La commande pour se déplacer dans l'arborescence est cd. Si l'on est au niveau de la racine, pour aller à notre répertoire /home/olivier/linux on doit taper :
    cd /home/olivier/linux
    On a tapé un chemin absolu, on se trouve maintenant sous /home/olivier/linux, si l'on veut aller sous
    /home/olivier, on doit taper :
    cd ..
    En effet .. représente le répertoire père, /home/olivier étant le répertoire père de /home/oliver/linux, en tapant cette commande, on se retrouve à l'endroit désiré.
    Si vous voulez connaître ou vous vous trouvez, vous disposez de la commande pwd, ainsi si vous tapez pwd juste après la séquence de commandes précédentes, vous obtenez :
    /home/olivier



    7.3 Visualiser les fichiers
    La commande ls permet de visualiser le contenu de répertoires, vous voyez les noms des fichiers présents sous le répertoire.
    |--------- lib ----- X11
    | |
    | |------- X11R5
    |-------------usr
    | |
    | |
    | |------------src --- samba
    | |
    | |----- Xaw
    |-------|
    /-|
    |-------|
    |
    |
    |
    | |----------olivier----linux----HOW-TOppp
    | | | |-----Readme
    | | |
    | | |-------temp
    |-------------home
    |
    |
    |----------marcel---- mail
    |
    |------- doc

    Si vous allez sous /home/olivier/linux (commande cd /home/olivier/linux), si vous voulez visualiser les fichiers contenus, vous tapez ls, vous obtenez :
    HOW-TOppp Readme
    La commande ls peut être utilisée avec des options, si précédemment vous aviez tapez ls -l, vous auriez obtenu:

    -rw-rw-rw- 1 olivier users 17356 Dec 3 12:11 HOW-TOppp
    -rw-r--r-- 1 olivier users 7432 Nov 21 02:21 Readme






    La signification des champs est la suivante:
    -rw-rw-rw- type de fichier et ses caractéristiques de protection l
    1 le nombre de lien l
    olivier le nom du propriétaire l
    users le groupe d'utilisateurs auquel appartient le propriétaire l
    17356 la taille du fichier (en octets) l
    Dec 3 le jour de dernière modification l
    12 :11 l'heure de dernière modification l
    HOW-TOppp le nom du fichier l
    Pour avoir ces informations uniquement d'un fichier, vous taperez :
    ls -l nom-du-fichier
    A noter que sur beaucoup de système la commande ll est équivalente à ls -l.

    7.4 Commandes de gestion des répertoires
    Pour gérer les répertoires, vous disposez des commandes suivantes :
    mkdir nom-de-répertoire Création d'un répertoire
    rmdir nom-de-répertoire Suppression d'un répertoire vide
    mv répertoire répertoire-d'accueil déplacement d'un répertoire
    mv répertoire nouveau-nom Changement de nom d'un répertoire

    7.5 Commandes de gestion des fichiers
    Pour gérer les fichiers vous disposez des commandes suivantes:
    touch mon-fichier création d'un fichier vide,
    more mon-fichier visualisation d'un fichier page à page,
    rm mon-fichier suppression d'un fichier,
    mv mon-fichier répertoire d'accueil déplacement d'un fichier,
    mv mon-fichier nouveau-nom changement de nom d'un fichier,
    cp nom-fichier répertoire-d'accueil/autre-nom copie de fichier, file mon-fichier pour savoir si on a un fichier binaire (exécutable) ou un fichier texte. Onobtient pour un fichier texte, comme sortie mon-fichier : ascii text.

    7.6 Les liens
    Dans l'arborescence UNIX en tapant la commande ls -l on peut rencontrer cette syntaxe un peu particulière.
    lrwxrwxrwx 1 root root 14 Aug 1 01:58 Mail -> ../../bin/mail*
    Ca signifie que le fichier Mail pointe vers le fichier mail qui se trouve dans le répertoire /bin, en d'autres termes Mail est un lien vers le fichier mail.
    Un lien est créé pour pouvoir accèder au même fichier à différents endroits de l'arborescence. Sous Windows on retrouve à peu près l'équivalent avec la notion de raccourci.
    La commande ln (pour link) sert à créer des liens. Par exemple:
    ln -s /home/olivier/linux/readme /tmp/lisezmoi
    Le fichier source est readme sous /home/olivier/linux, le lien créé est lisezmoi sous /tmp. En faisant un man ln, vous découvrirez qu'il existe des liens hards et softs, sans rentrer dans les détails, je vous conseille dans un premier temps de vous limiter aux liens softs (option -s) car les liens hards ne permettents pas de visualiser directement le lien (la petite flèche -> quand on tape ls -l).

    7.7 Les inodes
    Sous un système UNIX, un fichier quel que soit son type est identifié par un numéro appelé numéro d'inode, qu'on pourrait traduire en français par "i-noeud". Ainsi derrière la façade du shell, un répertoire n'est qu'un fichier, identifié aussi par un inode, contenant une liste d'inode représentant chacun un fichier.
    La différence entre un lien hard et symbolique se trouve au niveau de l'inode, un lien hard n'a pas d'inode propre, il a l'inode du fichier vers lequel il pointe. Par contre un lien symbolique possède sa propre inode. A noter que vous ne pouvez pas créer de liens hards entre deux partitions de disque différente, vous n'avez pas cette contrainte avec les liens symboliques.
    Pour connaître le numéro d'inode d'un fichier, vous pouvez taper:
    ls -i mon-fichier

    7.8 Les métacaractères
    Si vous êtes à la recherche d'un fichier qui commence par la lettre a, en faisant ls, vous voudriez voir que les fichiers commençant par a. De même si vous voulez appliquer une commande à certains fichiers mais pas à d'autres. C'est le but des métacaractères, ils vous permettent de faire une sélection de fichiers suivant certains critères.
    Le métacaractère le plus fréquemment utilisé est *, il remplace une chaîne de longueur non définie.
    Avec le critère *, vous sélectionnez tous les fichiers. Par le critère a*, vous sélectionnez tous les fichiers commençant par a.
    ls a*
    Va lister que les fichiers commençant par a. De même *a opère une sélection des noms de fichiers se terminant par a. Le critère *a* va faire une sélection sur les noms de fichiers qui ont le caractère a dans leur nom, quelque soit sa place.
    Le métacaractère ? remplace un caractère unique. Avec le critère a??, vous sélectionnez les fichiers dont le nom commence par a, mais qui contiennent au total trois caractères, exactement.
    Les métacaractères [ ] représente une série de caractères. Le critère [aA]* permet la sélection des fichiers dont le nom commence par un a ou A (minuscule ou majuscule). Le critère [a-d]* fait la sélection des fichiers dont le nom commence par a jusqu'à d. Le critère *[de] fait la sélection des fichiers dont le nom se termine par d ou e.
    Vous voyez donc que les caractères [],* et ? sont des caractères spéciaux, qu'on ne peut utiliser comme des simples caractères, parce qu'ils sont interprétés par le shell, comme des métacaractères.
    Vous pouvez cependant inhiber leur fonctionnement. En tapant :
    ls mon-fichier?
    Le shell va interpréter le ? comme un métacaractère et afficher tous les fichiers qui commencent par
    mon-fichier et qui se termine par un caractère unique quelconque. Si vous ne voulez pas que le ? soit interprété vous devez taper.
    ls mon-fichier\ ?
    و السلام
    :satelite:
     
    3 شخص معجب بهذا.
  2. cobraaa

    cobraaa كبير مراقبي المنتدى التعليمي

    إنضم إلينا في:
    ‏29 ديسمبر 2007
    المشاركات:
    5.809
    الإعجابات المتلقاة:
    25.476
      29-03-2008 14:32
    2 شخص معجب بهذا.
  3. king-0X

    king-0X نجم المنتدى

    إنضم إلينا في:
    ‏21 فيفري 2008
    المشاركات:
    1.598
    الإعجابات المتلقاة:
    1.695
      02-04-2008 18:37
    علي الاقل قوي لي مورالي شوي
    وبعد قول الي تحب
    وشكرا
     
    2 شخص معجب بهذا.

مشاركة هذه الصفحة

جاري تحميل الصفحة...