< < E-NEF > >

Création de sites | Moniteurs | Chercher | Voyager | Cartes

()

::::::::::: UNIX :::::::::::

Par Christophe de Villers

villers@hp1.esiea.fr

  1. Présentation d'UNIX:
    1. Historique:
    2. Unix est un système d'exploitation qui a été conçu dans les laboratoires Bell. La toute première version a été écrite par Ken Thompson en assembleur sur PDP7 en 1970. On voulait créer un système d'exploitation multitâches et multi-utilisateurs avec un partage de la place disque, de la mémoire centrale, du temps machine, et des périphériques. Pour cela, il fallait pouvoir gérer les priorités de chaque programme sur le reste du système, et garantir l'autonomie de chacun des différents processus.

      La première commercialisation d'UNIX date de 1975 (20 ans avant W95!). En effet, en 72 Kernighan a réécrit UNIX en langage C, ce qui a permis à UNIX de se répandre rapidement grâce au portage facilité sur la plupart des machines par ce langage destiné à être compilé.

    3. Principes généraux:

    Toute tache exécutée par UNIX est un processus (process). Plusieurs processus peuvent être appelés simultanément. Ces processus sont exécutés par le shell (coquille) qui sert d'interface multitâche entre l'utilisateur et UNIX. Ce shell fait l'interface avec le kernel (noyau) qui gère la mémoire, les ressources entre utilisateurs, le système de fichiers, les devices, etc...

    Pour UNIX, un répertoire, un fichier normal, ou un fichier spécial, sont tous considérés comme des fichiers. Chaque terminal X du réseau a un display qui permet de le situer localement. Ce display est utilisé pour porter une application vers un autre client du serveur UNIX.

  2. Connexion:
    1. Login:
    2. Le login (ou username ou encore nom-utilisateur) vous est attribué par l'ingénieur système qui est un " super-utilisateur " à qui rien (ou presque) ne résiste et qui supervise le réseau! Ce login vous est demandé à chaque fois que vous vous connectez. Il permet à UNIX de savoir à quel utilisateur il a à faire. Votre password (ou mot de passe) est tout aussi important. Sans lui, aucun utilisateur ne peut se connecter sous votre username. Il devra donc être changé si vous avez reçut un password de départ, et conservé secret pour éviter que d'autres utilisateurs ne touchent à vos fichiers protégés.

      Il est à noter qu'en général un password doit avoir 6 caractères au minimum, contenir au moins 2 caractères alphabétiques et un caractère numérique ou spécial. Evitez les caractères spéciaux qui dépendent parfois du type de claviers.

      ATTENTION: Les caractères minuscules et majuscules sont différenciés sous UNIX.

       

      Pour changer votre password:

      (1) Connectez vous au système

      (2) Tapez passwd

      (3) Entrez votre ancien password

      (4) Entrez votre nouveau password

      (5) Confirmez si nécessaire

    3. Logout:

    Pour vous déconnecter, 3 solutions existent:

    (1) Tapez <Ctrl>d

    (2) Tapez exit

    (3) Tapez kill -9 -1 (si des tâches sont encore actives)

    Evitez de sortir de votre session UNIX en rebootant ou en éteignant le terminal. Votre session UNIX ne serait alors pas fermée et lors d'une nouvelle connexion vous en ouvririez une de plus. De plus, si un processus était en cours dans la session abandonnée de cette manière, il tournerait toujours et prendrait de plus en plus de priorité sur le système, en pénalisant les temps machines des autres processus et donc, par là même, vous ralentissant. Evitez donc cette méthode qui peut tout de même arriver si le terminal a un plantage inattendu...

  3. Commandes de base (identification):
    1. who am i:
    2. La commande who am i affiche qui est l'utilisateur (qui suis-je?).

      Apparaissent alors 3 informations sur une seule ligne:

      (1) votre username

      (2) le terminal que vous utilisez

      (3) la date et l'heure de connexion

    3. who:
    4. La commande who affiche les mêmes informations que who am i pour chacun des utilisateurs ayant une session en cours. Elle possède de nombreuses options. Par exemple, who -u affiche des informations supplémentaires sur les machines sur lesquelles sont connectés les autres utilisateurs.

      NOTE : La syntaxe générale d'une commande UNIX est:

      commande option(s) argument(s) adresse_locale

      les options arguments et adresse sont facultatifs.

      Une adresse locale se décompose en: No_d'écran . ServerName . domain

      REM: D'une manière générale, pour connaître les options et les arguments d'une commande on tape:

      man commande ou bien commande --help

    5. uname
    6. Cette commande indique sur quelle machine vous êtes connecté.

      uname -a spécifie en plus la version d'UNIX.

    7. id

    Cette commande indique le numéro d'utilisateur et le groupe auquel il appartient.

  4. Commandes de fichiers:
    1. Généralités:
    2. Le système de fichiers est semblable à celui du DOS mis à part que la racine de l'arborescence est / (et non \ comme sous DOS). Par exemple, un fichier date situé dans un répertoire bin lui même situé à la racine aura le path (chemin d'accès) suivant: /bin/date

      L'arborescence relative s'écrit sans commencer par /

    3. pwd:
    4. pwd (print working directory) affiche le path absolu du répertoire courant.

    5. cd:
    6. La commande cd (change directory) permet de se déplacer dans l'arborescence. Elle peut prendre comme argument un path absolu ou relatif (sans / au début).

      cd .. permet, comme sous DOS, de revenir au répertoire parent.

      Sans argument, cd replace l'utilisateur dans son répertoire de départ.

    7. ls:
    8. La commande ls liste les fichiers d'un répertoire. Elle prend pour argument (optionnel) un path (absolu ou relatif).

      ls -a permet d'afficher aussi les fichiers commençant par " " (équivalents aux fichiers cachés du DOS).

      De nombreuses autres options sont disponibles comme " -r " qui provoque un affichage récursif de tous les fichiers et répertoires situés sous le répertoire donné en argument (équivalent à dir/s sous DOS).

      A NOTER:

      ls -l permet de visualiser les autorisations pour chaque fichier listé.

      Les options peuvent être combinées (exemple: ls -ra / affiche le contenu du disque avec les autorisations correspondantes).

    9. cp et ln:
    10. La commande cp R1/fichier R2 (~ copy sous DOS) permet de copier un fichier, qui se trouve dans un répertoire R1, dans un second répertoire R2.

       

      La commande ln (lien) (équivalents aux raccourcis (*.lnk) de W95) permet de créer un lien direct avec un fichier situé ailleurs. Le lien créé est alors exécutable comme depuis sa source. On les reconnaît par un @ placé en fin de nom de fichier lors d'un ls alors que les exécutables ont eux un * à la fin.

      La syntaxe est la même que pour cp.

    11. mv:
    12. mv (move) permet de déplacer un fichier vers un autre répertoire. (Même syntaxe que cp).

    13. rm:
    14. La commande rm (équivalent à del sous DOS) permet à l'utilisateur qui possède les autorisations suffisantes d'effacer un fichier du disque.

      rm -r est encore plus dangereux car il permet un effacement récursif.

      ATTENTION: A utiliser avec précaution (Il n'existe pas de commande Undelete sous UNIX).

      Par précaution, on pourra faire un alias rm= rm -i qui demande confirmation avant d'effacer.

    15. mkdir et rmdir
    16. Ces commandes permettent respectivement de créer et de supprimer un répertoire. Naturellement, pour les utiliser il est nécessaire d'avoir les autorisations requises.

      Syntaxe: mkdir rep ou rmdir rep

    17. cat et more:
    18. cat sert à concaténer 2 fichiers.

      more est l'équivalent de type sous DOS.

    19. chmod:

Cette commande permet de changer les autorisations sur vos fichiers et répertoires.

En tapant ls -l on obtient un tableau représentant une liste de fichiers dont la première colonne représente les autorisations.

Les autorisations d'un fichier s'affichent sur 10 caractères:

- fichier standard (normal)

d répertoire (directory)

b I/O par blocs ( i.e. les disques )

c I/O par caractères ( i.e. le clavier )

p pipe

b,c et p représentent des fichiers spéciaux sans taille

Chaque autorisation est représentée par un caractère:

r pour lecture

w pour écriture

x pour exécution

Si les trois sont mis, on aura rwx.

Par défaut pour un fichier on a : -rwxr-xr-x c'est à dire toutes les permissions pour le propriétaire, et des restrictions en écriture pour les autres.

Chmod permet de modifier des droits d'accès.

Syntaxe : chmod QMD fichier

fichier peut être un fichier ou un répertoire,

Q veut dire Qui est concerné : u,g ou o c.f. précédemment

M pour les opérations: + pour ajouter, - pour supprimer, et = pour donner la valeur

D pour le droits d'accès : r,w, et x

Exemple: chmod g-x fichier ou chmod o=x fichier

    1. ps :
    2. La commande ps liste les processus actifs.

      Elle comporte plusieurs options qui peuvent être combinées.

      Citons les options -l, -e, -fu username qui listent respectivement :

      les processus(affichage étendu) de tous les utilisateurs connectés ( notez que NI ( No de nice) doit être le plus bas possible pour que sa priorité soit la plus grande possible),

      les processus de tous les utilisateurs,

      les processus en cours de username

      Remarque: la commande umask (autorisations par défaut) pourra simplifier l'utilisation de chmod.

    3. man :

Et pour finir, comment obtenir plus d'aide en ligne, taper man ma_commande .

Pour se déplacer dedans, utiliser les touches habituelles, entrée, les flèches, q pour quitter.

Il est fait référence à des commandes d'un autre niveau (e.g. ps(3) ). Pour y accéder, taper man niveau ma_commande .

Et bien sûr man man fonctionne !

  1. communication ( messages) de base :
    1. write:
    2. La commande write permet d'envoyer en direct "live" des messages qui s'affichent alors sur le terminal de votre correspondant ( dans son xterm ).

      Syntaxe:

      write username

      votre message

      <Ctrl >d

      On peut aussi envoyer un message a plusieurs utilisateurs en tapant:

      write u1 u2 u3

      message destiné à u1, u2, u3

      <Ctrl>d

    3. mesg
    4. Recevoir un message "dans la figure" lorsque vous tapez quelque chose d'important peut être désagréable. Cet inconvénient est pallié par la commande mesg qui permet d'autoriser ou non la réception de messages envoyés par write:

      mesg n : interrompt la réception instantanée ( sauf en provenance de l'ingénieur système)

      mesg y : la rétablit

      mesg seul permet de savoir l'état de votre terminal.

    5. Mail
    6. La méthode qui suit est une des méthodes les plus simples pour envoyer un mail à un correspondant. La commande mail permet d'envoyer du courrier à un autre utilisateur même s'il n'est pas connecté (système de boite aux lettres).

      Syntaxe:

      mail username

      mon texte

      <Ctrl>d

      username reçoit alors le message suivant lorsque système aura regardé dans sa boite à lettre:

      you have mail

      pour lire le message, username tape :

      mail

      N.B. pour écrire à une personne sur un réseau local, nul n'est besoin de taper le nom de son hébergeur ( hôte, i.e. hp1.esiea, avec le domain .fr). Par contre, par la même méthode, on peut écrire à quelqu'un d'extérieur, en spécifiant son adresse entière ( e.g. villers@hp1.esiea.fr ). Si le destinataire n'est pas trouvé, un message d'erreur vous reviendra.

    7. elm

elm comme mozilla ( sous netscape), sont des interfaces aux transporteurs de messages ( e.g sendmail), plus évolués que mail.

Elm propose un menu en affichant les entêtes des messages, et leurs sujets, j et k font passer d'un message à l'autre, entrée pour visualiser, et le reste des commandes est affiché en bas de la page.

La ce sont des commandes plus évoluées, on peut sous mozilla voir des images, d'autres permettent de recevoir des sont ... Ils ne sont pas importants, seul compte le bon acheminement du courrier.