presentation-unix

Page 1

Pr´ esentation Unix

BTS-DSI KENITRA 2011/2012


Les origines

Unix est n´ e aux laboratoires Bell (Filiale d’ATT). D´ evelopp´ e ` a partir de 1969 par Ken Thompson et Dennis Ritchie pour leurs besoins propres : Objectif : un syst` eme interactif pour des petites machines dot´ es de possibilit´ es comparables aux grands syst` emes. Environnement inspir´ e de Multics et GCOS (Honeywell). D` es 1973 Unix est r´ e´ ecrit ` a 90% en langage C (Cr´ e´ e pour l’occasion par Brian Kernighan et Dennis Ritchie).

1


´ volution E

Unix Version 7 1979

Unix system III 1982

SunOS 3

AIX 4.2 BSD

Ultrix

Unix System V

1983

1983

SunOS 4 4.3 BSD

Bull

Unix System V R3

1986

1986

HP UX

OSF/1 Solaris 2 4.4 BSD FreeBSD

Unix SVR4

1992

1989

IRIX 5

Linux

POSIX

2


La situation actuelle

Syst` eme d’exploitation des stations de travail et des serveurs de base de donn´ ees. Fournisseurs : Digital Equipement, Hewlett Packard, IBM, Silicon Graphics, Sun,. . . Un consortium : X-Open. Deux standards : POSIX (IEEE), X-Open. Un environnement utilisateur : CDE (Common Desktop Environment) X11 + Motif.

Un concurrent : Windows-NT (Microsoft).

3


Structure g´ en´ erale

Shell Outils

Noyau

CPU

Bibliothèques

Programmes utilisateurs

4


Caract´ eristiques principales

Syst` eme d’exploitation • Multi-tˆ aches en temps partag´ e • Multi-utilisateurs • Interactif • Int´ egr´ e aux r´ eseaux Langages de commande • Bourne Shell • Korn Shell • C-Shell Plusieurs centaines d’outils.

5


Outils

• Manipulation de texte • D´ eveloppement de logiciels • Communication • Documentation • Bureautique

6


Le syst` eme de fichiers

Partie la plus importante : (( Tout est fichier )) Quatre types de fichiers : ordinaire donn´ ees, programme r´ epertoire contient d’autres fichiers ou r´ epertoires lien symbolique pointe vers un autre fichier sp´ ecial permet l’acc` es ` a un p´ eriph´ erique Un fichier est repr´ esent´ e par une structure (I-node) qui stocke les informations sur un fichier: taille, droits d’acc` es, dates de cr´ eation, de modification... Le nom n’est qu’un pointeur sur un I-node. Un seul type de fichier ordinaire: flot de caract` eres (8 bits). Les fichiers texte ne sont qu’un cas particulier (lignes s´ epar´ ees par le caract` ere “Line Feed”). Partage des fichiers en r´ eseau : NFS.

7


Fichiers et r´ epertoires

Structure arborescente. R´ epertoire courant: position dans l’arbre ` a partir de laquelle on recherche les fichiers. Un chemin absolu d´ esigne de mani` ere unique un fichier en partant du r´ epertoire racine (/). Le caract` ere (( / )) s´ epare les r´ epertoires. Exemple : /home/matthieu/cours/unix/slides.tex Un chemin relatif d´ esigne un fichier ` a partir du r´ epertoire courant. Caract´ eristiques des noms de fichiers : Majuscules/minuscules ont une signification. Tous les caract` eres sont valides sauf (( / )) et le code ASCII 0. Pas de limitation sur la longueur d’un ´ el´ ement. Longueur totale limit´ ee ` a 1024 caract` eres.

8


L’arborescence Unix

Racine

Fichiers temporaires

Commandes système

Utilitaires

/

bin

dev

Périphériques

etc home

lib

tmp

paul jean .... Bibliothèque Système

usr

bin

lib

Utilisateurs

“..” d´ esigne le r´ epertoire parent. “.” d´ esigne le r´ epertoire courant.

9

man


Les utilisateurs

Chaque utilisateur du syst` eme est identifi´ e par un nom de login auquel est associ´ e : • un mot de passe • un identificateur num´ erique (uid) • un groupe (gid) • un commentaire (identit´ e r´ eelle - GCOS) • un r´ epertoire de travail • un langage de commandes. Stock´ es dans la base de donn´ ees passwd. Les groupes permettent aux utilisateurs de partager l’acc` es ` a certains fichiers. Le super-utilisateur root g` ere tout le syst` eme.

10


Les droits d’acc` es

Trois cat´ egories d’utilisateurs : le propri´ etaire le groupe les autres

Trois types de droits :

Lecture ´ criture E ex´ ecution

u g o

r w x

Pour un fichier les droits sont exprim´ es par une chaˆıne de 10 caract` eres:

tuuugggooo

t : type du fichier :

Fichier ordinaire R´ epertoire Lien symbolique fichier sp´ ecial

d l c ou b

uuu : droits du propri´etaire ggg : droits du groupe ooo : droits des autres Le super-utilisateur a tous les droits.

11


Droits d’acc` es en octal Droits ----x -w-wx r-r-x rwrwx

valeur octale 0 1 2 3 4 5 6 7

L’ensemble des droits est repr´ esent´ e par trois chiffres. Exemples: • 600 rw------• 644 rw-r--r-• 750 rwxr-x---

12


L’acc` es au syst` eme

• depuis un terminal graphique (Clavier, ´ ecran, souris) • depuis un terminal ASCII (console) connect´ e par une ligne s´ erie • par le r´ eseau D´ eroulement: • Un processus moniteur de port attend des demandes de connexion sur chacune de ces entr´ ees en affichant un message. • le programme login demande un mot de passe et v´ erifie sa validit´ e. Il lance le shell dans le r´ epertoire de travail de l’utilisateur. • Lorsqu’une session de travail est finie, l’utilisateur la termine par la commande logout qui termine le shell et rend la main au moniteur de port.

13


Le shell

L’interpr´ eteur de commandes est un processus. • Il affiche un prompt, attend la frappe d’une ligne, analyse cette ligne puis ex´ ecute la ou les commande(s). • Pour ex´ ecuter une commande il cr´ ee un nouveau processus. Il attend la fin du processus cr´ e´ e puis affiche un nouveau prompt. • Pendant la saisie d’une ligne les touches DELETE ou BACKSPACE permettent d’effacer les caract` eres saisis. • Certains shells (Korn Shell, T-CShell) disposent de possibilit´ es interactives plus ´ etendues (historique, compl´ etion. . . ). Le shell dispose de variables et de structures de contrˆ ole qui en font un langage de commande.

14


Les commandes

Le shell d´ ecoupe un ligne en suite de commandes. Les caract` eres ;| et les retours chariot s´ eparent les commandes. La structure g´ en´ erale d’une commande est : commande arguments commande est un nom de fichier. Ce fichier est recherch´ e dans une liste de r´ epertoires d´ esign´ ee par la variable PATH. Si aucun fichier n’est trouv´ e, erreur. arguments est une liste de param` etres passes a la commande. Trois formes possibles : -option -option valeur fichier

option bool´ eenne option avec valeur chemin d’acc` es ` a un fichier

L’analyse des arguments est faite par chaque commande −→ pas de normalisation...

15


Les caract` eres sp´ eciaux du shell

Expansion des noms de fichiers : ? Un caract` ere quelconque * N’importe quelle suite de caract` eres, peut ˆ etre vide. [...] Un caract` ere de la liste. Ex: [A-Z0-9]. [^...] Un caract` ere n’appartenant pas ` a la liste. \ supprime la signification sp´ eciale du caract` ere suivant. (\* = *). Exemples : Si le r´ epertoire courant contient: fich1.bin readme

fich1.txt zzz

fich2.txt

fich10.txt fichier.txt

Alors:

fich1* fich*.txt fich[0-9]*.txt ???

fich1.bin fich1.txt fich10.txt fich1.txt fich2.txt fich10.txt fichier.txt fich1.txt fich2.txt fich10.txt zzz

16


L’historique du c-shell

set history=n m´ emorise n commandes.

history affiche l’historique.

!n r´ eex´ ecute la commande num´ ero n. n = ! → commande pr´ ec´ edente.

!-n r´ eex´ ecute la ni` eme commande pr´ ec´ edente.

!xxx r´ eex´ ecute la derni` ere commande commen¸ cant par xxx.

^xxx ^yyy r´ eex´ ecute la commande pr´ ec´ edente en rempla¸ cant xxx par yyy.

17


Le TCshell

Shell utilis´ e au LAAS : /usr/local/bin/tcsh Ctrl-P ↑

Commande pr´ ec´ edente

Ctrl-N ↓ ESC-P

Commande suivante Rappelle la commande commen¸ cant par le mˆ eme pr´ efixe Curseur vers la gauche Curseur vers la droite D´ ebut de ligne Fin de ligne Transpose les 2 derniers caract` eres D´ etruit le caract` ere sous le curseur Detruit la ligne en cours R´ eaffiche la ligne en cours Efface l’´ ecran Compl` ete le nom de fichier en cours (en fin de ligne) Liste les compl´ etions possibles

Ctrl-B ← Ctrl-F → Ctrl-A Ctrl-E Ctrl-T Ctrl-D Ctrl-U Ctrl-R Ctrl-L TAB Ctrl-D

18


L’environnement

Unix dispose d’un m´ ecanisme de variables d’environnement qui peuvent ˆ etre utilis´ ees pour modifier le comportement des commandes.

printenv permet d’afficher la valeur d’une variable. setenv variable valeur permet de modifier une variable. $VARIABLEpermet d’adresser le contenu d’une variable. Le fichier .login contient les commandes ex´ ecut´ ees au d´ ebut de chaque connexion. Il peut ˆ etre utilis´ e pour positionner les variables d’environnement. Variables standard : USER d´ esigne le nom de login de l’utilisateur HOME d´ esigne le r´ epertoire de login de l’utilisateur PATH sp´ ecifie le chemin de recherche des commandes TERM indique le type de terminal ASCII DISPLAY indique le nom du terminal graphique

19


L’aide en ligne

Unix dispose de toute la documentation de r´ ef´ erence en ligne. La doc est organis´ ee en 9 sections : 1 2 3 4 5 6 7 8 l

Commandes utilisateur Appels syst` eme Fonctions la biblioth` eque standard Formats de fichiers Tables Jeux Drivers de p´ eriph´ eriques Commandes d’administration syst` eme Commandes locales

Visualiser une page du manuel :

man [-s section ] commande Rechercher les pages qui se rapportent ` a un mot-cl´ e:

man -k mot-cl´ e

20


Naviguer dans l’arborescence

pwd Affiche le r´ epertoire courant.

cd chemin Change le r´ epertoire courant.

cd Retourne dans le r´ epertoire de travail de l’utilisateur.

mkdir chemin Cr´ ee un r´ epertoire.

rmdir chemin D´ etruit un r´ epertoire vide.

21


Visualiser des fichiers

ls [-l][chemin ] Liste le contenu d’un r´ epertoire. -l affiche des informations sur chaque fichier. elwood% ls −l drwxr−xr−x −rw−r−−r−− −rw−r−−r−− droits d’accès

2 matthieu 1 matthieu 1 matthieu

ii ii ii

512 Mar 10 15:09 CVS 744 Mar 10 14:17 Makefile 8117 Mar 10 15:23 chap1.tex

propriétaire

nombre de liens

taille(octets) date de dernière groupe modification

nom du fichier

cat chemin... Copie les fichiers sp´ ecifi´ es ` a l’´ ecran.

more chemin... Visualise le fichier ´ ecran par ´ ecran.

od [-x] chemin... Copie le fichier en octal ` a l’´ ecran. l’afficher en hexad´ ecimal.

-x permet de 22


Rechercher de l’information

find r´ epertoire -name nom -print Recherche ` a partir de r´ epertoire tous les fichier dont le nom est nom.

grep expression fichier... Recherche la chaˆıne expression dans les fichiers sp´ ecifi´ es.

23


Manipuler des fichiers

cp [-i] chemin source chemin destination cp [-i] chemin... r´ epertoire Copie de fichier.

mv [-i] chemin source chemin destination mv [-i] chemin... r´ epertoire Changement de nom ou d´ eplacement de fichiers.

rm [-r][-i] chemin D´ etruit un fichier. Si -r, destruction r´ ecursive du contenu du r´ epertoire. -i permet de demander une confirmation ` a l’utilisateur avant de d´ etruire ou d’´ ecraser un fichier existant.

24


G´ erer les droits d’acc` es

chmod [-R] droits chemin ... Change les droits d’acc` es des fichiers sp´ ecifi´ es. -R permet de traverser r´ ecursivement tous les sous-r´ epertoires. droits est de la forme:

u|g|o +|- r|w|x exemple :

chmod g+w exemple.data Les droits peuvent ˆ etre indiqu´ es en octal. Ex: chmod 644 fichier.

chgrp [-R] groupe chemin ... Change le groupe des fichiers sp´ ecifi´ es. -R permet de traverser r´ ecursivement tous les sous-r´ epertoires.

Seul root peut changer le propri´ etaire d’un fichier avec chown.

25


Editer un fichier texte avec vi

vi chemin 2 modes: commande et insertion. En mode commande

h j k l i x dd U :w<RET> :q<RET> :q!<RET> ZZ

d´ eplacement (gauche bas haut droite) passe en mode insertion detruit le caractere sous le curseur detruit la ligne courante (Undo) Restaure la ligne courante sauvegarde le fichier courant quitte vi quitte vi sans sauver sauve le fichier en cours et quitte

En mode insertion

<ESC> <DEL>

repasse en mode commande detruit le caract` ere pr´ ec´ edant

26


Les redirections et les pipes

Chaque commande a : • une entr´ ee standard (clavier) • une sortie standard (´ ecran) • une sortie d’erreur (´ ecran) Redirection de l’entr´ ee :

commande < chemin Redirection de la sortie standard :

commande > chemin Redirection des sorties standard et d’erreur :

commande >& chemin Redirection de la sortie d’une commande vers l’entr´ ee d’une autre :

commande1 | commande2

27


Les filtres

Un filtre est une commande qui prend ses donn´ ee d’entr´ ee sur l’entr´ ee standard et fournit ses r´ esultats sur la sortie standard. Utilis´ es dans des pipes Exemple: tri des lignes d’un fichier

cat /etc/passwd | sort | more Important : tous les processus formant un pipe tournent en mˆ eme temps.

28


Quelques filtres utiles

sort Trie les lignes de l’entr´ ee.

uniq Supprime les lignes identiques dans un fichier tri´ e.

head -n Garde les n premi` eres lignes.

tail -n Garde les n derni` eres lignes.

grep expression Garde les lignes qui contiennent l’expression r´ eguli` ere.

tr liste1 liste2 Remplace chaque caract` ere de liste1 par celui correspondant dans liste2. Ex: tr A-Z a-z remplace les majuscules par des minuscules. 29


Autres outils de base

• awk langage de recherche de chaˆınes de de g´ en´ eration de rapports.

• diff recherche des diff´ erences entre 2 fichiers.

• sed ´ editeur de texte non-interactif (filtre).

• join jointure de 2 fichiers sur un champ.

• comm affichage des parties communes ` a 2 fichiers

30


Imprimantes

setenv LPDEST imprimante Choisi l’imprimante par d´ efaut.

lp fichier... Envoie des fichiers ` a l’imprimante par d´ efaut.

lpstat -o Visualise la file d’attente des imprimantes.

cancel job Enl` eve le job indiqu´ e de la file d’attente.

a2ps fichier ASCII Formatte un fichier ASCII en 2 colonnes par page et l’envoie ` a l’imprimante.

31


Le courrier ´ electronique

Lire ses messages

mailx ? num RET d r R s file q x

liste des commandes disponibles affiche le message num´ ero num affiche le message courant et passe au suivant d´ etruit le message courant et passe au suivant r´ epond ` a l’auteur du message r´ epond ` a tous les destinataires du message sauve le message courant dans un fichier sauve la boite aux lettres dans mbox et quitte quitte sans sauver

Envoyer un message

mailx destinataire Terminer par un point (.) en d´ ebut de ligne.

32


Les processus

Un seul type de processus. Un processus est cr´ e´ e par un autre processus −→ arborescence de processus. Un processus appartient ` a l’utilisateur qui l’a cr´ e´ e. Les processus de root sont les processus syst` eme. init

lpd

getty

telnetd

csh

csh

xterm

matlab

update csh

emacs

csh

ps -ef Liste tous les processus du syst` eme.

33


Les processus (2)

foreground commande qui garde la main pendant son ex´ ecution. Utilise le clavier et l’´ ecran. background commande qui rend la main une fois le processus lanc´ e. Celui-ci continue sans faire d’entr´ ee/sortie au terminal.

commande & Lance un processus en background.

jobs Affiche les processus en background.

kill %job Termine un processus en background.

fg [%job ] Ram` ene un processus en foreground.

34


Les processus (3)

nice commande Ex´ ecute la commande avec une priorit´ e plus faible.

renice priorit´ e processus Change la priorit´ e du processus indiqu´ e.

at date commande ^D Ex´ ecute la commande ` a la date indiqu´ ee.

35


Les signaux

Unix dispose d’un m´ ecanisme d’interruptions logiciel: les signaux. 2 fa¸ cons d’envoyer un signal ` a un processus : • Caract` eres de contrˆ ole :

^C ^Z ^\

envoie SIGINT (interruption) envoie SIGSTOP (supend le process) envoie SIGQUIT (fin)

• la commande kill :

kill [-signal ] processus ... Par d´ efaut, envoie SIGTERM.

36


D´ eveloppement de logiciels

Cycle : ´ dition : • E

vi fichier.c • Compilation :

cc -g -o fichier fichier.c • Ex´ ecution :

fichier Gestionnaire de compilation : make.

37


Bibliographie

• John Levine and Margaret Levine Young, Unix for Dummies, IDG. • Harley Hahn, A Student’s Guide to Unix, McGraw Hill. • Don Libes and Sandy Ressler, Life with Unix - A Guide for Everyone, Prentice Hall. • Paul Abrahams and Bruce Larson, Unix for the Impatient, Addison Wesley. • Daniel Gilly and O’Reilly staff, Unix in a Nutshell, O’Reilly.

39


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.