Cours Système d’exploitation UNIX


Reviewed by:
Rating:
5
On December 9, 2011
Last modified:May 14, 2014

Summary:

Cours Système d’exploitation UNIX

 

Titre :                     Système d’exploitation : UNIX

Introduction :

Le système Unix a été mis au point par des chercheurs américains dont  Le but était de mettre au point un système interactif simple permettant la multiprogrammation. L’objectif était de créer un environnement multi utilisateurs et multitâches adapté aux besoins des programmeurs -donc offrant de nombreux outils :

  •   une meilleure portabilité du langage (supporte différents types de microprocesseurs)
    • l’ajout de plusieurs utilitaires (chacun peut le développer à son besoin)

De nos jours les systèmes Unix restent très présents dans les milieux professionnels et de l’éducation grâce à sa grande stabilité et son utilisation en réseau.

I.    SPECIFICITES, CARACTERISTIQUES :

    1.  Spécificités

Tout d’abord UNIX est un système multi-utilisateur, il est donc nécessaire de procéder à une phase d’identification et d’authentification avant de pouvoir travailler. On parle de compte utilisateur. Le système est cloisonné, c’est à dire que chaque utilisateur a son propre espace de travail en ce qui concerne les fichiers.  Il existe également un utilisateur appelé root ou super-utilisateur qui possède des droits étendus. Ce compte est généralement réservé pour l’administration du système UNIX.

Les commandes sont généralement construites sur le même modèle:

commande [options] argument1 argument2 … argumentn

commande est le nom du programme que l’on appelle

options permet de modifier le comportement du programme. Le plus souvent les options sont données avec des tirets

argument1 est le nom du fichier sur lequel on souhaite travailler. A noter le fait que l’on peut travailler sur plusieurs fichiers

Une dernière chose, UNIX fait la différence entre les minuscules et les majuscules. Il est impératif de faire attention à ce que l’on saisit.

    2.  Caractéristiques techniques d’UNIX

  • Multi-utilisateur (multi-user) et multitâche (multi-tasking) : plusieurs utilisateurs peuvent accéder simultanément au système et exécuter chacun plusieurs programmes.
  • Temps partagé (time sharing) : c’est à dire que les ressources du processeur et du système sont réparties entre les utilisateurs.
  • Entrées/Sorties intégrées au système de fichiers : les périphériques sont représentés par des fichiers – cela rend le système indépendant du matériel et en assure la portabilité – l’accès aux périphériques est donc identique à l’accès aux fichiers ordinaires.
  • Swapper : un mécanisme d’échange entre mémoire RAM et disque dur permet la gestion de la RAM pour l’exécution des processus (Notions de processus :

Un processus est n’importe quel traitement, appelant un ou plusieurs programmes et produisant un résultat.)

    3.   Constitution du système Unix:

-    D’un système d’exploitation (le noyau).

-    Chaque système d’exploitation possède un interpréteur de commandes  qui est chargé de réaliser une interface entre utilisateur et système. Cet interpréteur de commande s’appelle le shell sous UNIX. La première manifestation de l’interpréteur de commande est le prompt, il attend en effet que l’on tape un ordre.

-    Le shell d’UNIX est très élaboré avec de nombreuses fonctions, des possibilités de programmation… autant de choses qui le rendent indispensable dès qu’on arrive à le maîtriser. Un programme écrit en utilisant les commandes du shell s’appelle un script.  et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, …).

    4.    Etablir une session

4.1 Login : début de session

Pour se connecter à un système UNIX, l’utilisateur doit disposer d’un nom de connexion

(Login name ou logname) et d’un mot de passe. Cette déclaration initiale est assurée par

L’administrateur du site. Ces informations sont utilisées pour vérifier que l’utilisateur est

Autorisé à utiliser les ressources du système.

Login : L’utilisateur doit taper son nom d’utilisateur en minuscules.

password :  L’utilisateur doit taper son mot de passe. Le shell se lance après avoir exécuté dans l’ordre les fichiers de démarrage :

Nota : UNIX préfère converser en minuscules et fait la différence entre MAJUSCULES et minuscules.

4.2 Logout : fin de session

Pour quitter la session en cours, l’utilisateur doit frapper :

logout ou Ctrl D (caractère fin de fichier)

II.   Commandes Unix

    1.  Tableau des principales commandes UNIX

Il y a environ 130 commandes exploitables par un utilisateur  de UNIX (qui ne soit pas un développeur ou un administrateur système). On donne ici une  classification des commandes les plus utilisées :

Commande Unix

Description

équivalent DOS

ls liste le contenu d’un répertoire dir
cd change de répertoire cd
cd.. répertoire parent cd
mkdir crée un nouveau répertoire md
rmdir supprime un répertoire deltree
cp copie de fichier copy, xcopy
mv déplacement de fichier move
rm supprime le fichier del
passwd change le mot de passe de l’utilisateur
cat affiche le contenu du fichier type
more affiche le contenu du fichier avec des pauses type |more
manapropos aide sur la commande demandée help
lpr imprime le fichier demandé print
chmod change l’attribut d’un fichierchmod XXX fichierXXX= Utilisateur|Groupe|Autres ou X représente un entier compris entre 1 et 7Lecture=4, Ecriture=2, Execution=1X=Lecture+Ecriture+Execution
chfn change les informations personnelles vues avec finger
chsh change le shell : chsh user emplacement_du_shell
finger liste des utilisateurs en ligne
sort La commande sort trie les lignes des fichiers par ordre alphabétique.
ftp [machine] [port]getputquit transfert de fichier entre la machine locale et la machine ciblerécupère un fichierenvoie un fichierquitte la session FTP
telnet [machine] effectue un telnet
talk permet de parler à un utilisateur connectétalk user
mesg autorise ou non la commande talkmesg n : Empeche la reception de messages talkmesg y : Permet la reception de messages talk
bye déconnexion
alias Elle permet de définir un alias appelé nom et correspondant à la commande définition

    2.   Exemple :

Si l’on souhaite copier un fichier d’une disquette vers un disque dur on fera:

  • sur PC -DOS : copy a:fichier c:
  • sur UNIX : cp /mnt/fichier

On remarquera que quel que soit le système d’exploitation, les manipulations restent fondamentalement les mêmes. En effet les ordinateurs sont tous construits suivant un modèle très similaire (CPU, mémoire de masse, périphériques, système de fichier, etc.) ce qui implique des manipulations similaires.

    3.  L’historique des commandes

Toutes les commandes que l’on tape sont conservées dans une liste contenant les n dernières commandes. Pour afficher cette liste, on tape history. Il est d’autre part possible de répéter les commandes de cette liste.

   Comment rappeler une ligne de commande

Caractère Signification
!! Rappelle la dernière commande exécutée
!: Rappelle la dernière commande exécutée
!n Rappelle la commande numéro n
!abc Rappelle la dernière commande commençant par abc
!?abc Rappelle la dernière commande contenant la chaîne abc

III.    Les fichiers et les répertoires :

Un fichier est une ”structure” contenant du texte ou bien un programme. Le nom d’un fichier est unique dans le répertoire dans lequel il se trouve. Par contre il est possible d’avoir des fichiers différents situés dans des répertoires différent et ayant le même nom.

    1.  Types de fichiers

Il y a 7 dont 2 principaux :

  • ­- un fichier ordinaire.
  • d un répertoire (directory).
  • l un lien sur un autre fichier ou répertoire.
  • s un ”socket” utilisé pour les communications.
  • b un fichier spécial de type bloc (pilote de disque).
  • c un fichier spécial de type caractère (pilote de terminal).

p un fichier spécial FIFO

Remarques :

  • Le nom d’un fichier peut faire jusqu’à 256 caractères.
  • Il faut éviter d’utiliser les caractères ­ * ? < > ! / \. L’espace,
  •  Il existe des fichiers dont le nom commence par un point qui sont des fichiers ”cachés” que le système n’affiche pas normalement. Il s’agit essentiellement de fichiers de configuration.

UNIX étant un système multi­utilisateurs, chaque fichier est caractérisé par des droits d’accès.

    2.   Caractéristiques des fichiers.

              1.Les droits d’accès sont établis pour 3 catégories :

  • l’utilisateur (user) : c’est le propriétaire du répertoire ou du fichier.
  • le groupe (group): les groupes sont définis par l’administrateur du système.
  • les autres (others):

Il existe une quatrième catégorie (all)  qui regroupe les trois autres.

              2.Les droits d’accès sont de 4 types :

  • lecture (r):         le fait de pouvoir afficher un fichier.
  • écriture (w):     le fait de pouvoir modifier et copier un fichier.
  • exécution (x) : le fait de pouvoir exécuter un fichier (script ou programme).
  • aucun (­) :           on ne peut rien faire, la protection est totale.

On combine ensuite les droits d’accès (r,w,x) pour les 3 classes (u,g,o,a)  pour obtenir les droits d’accès du fichier ou du répertoire. Ces droits d’accès sont visibles grâce à la commande ls ­l.

    3.   Exemple

Sortie de la commande ls ­l :

drwxr­xr­x 1 Nom 184025 Avr 3 16 :19 introduction.ps
drwxr­xr­x 1 Nom  25733 Avr 3 16 :25 introduction.tex

Les droits d’accès des fichiers introduction.* sont donnés par la chaîne ­rw­r­­r­­.

Les droits d'accès

Les droits d’accès

Principes de lecture des droits d’accès d’un fichier

Nous étudierons le principe de lecture des droits d’accès d’un fichier en prenant comme exemple la chaîne drwxr-xr-x.

  • La première lettre (drwxr-xr-x) permet de déterminer le type de fichier.
  • Les trois lettres suivantes (drwxr-xr-x) correspondent aux droits de l’utilisateur : écriture (w), lecture (r), exécution (x), aucun droit (­). Dans ce cas l’utilisateur peut à la fois lire, écrire et exécuter le fichier.
  • Les trois lettres suivantes (drwxr-xr-x) correspondent aux droits du groupe qui peut lire et exécuter le fichier.
  • Enfin les trois dernières lettres (drwxr-xr-x) correspondent aux droits des autres qui peuvent lire et exécuter le fichier.

Les droits d’accès sont bien sûr modifiables à volonté par le propriétaire d’un fichier. On peut souhaiter mettre un fichier disponible en lecture pour tout le groupe. On peut vouloir rendre un fichier de commandes directement exécutable par le shell. Toutes ces modifications sont rendues possibles grâce à la commande chmod . Son utilisation est la suivante :

chmod utilisateur opération permission nom_du_fichier

Les options utilisateur, opération et permission peuvent prendre les valeurs suivantes:

Option Valeurs
Utilisateurs u,g,o,a (utilisateur, groupe; autres, tous)
Opérations +,-, = (ajouter, retirer, laisser tel quel)
Permissions r,w,x (lecture, écriture, exécution)

    4.  L’arborescence

Dans UNIX, ainsi que dans les autres systèmes d’exploitation, les fichiers sont organisés de façon hiérarchique. Ils sont rangés dans des répertoires qui peuvent eux-mêmes contenir des répertoires.

          a.   La structure de l’arborescence :

L’organisation traditionnelle du répertoire racine est décrite dans le tableau suivant :

Répertoire contient
/bin les fichiers exécutables nécessaires à l’initialisation
/boot le noyau et les fichiers de démarrage
/dev les fichiers spéciaux
/etc les fichiers de configuration du système et certains scripts
/home la base des répertoires utilisateurs
/lib les librairies système et les modules
/lost+found le stockage des fichiers retrouvés par fsck
/mnt les points d’ancrage des systèmes extérieurs
/proc un système de fichiers virtuels permettant l’accès aux variables du noyau
/root le répertoire de base du super utilisateur
/sbin les fichiers exécutables pour l’administration du système
/tmp les fichiers temporaires
/usr les programmes, les librairies et les fichiers accessibles pour l’utilisateur
/var les données variables liées à la machine (spool, traces)

           b.   Se déplacer dans l’arborescence UNIX

Pour changer de répertoire on utilise la commande cd (change directory) suivie du nom du répertoire dans lequel on souhaite se rendre. Un répertoire UNIX possède deux fichiers particuliers :

. et ..

Le premier est en fait un lien sur le répertoire courant tandis que le second pointe sur le répertoire supérieur dans la hiérarchie du système de fichier. Par conséquent, si on tape cd .. on remonte vers la racine et l’on se retrouve dans le répertoire immédiatement supérieur.

    5.  Lister les fichiers

La commande ls permet de d’afficher le nom des fichiers contenus dans un répertoire. Si on l’utilise sans paramètre, ls n’affiche que le nom des fichiers.  Toutefois on peut obtenir des renseignements plus précis sur la taille, la date, l’appartenance, les droits d’accès d’un fichier en utilisant la commande ls ­l.

Il existe de nombreuses options pour utiliser la commande ls. Voici l’éventail de toutes les options possibles:

ls [ -abcCdfFgilLmnopqrRstux1 ]

Les options les plus intéressantes de la commande ls sont les suivantes:

Option Signification
-a affiche  tous les fichiers, même les fichiers cachés
-F ajoute des signes permettant de différencier les exécutables (*), les répertoires (/), les liens symboliques (@)
-l format long avec les permissions, le propriétaire, la taille, la date, etc.
-R liste les sous-répertoires s’ils existent
-s affiche la taille des fichiers en blocs
-t affiche en fonction de la date de dernière modification

Bien sûr, il est possible de combiner les options entre elles comme dans l’exemple suivant dans lequel on demande un listing long de tous les fichiers, même des fichiers cachés.

    6.  Création d’un fichier

Il existe plusieurs méthodes pour créer un fichier:

  • Création avec un éditeur de texte
  • Redirection d’une sortie en utilisant le caractère de redirection >
  • Avec la commande touch

Les deux dernières méthodes sont illustrées dans l’exemple ci-dessous:

said1 [18]%ls
said1 [19]%cat ~/.login > sortie
said1 [20]%ls
sortie
said1 [21]%touch sortie2
said1 [22]%ls
sortie   sortie2

    7.  Copier un fichier

Pour copier (dupliquer) un fichier on utilise la commande cp comme dans l’exemple ci-dessous qui copie le fichier mailcheck dans le fichier mailcheck.bis.

said2 [67]%cp mailcheck mailcheck.bis

Il est possible avec l’option  -r de copier le contenu complet d’un répertoire.

said2 [79]%cp -r spool spool2

Dans l’exemple ci-dessus le contenu complet du répertoire spool est copié dans le nouveau répertoire spool2.

    8.  Renommer un fichier

Pour renommer un fichier on utilise la commande mv comme dans l’exemple ci-dessous qui renomme le fichier nba.awk en nba.old.

said2 [55]%mv nba.awk nba.old

    9.  Effacer un fichier

On efface un fichier grâce à la commande rm. Le fichier sera effacé si l’on possède bien les droits en écriture. Pour effacer un groupe de fichier il est possible d’utiliser les caractères de substitution (*,?) proposés par le shell. Par exemple rm * efface tous les fichiers visibles d’un répertoire. Prudence donc en manipulant les caractères de substitution. Pour éviter les catastrophes on peut utiliser la commande ls qui permet de voir sur quels fichiers s’appliquera la commande d’effacement.  En général, il existe un alias vers la commande rm -i qui demande confirmation avant effacement.

said1 [39]%ls
commande*         majGCG.pl*        utilisateurs      utilisateurs.sav
said1 [40]%rm utilisateurs.sav
rm: remove utilisateurs.sav (yes/no)? y
said1 [41]%ls
commande*     majGCG.pl*    utilisateurs

    10.  Création et effacement d’un répertoire

On crée un répertoire avec la commande mkdir nom du répertoire. Ceci a pour effet de créer le répertoire avec les droits d’accès de l’utilisateur. Ces droits d’accès pourront être bien sûr modifiés par le propriétaire du répertoire avec la commande chmod. Le répertoire créé sera effacé par la commande rmdir. Le répertoire sera effacé s’il est vide de tout fichier ou répertoire. Si l’on souhaite effacer un répertoire et son contenu on utilise la commande d’effacement récursif  rm ­r nom_du_répertoire. Attention ! Tout le contenu sera effacé, il faut manipuler cette commande avec précautions afin d’éviter de perdre des fichiers importants.

said1 [28]%pwd
/util2/si/olivier
said1 [29]%mkdir repertoire
said1 [30]%cd repertoire
/util2/si/olivier/repertoire
said1 [31]%mkdir /util2/si/olivier/repertoire2/sousrep
mkdir: Failed to make directory "/util2/si/olivier/repertoire2/sousrep"; No such
file or directory
said1 [32]%mkdir -p /util2/si/olivier/repertoire2/sousrep
said1 [33]%cd /util2/si/olivier/repertoire2/
/util2/si/olivier/repertoire2
said1 [34]%ls
sousrep/
said1 [35]%rmdir sousrep
said1 [36]%ls
said1 [37]%

On remarquera l’utilisation de l’option -p qui permet de créer de façon immédiate une arborescence de répertoires.

Afficher le contenu d’un fichier

On peut procéder de plusieurs façons pour afficher un fichier à l’écran. Une méthode consiste à utiliser la commande cat. Le fichier est intégralement affiché à l’écran.

    11.  Localiser un fichier

Il est fréquent d’avoir à retrouver un fichier dont on se rappelle que le nom. L’exploration de l’arborescence à la recherche de ce fichier doit être confié à un utilitaire UNIX, find. Cette commande est très puissante car on peut y associer des actions à effectuer sur les fichiers que l’on a retrouvés.

said1 [37]%find . -name HCA.ps -print
./HCA.ps

find explore l’arborescence à partir du niveau spécifié par chemin et localise les fichiers répondant aux conditions. La condition la plus employée est ­name nom_du_fichier. Il ne faut pas non plus oublier de spécifier la condition ­print sinon find cherchera le fichier, le trouvera mais ne vous dira rien !

Voici d’autres exemples :

Pour trouver tous les fichiers portant l’extension .txt à partir du répertoire courant.

said2 [2]%find . -name '*.txt' -print
./CISCO/_solaris/bin/help/_copyright.txt
./CISCO/_solaris/bin/help/_license.txt
./MORIN/powerPC.txt
./News/images.txt
./RNSM/loumeau.txt
./RNSM/luc.txt
./notes/readme.txt
./rep.txt
./CRACK/Crack-4.1/Docs/readme.txt

Pour trouver les fichiers de taille supérieure à 500 Ko

said2  [7]% find . -size +500000c -print

Pour trouver les fichiers modifiés il y a plus de trois jours

said2 [8]% find / -mtime +3 -print

IV.  Quelques outils d’UNIX :

    1. Le manuel en ligne :

On accède à la documentation grâce à la commande man. On l’utilise d’une façon très simple:

%man sujet

Les pages du manuel en ligne sont subdivisées en catégories suivant les différents types de personnes qu’elles intéresseront: utilisateurs, développeurs, administrateurs système, etc.

said2 [13]%man passwd
passwd(1)                 User Commands                 passwd(1)
NAME
passwd - change login password and password attributes

La commande whatis (ou man -f) permet d’obtenir une description succincte d’une commande UNIX.

said2 [24]%whatis passwd
passwd          passwd (1)      - change login password and password attributes
passwd          passwd (4)      - password file

    2.  LES IMPRESSIONS

Sous UNIX, en fonction du système dont on dispose (Système V ou BSD) les commandes d’impressions ne seront pas exactement les mêmes :

  • PRINTER  sous UNIX BSD
  • LPDEST sous UNIX Système V

           a.   Impression BSD

Sur ce type de système, pour lancer une impression on utilisera la commande : lpr nom_du_fichier.

On peut en cas d’erreur annuler l’impression en tapant lprm numéro_Job.

             b.   Impression Système V

Avec un UNIX basé sur le système V comme Solaris, les choses se passeront d’une façon légèrement différente. On demande l’impression avec la commande lp nom_du_fichier.

              c.   LES RESEAUX

Le courrier électronique

Les applications de courrier électronique permettent de les messages de personnes sur le réseau Internet.

Expédition de courrier

Pour expédier un courrier on tape mail adresse. Le format de l’adresse est le suivant: utilisateur@nom­du­domaine. Si l’on envoie un courrier à quelqu’un sur le même site on peut s’abstenir de fournir le nom du domaine. Le programme demande ensuite de spécifier le sujet du message. Puis le programme passe automatiquement en mode de saisie du corps du message. Pour terminer cette saisie, il faut taper un point en début de ligne suivi d’un retour chariot ou bien taper Ctrl­D.

said1 [28]%mail said2@ens.ma
Subject: Utilisation du programme mail
Voici le corps du message
Une nouvelle ligne
.
EOT

Consultation du courrier

Il suffit de taper mail pour voir apparaître la liste des messages stockés dans la boite. Le prompt du programme mail est le symbole &. Pour lire ses messages les commandes sont print, type. Pour répondre à un mail on tape r ou bien R. Les messages peuvent également être sauvés ou effacés. La commande save numéro­du­message nom­du­fichier sauve le message dans le fichier spécifié.

Pour quitter le programme on tape quit ou bien exit.

said2 [114]%mail
mailx version 5.0 Mon avr 15 21:21:05 PDT 2003  Type ? for help.
"/var/mail/said3": 1 message 1 new
>N  1 said3            Sat feb 19 16:24   14/359   test mail
& type
Message  1:
From said3 Sat feb 19 16:24 MET 2003
Date: Sat, 19 feb 2003 16:24:24 +0200
From: said3
To: said3
Subject: test mail
ceci est un test
& r
To: said3
Subject: Re: test mail
OK j'ai compris

Le transfert de fichiers

ftp (file transfer protocol) est un programme chargé de gérer le transfert de fichiers d’une machine à une autre. Il procède en deux phases : tout d’abord                       l’établissement d’une connexion puis le transfert des fichiers de façon interactive avec l’utilisateur.

Pour transférer des fichiers d’une machine à une autre on utilise la commande ftp. La syntaxe simple en est la suivante: ftp  nom_hôte

Le transfert de fichier peut s’effectuer dans les deux sens, on peut récupérer ou déposer des fichiers. Pour récupérer un fichier on tape get tandis que pour déposer un fichier on tape put.

said2 [16]%ftp said1.ens.ma
-----
Password:
230 User said logged in.
ftp> get licence.dat
200 PORT command successful.
150 ASCII data connection for licence.dat (212.52.39.102,61420) (99 bytes).
226 ASCII Transfer complete.
local: licence.dat remote: licence.dat
101 bytes received in 0.0032 seconds (30 Kbytes/s)
ftp> bye
221 Goodbye.
said2 [17]%

V.  LES SHELLS

    1.  Définition :

Le shell permet une interface entre utilisateur et le système UNIX. Le shell est un programme comme un autre si bien qu’il est très facile de le changer. Ceci a entraîné l’apparition de différents shells. Le shell accepte les lignes de commandes, vérifie la syntaxe, appelle les commandes UNIX appropriées et récupère la main quand la commande a été exécutée. Ses fonctionnalités nous permettront donc:

  • une utilisation interactive d’UNIX
  • la création d’un environnement particulier
  • l’élaboration de programmes (scripts)

Dans le tableau ci-dessous sont présentés les shells les plus populaires

Shell

Binaires

Commentaires

Fichiers spéciaux

Bourne shell /bin/sh Le plus simple .profile
Bourne Again shell /bin/bash Remplacant GNU du Bourne shell .bash_profile .bashrc
Korn shell /bin/ksh Le successeur du Bourne shell .profile
C shell /bin/csh Un shell avec une syntaxe basée sur le langage C .cshrc .login
Toronto C shell /bin/tcsh Le C shell amélioré .tcshrc .cshrc .logout
Z shell /bin/zsh .

Chaque shell se caractérise par une syntaxe différente. Par exemple en ce qui concerne l’affectation des variables, on procédera de la façon suivante:

  • set variable valeur en C shell
  • variable = valeur en Bourne shell

Dans  le choix d’un shell interviendront plusieurs paramètres

  • Les shells disponibles sur la machine
  • L’expérience antérieure
  • Le fait de devoir programmer ou non des scripts portables

En général si l’on souhaite écrire des scripts portables, il est préférable d’utiliser le Bourne shell ou bien un de ses dérivés étant donné qu’il est présent sur tous les systèmes.

    2.  Les caractères spéciaux du shell

Voici une petite liste des caractères spéciaux du shell les plus utilisés. Cette liste n’est bien sûr pas exhaustive.

Caractère

Signification, utilisation -

|

tube (pipe) redirige la sortie standard

<

redirige l’entrée standard

>

redirige la sortie standard

&

 exécute une commande en tâche de fond

?

correspond à un caractère

*

correspond à zéro ou n caractères

;

séparateur de commandes

~

répertoire maison

!

commande history

$var

contenu de la variable var

    3.  Le choix d’un shell

pour la session est déterminé dans le fichier /etc/passwd. Un champ spécial de ce fichier donne le chemin vers le shell qui sera lancé au démarrage d’une session.

sbr [1]%grep said3 /etc/passwd
said3:VnLHpD9UJmie6:101:100:eleve1.eleve2:/util2/si/olivier:/bin/csh

Toutefois, si au cours d’une session on souhaite changer de shell, il suffit de taper le nom du shell souhaité. Dans l’exemple ci-dessous on montre la commutation entre shells.

said4 1% sh
$ tcsh
said4 1% bash
bash$ ksh
$ exit
bash$ exit
exit
said4 2% exit
exit
$ exit
said4 2%

Le symbole $ permet de distinguer entre le nom d’une variable et son contenu ($var signifie contenu de var).

Dans cet exemple on est passé du Cshell au Bourne shell, puis au Toronto C Shell, puis au Bourne again shell, puis au Korn shell. Pour quitter chaque shell on a tapé la commande exit. On remarquera les prompts différents suivant les shells:

  • % avec C-shell et TC-shell
  • $ avec Bourne, Bash et Korn shell

    4.  LE C SHELL

On se contentera par le C shell en tant qu’interpréteur de commandes et gestionnaire d’environnement le plus utilisé sur les machines.

Les fonctionnalités du C shell sont les suivantes:

  • redirection des entrées/sorties
  • existence de variables pour personnaliser son environnement
  • existence d’un historique des commandes
  • possibilité de création d’alias
  • existence de structures de contrôle pour l’écriture de programmes
  • contrôle des processus

          Les fichiers spéciaux

Le C shell utilise des fichiers spéciaux pour contrôler la mise en place des variables de l’environnement de l’utilisateur. Ce sont ces fichiers qu’il faut modifier pour tirer le meilleur parti du shell. Les fichiers spéciaux sont les suivants:

.cshrc        ce fichier est lu et exécuté chaque fois qu’un shell est lancé

.login         ce fichier est lu et exécuté après le .cshrc

.logout       ce fichier est lu et exécuté à chaque logout

Les fichiers .cshrc et .login sont lus à chaque lancement d’un shell (donc d’une session). Le fichier .logout lui est lu à chaque fin de shell (donc de session). Tous ces fichiers vont contenir des instructions à destination du C shell. Ils seront constitués d’appels aux variables prédéfinies ainsi qu’aux variables d’environnement du C shell.

    5.  Les structures de contrôle du C shell

Le C shell dispose comme tous les autres shells de structure de contrôle de flux qui permettront une programmation efficace.

foreach nom(liste_noms )commandeend if (expression)commande
if (expression) thencommandeendif if (expression) thencommandeelsecommandeendif
switch (chaîne)case motif :commandebreakswcase motif2:commandebreakswdefault:commandebreakswendsw while (expression)   commandesend  repeat nb_de_fois commande

Conseil pour Mot de passe

N’oubliez pas que le mot de passe est votre seule protection contre les intrusions et qu’il s’agit de la seule façon de protéger vos données. Voici quelques conseils qui vous permettront de trouver un mot de passe le plus sûr  possible.

  • utiliser des majuscules et des minuscules.
  • utiliser des chiffres et des caractères spéciaux.
  • 7 à 8 caractères de long.

CONCLUSION

Ce cours nous a permis de faire un rapide tour du système UNIX. Malgré son aspect mystérieux et cryptique, UNIX est un système dont la puissance ne peut que le faire apprécier de l’utilisateur. Le seul problème réside dans l’approche plus délicate par rapport à d’autres systèmes. UNIX a été conçu par des programmeurs pour des programmeurs donc pour des personnes utilisant de façon intensive l’informatique. Il regorge d’outils et utilitaires de toutes sortes.

Sources d’erreurs sous UNIX

Voici quelques messages d’erreurs susceptibles d’apparaître lors d’une session de travail avec UNIX.

arguments too long: Ce message apparait quand il y a trop d’arguments sur la ligne de commande. Par exemple avec la commande ls * exécutée dans un répertoire contenant trop de fichiers.
broken pipe Ceci arrive quand lors d’un “pipe” un des programmes en amont s’arrête de façon impromptue.
bus error (core dumped) Gros plantage d’un programme.
command not found On cherche à utiliser une commande qui n’existe pas ou qui ne se trouve pas dans le chemin de son shell ($PATH).
directory not empty On cherche à effacer un répertoire qui contient encore des fichiers
permission denied On a tenté d’exécuter un programme pour lequel on ne possède pas les droits en exécution
segmentation fault (core dumped) Ce message apparait quand le programme que l’on fait tourner tente d’écrire dans une zone mémoire à l’extérieur de l’espace mémoire qui lui a été assigné.

Comments

  1. fernand davy says

    j'ai pour habitude de visiter mais je n'arrive jamais à télécharger les cours dont j'en ai besoin. Mais ce que je retiens des cours est m'aide beaucoup dans mon évolution.Merci à vous

    • admin says

      Cliquez j'aime (dans la zone bleue ) pour commencer le téléchargement!

      le fichier au format ( .doc)

      n'hésitez pas à me contacter pour tout renseignement(<span class="st">Laisser Juste un commentaire</span><span id="result_box" lang="fr"><span class="hps">expliquant</span> <span class="hps">simplement</span> <span class="hps">ce que vous voulez</span><span>, ou même que</span> <span class="hps atn">vous avez besoin d'</span><span>une leçon particulière</span><span>, nous</span> <span class="hps">allons essayer de</span> <span class="hps">vous trouver le</span> <span class="hps">désiré</span></span>)

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>