Si vous utilisiez les fichiers .BAT pour créer des raccourcis
pour de longues lignes de commande (c'est ce que je faisais beaucoup
moi-même), ce but peut être atteint en insérant des
lignes alias appropriées (cf. les exemples ci-dessus) dans
profile
ou .profile
. Mais si vos .BAT étaient plus
compliqués, alors vous aimerez le langage de script que vous
offre le shell : il est aussi puissant que le QBasic, sinon plus. Il a
des variables, des structures comme while, for, case,
if... then... else, et un tas d'autres caractéristiques : il peut
constituer une bonne alternative à un ``vrai'' langage de
programmation.
Pour écrire un script---l'équivalent d'un fichier .BAT
sous DOS---tout ce que vous avez à faire est d'écrire un
fichier ASCII standard contenant les instructions, de le sauver, et de
le rendre exécutable avec la commande chmod +x
<fichierscript>
. Pour l'exécuter, tapez son nom.
Quelques mots de mise en garde. L'éditeur du système est
appelé vi
, et, d'après mon expérience, la
plupart des nouveaux utilisateurs le trouve très difficile
à utiliser. Je ne vais pas expliquer comment l'utiliser, parce
que je ne l'aime pas et que je ne l'utilise pas, alors
voilà. Lisez le ``Linux installation...'' de Math Welsh p. 109
(vous feriez mieux de mettre la main sur un autre éditeur comme
joe
ou emacs
pour X.) Je me contenterai de dire que :
vi
sans sauver, tapez <ESC> puis :q!L'écriture de scripts sous bash
est un sujet tellement
vaste qu'il nécessiterait un livre à lui seul, et je ne
creuserai pas le sujet plus en avant. Je vous donnerai juste un
exemple de script shell, duquel vous pouvez extraire quelques
règles de base :
#!/bin/sh # echantillon.sh # je suis un commentaire # ne changez pas la premiee ligne, elle doit se trouver la echo "Ce systeme est : `uname -a`" # utilise la sortie de la commande 'uname' echo "Je m appelle $0" # variables predefinies echo "Vous m avez donne les $# parametres suivants : "$* echo "Le premier parametre est : "$1 echo -n "Commnt vous appelez-vous? " ; read votre_nom echo notez la difference : "salut $votre_nom" # delimitation par " echo notez la difference : 'salut $votre_nom' # delimitation par ' DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d ${file} ] ; then # si le fichier est un repertoire DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES=`expr $FILES + 1` fi case ${file} in *.gif|*jpg) echo "${file} : fichier graphique" ;; *.txt|*.tex) echo "${file} : fichier texte" ;; *.c|*.f|*.for) echo "${file} : fichier source" ;; *) echo "${file} : fichier generique" ;; esac done echo "il y a ${DIRS} repertoires et ${FILES} fichiers" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # code de sortie de la derniere commande echo "ZxY--!!!WKW not found" fi echo "Ca suffit... tapez 'man bash' si vous voulez plus d infos."
Sous Unix, le langage système est le C, que vous l'aimiez ou le détestiez. Des tonnes d'autres langages (FORTRAN, Pascal, Lisp, Basic, Perl, awk...) sont àgalement disponibles.
En partant du principe que vous connaissez le C, voici quelques
indications pour ceux d'entre vous qui ont été
pourris-gâtés parle Turbo C++ ou l'un de ses
frères du DOS. Le compilateur C de Linux est appellé
gcc
et n'a pas toutes les fioritures qui accopagnent
généralement ses correspondants DOS : pas de IDE, d'aide
en ligne, de debugger intégré etc... C'est just un
compilateur brut en mode ligne de commande, très puissant et
efficace. Pour compiler votre hello.c
standard, vous ferez :
$ gcc hello.c
ce qui va créer un fichier exécutable appelé
a.out
. Pour donner un nom différent à
l'exécutable, faites :
$ gcc -o hola hello.c
Pour linker un pogramme avec une bibliothèque; ajoutez l'option -l<nomdebiblio>. Par exemle, pour linker avec la bibliothèque mathématique :
$ gcc -o mathprog mathprog.c -lm
(L'option -l<nomdebiblio>
oblige gcc
à
linker la bibliothèque
/usr/lib/lib<nomdebiblio>.a
; donc, -lm
renvoie
à /usr/lib/libm.a
.)
Jusque là, tout va bien. Mais lorsque votre programme est
composé de plusieurs fichiers source, vous aurez besoin
de faire appel à l'utilaire make
. Supposons que vous ayez
écrit un analyseur d'expressions : son fichier source s'appelle
parser.c
et inclut ( #include ) deux fichiers d'en-têtes,
parser.h
et xy.h
. Puis vous voulez utiliser les routines de
parser.c
dans un programme, disons, calc.c
, qui inclut
( #include ) à son tour parser.h
. Quel souk ! Comment
devez vous faire pour compiler calc.c
?
Vous aurez à écrire un fichier appelé
makefile
, qui apprend au compilateur les dépendances entre
fichiers objet et fichiers source. Dans notre exemple :
# Voici le makefile, utilise pour compiler calc.c # Pressez la touche <TAB> aux endroits indiques! calc: calc.o parser.o <TAB>gcc -o calc calc.o parser.o -lm # calc depend de deux fichiers objet: calc.o et parser.o calc.o: calc.c parser.h <TAB>gcc -c calc.c # calc.o depend de deux fichiers source parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o depend de trois fichiers source # fin du makefile.
Sauvez ce fichies sous le nom de makefile
et tapez
$ make
pour compiler votre programme; une alternative est de le sauver comme
calc.mak
et de taper
$ make -f calc.mak
Et, bien sûr, LPM.
Vous pouvez invoquer un minimum d'aide à propos des fonctions C, qui sont traitées dans les pages man, section 3, par exemple,
$ man 3 printf
Il y a des tas de bibliothèques disponibles; parmi les premiers
que vous voudrez utiliser il y a ncurses
, qui s'occupe des effets
du mode texte, et svgalib
pour faire du graphique. Si vous vous
sentez de taille à attaquer la programmation X, procurez-vous
XForms
(
bloch.phys.uwm.edu/pub/xforms
) et/ou MGUI
(
www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/index.htm
), deux
bibliothèques géniales qui facilitent la programmation
X. De plus, si vous ne pouvez vous passer d'un IDE à la
Borland, procurez-vous le paquetage xwpe
à partir de
sunsite.unc.edu:/pub/Linux/apps/editors/
. Il y beaucoup
de chances pour que vous l'aimiez.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre