Vous avez entendu dire qu'Unix est difficile et vous �tes h�sitant � la perspective d'abandonner VMS ? Pas de panique. Linux, l'un des meilleurs clones d'Unix, n'est pas plus difficile � utiliser que VMS. En fait, je le trouve m�me plus facile. D'ailleurs, la plupart des gens trouve Linux beaucoup plus puissant et versatile que VMS (�videmment les aficionados de VMS ne sont pas de cet avis).
Linux et VMS sont tous les deux de bons syst�mes d'exploitation et accomplissent essentiellement les m�mes taches. Cependant, les outils de Linux sont � mon humble avis sup�rieurs. Leur syntaxe est souvent plus concise et ils ont souvent les quelques fonctionnalit�s de plus qui font la diff�rence et permettent de gagner du temps (vous entendrez souvent que VMS et Unix ont des philosophies diff�rentes). De plus, Linux est disponible sur les PC alors que ce n'est pas le cas de VMS (les derniers PC �tant d'ailleurs plus puissants que les VAX). Et, cerise sur le g�teau, les excellentes performances des nouvelles cartes graphiques transforment votre tite bo�te Linux, gr�ce � X, en une puissante station de travail graphique bien souvent plus rapide qu'une machine sp�cialement pr�vue pour cette t�che.
J'ai plusieurs raisons de croire que la combinaison Pentium/Linux est pr�f�rable � celle de VAX/VMS, mais ces pr�f�rences sont strictement personnelles et vous ne serez peut-�tre pas d'accord. Vous en d�ciderez de vous-m�me dans quelques mois.
Je prends en hypoth�se que vous �tes une �tudiant ou un chercheur � l'universit� et que vous utilisez r�guli�rement VMS pour les t�ches suivantes :
Dans la section suivante je vais vous expliquer comment faire ces t�ches sous Linux en utilisant votre exp�rience de VMS. Mais avant tout v�rifiez que :
DCL
--- est bash
(demandez � votre administrateur). Notez que ce HOWTO n'est pas suffisant pour faire de vous un linuxien
pur et dur : il contient seulement le strict
n�cessaire pour vous permettre de commencer. Vous devriez
en apprendre plus sur Linux pour pouvoir en tirer le maximum (fonctionnalit�s
avanc�es de bash
, programmation, expressions r�guli�res, etc.).
Les documents du Linux Documentation Project (projet de documentation de Linux), disponibles sur metalab.unc.edu:/pub/Linux/docs/LDP, sont une importante source d'informations.
NDT : je vous sugg�re �galement de lire le Guide du rootard d'�ric Dumas
et plus g�n�ralement tout ce que l'on peut trouver sur
http://www.freenix.fr/linux
et
http://www.traduc.org
.
Et maintenant, c'est parti !
Ce tableau compare les commandes les plus utilis�es sous VMS et Linux. Gardez � l'esprit que leur syntaxe est souvent tr�s diff�rente ; pour plus de d�tails allez faire un tour dans les sections suivantes.
VMS Linux Notes
-------------------------------------------------------------------------------
@COMMAND command (doit �tre ex�cutable)
COPY fichier1 fichier2 cp fichier1 fichier2
CREATE/DIR [.r�pertoire] mkdir r�pertoire (seulement un par un)
CREATE/DIR [.r�p1.r�p2] mkdirhier r�p/r�p
DELETE fichier rm fichier
DIFF fichier1 fichier2 diff -c fichier1 fichier2
DIRECTORY ls
DIRECTORY [...]fichier find . -name fichier
DIRECTORY/FULL ls -al
EDIT fichier vi fichier, (vous n'allez pas l'aimer)
emacs fichier, (compatible EDT)
jed fichier (idem --- mon pr�f�r�)
FORTRAN prog.for g77 prog.f, (pas besoin de lier avec LINK)
f77 prog.f,
fort77 prog.f
HELP commande man commande (la commande doit �tre pr�cis�e)
info commande
LATEX fichier.tex latex fichier.tex
LOGIN.COM .bash_profile, (fichier cach�)
.bashrc (idem)
LOGOUT.COM .bash_logout (idem)
MAIL mail, (un peu cru)
elm, (beaucoup mieux)
pine (encore meilleur)
PRINT fichier.ps lpr fichier.ps
PRINT/QUEUE=laser fichier.ps lpr -Plaser fichier.ps
PHONE utilisateur talk utilisateur
RENAME fichier1 fichier2 mv fichier1 fichier2 (ne marche pas avec des
fichiers multiples)
RUN progname programme
SEARCH fichier "motif" grep motif fichier
SET DEFAULT [-] cd ..
SET DEFAULT [.r�p.r�p] cd r�p/r�p
SET HOST machine telnet machine, (pas exactement pareil)
rlogin machine
SET FILE/OWNER_UIC=paul chown paul fichier (compl�tement diff�rent)
SET NOBROADCAST mesg
SET PASSWORD passwd
SET PROT=(perm) fichier chmod perm fichier (compl�tement diff�rent)
SET TERMINAL export TERM= (la syntaxe est diff�rente)
SHOW DEFAULT pwd
SHOW DEVICE du, df
SHOW ENTRY lpq
SHOW PROCESS ps -ax
SHOW QUEUE lpq
SHOW SYSTEM top
SHOW TIME date
SHOW USERS w
STOP kill
STOP/QUEUE kill, (pour les processus)
lprm (pour supprimer un travail
de la file d'impression)
SUBMIT commande commande &
SUBMIT/AFTER=dur�e commande at dur�e commande
TEX fichier.tex tex fichier.tex
TYPE/PAGE fichier more fichier
less fichier (beaucoup mieux)
Bien s�r, les diff�rences des deux syst�mes ne se limitent pas aux noms des commandes. Continuez donc � lire.
Voila ce que vous devez absolument savoir avant de vous loguer pour la premi�re fois. D�tendez-vous, il y a relativement peu de chose.
fichier.extension.version
.
Sous Linux, le num�ro de version n'existe pas (c'est une grosse limitation mais
on peut la compenser par d'astucieux moyens : jetez un oeil � la section
Num�ros de version sous Linux) ;
les noms des fichiers sont normalement limit�s � 255 caract�res et peuvent
contenir autant de points que vous le d�sirez. Par exemple,
C_est.un.FICHIER.txt
est un nom de fichier valide.
FICHIER.txt
et fichier.txt
sont deux fichiers
diff�rents et ls
est une commande alors que LS
n'en est pas une.
~
�) repr�sente une sauvegarde de fichier (ou
backup).
Maintenant, voici un tableau pr�sentant les correspondances entre les commandes de VMS et celle de Linux en ce qui concerne la gestion des fichiers.
VMS Linux
---------------------------------------------------------------------
$ COPY fichier1.txt; fichier2.txt; $ cp fichier1.txt fichier2.txt
$ COPY [.r�p]fichier.txt;1 [] $ cp r�p/fichier.txt .
$ COPY [.r�p]fichier.txt;1 [-] $ cp r�p/fichier.txt ..
$ DELETE *.dat.* $ rm *dat
$ DIFF fichier1 fichier2 $ diff -c fichier1 fichier2
$ PRINT fichier $ lpr fichier
$ PRINT/queue=imprimante fichier $ lpr -Pimprimante fichier
$ SEARCH *.tex.* "g�ologie" $ grep g�ologie *tex
Regardez en plus loin dans le document pour avoir d'autres exemples. Si vous voulez vous attaquer aux notions de droits, de propri�taires et aux sujets avanc�s, reportez vous � la section Sujets avanc�s.
[p�re.r�p.sousr�p]
. L'�quivalent sous Linux est :
/p�re/r�p/sousr�p/
.
Le p�re de tous les r�pertoires est le r�pertoire racine appel� /
; il
contient d'autres r�pertoires comme /bin
, /usr
, /tmp
,
/etc
, et bien d'autres.
/home
contient les r�pertoires home (NDT :
� home � signifie � maison �) des
utilisateurs : par exemple, /home/pierre
, /home/paul
et ainsi
de suite. Quand un utilisateur se logue, il commence dans son r�pertoire
home ; c'est l'�quivalent de SYS$LOGIN
. Il y a un raccourci
pour le
r�pertoire home : le tilde (� ~
�). Ainsi, cd
~/tmp
est �quivalent �, disons, cd /home/paul/tmp
.
.
:
elle repr�sente le r�pertoire lui-m�me (comme []
) ; l'autre, ..
,
repr�sente le r�pertoire parent (comme [-]
).
Et maintenant quelques autres exemples :
VMS Linux
---------------------------------------------------------------------
$ CREATE/DIR [.r�pertoire] $ mkdir r�pertoire
$ CREATE/DIR [.dir1.dir2.dir3] $ mkdirhier r�p1/r�p2/r�p3
non/disponible $ rmdir r�pertoire
(si le r�pertoire est vide)
$ rm -R r�pertoire
$ DIRECTORY $ ls
$ DIRECTORY [...]fichier.*.* $ find . -name "fichier*"
$ SET DEF SYS$LOGIN $ cd
$ SET DEF [-] $ cd ..
$ SET DEF [p�re.r�p.sousr�p] $ cd /p�re/r�p/sousr�p
$ SET DEF [.r�p.sousr�p] $ cd r�p/sousr�p
$ SHOW DEF $ pwd
Si vous voulez en savoir plus sur les droits, les propri�taires, ou tout simplement en savoir plus tout court, sautez � la section Sujets avanc�s.
.EXE
or .COM
et peuvent s'appeler comme bon vous semble. Les
fichiers ex�cutables sont marqu�s d'un ast�risque (� *
»)
lorsque
vous ex�cutez ls -F
.
RUN
, ni de PROGRAM.EXE
, ni encore de @COMMAND
). Il est donc
n�cessaire que le fichier soit situ� dans un r�pertoire du path, qui est
une liste de r�pertoires. En g�n�ral, le path contient des r�pertoires
comme
/bin
, /usr/bin
, /usr/X11R6/bin
, etc. Si vous
�crivez vos propres programmes, placez-les dans un r�pertoire de votre
path (pour savoir comment, reportez-vous � la section
Configurer). Vous pouvez aussi lancer un programme en indiquant son
chemin complet, par exemple /home/paul/donn�es/monprog
ou
./monprog
si le r�pertoire courant n'est pas dans le path.
OPTION=
sous VMS et gr�ce � -
une_option ou
--
une_option sous Linux, une_option �tant une lettre,
diff�rentes lettres combin�es ou un
mot. En particulier, l'option -R
(r�cursif) de plusieurs commandes de
Linux permet de faire la m�me chose que le [...]
de VMS.
$ commande1 ; commande2 ; ... ; commande
/OUTPUT=
) ou une t�che fastidieuse comme
$ DEFINE /USER SYS$OUTPUT OUT
$ DEFINE /USER SYS$INPUT IN
$ RUN PROG
dont l'�quivalent sous Linux (Unix) est simplement :
$ prog < in > out
Utiliser des pipes est tout simplement impossible sous VMS mais ils jouent
un r�le cl� sous Unix. En voici un exemple typique :
$ monprog < donn�es | filtre1 | filtre2 >> r�sultat.dat 2> erreurs.log &
Traduisons. Le programme monprog
utilise le fichier donn�es
comme
entr�e, sa sortie est canalis�e (gr�ce � |
) vers le programme
filtre1
qui l'utilise en tant qu'entr�e et la traite. La sortie r�sultante
est canalis�e (pip�e) vers filtre2
pour �tre encore une fois trait�e.
La sortie finale
est ajout�e (gr�ce � >>
) au fichier r�sultat.dat
, et les
messages d'erreurs sont redirig�s (gr�ce � 2>
) vers le fichier
errors.log
.
Tout ceci est ex�cut� en arri�re-plan (gr�ce au &
� la fin de la ligne
de commande). Pour en savoir plus � ce sujet, reportez-vous � la section
Exemples.
Pour le multit�che, les files, et tout ce qui s'y rapporte, reportez-vous � la section Sujets avanc�s.
Maintenant vous �tes pr�t pour essayer Linux. Entrez votre identifiant et
votre mot de passe. Attention, Unix distingue les minuscules des majuscules. Ainsi,
si votre login et votre mot de passe
sont pierre
et Mon_Code
, ne tapez pas Pierre
ou
mon_code
.
Une fois que vous �tes logu�, le prompt s'affiche. Il y a des chances
pour que se soit quelque chose du genre
nom_de_la_machine:$
. Si vous voulez le changer ou lancer
des programmes automatiquement, vous devrez �diter le fichier cach�
.profile
ou .bash_profile
(jetez un oeil aux
exemples dans la section
Configurer). C'est l'�quivalent de
LOGIN.COM
.
Appuyer sur
Maintenant, vous voulez peut-�tre lancer le Syst�me X Window (que nous
appellerons maintenant X). X est un environnement graphique similaire
au DECWindows --- en fait, ce dernier d�rive de X. Tapez la commande
startx
et attendez quelques secondes ; vous verrez probablement
s'ouvrir un xterm
ou un autre �mulateur de terminal, et peut-�tre
une barre de boutons (cela d�pend de la mani�re dont votre
administrateur syst�me a configur� votre machine Linux). Cliquez sur le
menu (essayez les deux boutons de la souris) pour voir les menus.
Quand vous utilisez X, vous devez appuyez sur
Tapez la commande suivante pour obtenir une liste du contenu du r�pertoire courant (incluant les fichiers cach�s) :
$ ls -al
Appuyez sur ls
tapez
$ man ls
Appuyez sur q
pour quitter. Pour finir notre tour
d'horizon, tapez exit
pour quitter votre session. Si maintenant
vous voulez �teindre votre PC, appuyez sur
Si vous pensez que vous �tes pr�t pour travailler, allez-y. Mais si j'�tais vous, je passerais d'abord par la section Sujets avanc�s.
EDT
ne tourne pas sous Linux, mais il y a beaucoup d'autres �diteurs
disponibles. Le seul qui soit s�r d'�tre pr�sent sur tout syst�me Unix
est vi
--- oubliez-le, votre administrateur en a s�rement
install� un meilleur. L'�diteur le plus populaire est probablement
emacs
, qui peut �muler EDT
jusqu'� un certain degr� ;
jed
est un autre �diteur qui permet l'�mulation de EDT
.
Ces deux �diteurs sont particuli�rement utiles pour �diter des
sources de programmes puisque qu'ils ont deux fonctionnalit�s
inconnue de EDT
: la coloration syntaxique et l'indentation
automatique. De plus, vous pouvez compilez vos programmes � partir de
l'�diteur (gr�ce � EDT
apr�s.
Si vous avez emacs
, lancez-le. Tout d'abord vous devez comprendre le
syst�me de notation de combinaison de touche d'emacs
. emacs
comme EDT
. � partir de maintenant,
emacs
fait
comme s'il �tait EDT
� part pour quelques commandes :
fg
pour reprendre
votre session emacs ;
Si vous avez jed
, demandez � votre administrateur de le
configurer comme il faut. L'�mulation est active d�s que vous le
lancez. Utilisez les m�me touches que sur EDT
et appuyez sur
emacs
. De plus, il y a quelques
raccourcis pratiques faisant d�faut � EDT
; vous pouvez en plus
configurer ces raccourcis clavier. Demandez � votre administrateur.
Vous pouvez aussi utilisez un autre �diteur avec une interface
compl�tement diff�rente. emacs
en mode natif est un choix
courant. Un autre �diteur populaire est joe
qui peut �muler
d'autres �diteurs comme emacs lui-m�me (en �tant m�me plus facile �
utiliser) ou l'�diteur DOS. Lancez l'�diteur sous le nom jmacs
ou
jstar
et appuyez respectivement sur emacs
et jed
sont beaucoup
plus puissants que ce bon vieux EDT
.
TeX et LaTeX sont identiques � leurs homologues de VMS --- seulement plus
rapides :-), mais les outils pour manipuler les fichiers .dvi
et .ps
sont bien sup�rieurs :
tex file.tex
.
.dvi
en .ps
, tapez dvips -o
fichier.ps fichier.dvi
.
.dvi
, tapez lors d'une session X
xdvi fichier.dvi &
. Cliquez sur la page pour zoomer. Ce programme est
intelligent : si vous �ditez et lancez TeX pour produire une nouvelle version
de votre fichier .dvi
, xdvi
actualisera l'affichage.
.ps
, taper lors d'une session X
ghostview fichier.ps &
. Cliquez sur la page pour zoomer. Le document
entier ou des pages s�lectionn�s peuvent �tre imprim�s. Un programme plus
r�cent et meilleur permet �galement de faire �a : gv
;
.ps
on utilise g�n�ralement la commande
lpr fichier.ps
. Cependant si l'imprimante postscript s'appelle, par
exemple, � ps � (demandez � votre administrateur syst�me), il
faudra faire lrp -Pps fichier.ps
. Pour plus d'informations au sujet des
files d'impressions, allez � la section
Files d'impressions.
Programmer sous Linux est beaucoup plus agr�able : il existe un grand
nombre d'outils qui rendent la programmation plus facile et plus rapide. Par
exemple, la torture qu'est le cycle �dition, sauvegarde, sortie de l'�diteur,
compilation, r��dition, etc. peut �tre raccourci en utilisant des �diteurs
comme emacs
ou jed
, comme nous l'avons vu au dessus.
Il n'y a pas de r�elle diff�rence pour le fortran, mais sachez qu'au
moment o� j'�cris ces lignes, les compilateurs (libres) ne sont pas
totalement compatibles avec ceux de VMS ; attendez-vous � quelques probl�mes
mineurs (en fait, le compilateur de VMS utilise des extensions qui ne sont pas
standard). Jetez un oeil � /usr/doc/g77/DOC
ou
/usr/doc/f2c/d2c.ps
pour plus de d�tails.
Votre administrateur a sans doute install� soit le compilateur natif g77
(bien, mais, au jour de la version 0.5.21, toujours pas parfaitement compatible
avec le Fortran de DEC), soit le traducteur de Fortran en C, f2c
, et un
des ses front-ends qui font de lui une imitation de compilateur natif. D'apr�s
mon exp�rience, le paquetage yaf77
est celui qui donne les meilleurs
r�sultats.
Pour compiler un source en Fortran avec g77
, �ditez le et sauvez le avec
l'extension .f
, et faites
$ g77 monprog.f
Cela va cr�er par d�faut un ex�cutable appel� a.out
(vous n'avez pas �
effectuer les liens). Pour donner � l'ex�cutable un nom diff�rent et faire
quelques optimisations :
$ g77 -O2 -o monprog monprog.f
M�fiez-vous des optimisations ! Demandez � votre administrateur syst�me de lire la documentation fournie avec le compilateur et de vous dire s'il y a des probl�mes.
Pour compiler une sous-routine :
$ g77 -c masub.f
Un fichier masub.o
sera cr��. Pour lier cette sous-routine � un
programme, vous devrez faire
$ g77 -o monprog monprog.f masub.o
Si vous avez plusieurs sous-routines externes et que vous voulez cr�er une biblioth�que, faites
$ cd sousroutines/
$ cat *f > mabib.f ; g77 -c mabib.f
Le fichier mabib.o
cr�� pourra alors �tre li� � vos programmes.
Pour finir, pour lier une biblioth�que externe appel�e, disons,
liblambda.so
, utilisez
$ g77 -o monprog monprog.f -llambda
Si vous avez f2c
, vous n'aurez qu'� utiliser f77
ou fort77
� la place de g77
.
Un autre outil de programmation utile est make
. Il est d�crit ci-dessous.
make
make
est un outil pour g�rer la compilation de programmes divis�s en
plusieurs fichiers sources.
Supposons que vous ayez des fichiers sources contenant vos routines appel�s
fichier_1.f, fichier_2.f et fichier_3.f
, et un fichier source
principal qui utilise ces routines appel� monprog.f
. Si vous compilez
votre programme � la main, quand vous modifierez un fichier source vous allez
devoir chercher quel fichier d�pend de quel fichier, et les recompiler en
tenant compte des d�pendances.
Plut�t que de devenir fou, je vous propose d'�crire un makefile. C'est un fichier texte qui contient les d�pendances entre les sources : quand un source est modifi�, seuls les sources qui d�pendent du fichier modifi� seront recompil�es.
Dans notre cas, le makefile ressemblerait � ceci :
# Voici le Makefile # Attention : appuyez sur la touche tabulation quand � <TAB> � # est �crit ! C'est tr�s important : n'utilisez pas d'espace � la place. monprog: monprog.o fichier_1.o fichier_2.o fichier_3.o <TAB>g77 -o monprog monprog.o fichier_1.o fichier_2.o fichier_3.o # monprog d�pend de quatre fichiers objets monprog.o: monprog.f <TAB>g77 -c monprog.f # monprog.o d�pend de son fichier source fichier_1.o: fichier_1.f <TAB>g77 -c fichier_1.f # fichier_1.o d�pend de son fichier source fichier_2.o: fichier_2.f fichier_1.o <TAB>g77 -c fichier_2.f fichier_1.o # fichier_2.o d�pend de son fichier source et d'un fichier objet fichier_3.o: fichier_3.f fichier_2.o <TAB>g77 -c fichier_3.f fichier_2.o # fichier_3.o d�pend de son fichier source et d'un fichier objet # fin du Makefile
Enregistrez ce fichier sous le nom Makefile
et tapez make
pour
compiler votre
programme. Vous pouvez aussi l'appeler monprog.mak
et taper make -f
monprog.mak
. Et bien s�r, si vous voulez en savoir plus : info make
.
Les scripts shell sont les �quivalents des fichiers de commandes de VMS et, pour changer, sont beaucoup plus puissants.
Pour �crire un script, tout ce que vous avez � faire est d'�crire un fichier au
format ASCII contenant les commandes, l'enregistrer et le rendre ex�cutable
(chmod +x fichier
). Pour le lancer, tapez son nom (pr�c�d� de ./
s'il n'est pas dans le path).
�crire des scripts avec bash
est un sujet tellement vaste qu'il
n�cessiterait un livre entier, et je ne ne vais pas m'attarder sur le
sujet. Je vais juste vous donner un exemple plus ou moins compr�hensible et, je
l'esp�re, utile, � partir duquel vous pourrez comprendre quelques r�gles de
base.
#!/bin/sh # exemple.sh # Je suis un commentaire. # Ne modifiez pas la premi�re ligne, elle doit �tre pr�sente. echo "Ce syst�me est : `uname -a`" # utilise la sortie de la commande echo "Mon nom est $0" # variable interne echo "Vous m'avez donn� les $# param�tres suivants : "$* echo "Le premier param�tre est : "$1 echo -n "Quel est votre nom ? " ; read votre_name echo remarquez la diff�rence : "Salut $votre_name" # cit� avec " echo remarquez la diff�rence : 'Salut $votre_name' # cit� avec ' REPS=0 ; FICHIERS=0 for fichier in `ls .` ; do if [ -d ${fichier} ] ; then # si le fichier est un r�pertoire REPS=`expr $REPS + 1` # REPS = REPS + 1 elif [ -f ${fichier} ] ; then FICHIER=`expr $FICHIER + 1` fi case ${fichier} in *.gif|*jpg) echo "${fichier}: fichier graphique" ;; *.txt|*.tex) echo "${fichier}: fichier texte" ;; *.c|*.f|*.for) echo "${fichier}: fichier source" ;; *) echo "${fichier}: fichier quelconque" ;; esac done echo "Il y a ${REPS} r�pertoires et ${FICHIERS} fichiers" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # valeur de sortie de la derni�re commande echo "ZxY--!!!WKW n'a pas �t� trouv�" fi echo "�a suffit... tapez 'man bash' si vous voulez plus d'informations." echo "Note du traducteur : 'info bash' est plus complet."
Linux est un excellent environnement pour la programmation en C. Si vous
connaissez le C, voici quelques conseils pour vous d�brouiller sous Linux. Pour
compiler le c�l�bre hello.c
vous utiliserez le compilateur gcc
, qui
est standard dans le monde de Linux et qui a la m�me syntaxe que g77
:
$ gcc -O2 -o hello hello.c
Pour lier une biblioth�que � un programme, ajoutez l'option
-lbiblioth�que
.
Par exemple pour lier la biblioth�que math et optimiser faites
$ gcc -O2 -o mathprog mathprog.c -lm
(L'option -lbiblioth�que
force gcc
� lier la biblioth�que
/usr/lib/libbiblioth�que.a
; ainsi -lm
lie /usr/lib/libm.a
.)
Quand votre programme est divis� en plusieurs fichiers sources, vous aurez
besoin
du programme make
d�crit juste au dessus.
Vous pouvez obtenir de l'aide sur quelques fonctions de la libc dans la section 3 des pages man. Par exemple :
$ man 3 printf
Il existe beaucoup de biblioth�ques disponible. Parmi les premi�res que vous
voudrez
probablement utiliser, il y a ncurses
, qui permet de g�rer quelques effets
du mode texte et svgalib
pour faire du graphisme.
Parmi la masse de paquetages de graphiques disponibles, gnuplot
sort du
lot
pour sa puissance et sa facilit� d'utilisation. Cr�ez tout d'abord deux
fichiers de donn�es : 2D-data.dat
(deux donn�es par ligne) et
3D-data.dat
(trois par ligne). Puis, sous X, lancez gnuplot
.
Exemple d'un graphe en 2D :
gnuplot> set title "mon premier graphe"
gnuplot> plot '2D-data.dat'
gnuplot> plot '2D-data.dat' with linespoints
gnuplot> plot '2D-data.dat', sin(x)
gnuplot> plot [-5:10] '2D-data.dat'
Exemple d'un graphe en 3D (chaque � ligne � de x valeurs est suivie d'une ligne vide) :
gnuplot> set parametric ; set hidden3d ; set contour
gnuplot> splot '3D-data.dat' using 1:2:3 with linespoints
Un fichier de donn�es d'une seule colonne (une s�rie de temps par exemple) peut aussi �tre dessin� comme un graphe en 2D :
gnuplot> plot [-5:15] '2D-data-1col.dat' with linespoints
ou en 3D (avec des lignes vides dans le fichier comme au dessus) :
gnuplot> set noparametric ; set hidden3d
gnuplot> splot '3D-data-1col.dat' using 1 with linespoints
Pour imprimez un graphe, si la commande pour imprimer sur votre imprimante
postscript est lpr -Pps fichier.ps
, faites
gnuplot> set term post
gnuplot> set out '| lpr -Pps'
gnuplot> replot
Tapez ensuite set term x11
pour r�afficher sur votre serveur X. Ne soyez
pas d�concert� : la derni�re impression se lancera seulement quand vous
quitterez gnuplot
.
Pour plus d'informations, tapez help
ou regardez le r�pertoire des exemples
(/usr/lib/gnuplot/demos/
) s'il existe.
Du fait qu'Internet est n� sur des machines Unix, on trouve plein d'applications de qualit� et facile d'utilisation sous Linux. En voici quelques-unes :
elm
ou pine
(NDT : mutt est tr�s bien
aussi) pour g�rer votre courrier. Ces deux programmes ont une aide en ligne.
Pour des messages courts, vous pouvez utilisez mail
(mail
-s "Salut" utilisateur@quelquepart < msg.txt
). Vous pr�f�rez peut-�tre d'autres
programmes comme xmail
ou �quivalent.
tin
ou slrn
. Ils sont tous les deux
tr�s intuitifs.
ftp
, demandez � votre
administrateur d'installer l'excellent ncftp
ou un m�me un client
graphique comme xftp
.
netscape
, xmosaic
, chimera
et arena
sont
des browsers graphiques ; lynx
quant � lui utilise la console et est
rapide et pratique.
L�, le jeu devient coriace. Apprenez �a, et ensuite vous pourrez dire que vous � connaissez quelque chose � Linux � ;-)
Les fichiers et les r�pertoires ont des droits et des propri�taires, comme sous VMS. Si nous ne pouvez pas lancer un programme, ne pouvez pas modifier un fichier ou ne pouvez pas acc�der � un r�pertoire, c'est parce vous n'avez pas les droits ad�quats pour le faire et/ou parce que le fichier ne vous appartient pas. Regardez l'exemple suivant :
$ ls -l /bin/ls
-rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls*
Le premier champ indique les droits du fichier ls
. Il y a trois types de
propri�t� : le propri�taire, le groupe et les autres (comme le
propri�taire, le groupe et le reste du monde sous VMS) et trois droits :
lecture, �criture et ex�cution.
De gauche � droite, -
est le type du fichier (-
d�signe un fichier
ordinaire,
d
un r�pertoire, l
un lien, etc.) ; rwx
sont les droits du
propri�taire (lecture, �criture, ex�cution) ; r-x
sont les droits du
groupe du propri�taire (lecture, ex�cution) ; r-x
sont les droits pour
tous les autres utilisateurs (lecture, �criture).
Pour changer les droits d'un fichier :
$ chmod <quiXdroit> <fichier>
Avec qui repr�sentant u
(ce sont alors les droits du propri�taire
qui sont affect�s), g
(ceux du groupe) ou o
(ceux des � autres
�). X est soit +
(dans ce cas il donne les droits), soit -
(il
les enl�ve). Et droit est r
, w
ou x
. Voici un exemple :
$ chmod u+x fichier
Cela permet de rendre le fichier ex�cutable pour le propri�taire. Il existe un
petit raccourci chmod +x fichier
.
$ chmod go-wx fichier
L�, on enl�ve les droits d'�criture et d'ex�cution au groupe et aux autres (donc � tout le monde sauf au propri�taire).
$ chmod ugo+rwx fichier
Tous les droits sont donn�s � tout le monde.
Une mani�re plus courte de pr�ciser les droits se base sur les nombres :
rwxr-xr-x
peut �tre exprim� par 755 (chaque lettre correspond � un bit :
---
vaut 0, --x
1, -w-
2, etc).
Pour un r�pertoire, rx
signifie que vous pouvez vous placer dans ce
r�pertoire et w
que vous pouvez effacer un fichier dans ce r�pertoire (en
tenant compte des droits du fichier �videmment) ou le r�pertoire lui-m�me. Tout
�a n'est qu'une petit partie du sujet : man est votre ami.
Pour changer le propri�taire d'un fichier :
$ chown <utilisateur> <fichier>
Pour r�sumer, voici un tableau :
VMS Linux
------------------------------------------------------------------------------
SET PROT=(O:RW) fichier.txt $ chmod u+rw fichier.txt
$ chmod 600 fichier.txt
SET PROT=(O:RWED,W) fichier $ chmod u+rwx fichier
$ chmod 700 fichier
SET PROT=(O:RWED,W:RE) fichier $ chmod 755 fichier
SET PROT=(O:RW,G:RW,W) fichier $ chmod 660 fichier
SET FILE/OWNER_UIC=JOE fichier $ chown joe fichier
SET DIR/OWNER_UIC=JOE [.dir] $ chown joe rep/
En voici plus � propos de la mani�re de lancer les programmes. Il n'y a pas de file d'attente sous Linux ; le multit�che est g�r� tr�s diff�remment. Voici � quoi ressemble une ligne de commande typique :
$ commande -s1 -s2 ... -sn par1 par2 ... parn < entr�e > sortie &
Maintenant, voyons comment marche le multit�che. Les programmes qui tournent en avant-plan (foreground) ou arri�re-plan (background) sont appel�s des processus.
$ programme [option] [< entr�e] [> sortie] &
[1] 234
Le shell vous donne le num�ro de job (le premier nombre ; regardez
ci-dessus) et le PID (le num�ro du processus). Chaque processus est identifi�
par son PID.
Pour voir combien de processus sont lanc�s :
$ ps -ax
La liste des processus actifs va �tre affich�e.
$ kill <PID>
Vous aurez peut-�tre besoin de tuer un processus quand vous ne savez pas le
quitter de la bonne mani�re... ;-) Parfois, une processus sera seulement tu�
par une des commandes suivantes :
$ kill -15 <PID>
$ kill -9 <PID>
En plus de �a, le shell vous permet de stopper ou de suspendre temporairement
un processus, envoyer un processus en arri�re-plan ou en ramener un en
avant-plan. Dans ce contexte, les processus sont appel�es jobs
.
$ jobs
Les jobs sont identif�s par le nombre que le shell leur donne et non pas
par leur PID.
$ bg <job>
$ fg <job>
$ kill %<job>
Voici plus d'information sur les fichiers.
<
et >
vous redirigez l'entr�e et la sortie vers
un fichier diff�rent. De plus, >>
ajoute la sortie � un fichier � la
place de l'�craser ; 2>
redirige les messages d'erreur (stderr) ;
2>&1 redirige stderr vers stdout, alors que 1>&2
redirige stdout vers stderr. Il y a un � trou noir � appel� /dev/null
: tout ce qui est redirigez vers lui dispara�t.
*
correspond � (et d�signe) tous
les fichiers sauf ceux qui sont cach�s ; .*
correspond � tous les fichiers
cach�s ; *.*
correspond seulement ceux qui ont un � . � au
milieu de leur nom suivi par d'autres caract�res ; l*c
correspondra �
� lo�c � et � luc � ; *c*
correspondra �
� piocher � et � picorer �. %
devient ?
.
Il existe �galement un autre joker : []
. Par exemple :
[abc]*
d�signe les fichiers commen�ant par a, b ou c ;
*[I-N123]
d�signe les fichier finissant par I, J, K, L, M, N, 1, 2 ou 3.
mv
(RENAME
) ne permet pas de renommer plusieurs fichiers d'un
coup. Ainsi, mv *.xxx *.yyy
ne marchera pas.
cp -i
et mv -i
pour �tre pr�venu quand
un fichier va �tre �cras�.
Vos fichiers � imprimer sont plac�s dans une file comme sous VMS. Quand vous lancez une commande d'impression, vous aurez peut-�tre � pr�ciser le nom de l'imprimante. Par exemple
$ lpr fichier.txt # ce fichier est plac� dans la file de l'imprimante standard
$ lpr -Plaser fichier.ps # celui dans celle de l'imprimante � laser �
Pour g�rer la file d'impression utilisez les commandes suivantes :
VMS Linux
------------------------------------------------------------------------------
$ PRINT fichier.ps $ lpr fichier.ps
$ PRINT/QUEUE=laser fichier.ps $ lpr -Plaser fichier.ps
$ SHOW QUEUE $ lpq
$ SHOW QUEUE/QUEUE=laser $ lpq -Plaser
$ STOP/QUEUE $ lprm <num�ro de job>
Votre administrateur syst�me a d� vous fournir certains fichier de
configuration comme .xinitrc
, .bash_profile
et .inputrc
. Ceux
que vous voudrez peut-�tre modifier sont :
.bash_profile
ou .profile
: ce fichier est lu par le shell au
moment du login. C'est l'�quivalent de LOGIN.COM
.
.bash_logout
: celui-ci est lu en fin de session. C'est
l'�quivalent
de LOGOUT.COM
.
.bashrc
: il est lu par les shells non interactifs
.inputrc
: ce fichier configure les r�les des touches du
clavier et le comportement du shell.
Pour vous donner un exemple, j'ai inclus une partie mon .bash_profile
:
# $HOME/.bash_profile # on ne red�finit pas le path si ce n'est pas n�cessaire echo $PATH | grep $LOGNAME > /dev/null if [ $? != 0 ] then export PATH="$PATH:/home/$LOGNAME/bin" # ajoute mon r�pertoire au path fi export PS1='LOGNAME:\w\$ ' export PS2='Continued...>' # alias alias bin="cd ~/bin" ; alias cp="cp -i" ; alias d="dir" alias del="delete" ; alias dir="/bin/ls $LS_OPTIONS --format=vertical" alias ed="jed" ; alias mv='mv -i' alias u="cd .." ; alias undel="undelete" # Quelques fonctions utiles inst() # installe un tarball gzip� dans le r�pertoire courant { tar xvfz $1 } cz() # liste le contenu d'une archive .zip { unzip -l $* } ctgz() # liste le contenu d'un tarball gzip� { for fichier in $* ; do tar tfz ${fichier} done } tgz() # cr�e une archive .tgz � la zip. { nom=$1 ; tar cvf $1 ; shift tar -rf ${nom} $* ; gzip -S .tgz ${nom} }
Et voici mon .inputrc
:
# $HOME/.inputrc # # Ce fichier est lu par bash et d�finit les fonctions attach�s aux touches # par le shell ; ce qui suit permet d'avoir un comportement courant pour # les touches <it/fin/, <it/home/ (la touche au dessus de fin), <it/suppr/ # et les caract�res accentu�s. # Pour plus d'information, man readline. "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line set bell-style visible set meta-flag On set convert-meta Off set output-meta On set horizontal-scroll-mode On set show-all-if-ambiguous On # (F1 .. F5) sont "\e[[A" ... "\e[[E" "\e[[A": "info "
less
Vous utiliserez un tel programme tous les jours, c'est pourquoi je vais vous
donner
quelques astuces pour l'utiliser au mieux. Avant tout, demandez � votre
administrateur de configurer less
pour qu'il puisse afficher non seulement
des fichiers textes mais aussi les fichiers compress�s, les archives, etc.
Comme les derni�res versions de TYPE
, less
vous permet de vous
d�placer dans le fichier dans les deux directions. Il accepte aussi plusieurs
commandes qui
sont lanc�es en appuyant sur une touche. Les plus utilis�s sont :
g
pour aller � cette ligne (par exemple 125g
), un nombre suivi
de %
pour aller � ce pourcentage du fichier ;
/motif
recherche vers l'avant le motif ; n
recherche vers
l'avant la l'occurrence suivante ; ?pattern
et N
font la m�me chose
vers l'arri�re ;
m
suivi d'une lettre marque la position courante (par exemple
ma
) ;
'
suivi de la m�me lettre rappelle cette position ;
:e
ouvre un autre fichier ;
!commande
ex�cute un shell.
H�las, Linux ne supporte toujours pas les num�ros de version nativement. Cependant, on peut r�gler ce probl�me de deux mani�res. La premi�re est d'utiliser RCS (Revision Control System) qui vous permet de garder la trace des pr�c�dentes versions d'un fichier. RCS est trait� dans Le mini-Howto RCS.
La seconde est d'utiliser un �diteur qui sait traiter les num�ros de version.
emacs
ou joe
feront l'affaire. Pour emacs, ajoutez ces lignes dans
votre .emacs
.
(setq version-control t) (setq kept-new-versions 15) ;;; ou toute autre valeur (setq kept-old-versions 15) (setq backup-by-copying-when-linked t) (setq backup-by-copying-when-mismatch t)
Pour jed, v�rifiez que vous avez une version sup�rieure � la 0.98.7. Le patch
pour les num�ros de version est disponible sur
http://ibogeo.df.unibo.it/guido/slang/backups.sl
Sous Unix il existe quelques applications tr�s r�pandues qui sont utilis�s pour
archiver et compresser des fichiers. tar
est utilis� pour faire des
archives (c'est � dire un regroupement de fichiers). Pour faire une
archive :
$ tar -cvf <archive.tar> <fichier> [fichier...]
Pour extraire des fichiers d'une archive :
$ tar -xpvf <archive.tar> [fichier...]
Pour lister le contenu d'une archive :
$ tar -tf <archive.tar> | less
Les fichiers peuvent �tre compress�s en utilisant compress
ou gzip
.
compress
est aujourd'hui obsol�te et on n'utilise plus que gzip
.
$ compress <fichier>
$ gzip <fichier>
Ceci cr�era un fichier compress� avec l'extension .Z (pour compress
)
ou .gz (pour gzip
). Ces programmes ne font pas d'archives mais compressent
des fichiers individuellement. Pour d�compresser utilisez
$ compress -d <fichier.Z>
$ gzip -d <fichier.gz>
Faites un tour du c�t� de leurs pages man.
Les utilitaires unarj
, zip
et unzip
sont aussi disponibles.
Les fichier avec l'extension .tar.gz
ou .tgz
(archiv�s par tar
,
puis compress�s par gzip
) sont
tr�s communs dans le monde Unix. Voici comment lister le contenu d'une telle
archive :
$ tar -ztf <fichier.tar.gz> | less
Pour extraire les fichiers � partir d'un .tar.gz
:
$ tar -zxf <fichier.tar.gz>
Le principe central d'Unix est qu'il existe plusieurs commandes simples qui peuvent �tre li�es ensemble gr�ce aux pipes et aux redirections pour accomplir des t�ches plus compliqu�es. Regardez les exemples suivants (je n'expliquerai que les plus compliqu�s ; pour les autres, reportez vous aux sections pr�c�dentes ou aux pages man).
ls
est trop rapide et je ne peux pas lire le nom de tous
les fichiers.
$ ls | less
$ cat fichier.txt | sort -r | lpr
$ sort fichier.dat | uniq > nouveaufichier.dat
$ find ~ -name "papier*"
Expliquons. find
est une commande tr�s utile qui liste tous les fichier
dans une arborescence (qui commence � partir du r�pertoire home dans ce
cas). Sa sortie peut-�tre filtr�e selon plusieurs crit�res comme par exemple
-name
.
SEARCH
?
Bien s�r, essayez cela :
$ grep -l 'entropie' *
search entropy [...]*.*.*
, mais grep
n'est pas r�cursif.
$ find . -exec grep -l "entropy" {} \; 2> /dev/null
find .
sort tous les noms des fichiers � partir du
r�pertoire courant, -exec grep -l "entropy"
lance une commande sur chacun
des fichiers (repr�sent�s par {}
), \
termine la
commande). Si vous pensez que la syntaxe est horrible... vous avez raison :-)
Vous auriez aussi pu �crire le script suivant :
#!/bin/sh # rgrep: grep r�cursif if [ $# != 3 ] then echo "Utilisation : rgrep <param�tres> <motif> <r�pertoire>" exit 1 fi find $3 -name "*" -exec grep $1 $2 {} \; 2> /dev/null
grep
marche comme SEARCH
et combin� avec
find
nous obtenons le meilleur des deux mondes.
$ awk 'NL > 2 {print $2, "\t", $5}' fichier.dat > nouveaufichier.dat
awk
est en fait un langage de programmation. Pour chaque ligne � partir de
la troisi�me, on affiche le second et le cinqui�me champ en les s�parant par
une tabulation. Apprenez � vous servir de awk --- il vous fera gagner beaucoup
de temps.
ls-lR.gz
d'un FTP. Pour chaque sous
r�pertoire, il y a une ligne � total x �, avec x la
taille en Kilo-octets du r�pertoire. J'aimerais avoir le total de toutes ces
valeurs.
zcat ls-lR.gz | awk ' $1 == "total" { i += $2 } END {print i}'
zcat
sort le contenu du fichier .gz
. La sortie est envoy�e
vers awk dont je vous recommande chaudement de lire la page man.
monprog
, pour
calculer un param�tre � partir d'un fichier de donn�es. Je voudrais le lancer
sur des centaines de fichiers et avoir la liste des r�sultats, mais c'est une
calamit� de demander chaque fois le nom du fichier. Sous VMS, j'aurais �crit un
long fichier de commande. Et sous Linux ?
Un script tr�s court. Faites votre programme pour qu'il cherche
le programme mesdonn�es.dat et pour qu'il afficher le r�sultat sur l'�cran
(stdout) et �crivez ensuite ce petit script :
#!/bin/sh # monprog.sh: lance la m�me commande sur plusieurs fichiers # usage: monprog.sh *.dat for fichier in $* # pour tous les param�tres (e.g. *.dat) do # ajouter le nom du fichier dans r�sultat.dat echo -n "${fichier}: " >> r�sultats.dat # copie le param�tre courant dans mesdonn�es.dat et lance monprog # et ajoute le sortie � r�sultats.dat cp ${fichier} mesdonn�es.dat ; monprog >> r�sultats.dat done
#!/bin/sh # remplace $1 par $2 dans $* # utilisation : remplace "vieux-motif" "nouveau-motif" fichier [fichier...] VIEUX=$1 # premier param�tre NOUVEAU=$2 # second shift ; shift # enlever les deux premier param�tres ; les suivants sont # les noms des fichiers for fichier in $* # pour tous les fichier donn�s en param�tres do # remplace toutes les occurrences de VIEUX par NOUVEAU et sauve cela # dans un fichier temporaire sed "s/$VIEUX/$NOUVEAU/g" ${fichier} > ${fichier}.nouveau # renommer le fichier temporaire /bin/mv ${fichier}.new ${fichier} done
#!/bin/sh # prune.sh: efface les n-1�me et n-2�me ligne de fichiers # utilisation : prune.sh fichier [fichier...] for fichier in $* # pour chaque param�tre do LIGNES=`wc -l $fichier | awk '{print $1}'` # nombre de ligne dans fichier LIGNES=`expr $LIGNES - 3` # LIGNES = LIGNES - 3 head -n $LIGNES $fichier > $fichier.new # sort les premi�res lignes # de LIGNES tail -n 1 $fichier >> $fichier.new # ajoute la derni�re ligne done
ed
:
#!/bin/sh # prune.sh: efface les n-1�me et n-2�me ligne de fichiers # utilisation : prune.sh fichier [fichier...] for fichier in $* # pour chaque param�tre do printf '$-2,$-1d\nw\nq\n' | ed -s $fichier done
J'esp�re que ces exemples vous auront ouvert l'app�tit.
less un_nom_de_fichier_tr�s_long
. Il vous suffira
de taper less un
puis d'appuyer sur tabulation (si vous avez plusieurs
fichier qui commencent par les m�mes caract�res tapez-en assez pour r�soudre
l'ambigu�t�).
more
ou un
cat
sur un fichier binaire votre �cran pourra se retrouver plein de
symboles bizarres. Pour arranger les choses, � l'aveuglette tapez
reset
ou cette s�quence de caract�res : echo ctrl-v Echap c Entr�e
.
gpm
, un driver pour la souris en mode texte. Cliquez et
glissez pour s�lectionner du texte et ensuite appuyez sur le bouton droit pour
coller le texte s�lectionn�. �a marche entre plusieurs consoles virtuelles.
xterm
et cliquez ensuite sur le bouton du milieu (ou les deux
boutons) pour coller.
(Cette section a �t� �crite par Mike Miller)
De temps en temps vous pourrez �tre amen� � lire des bandes enregistr�es � partir d'une machine sous VMS (ou des bandes enregistr�es pour �tre lisibles sous VMS et les syst�mes Unix). En g�n�ral, c'est assez facile pour les bandes DECFILES11A.
Bien que l'on puisse lire ceci comme une partie d'un mini-HOWTO Linux, je crois
que les informations ici pr�sent�es sont appliquables � tout syst�me Unix
-- j'ai fait cela avec Linux et les syst�mes Unix d'HP, de SUN et de DEC. La
principale d�pendance � la plate-forme est le nom des
fichiers p�riph�riques qui peuvent varier d'un syst�me � l'autre, et les
options de mt
pour sp�cifier le nom du p�riph�rique (par exemple, mt
-f
avec Linux et mt -t
sur HPUX 9).
Avertissement : j'ai seulement essay� cela avec des lecteurs de bande Exabyte 8 mm SCSI. Si vous avez lu d'autres formats (vous avez encore des lecteurs 9 pistes qui tra�nent quelque part ?), faites-le moi savoir et je les ajouterai.
Pour lire une bande qui a �t� �crite avec la commande copy
de VMS
(ou une commande compatible) tout ce que vous devez savoir est que, pour
chaque fichier effectif, il y aura trois fichiers de donn�es sur la bande : une
ent�te, les donn�es et une terminaison. L'ent�te et la terminaison
sont int�ressantes car elles contiennent des informations sur le fichier tel
qu'il �tait sous VMS. Le fichier de donn�es est... le fichier de donn�es.
Chacun de ces fichiers peut �tre extrait de la bande avec la commande dd. La
bande peut �tre positionn�e en utilisant la commande mt
.
Prenons un exemple. J'ai une bande VMS. Les deux premiers de ses fichiers
�taient appel�s ce66-2.evt
et ce66-3.evt
sur le syst�me VMS. Le label
de la bande est c66a2.
Si j'ex�cute les commandes suivantes
$ dd if=$TAPE bs=16k of=ent�te1 $ dd if=$TAPE bs=16k of=donn�e1 $ dd if=$TAPE bs=16k of=terminaison1 $ dd if=$TAPE bs=16k of=ent�te2 $ dd if=$TAPE bs=16k of=donn�e2 $ dd if=$TAPE bs=16k of=terminaison2
je me retrouve avec six fichiers : ent�te1
, donn�e1
,
terminaison1
, ent�te2
, donn�e2
et terminaison2
. La syntaxe
ici est if="fichier d'entr�e"
, bs="taille des blocs"
et
of="fichier de sortie"
. TAPE doit �tre une variable d'environnement
contenant le nom du p�riph�rique de votre lecteur de bande --- par exemple
/dev/nts0 si vous utilisez le premier disque SCSI sous Linux.
Si vous aviez voulu r�cup�rer le second fichier, mais pas le premier, sous son non d'origine, vous n'auriez pas eu � vous pr�occuper de l'ent�te :
$ mt -f $TAPE fsf 4 $ dd if=$TAPE bs=16k of=ce66-2.evt $ mt -f $TAPE fsf 1
Notez le 4. Il permet de sauter trois fichiers pour le premier fichier et un
pour l'ent�te du deuxi�me. Le second mt
saute la seconde terminaison et
positionne la bande au d�but du prochain fichier : la troisi�me ent�te. Vous
pouvez aussi utilisez mt
pour sauter des fichiers en arri�re (bsf
),
rembobiner (rewind
) ou d�charger la bande (offline
, rewoffl
).
Les fichiers d'ent�tes et de terminaisons contiennent des donn�es ASCII en majuscules utilis�es par VMS pour stocker des informations sur le fichier comme par exemple la taille des blocs. Ils contiennent aussi le nom du fichier, ce qui peut �tre utile si vous voulez faire des scripts qui lisent automatiquement des fichiers ou recherchent un fichier particulier. La premi�re ent�te de la bande est un peu diff�rente des suivantes.
L'en-t�te du premier fichier de la bande (comme par exemple dans l'exemple
ci-dessus) d�bute par la cha�ne � VOL1 �. Suit le nom de volume.
Dans notre exemple, le fichier ent�te1
commence par
� VOL1C66A2 �. Vient ensuite une s�rie d'espace termin�e par un
chiffre. Apr�s, on trouve la cha�ne � HDR1 � qui indique que l'on a
� faire � un fichier d'ent�te. Les caract�res qui suivent
imm�diatement la cha�ne � HDR1 � forment le nom du fichier VMS.
Dans l'exemple, cette cha�ne est � HDR1CE66-2.EVT �. Le prochain
champ est le nom du volume.
Le champs initial des autres fichiers (c'est-�-dire tous sauf le premier de la bande) est quelque peu diff�rent. � VOL1 � n'est pas pr�sent. Le reste est identique. Un autre champ utile est le septi�me. Il se termine par � DECFILES11A �. C'est un signe de conformit� au standard DEC Files11A.
Champ Ent�te initiale Ent�tes suivantes
1 VOL1 + nom du volume HDR1 + nom du fichier
2 HDR1 + nom du fichier Nom du volume
3 Nom du volume ...
4 ... ...
5 ... ...
6 ... DECFILES11A
7 DECFILES11A
Pour une documentation compl�te sur le format de l'ent�te et de la terminaison, voyez la documentation DEC FILES11 (sur le mur gris/orange --- demandez � votre communaut� VMS locale :-).
Dans l'exemple, j'ai utilis� une taille de bloc de 16 ko. Sur un syst�me Unix,
il n'y a pas de taille de bloc associ�e � un fichier sur un disque alors que,
sous VMS, chaque fichier � une taille de bloc sp�cifique. Cela veut dire que la
taille du bloc importe peu sous linux... sauf que cela rend la lecture des
bandes plus compliqu�e. Si vous avez des difficult�s pour trouver la taille du
bloc et pour lire une bande, vous pouvez essayer de r�gler la taille de bloc
mat�rielle de votre lecteur de bande en utilisant mt -f $TAPE setblk 0
. La
syntaxe exacte de l'option setblk (et sa disponibilit�) d�pend de la version de
mt
, de l'interface mat�rielle de votre lecteur de bande et de votre
environnement Unix.
(Merci � Wojtek Skulski pour avoir signal� l'option setblk.)
Sauf indication contraire, les droits d'auteur des HOWTO Linux sont d�tenus par leurs auteurs respectifs. Les HOWTO Linux peuvent �tre reproduits et distribu�s, en totalit� ou en partie, sur tout m�dia physique ou �lectronique dans la mesure o� ce copyright est pr�serv� dans chaque copie. La distribution commerciale en est autoris�e et encourag�e. L'auteur appr�cierait toutefois qu'on lui notifie individuellement ce genre de distribution.
Le pr�sent copyright doit couvrir toute traduction, compilation et autre travail d�riv� des HOWTO Linux. C'est-�-dire qu'il est interdit d'imposer des restrictions de diffusion allant au del� du pr�sent copyright � des ouvrages inspir�s, ou incorporant des passages, de HOWTO Linux. Sous certaines conditions, des exceptions � ces r�gles seront tol�r�es : contactez le coordinateur des HOWTO � l'adresse donn�e ci-dessous.
Pour r�sumer, nous souhaitons une diffusion aussi large que possible de ces informations. N�anmoins, nous entendons garder la propri�t� intellectuelle (copyright) des HOWTO, et appr�cierions d'�tre inform�s de leur redistribution.
Pour toute question plus g�n�rale, merci de contacter le coordinateur des HOWTO, Guylhem Aznar, � l'adresse �lectronique linux-howto@sunsite.unc.edu par email.
Ce travail a �t� �crit d'apr�s l'exp�rience que nous avons eue au Settore di Geofisica of Bologna University (Italie), ou un VAX 4000 a �t� remplac� par un Pentium tournant sous Linux. La plupart de mes coll�gues sont des utilisateurs de VMS, et certains d'entre eux l'ont abandonn� pour Linux.
Le HOWTO Comment migrer de VMS � Linux a �t� �crit par Guido Gonzato et Mike Miller qui a �crit la partie sur la lecture des bandes VMS. Merci beaucoup � mes coll�gues et amis qui m'ont aid� � d�finir les besoins et les habitudes de l'utilisateur lambda de VMS, et particuli�rement au Dr. Warner Marsocchi.
S'il vous pla�t, aidez moi � am�liorer ce HOWTO. Je ne suis pas un expert de VMS et je n'en serai jamais un. C'est pourquoi vos suggestions et reports de bogues seront plus que bienvenus.
Amusez-vous bien,
Guido =8-)