Ce document présente quelques commandes pour démarrer
avec UNIX. La version
d'UNIX installée est DIGITAL UNIX version 3.2C
- Connexion
- Les fichiers et les répertoires
- Editeur de texte
- Impression
- Langage de commande ou shell
- redirection des entrée-sortie
- Rappel te édition des commandes
- Compléter le nom du fichier
- Aide en ligne
- Quelques trucs et utilitaires
- Compilation
- Exécution d'un programme
- Messagerie
- Réseau
- Outils Internet
- X-windows
- Joe
- Emacs
0. Caractères spéciaux
+--------------------------------------------------------------------------+ Escape s'obtient sur un VT300 en appuyant simultanément sur les touches +------+ +------+ +-----+ | Ctrl | | MAJ. | | 3 | | | | min. | | " | +------+ +------+ +-----+ +--------------------------------------------------------------------------+ En X-window, la touche F11 est programmée pour obtenir Escape Si vous avez tapé CTRL Z par erreur, tapez fg pour reprendre la main. En effet CTRL Z suspend le process, fg foreground réactive le process. Le caractère Fin-de-fichier s'obtient en appuyant sur CTRL D (End Of Text) CTRL C stoppe le programme en cours d'exécution.
Les métacaractères regroupent les caractères servant à la redirection des
entrée-sortie et d'autres caractères (~,&,=,\,{,},%,#,etc...)
Sous UNIX, les caractères de substitutions (jokers) sont interprétés de
façon différente par les commandes. Par exemple, ls * donne la liste de tous
les fichiers du répertoire et des répertoires immédiatemment en dessous, par
contre wc * ne traite que les fichiers du répertoire courant. Voir plus loin
les caractères utilisés avec la commande ls.
Quelques métacaractères
$ interprétation d'une variable
\ le caractère qui suit perd son sens spécial et est interprété tel quel
\ en fin de ligne, signifie que la commande continue à la ligne suivante
; séparateur de commandes. Il permet de donner plusieurs commandes en une
seule fois.
& permet d'exécuter la commande en arrière plan
# délimiteur de commentaire
? représente un caractère quelconque dans un nom de fichier
| tube ou pipe. Il sépare deux commandes. Les sorties de la première sont
dirigées sur les entrées de la seconde.
&& Séparateur de commandes. La commande suivant && ne s'exécute que si la
précédente a réussi (status ou exit value nul)
|| idem si la commande a échoué (status ou exit value non nul)
Sous UNIX vous avez accès à différents langages de commandes appelés shell
notamment le Bourne shell (sh), le C shell (csh), et le Korn shell (ksh)
Nous présenterons ici le Bourne shell et le Korn shell.
ksh reprend toutes les fonctionnalités de sh plus certaines de csh.
Attention! UNIX est sensible aux minuscules et majuscules. Tenez en compte quand vous donnez votre loginname et password. La correction d'un caractère se fait soit par la touche DEL soit par CTRL-H. Avec telnet, il faut utiliser CTRL-H.
onzon> id uid=6003(test) gid=600(criter)
onzon> who am i berlier ttyp3 Nov 21 09:52
onzon> finger berlier Login name: berlier In real life: Jean Marc BERLIER Directory: /home/criter/berlier Shell: /bin/ksh On since Nov 21 08:55:36 on ttyp0 from 161.3.1.58 No Plan.Si un fichier .plan existe dans le répertoire de berlier, son contenu est affiché.
Les noms de fichiers comportent n'importe quels caractères sauf / qui indique le passage au répertoire. Il est conseillé d'éviter les métacaractères dans les noms de fichiers. Si vous avez des fichiers en provenance de VMS dont le nom comporte un point virgule, vous pouvez encadrer le nom du fichier par des guillements pour le renommer par exemple: mv "ED.TXT;1" ed.txt La syntaxe d'un nom de fichier est: /répertoire1/répertoire2/fichier Si le nom du fichier commence par un point, il ne sera pas dans les listes fournies par la commande ls. Ce sera un fichier caché. Exemple de fichiers cachés: .login personnalisation de l'environnement C shell au login .cshrc personnalisation du C shell au lancement du shell .profile personnalisation du Bourne shell et Korn shell au login .. indique le répertoire au dessus . indique le répertoire courant ~pierrot indique le répertoire d'accueil de l'utlisateur pierrot Le nombre de fichiers et l'espace disque utilisés sont limités par des quotas. /usr/sbin/vquota vous donne les quantités utilisées et les limites.
cd doc Change Directory vous place dans le sous-répertoire doc cd cd $home cd ~/ vous replace dans votre répertoire d'accueil (ksh). cd .. vous place dans le répertoire au dessus cd $OLDPWD vous place dans le répertoire précédemment accédé par cd voir aussi la variable CDPATH qui permet de retouver un répertoire dans une hiérarchie de répertoire par exemple: Si il existe un répertoire ~/comp/fortran, si on a défini CDPATH par CDPATH=~/bin:~/comp, alors cd fortran, nous placera dans le répertoire fortran trouvé dans les répertoires donnés dans CDPATH pwd vous donne le répertoire courant à partir de la racine (Print Working Directory)
find ~/ -name '*.c' -print
donnera la liste de tous vos fichiers *.c
find permet aussi d'exécuter des commandes (-exec)
find ~/ -name 'joe*' -exec file {} \;
recherchera tous les fichiers joe* et donnera les informations relatives
attention le blanc entre } et \ est obligatoire.
find ~/ -mtime +5 -print
donnera le nom de tous les fichiers modifiés depuis plus de 5 jours
-atime pour les fichiers accèdés
find ~/ -mtime -1 -print
donne la liste des fichiers modifiés depuis moins d'un jour
cp fichier_source fichier_destination si le fichier destination existe, il est écrasé. cp -i fichier_source fichier_destination si le fichier destination existe, il faudra confirmer cp `ls -A` ./toto copie dans le sous répertoire toto tous les fichiers listés par la commande ls -A cp -p fichier_source fichier_destination copie en conservant les dates de mofifications et accès, le propriétaire et les protections. mv ancien_fichier nouveau_fichier renomme le fichier. Si nouveau_fichier existe, il est écrasé. mv -i ancien_fichier nouveau_fichier le fichier est écrasé après confirmation mv -- -fic afic permet de renommer le fichier -fic en afic
rm -i *.c destruction avec confirmation des fichiers *.c rm -ie *.c destruction après confirmation avec message si le fichier est supprimé répondre y ou o pour détruire le fichier selon la valeur de la variable LANG. Par défaut cette variable n'est pas positionné, il faut donc répondre y
grep texte mon.fichier.txt recherche et affiche les lignes contenant "texte" dans le fichier "mon.fichier.txt" grep -n '^Le' mon.fichier.txt recherche et affiche les lignes commençant par "Le" en numérotant les lignes grep -ni '^Le' mon.fichier.txt idem mais sans tenir compte des majuscules et minuscules
page mon.fichier more mon.fichier more et page ne savent pas traiter les c. 8 bits si LANG n'est pas défini setenv LANG fr_FR.ISO8859-1 (csh) LANG=fr_FR.ISO8859-1;export LANG (sh ksh) Vous pouvez utiliser les procédures morefr et viewfr pour lancer more et view avec LANG défini correctement. barre d'espacement passe à l'écran suivant q quitte more h donne une aide sur more g affiche à partir de la ligne 1 G affiche les dernières lignes /hello affiche à partir de la ligne contenant hello n affiche à partir de la prochaine ligen contenant hello view mon.fichier (fait appel à VI, :q pour sortir) cat mon.fichier cat -n mon.fichier numérote les lignes pg mon.fichier od -a mon.fichier (Octal Dump en ASCII) od -h mon.fichier (Octal Dump en hexadécimal) Attention! à l'inversion la chaine de caractères 45 se dumpe 3534 onzon> more e.txt AZERTY 123456 onzon> od -h e.txt 0000000 5a41 5245 5954 310a 3332 3534 0036 0000015 onzon> od -cx e.txt 0000000 A Z E R T Y \n 1 2 3 4 5 6 5a41 5245 5954 310a 3332 3534 0036 0000015 onzon> file nom.fichier file donne à quel type de fichier appartient le fichier onzon.berlier> file .profile .profile: commands text onzon.berlier> file /usr/local/bin/joe /usr/local/bin/joe: COFF format alpha dynamically linked, demand paged executable or object module stripped - version 3.11-8 diff fic1 fic2 donne les différences entre les fichiers fic1 et fic2 < indique les lignes du 1er fichier > indique les lignes du 2ième fichier
compress fichier uncompress fichier.Z zcat vtmail_1_1.tar.Z | tar xvf - décompresse le fichier vtmail_1_1.tar.Z puis désarchive le fichier ainsi décompressé. voir aussi gzip
mkdir jmb crée un répertoire jmb rmdir jmb détruit le répertoire jmb. Le répertoire doit être vide. rm -r jmb détruit le répertoire jmb et tout son contenu.
du
donne tous les répertoires avec leur taille en bloc de 512 octets
du -a
donne la taille de toute l'arborescence
du -as
donne la taille totale
ls
donne la liste des fichiers sauf ceux commençant par un point
ls -sa
donne la taille en octets (size), le nom de tous (all) les fichiers
ls doc/*.{doc,txt}
donne les noms de tous les fichiers .doc et .txt du répertoire doc
ls -al
donne tous les noms de fichiers en format détaillé (long)
le type d (directory) - (fichier ordinaire) l (lien symbolique)
les protections (rwx rwx rwx) pour le propriétaire, le groupe, les autres
le nombre de liens physiques
le propriétaire
le groupe
la taille en octets
le mois, le jour, l'heure de la dernière modification
le nom
ls -l | grep '^d'
donne la liste des répertoires
onzon> ls -l *.man
-rw-r--r-- 1 berlier criter 9435 jan 9 16:08 ls.man
-rw-r--r-- 1 berlier criter 11615 jan 9 14:12 tset.man
ls -R
donne la liste des fichiers du répertoire et des sous-répertoires
ls -alt
liste triée par date de dernière modification
ls -talu
liste triée par date du dernier accès aux fichiers
ls -aF
donne la liste de tous les fichiers avec leur type.
/ pour un répertoire
* pour un fichier exécutable
@ pour un fichier lien avec un autre (symbolic link)
ls -d *
donne la liste des fichiers que du répertoire courant
ls ~berlier
donne la liste des fichiers du répertoire d'accueil de berlier
Caractères spéciaux pour ls
* les fichiers du répertoire courant et des répertoires immédiatemment en
dessous
. les fichiers du répertoire courant
*.* les fichiers contenant au moins un point (sauf fichiers commençant
par un point)
*.com les fichiers dont le nom se termine par .com ayant éventuellement
plusieurs points
?.com les fichiers ayant un caractère suivi de .com
name[xyz] les fichiers namex, namey, et namez
name[a-z] les fichiers namea, nameb, namec, ... namez
name[a-z4] les fichiers namea, nameb, namec, ... namez et name4
name.{o,f} les fichiers name.o et name.f
fichier répertoire Read lire lire Write modifier créer et supprimer des fichiers eXecute exécuter utilisable dans PATH Un fichier accessible en écriture peut être supprimé. umask 027 cette commande définit un masque de protection par défaut lors de la création des fichiers (à mettre dans .login ou .profile par exemple) 0 lecture, écriture, exécution par le propriétaire ou utilisateur 2 lecture et exécution par les membres du groupe 7 aucun accès pour les autres propriétaire groupe les autres user group others r w x r - x - - - Read Write eXecute 1 1 1 1 0 1 0 0 0 permission 7 5 0 permission en octal 0 0 0 0 1 0 1 1 1 masque en binaire 0 2 7 masque en octal (umask) umask donne la valeur chmod 750 *.c change les permissions de tous les fichiers .c en donnant rwx pour le propriétaire r-x pour le groupe et rien pour les autres 750 équivaut à rwxr-x--- 744 équivaut à rwxr--r-- 644 équivaut à rw-r--r-- chmod u=rwx,g= v.log permet rwx à l'utilisateur et rien au groupe chmod o= v.log interdit tout accès aux autres sans modifier les autres permissions chmod u=rwx a.dat le fichier a.dat sera rwx par l'utilisateur (user). Les autres autorisations ne sont pas modifiées. Un fichier ne peut appartenir qu'à un seul groupe. Un utilisateur peut appartenir à plusieurs groupes. Ainsi les fichiers peuvent être partagés entre plusieurs utilisateurs. Quand le fichier est créé, il appartient au groupe attaché à l'utilisateur. Si ce dernier appartient à d'autres groupes, il peut changer le groupe d'appartenance de ses fichiers. groups donne les groupes aux quels appartient l'utilisateur chgrp nom_du_nouveau_groupe nom_du_fichier change de groupe le fichier
ln essai.txt essai crée un lien physique (hard link) essai donnant accès au fichier essai.txt augmente d'une unité le nombre de lien attaché au fichier si le fichier essai.txt est supprimé, les données sont toujours accessibles par essai essai.txt et essai doivent être dans le même file system Ce sont des fichiers et non des répertoires. ln -s essai.txt essai crée un lien symbolique (symbolic link) essai pointant sur le fichier essai.txt si le fichier essai.txt est supprimé, les données sont supprimées mais le lien symbolique susbsiste. Le lien symbolique existe tant qu'il n'a pas été explicitement supprimé par rm essai ls -li nom_de_fichier donne le nombre de liens et l'inode du fichier ls -li | grep "831 -" donnera tous les liens physiques (tous les fichiers ayant l'inode 831)
.cshrc puis .login s'exécute à la connexion (C shell) .cshrc s'exécute au lancement du C shell .profile s'exécute à la connexion (Bourne shell et Korn shell) .kshrc s'exécute au login et à la création d'un sous shell (Korn shell) uniquement si la variable ENV est définie dans .profile par exemple ENV=$HOME/.kshrc et export ENV Utiliser ce fichier pour rajouter vos alias, vos variables ... Par exemple, vous pouvez y rajouter set -o noclobber umask 077 Au CRITeR, le fichier .profile définit la variable ENV. Vous utiliserez donc le fichier ~/.kshrc pour personnaliser votre environnement Korn Shell. .logout s'exécute à la déconnexion. (C shell) Il peut contenir par exemple clear qui effacera l'écran.
Plusieurs éditeurs de texte UNIX sont disponibles.
VI sait à peu près traiter les caractères ISO-LATIN (ISO 8859)
Il sait les visualiser mais gère mal le curseur.
VI nom_de_fichier
a ou i passe en mode Insertion et Escape en sort.
Escape est obtenu par CTRL-3 sur les claviers VT300 (3 représente la
touche contenant 3 et " ,il faut donc appuyer sur CTRL MAJ et cette touche)
:q sort de VI
EMACS
utilisable sur un terminal VT et sur un terminal X
JOE
JOE est un éditeur de textes plein écran proche des
éditeurs de texte existant sous DOS. Les séquences de touches rapellent
celles de WordStar et de Turbo-C. JOE sait traiter les
caractères ISO-LATIN. Sur un terminal VT300 ou sur DECterm, les flèches
et les touches "Page précéd" "Page suiv." sont utilisables.
Pour en savoir plus, tapez "man joe" ou reportez-vous au paragraphe sur
joe
Attention! le traitement des caractères ISO-LATIN est pris en compte dans
certaines commandes que si LANG est défini
LANG=fr_FR.ISO8859-1
Voir man locale
Attention! aux effets inattendus.
awk : quelques exemples
awk -F: '{print length}' nom_de_fichier
donnera la longueur de chaque enregistrement du fichier
awk -F: '/valeur/{print $0}' mon_fichier
donnera tous les enregistrements contenant "valeur"
awk -F: '$4 ~ /51/ {print $0}' nom_de_fichier
donnera tous les enregistrements contenant la valeur 51 dans le champ 4
les champs étant séparés par :
awk -F: '{print NR,NF}' nom_de_fichier
donnera le numéro de l'enregistrement et le nombre de champs
awk -F: '{print NR,$1}' nom_de_fichier
donnera le numéro de l'enregistrement et la valeur du 1er champ
ed
éditeur ligne
Pour éditer le fichier monfic.txt en utilisant le point d'interrogation
comme prompt, remplacer toto par titi à la ligne 4, sauvegarder et sortir
ed -p? monfic.txt
4s/toto/titi/
w
q
Voici les imprimantes accessibles au CRITeR lps17 : imprimante postscript (17 pages par minute, recto-verso, 20Mo) lpr -Plps17 .cshrc imprimera le fichier .cshrc sur l'imprimante lps17 -r détruira le fichier après impression -p imprimera un entête sur chaque page comportant la date, le nom du fichier et le numéro de la page -f pour prendre en compte les caractères de contrôle d'avance du papier de FORTRAN -w132 pour obtenir 132 c. par lignes passant en mode paysage les messages d'erreur postscript sont renvoyés par messagerie lpq lpq -Plps17 donne la liste des jobs en attente sur l'imprimante lps17 en effet, l'imprimante lps17 est l'imprimante par défaut. Pour changer l'imprimante par défaut, rajoutez dans le fichier .profile PRINTER=ln03r export PRINTER lprm 111 annule la demande d'impression 111 en attente. lprm - annule toutes les demandes d'impression de l'utilisateur /usr/sbin/lpc status ln03r donne l'état de l'imprimante ln03r /usr/sbin/lpc status donne l'état de toutes les imprimantes procédures définies par le CRITeR : lap2rv texte.txt imprimera le fichier texte.txt sur l'imprimante lps17 en recto-verso à raison de deux pages par feuille. Si le fichier est un fichier postscript, les commandes postscript seront imprimées. lal2rv texte.txt idem en mode paysage. Idéal pour les lignes de 132 c. lpp2rv fichier.ps Laser Postscript Portrait 2 pages par feuille Recto Verso imprimera le fichier postscript sur l'imprimante lps17 en recto-verso à raison de deux pages par feuille en mode portrait.
Sous UNIX, plusieurs langages de commandes sont utilisables. Au CRITeR par défaut, le langage de commande actif est le Korn shell. Pour connaître le shell actif echo $SHELL vous obtiendrez sh pour Bourne shell Rsh pour Restricted Bourne shell csh pour C shell ksh pour Korn shell etc... Pour changer de shell de façon provisoire, tapez le nom du shell choisi. Ensuite exit ou CTRL D revient au shell par défaut. Pour changer de façon définitive, utilisez chsh puis il faut vous déconnecter puis vous reconnecter % est le prompt habituel du C shell $ est le prompt habituel du Bourne shell et du Korn shell source .cshrc permet d'exécuter .cshrc après modification par exemple (csh) . .profile permet d'exécuter .profile après modification par exemple (sh ksh) ulimit -a donne toutes les limites définies ulimit -c 0 limite la taille des fichiers core à zéro. Un fichier core se crée quand un programme se termine mal. Il contient une image mémoire (dump).
Elles sont définies dans .cshrc et .login pour C shell dans .profile pour Bourne shell et Korn shell en C shell par setenv pour les variables d'environnement par set pour les variables du shell exemple: setenv LANG fr_FR.ISO8859-1 en Bourne shell et Korn shell par = par export exemple: export LANG=fr_FR.ISO8859-1 HOME répertoire d'accueil SHELL le shell utilisé USER l'utilisateur PATH donne les répertoires dans lesquels le système doit chercher les programmes correspondants aux commandes à exécuter. MAIL le répertoire contenant les messages TERM le type du terminal (il doit être décrit dans /etc/termcap) printenv donne la liste des variables d'environnement onzon> printenv PATH=.:/usr/bin/:/usr/bin/X11:/usr/bin/mh:/usr/local/bin:/usr/local/bin/X11 LOGNAME=berlier PRINTER=lps17 GWSOURCE=telnet USER=berlier SHELL=/bin/ksh HOME=/home/criter/berlier TERM=vt300 PWD=/home/criter/berlier variable=valeur affecte la valeur à la variable. export variable=valeur affecte la valeur à la variable et exporte sa valeur aux processus fils. Attention! il ne faut pas d'espace autour du signe égale. unset variable supprime la variable DISPLAY=161.3.1.58:0 export DISPLAY export DISPLAY=161.3.1.58:0 définit l'affichage pour les applications X-window unset DISPLAY set donne les variables définies set -o noclobber modifie le comportement des redirections (voir plus loin) set -v affiche les commandes avant de les exécuter set +v désactive la fonction v set -b autorise l'affichage des messages signalant la fin d'un traitement effectué en arrière plan. (voir & en fin de commande) PS1="$USER>" redéfinit le prompt en donnant l'utilisateur suivi de > TIMEOUT=1 déconnexion après une minute d'inactivité quelques variables utilisables $? pour tester la fin d'une exécution, est différent de zéro en cas d'erreur et vaut zéro sinon PWD la variable PWD donne le répertoire courant OLDPWD la variable OLDPWD donne le dernier répertoire accèdé $# donne le nombre de paramètres $1 donne le 1er paramètre
alias permet de définir une commande alias nom_alias=texte_alias définit un alias. Par exemple alias joe='joe -asis -baud 9600' redéfinit joe alias dir='ls -l | more' définit dir alias back='cd $OLDPWD;pwd' définit back qui ramènera dans le répertoire précédemment utilisé. unalias nom_alias détruit l'alias
#!/bin/ksh set -v echo $PWD ... exit echo "Exécution de $0 avec $1 comme 1er paramètre" $0 représente le nom de la procédure $1 le premier argument pour tester de l'existence d'un fichier if test -f fichier then else fi pour écrire un message sur stderr echo "message " 1<&2 exemple: #!/usr/bin/ksh set -v echo "Exécution de $0 avec $1 comme 1er paramètre" pwd echo $? if test "$1" = "" then exit fi if test -f $1 then echo "Le fichier $1 existe" else echo "Le fichier $1 n'existe pas" fi set +v exit
chmod 755 laprocedure chmod 744 laprocedure pour se donner le droit de l'exécuter laprocedure arg1 arg2 pour lancer son exécution avec deux arguments laprocedure arg1 arg2 <entree.in >sortie.log & pour exécuter en arrière plan
set -o noclobber (ksh) le shell avertit l'utilisateur que le fichier cible de la redirection existe déjà et stoppe l'exécution. 0 stdin standard input 1 stdout standard output 2 stderr standard error > redirection de la sortie stdout >> redirection de stdout en rallongeant le fichier < redirection de l'entrée stdin << xxx redirection des entrées jusqu'à une ligne contenant xxx Cette redirection permet de lire des données incluses dans le fichier de commandes lui-même. Par exemple, le fichier shell nommé commande contenant echo -n "Nombre de lignes :" wc -l < commande echo -n "Nombres de lignes jusqu'à xxx :" wc -l << xxx ligne 1 ligne 2 xxx echo "fin du test" 1> redirection de stdin 2> redirection de stderr > test.log 2<&1 redirection de stdin et stderr dans test.log | redirection de stdout sur stdin d'une autre commande (pipe line)
La commande history permet de retouver les dernières commandes tapées. Voir aussi la variable HISTSIZE (HISTSIZE=20 permettra à history de retrouver les 20 dernières commandes) history donne la liste des dernières commandes. Cette commande utilise le fichier .sh_history dans votre répertoire d'accueil. HISTSIZE=40 pour porter à 40 le nombre de commandes sauvegardées r 5 pour exécuter la 5ième commande voir fc (fix command) pour éditer les commandes sauvegardées set -o emacs permet au ksh de rappeller et de modifier les dernières commandes et ce avec les flèches. CTRL a début de ligne. CTRL e fin de ligne. CTRL c abandon de la commande affichée.
Pour éviter de taper les noms de fichiers en entier, on peut utiliser la touche Escape deux fois de suite. Le système complètera le nom du fichier jusqu'à la prochaine ambiguïté.
help whatis mail man -f mail affiche l'entête du manuel concernant mail onzon> whatis mail mail, binmail (1) - Sends and displays messages mailx, Mail (1) - Sends and receives mail man -k mail apropos mail pour retrouver où l'on parle de mail onzon> man -k mail ali (1) - list mail aliases aliases (4) - Contains alias definitions for the sendmail program biff (1) - Notifies users when mail arrives etc... vacation (1) - Informs senders of mail that recipient is absent xbiff (1X) - mailbox flag for X xmh (1X) - send and read mail with an X interface to MH man 1 biff permet de retrouver les informations sur biff dans le manuel 1 man mailx pour afficher le texte décrivant la commande mailx. Au prompt stdin, on peut taper /truc pour rechercher le texte "truc" comme pour la commande more Les pages du "man" sont stockées dans plusieurs répertoires /usr/man/man1 à /usr/man/man8. (Voir nroff -man pour le formatage des manuels) Sur un terminal X, on peut utiliser aussi xman et dxbook.
bc Un programme intéractif permettant quelques calculs Par exemple, pour calculer (5+6)/2 bc scale=2 (5+6)/2 CTRL D Par exemple, pour convertir en hexadécimal bc obase=16 255 CTRL D which joe donne la localisation de la commande joe en tenant compte du PATH. which ne tient pas compte des alias. (Voir aussi whereis)
pc DEC compilateur pascal. pc lance le préprocesseur, le compilateur pascal et l'éditeur de liens (linker) Le programme PASCAL est stocké dans un fichier .p .P .pas ou .PAS variable d'environnement DECPASCAL pc -c -V -O0 arc.pas -c compilation seulement du programme arc.pas -V génération d'un listing fichier .l -O0 compilation sans optimisation pc -C all -usage all -o arc.exe arc.pas compilation et link du programme arc.pas -o arc.exe Le fichier exécutable sera arc.exe -C all avec checking -usage all avec tous les messages d'informations
f77 DEC fortran 77. Le programme FORTRAN est stocké dans un fichier de suffixe .f .for ou .FOR f77 -o foo ax.f bx.f cx.f compilation de ax.f, bx.f et cx.f avec édition de liens pour obtenir l'exécutable foo -C pour tester les débordements de tableaux -check overflow -check underflow -V pour générer un listing .l fsplit pour éclater dans des fichiers différents les SUBROUTINE et FUNCTION more /usr/lib/cmplrs/fort/decfortran.hlp Voir auusi man f77 fsplit fpr
Pour gérer vos fichiers sources, vous pouvez utiliser make ou sccs. Pour déboguer, vous pouvez utiliser dbx Pour analyser les performances, voir prof (profiling)
Pour utiliser des librairies, voir ar ar cr plot.o start.o stop.o créera la librairie plot.a ar t plot.a listera le contenu ranlib plot.a pour créer les index cc prog.c -lplot pour utiliser
arc.exe exécution en intéractif (foreground). On peut interrompre par CTRL C. On peut suspendre l'exécution par CTRL Z et relancer par fg ou relancer en arrière plan par bg. arc.exe & exécution en arrière plan (background). [no_job] no_pid arc.exe >& arc.log <arc.in & exécution en arrière plan (background) avec sortie des erreurs et des résultats dans arc.log ( >& est du csh) entrée des données à partir du fichier arc.in On peut interrompre par kill. kill %no_job ou par kill no_pid jobs jobs -l donne la liste de jobs en arrière plan Attention! les jobs d'arrière plan doivent être finis (stopped) à la déconnexion sinon ils restent de présents et ne peuvent plus être traités comme des jobs d'arrière plan normaux. Pour obtenir les caractéristiques des ces jobs, on peut ps aux | grep username ps -p no_pid at at permet d'exécuter une procédure ou shell script à une date donnée en dehors de toute connexion. at -c pour lancer un C shell ou utiliser les redirections du C shell at -k pour lancer un Korn shell Par exemple, pour lancer l'exécution de write.csh à 15H30 > at -c 1530 write.csh CTRL D job berlier.790266600.a at Mon Jan 16 15:30:00 1995 pour lancer e.csh à 16H30 >at -c 16:30 e.csh le compte-rendu vous sera adressé par la messagerie électronique > at -c 11:01 arc.exe >& arc.log1 < arc.in job berlier.790423260.f at Wed Jan 18 11:01:00 1995 lance à 11:01 arc.exe. Le compte-rendu sera dans arc.log1 at -c now lance maintenant at -l donne la liste des jobs en attente ps donne tous vos process actifs at -r détruit un job en attente onzon> at -l berlier.790267080.a Mon Jan 16 15:38:00 1995 onzon> at -r berlier.790267080.a at file: berlier.790267080.a deleted onzon> at -l onzon> at -c -q b arc.exe >& arc.log < arc.in CTRL D job berlier.790424269.b at Wed Jan 18 11:17:49 1995 batch permet de lancer l'exécution dès que la charge de la machine le permet. (batch fait la même chose mais en utilisant Bourne shell)
talk ou write pour dialoguer avec un utilisateur connecté talk write paul texte du message à envoyer à Paul CTRL D mesg n pour ne pas être dérangé par des appels talk ou write
attention! ils existent de multiples façons d'accéder à la messagerie. Toutes n'utilisent pas les mêmes fichiers. Nous ne présentons ici mailx l'agent utilisateur de messagerie livré sur tous les systèmes UNIX. Ils en existent d'autres plus conviviaux. Notamment elm, vtmail pour les terminaux alphanumériques (VT, minitel ...) exmh, dxmail pour les terminaux X-window. Dès que ces produits seront disponibles, vous serez informés.
pour utiliser la messagerie électronique: Mail ou mailx a) envoi de message ---------------- mailx berlier < mon_message.txt envoie à berlier le fichier mon_message.txt mailx berlier@univ-st-etienne.fr ou pour un utilisateur local mailx berlier la dernière ligne du texte contient un point ou CTRL D ~x sortie sans sauvegarder ni envoyer le message composé ~q sortie sans envoyer le message mais sauvé dans dead.letter ~d ajoute le contenu du fichier dead.letter ~r mon.texte ajoute le contenu du fichier mon.texte ~m 2 ajoute le contenu du message numéro 2 ~v appelle l'éditeur défini par set VISUAL= (vi par défaut) pour composer le message ~e appelle l'éditeur défini par EDITOR= Après avoir composer le message, il faut sortir de l' éditeur en sauvegardant le texte. On obtient (continue). Tapez alors CTRL d pour envoyer le message ou ~x pour ne pas l'envoyer ~w mon.mes écrit le message dans le fichier mon.mes ~? donne la liste des commandes accessibles en cours de composition du message mailx durand dupont permet d'envoyer le même message à durand et dupond b) lecture de message ------------------ mailx >U 1 Jean.Marc.Berlie Tue Feb 14 14:36 19/967 "le sujet" N 2 Jean.Marc.Berlie Tue Feb 14 14:36 20/977 "le sujet" > indique le message courant N pour New U pour Unread le numéro, l'expéditeur, la date, le nombre de lignes/caractères, le sujet ? est le prompt de mailx ? help donne une aide ? h redonne la liste des messages ? f * redonne la liste des messages ? 5 permet d'afficher le message 5 ? v 5 permet d'afficher le message 5 avec l'éditeur (set VISUAL) ou VI attention! les modifications seront sauvegardées. ? mo 5 idem avec more ? . permet de relire le message courant ? <RETURN> affiche le message suivant ? | 5 lpr imprime le message 5 ? d détruit le message courant ? d 7 9 détruit les messages 7 et 9 ? d 7-11 détruit les messages 7, 8, 9, 10, et 11 ? q quitte mailx et stockent les messages lus dans le fichier mbox Ce fichier mbox est lisible par more, cat ou un éditeur de texte ? x quitte mailx sans modifier la boîte aux lettres. Les messages lus ou détruits restent ? R permet de répondre à l'expéditeur ? r permet de répondre à l'expéditeur et aux autres destinataires ? m destinataire permet de composer et d'envoyer un message puis ~m 3 permet d'inclure le message 3 et ainsi faire suivre (forward) le message 3. ? w mon.fic permet de sauvegarder le message courant dans le fichier mon.fic sans les entêtes. Si le fichier existe, il est rallongé. Par défaut, le message le plus récent est placé au début. ? s mon.fic permet de sauvegarder le message courant dans le fichier mon.fic. Si le fichier mon.fic existe, le fichier est rallongé. Cette commande permet ainsi de stocker les messages dans des dossiers différents. ? folder mbox permet d'aller lire les messages stockés dans mbox ? folder image permet d'aller lire les messages stockés dans image ? folder donne le nom du dossier en cours mailx -f mbox permet de lire les messages du dossier mbox Pour personnaliser la messagerie, le fichier .mailrc dans le répertoire d'accueil peut contenir par exemple: set askcc pour obtenir le prompt Cc: (carbon copy) à chaque envoi de message set EDITOR=/usr/local/bin/joe pour utiliser joe quand on tape ~e set folder=mail_folder pour définir le répertoire (ici mail_folder) qui contiendra les fichiers correspondant à chaque folder (dossier) set append pour mettre à la fin, les messages les plus récents (voir s et w)
Votre adresse est votre username suivi de @criter.univ-st-etienne.fr par exemple: berlier@criter.univ-st-etienne.fr Le mot criter disparaîtra dès que la machine VMS sera arrétée. Les deux formes d'adresses seront valides. biff y Cette commande permet à l'utilisateur d'être averti quand un message arrive. (à mettre dans .profile). Les premières lignes du message sont affichées. Voir aussi MAILCHECK dans man ksh from cette commande d'obtenir l'entête des messages arrivés
elm est un agent de messagerie plein écran pour terminaux alphanumériques Une aide en ligne est accessible. elm crée un répertoire .elm pour stocker les personnalisations (elmrc) et les fichiers alias. elm crée un réperoire Mail pour stocker les dossiers (folder) de la messagerie, un fichier par dossier. elm -z permet d'activer elm que si des messages attendent Quelques commandes utiles o définir les options de elm par exemple: E)ditor (primary) : /usr/local/bin/joe -nobackup P)rint mail using : /usr/local/bin/lap2rv %s U)ser level : Intermediate User p imprimer le message courant ou les messages marqués (tagged) c changer de dossier. Il faut donner le nom du dossier précédé de = !ls ~/Mail donne la liste des dossiers f faire suivre un message (forward) > sauvegarde le message courant dans le dossier donné
ruptime donne la liste des machines locales disponibles avec la charge onzon> ruptime cisrs1 up 18+17:21, 0 users, load 0,01, 0,02, 0,03 imars1 up 48+19:01, 0 users, load 0,03, 0,04, 0,05 imars2 up 38+00:56, 0 users, load 0,01, 0,02, 0,03 nqa01c40f up 4+19:22, 0 users, load 0,00, 0,00, 0,00 remote login rlogin imars1 permet de se connecter à la machine imars1 remote copy rcp permet de copier des fichiers d'une machines à une autre Connecté à une machine quelconque, la commande suivante permet de copier le fichier login.txt dans le répertoire d'accueil sur onzon rcp login.txt onzon:login.txt remote shell rsh onzon "ls -l" permet d'aller exécuter sur la machine crique la commande ls -l et d'obtenir la liste à l'écran rsh imars1 "cat monfichier" | lpr permet d'imprimer localement le fichier monfichier existant sur imars1 rlogin, rcp et rsh nécessitent une autorisation sur la machine distante (fichier.rhosts par exemple)
ftp : File transfer Protocol permet de transferrer des fichiers depuis ou vers une autre machine ftp ftp.uni-st-etienne.fr get nom_de_fichier pour récupérer un fichier get nom_de_fichier /dev/tty pour visualiser le fichier put nom_de_fichier pour expédier un fichier cd réperoire pour changer de répertoire pwd pour connaitre le répertoire courant binary pour effecter un transfert binaire hash pour visualiser le transfert bye pour quitter mget * pour tout récupérer prompt pour désactiver le prompt ftp anonyme lorsqu'on utilise anonymous comme username telnet crique.uni-st-etienne.fr permet une connexion intéractive à une autre machine au prompt telnet> quit sort de telnet open permet d'ouvrir une session ? donne une aide CTRL } permet d'obtenir le prompt telnet> le caractère d'échappement ^] s'obtient par CTRL ( retour à la machine connectée par la touche RETURN
Sur les serveurs du CRITeR, vous trouverez DEC-windows basé sur Motif et X11 avec un certain nombre d'outils directement dans les menus proposés. Sur les stations Common Desktop Environment sera installé. CDE ne sera pas accessible à partir des terminaux X. D'autres outils sont installés. Pour afficher une application X à partir d'une session telnet, il faut taper: export DISPLAY=161.3.x.y:0 puis xman & pour un accès au man en X dxvdoc & pour CDA viewer (nécessite X display postscript) dxbook & pour BookReader netscape pour se connecter au serveur WEB Si vous utilisez l'interface Common Desktop Environment, les fichiers de configurations sont créées dans le fichier .dtprofile et le répertoire .dt /usr/dt/bin contient les exécutables
Vous trouverez ci après un petit descriptif non exhaustif des possiblités de joe. Dans ce qui suit le signe ^ correspond à la touche Ctrl (control) ^B correspond donc à CTRL B Si joe se termine mal. Il y a création d'un fichier DEADJOE qui contiendra votre fichier. Déplacement du curseur ---------------------- ^B ou flèche gauche : left (Backward) ^F ou flèche droite : right (Forward) ^P ou flèche en haut : up ^N ou flèche en bas : down ^U ou touche Préc. : prev. screen ^V ou touche Suiv. : next screen ^Z : previous word ^X : next word ^A : begin of line ^E : end of line ^KU : top of file ^KV : end of file ^KL : to line No. Recherche et substitution de chaîne de carctères ------------------------------------------------ ^KF : find text permet de chercher une chaîne de caractères mais aussi de la remplacer par une autre chaîne. En répondant R, chaque remplacement devra être confirmé. Répondre r, le remplacement est automatique jusqu'à la fin du fichier. \^to recherche to en début de ligne \$to recherche to en fin de ligne ^L : find text recherche le texte défini par ^KF pour rechercher \, donnez \\. Sortie ------ ^KD : save sauvegarde sans sortir ^KX : save sauvegarde et sort. ^C : abort sort sans sauvegarder Bloc ---- ^KB : begin définit le début d'un bloc ^KK : end définit la fin du bloc. Le bloc ainsi sélectionné passe en inversion vidéo ^KM : move déplace le bloc à la position courante du curseur ^KC : copy duplique le bloc à la position courante du curseur ^KW : file écrit le bloc dans un fichier ^KY : delete détruit le bloc destruction ----------- ^D ou touche delete : char détruit le caractère précédent le curseur ^Y : line détruit la ligne courante ^W : >word détruit de la position du curseur à la fin du mot courant ^O : word < détruit de la position du curseur au début du mot ^J : >line détruit de la position du curseur à la fin de ligne ^_ : undo défait ^^ : redo refait divers ------ ^R : refresh réaffiche l'écran ^T : options affiche les options possibles (Overtype, Autoindent, Word Wrap) On choisit l'option en se positionnant dessus avec les flèches et en appuyant sur RETURN. On utilise ^C pour ne rien changer. ^KR : insert inserre un fichier à la position courante ^KH : help affiche une aide en ligne fenêtre ------- ^KO : Split the window in half coupe l'écran en deux fenêtres ^KE : Load file into window charge un fichier dans la fenêtre courante ^KN : Go to the window below place le curseur dans la fenêtre suivante ^KP : Go to the window above place le curseur dans la fenêtre précédente ^C : Eliminate the current window ferme la fenêtre courante ^KG : Make current window bigger augmente la taille de la fenêtre d'une ligne ^KT : Make current window smaller diminue la taille de la fenêtre d'une ligne ^KI : Show all windows / Show one window montre toutes ou une fenêtre définition d'une macro et utilisation ------------------------------------- ^K[ 0 : Record début de l'enregistrement. Toutes les actions effectuées jusqu'à la fin de l'enregistrement sont mémorisées dans la macro 0. Dix macros sont définissables de 0 à 9 ^K] : Stop fin de l'enregistrement ^K 0 : Play exécute la macro 0 Special search sequences: ------------------------- \^ \$ matches beg./end of line \? match any single char \< \> matches beg./end of word \* match 0 or more chars \c matches balanced C expression \\ matches a \ \[..] matches one of a set \n matches a newline \+ matches 0 or more of the character which follows the \+ Special replace sequences: -------------------------- \& replaced with text which matched search string \0 - 9 replaced with text which matched Nth \*, \?, \c, \+, or \[..] \\ replaced with \ \n replaced with newline
Emacs est un éditeur de texte très puissant et très gourmand. Il est utilisable : soit à partir d'un terminal X, soit à partir d'un terminal alphanumérique VT320, VT330 ... C- correspond à la touche Control M- correspond à la touche Escape Attention! Sur les VT320 et VT330, la gestion du flux de caractères est faite à partir de XON (CTRL q) et de XOFF (CTRL s). Donc CTRL s (C-s en notation emacs) n'est pas utilisable sous emacs Si vous l'utilisez par erreur, le voyant écran figé s'allume. Tapez CTRL q pour défiger l'écran. Vous pouvez utiliser la commande emacs M-x enable-flow-control qui permet de remplacer C-s par C-\ et C-q par C-^ Quelques commandes emacs: ------------------------- C-x C-c pour quitter emacs C-h t pour lancer un apprentissage (tutorial) Les touches Page Préc., Page Suiv. et les flèches fonctionnent