Mémento UNIX

Transcription

Mémento UNIX
Environnement UNIX
Vous disposez d'un PC relié à un réseau... :
, mettre son nom d’utilisateur, puis son mot de passe (ce dernier
n’apparaît pas sur l’écran). Lorsque l’ordinateur sera prêt, il s’affichera un écran avec
des icônes.
Utilisez la souris pour déplacer le curseur sur l'écran. Ce curseur (une flèche) passe
d'une zone de l'écran à l'autre (ici, ce déplacement s'accompagne d'un changement de
forme lorsqu’une icône est activée : flèche → main). Vous aller travailler sur ibm1.
Cependant vos répertoires seront accessibles également à partir du PC (ils sont
physiquement sur un disque unique accessible à partir du réseau) :
L’icône HOME correspond au PC sous windows. Vous pouvez y télécharger ce texte à
partir du site web http//:www.lct.jussieu.fr/cicrp (format pdf).
L’icône LINUX correspond au PC sous linux.
Le prompt est « nomdupc.cicrp.jussieu.fr » /home/p6chil/userid
L’icône NETSCAPE correspond au réseau.
L’icône MAIL correspond au courrier.
Le nom de la machine IBM1 est ibm1.cicrp.jussieu.fr
L'adresse de la machine IBM1 est 134.157.15.1
Cliquez sur l’icône ibm1.
Entrer votre userid, puis votre mot de passe. Lorsque l’ordinateur sera prêt, vous aurez
une fenêtre avec un signal prompt : ibm1:/home/p6chil/userid
: Si tout se passe bien : Sélectionner QUITTER l’ENVIRONNEMENT
dans le menu déroulant (touche de droite de la souris) puis QUITTER KDE.
Si la sortie de session vous est refusée (vous voyez apparaître le message : there are
running jobs):
Il y a des exécutions en cours (Ce sont souvent des opérations qui sont le
résultat de fausses manoeuvres mais qui existent toujours pour l'ordinateur), il faut
alors "tuer" ces processus actifs (cela est également nécessaire pour remplacer un
exécutable si un processus l’utilisant tourne encore) :
1) taper ps pour connaître les numéros des opérations en cours. Ces opérations
apparaissent avec des numéros. En plus de kshell qui définit votre environnement et de
ps que vous venez de demander, vous voyez les opérations qui sont encore considérées
comme actives pour l'ordinateur.
2) vous devez les supprimer en tapant
kill -9 n°de l'opération
3) après réponse de l'ordinateur, refaire le processus de sortie
.
Vous disposez d'une souris, de fenêtres et de menus déroulants activés par les
touches de la souris et par des zones de l'écran (coin supérieur gauche de la fenêtre).
Pour activer une fenêtre, il faut placer le curseur dans la fenêtre. On peut
agrandir une fenêtre en cliquant sur le coin supérieur droit (agrandissement maximal, il
n'apparaît qu'une seule fenêtre, cliquer de nouveau fait revenir à la taille initiale), en
1
saisissant le coin inférieur droit et en le déplaçant ou à partir du menu déroulant activé
par le coin supérieur gauche. On peut déplacer cette fenêtre; on peut la réduire; la
réduction au minimum donne une icône.
Si le curseur est placé hors de la fenêtre, le menu déroulant de la souris active
certains ordres (ouverture d'une seconde fenêtre, quitter...); Le clavier n'est pas activé.
Si le curseur est dans une fenêtre, le menu déroulant de la souris active d'autres
fonctions (copier : la saisie est faite par la touche de gauche; coller : touche du milieu).
Le clavier est activé.
La fenêtre ibm1.
Il y a un signal le signal "prompt" qui est spécifique du langage que vous manipulez. Ce
prompt peut être défini dans un fichier .profile qui définit des conditions particulières
de votre environnement
c:\> pour DOS
$ pour UNIX (cas général)
/home/p6chil/userid sur l'ordinateur ibm1 (le prompt vous indique le répertoire
où vous êtes)
Ce signal indique que l'ordinateur attend une commande.
? indique que l'ordinateur attend une précision que vous ne lui avez pas donné,
vous avez fait une commande incomplète. Si vous ne savez pas, frappez CNTRL-Z.
Cela suspend le processus en cours. Dans ce cas, il y a lieu d'arrêter ce processus
avant de quitter la session (kill -9 n°u processus).
Le Clavier.
Il y a des chiffres et des lettres comme un clavier ordinaire. On peut effacer une
touche que l'on vient de frapper en utilisant le backspace (←).
La touche shift ⌂ appuyée pendant que l'on frappe une lettre permet de passer
des minuscules aux majuscules.
Frapper simultanément plusieurs touches modifient la signification des touches:
la touche shift ⌂ (qui donne ce qui est écrit en haut des touches), la touche contrôle, la
touche ALT et la touche ALT-GRAPH
(qui donne ce qui est écrit en couleur sur
les touches).
Quatre flèches permettent de déplacer le curseur sur l'écran.
Les commandes
Une action sur l'ordinateur est déclenchée par une commande. Une commande
peut être obtenue en frappant son nom, puis en tapant sur la touche retour ’| qui envoie
l'exécution.
Frapper ls, vous verrez apparaître la liste des fichiers qui sont déjà installés dans
votre répertoire s'il y en a. Les fichiers contiennent des écritures. Ils peuvent contenir
du texte à consulter dans un langage quelconque (fichier dans lequel on peut lire ou
écrire), des listes de commandes, un module objet ou exécutable (dans ces 2 derniers
cas le fichier n'est ni lisible ni imprimable. Ne jamais lancer l'impression d'un module
exécutable!).
La plupart des commandes sont accompagnées de paramètres (obligatoires ou
optionnels) et d'arguments. Par exemple ls -ail vous donne plus d'informations: un
2
numéro (ou inode) associé à chaque fichier, des renseignements sur les gens autorisés à
lire, écrire ou utiliser vos fichiers... Les paramètres a (all* ) i (inode) et l (long) sont
abrégés en ail et placés derrière un tiret.
Les arguments concernent les objets sur lesquels agissent les commandes, par
exemple un nom de fichier ou de répertoire.
cat .profile ou more .profile vous montre le contenu du fichier profile. Ce
fichier contient des commandes qui sont actionnées des que vous vous branchez. Vous
pouvez le modifier si vous souhaitez un environnement particulier.
Si un fichier est long, il est préférable de l'afficher page par page. pour cela faire
more -l fic1 On passe alors de page en page en actionnant la barre d'espace (ou en
arrière grâce à CNTRL-B). On peut rechercher une expression avec more: /mot va
rechercher l'expression mot vers la suite du texte et ?mot vers le début du texte.
On peut enchaîner deux commandes (en les séparant par des points virgules
s'il y a confusion possible entre nouvelle commande et argument de la précédente). La
seconde prend en entrée le résultat de la première
|
ls -l more la commande ls -l fait défiler trop d'informations sur l'écran; more
|
enchaîné va permettre de faire défiler ces informations page par page.
|
le signe "pipe" est obtenu en tapant: CNTRL+ALT+F6
|
Des informations peuvent être consultées pour chaque commande par man
cmd1 (man renvoie aux pages d'un manuel dans une bibliothèque de l'ordinateur) ou
sos cmd1.
Une commande peut être obtenue en frappant une touche préréglée du clavier;
ce sont les clefs de commandes. Les clefs sont des touches qui exécutent directement
une action sur l'ordinateur. Pour voir les commandes prédéfinies faire stty -a par
exemple CNRTL-Z est défini et son action suspend une commande
Vous pouvez définir vos choix, par exemple stty erase CNTRL-H
Ces choix peuvent être mis dans votre fichier .profile.
Les commandes pour les répertoires.
Nous venons de voir qu'il existe des fichiers et des répertoires. Votre
environnement vous situe dans un répertoire que vous pouvez afficher par pwd. Le nom
du répertoire est un nom composé : /home/p6lchi/p6lchiXX/ Les différents membres
du nom sont séparés par des slash /. C'est une séquence hiérarchisée chaque nom est un
sous-répertoire du nom qui le précède.
Vous pouvez
créer un sous-répertoire par mkdir rep1
le détruire par rmdir rep1 (catalogue vide)
ou bien par rm -r rep1 (catalogue ayant un contenu)
changer son nom par mv rep1 rep2
le copier par cp -r rep1 rep2
cp -r rep0/rep1 rep2
*
les fichiers dont le nom commence par un point (.profile) n'apparaissent qu'avec le paramètre all
3
un point à la place de rep2 signifie que l'on garde le nom rep1 et que l'on
recopie rep1 dans le répertoire dans lequel on est situé.
trouver dans une hiérarchie de fichiers ceux dont les nom se terminent par ".f":
find /rep/sousrep -name *.f
* signifie tous les mots et ? toutes les lettres
entrer dans le répertoire dir1: cd dir1
Revenir dans le répertoire initial: cd ..
Aller dans un sous-répertoire "souscat" en passant dans le répertoire initial: cd
../souscat
Mise en commun de fichiers pour plusieurs répertoires :
Il est possible d'utiliser un fichier fic sans le dupliquer dans plusieurs
répertoires. Il suffit de définir un nouveau fichier sousrep/fic dans votre sousrépertoire. Ce fichier sousrep/fic ne contiendra que l'adresse du premier et non pas son
contenu: Le sousrep/fic ne contiendra qu'une seule ligne: ../fic
Il faudra que sousrep/fic ait les mêmes déclarations que fic (qu'il soit déclarer
exécutable si c'est un module exécutable; pour changer les déclarations, utiliser la
commande chmod u+x fic).
Les commandes pour les fichiers.
Vous pouvez
lister le contenu d'un fichier par cat fic1 ou more fic1
le détruire par rm
fic1 (sans confirmation)
par del fic1 (avec confirmation)
changer son nom par mv fic1 fic2
le copier par cp fic1 fic2
imprimer un fichier lpr -Pibm7 fic1
(si vous travaillez sur ibm7, il y a également une imprimante laser (vous n'avez
droit qu'à un nombre limité d'impressions). Les imprimantes sont regroupées
dans une salle au bout du couloir transversal)
compter les lignes d'un fichier par wc -l fic1
(paramètre -lcw pour lignes, caractères et mots)
wc -lcw fic1
comparer 2 fichiers (et afficher la différence)
diff fic1 fic2 donne toutes les lignes qui diffèrent
cmp fic1 fic2 donne la première occurrence
trouver la chaîne de caractères MOT dans un fichier fic1
grep MOT fic1
modifier les autorisations d'utilisation chmod g+x fic1
(voir les autorisations avec ls -ail fic1)
u,g,o,a réfèrent à l'utilisateur, au groupe, aux autres
(others) ou à tous (all).
+,- ajoute ou ôte une autorisation
r,w,x concerne la lecture (read),
4
l'écriture (write) ou l'exécution.
modifier le propriétaire d'un fichier chown user fic1
Si une commande est incomplète, il peut y avoir affichage de ? au lieu du
prompt. Cela vous indique que l'ordinateur attend un paramètre.
Pour créer un fichier nouveau il suffit d'utiliser un éditeur en nommant un
fichier nouveau. Ce fichier sera crée s'il n'existe pas, ouvert s'il existe déjà. Faire par
exemple ex fic1 ou mieux vi fic1.
Pour une première fois, nous allons faire différemment en utilisant la commande cat.
Ce sera exceptionnel; par la suite vous utiliserez directement vi fic1.
La commande cat affiche à l'écran un fichier : cat fic1
La flèche permet de réorienter la sortie: au lieu de l'écran
cat >fic1 crée le fichier fic1. Tout ce qui est entré au clavier est placé dans le fichier
fic1. Pour sortir de l'édition du fichier, il faut faire CNTRL-D. (ou par CNTRL-Z si l'on
a fait une fausse manoeuvre et si l'on veut annuler ce qui vient d'être édité). Le
processus cat >fic1 remplace le fichier fic1 antérieur qui porte ce nom si un fichier
existe déjà avec ce nom. Si l'on veut conserver le fic1 et écrire à sa suite, faire cat
>>fic1.
La commande cat <fic1 >fic2 prend le contenu de fic1 et le place dans fic2 en
remplaçant fic2.
La commande cat <fic1 >>fic2 prend le contenu de fic1 et le place dans fic2 à la suite
de son contenu.
Les commandes pour les processus.
Lorsqu'une commande est lancée, lorsqu'un travail est soumis, un processus
apparaît.
ps donne les informations sur les processus en cours
kill provoque l'arrêt d'un processus spécifié kill -9 23896
Le numéro d'identification (dans l'exemple 23896) est
dans PID
ps u (travaux de l'utilisateur)
ps aux (travaux de tous les utilisateurs)
Un module exécutable est mis en oeuvre par son nom de fichier (voir plus loin).
Il normalement exécuté en interactif (foreground) ce qui implique d'attendre que le
processus soit terminé pour retrouver la main. Un processus interactif peut être
suspendu par CNTRL-Z
Un processus peut être exécuté en arrière plan (background) ce qui vous laisse la
possibilité de continuer à travailler. Cela se fait en accompagnant la commande du
symbole &. Les commandes bg et fg font passer de foreground à background et
réciproquement.
5
Edition, mise à jour de fichiers.
Cat et more ne permettent que d'afficher le contenu d'un fichier. Pour le modifier, il
faut utiliser un éditeur. Il existe plusieurs éditeurs: ed, ex, vi...
La commande cat >fic1 permet de remplir un fichier, mais pas de le corriger.
éditeur ex
(éditeur de l'Université de Berkeley):
C'est un éditeur en mode ligne
Entrer dans l'éditeur
ex fic1
si fic1 n'existe pas déjà, ce fichier est créé.
le prompt de l'éditeur est : (deux points).
Lecture de fichiers
Pour afficher la ligne n1
:n1
Pour afficher toutes les lignes 1,$ ou bien %p
Le numéro de dernière ligne s'appelle $,
le numéro de la ligne courante peut être remplacé par un point.
Pour faire défiler de n1 à n2
:n1,n2
Pour les afficher avec une numérotation :n1,n2#
Pour arrêter le défilement
CNTRL s
pour repartir, appuyer n'importe où.
voir la ligne précédente
:la ligne suivante
: (entrée)
avancer de n lignes
:+n
reculer de n lignes
:-n (ou --------------- n fois)
Recherche d'une chaîne de caractères
:/chaîne/
ème
(le 2
/ est facultatif si la chaîne ne comporte pas de blanc)
/ ou ? relancent la recherche vers la fin (/) ou vers le début (?).
N.B le format de lecture de ex comprime les blancs en les remplaçant par divers
symboles, ce qui peut être gênant. On peut lire un fichier en format réel grâce à la
commande
$more nomfich
Dans ce cas il y a affichage page par page. Pour obtenir la page suivante, appuyer sur la
barre d'espacement. Inconvénient : on ne peut pas sauter de lignes ni revenir en arrière.
Substitution d'une chaîne de caractères
:s/ancien/nouveau/
si des caractères spéciaux interviennent (*,/) ils doivent être précédés d'un antislash).
:3,5s/ancien/nouveau/
substitution du mot « ancien » par « nouveau » dans les lignes 3 à 5 (le premier mot
rencontré dans chaque ligne) la première fois où le mot « ancien » est rencontré.
:3,5s/ancien/nouveau/g
substitution du mot « ancien » par « nouveau » dans les lignes 3 à 5 (tous les mots
rencontrés dans chaque ligne); g signifie global; la substitution se fera à chaque
occurrence.
6
:1,$s/ancien/nouveau/g substitue « ancien » par « nouveau » dans tout le texte.
Destruction de lignes
Détruire la ligne courante
Détruire de n1 à n2
:d
:n1,n2 d
Fusion de fichiers
Copier le fichier nomfich après la ligne n
:n r nomfich
n peut toujours être remplacé par . si n est la ligne courante.
Déplacement d'un bloc :n1,n2 après la ligne n
:n1,n2 m n
Copie d'un bloc appartenant au même fichier après la ligne n
Pour répéter la ligne courante
:. t .
Enregistrer les modifications
En sortant de l'éditeur
ou
Ne pas enregistrer les modifications
Sortir de l'éditeur
:w
:wq
:x
:q!
:q
7
:n1,n2 t n
éditeur vi (éditeur VIsuel):
C'est un éditeur pleine page. Vous pouvez vous déplacer dans l'écran avec les
touches de direction (ou les touches h,j,k,l).
Entrée dans l'éditeur
vi fic1
Attention l'éditeur vi distingue les majuscules et les minuscules. Les respecter! Ne pas
utiliser le clavier numérique à droite de votre clavier.
La touche CR (entrée) valide les commandes
La touche ECHAP (ESCape) annule la commande en cours
DEL interrompt l'éditeur
/ (slash) permet une recherche d'une chaîne de caractère de la position courante
vers la fin du fichier. Il faut préciser la première fois la chaîne; celle-ci sera reprise par
défaut par la suite.
? permet une recherche d'une chaîne de caractère de la position courante vers le
début du fichier
Toutes les commandes de ex sont disponibles en tapant :
(deux points)
:1,$s/motif1/motif2/ substitution remplace motif1 par motif2
(la première occurence trouvée)
:4,9s/motif1/motif2/g remplace motif1 par motif2
(chaque occurence entre les lignes 5 et 9)
:w et (:w!) sauvegarde (avec insistance)
:q! quite sans modification
:e fichier échange le fichier édité sous vi
:setwn-1 définit votre fichier comme fait de 80 colonnes
(utile pour le fortran)
:set all donne les caractéristiques d'un fichier
Différents caractères de contrôle sont prédéfinis:
le déplacement des flèches est donné par
j vers le bas
k vers le haut
l vers la droite
h vers la gauche
x
destruction d'un caractère
dw effacement du mot suivant
db effacement du mot précédent
shift-d efface la fin de ligne après le curseur
d$ effacement des mots suivants jusqu'à la fin de la ligne
dd
détruit une ligne
u
annule la dernière commande (ses effets sur une ligne)
space ou l
avance d'un caractère sur la droite
backspace ou h
recul d'un caractère vers la gauche
r fic1 remplace le caractère courant (où est le curseur) par le contenu du fichier fic1
r remplace le caractère courant (où est le curseur) par le caractère frappé ensuite
s substitue le caractère courant (où est le curseur) par le texte frappé ensuite
(sortie par échap)
. (point) répète la dernière commande
8
yy saisi la ligne courante est placé et la met en mémoire
P insère ce qui est placé en mémoire après la ligne courante
Pour copier une ligne, la saisir par yy; se déplacer puis faire p.
CNTRL-C sortie
CNTRL-F page suivante
CNTRL-D demi-page suivante
CNTRL-B page précédente CNTRL-U demi-page précédente
SHIFT-Z-Z sortie de l'éditeur avec sauvegarde du fichier
n répète les commandes ex ou ed
Passage en mode d'insertion
i
insère du texte avant la position courante
(taper CR pour aller à la ligne suivante;
le backspace revient en arrière sur la même ligne)
(sortie par échap)
a
insère du texte après la position courante
(sortie par échap)
o (o minuscule ou O majuscule) met en insertion en créant une ligne (après ou
avant) la position du curseur.
En mode d'insertion vous pouvez utiliser la souris pour des copier-coller, y compris à
partir de copies sur une autre fenêtre.
Avec la souris, copier : la saisie est faite par la touche de gauche; coller : touche du
milieu.
sortie du mode d'insertion par ECHAP (ou ESC).
Mode Historique
Il est possible d'avoir la liste des commandes antérieures: h donne la liste des
commandes qui ont été faites pendant la session. Le fichier .sh_history contient
l'historique de vos opérations.
Il est possible de rappeler les commandes antérieures pour les valider ou les
modifier avant de les valider. C'est entrer dans le "mode historique". Cela se fait par la
touche escape; on en sort par CNRTL-C ou par validation d'une commande (ou en
revenant à la toute dernière commande avec des + jusqu'à la fin)
- ou k affichage de la commande précédente
+ ou j affichage de la commande suivante
Pour modifier les commandes, les caractères de contrôle de vi sont valables.
9
Compilation et Exécution.
Les fichiers sources fortran doivent avoir un nom se terminant par .f
La source fortran doit être traduite par un compilateur pour créer un module
objet. Le module objet est ensuite relié à d'autres modules objet par l'éditeur de liens
pour engendrer le module exécutable. Il y a donc trois versions d'un même programme:
les fichiers .f .o et le module exécutable. Seul le fichier .f est lisible.
La commande xlf fic1.f fait les deux étapes. Nous conseillons de faire les deux
étapes de façon indépendante:
La commande xlf -c fic1.f fait la première étape seulement. Si tout se passe
bien, il apparaît dans votre catalogue un fichier fic.o (faire ls).
La commande xlf -o exe1 fic1.o fait la seconde étape seulement. En l'absence de
nom le fichier exécutable va s'appeler a.out
Si l'on doit réunir plusieurs modules objet faire
xlf -o exe1 fic1.o fic2.o fic3.o
Si l'on doit réunir tous les modules objet faire
xlf -o exe1 *.o
attention, il ne faut pas avoir alors plusieurs sousprogrammes avec le même nom. Il est recommandé de travailler dans un sousrépertoire dans lequel vous réunissez tous les fichiers dont vous avez besoin.
L'exécution est lancée par exe1
Lors de l'exécution les ordres "read "et "write" ne précisant pas de fichier spécifique [
read(*, read(5, write(*, write(6, ] renvoient au clavier et à l'écran.
Si l'on veut que l'exécution utilise des fichiers entrée et sortie à la place du clavier et de
l'écran, la commande unix devient :
exe1 <data >result &
Dans ce cas, les étoiles ou les labels 5 et 6 correspondant aux ordres [ read(*, read(5,
write(*, write(6, ] renvoient sur les fichiers définis par <data et >result.
Les flèches correspondent au sens de saisie des informations :
à partir de : <
ou
vers : >.
La double flèche permet d'écrire à la suite d'un fichier existant :
exe1 <data >>result &
Le signe & vous permet de lancer un processus (l'exécution) en vous laissant la main.
Sans ce signe, il faut attendre que l'exécution soit achevée pour que vous puissiez
continuer à travailler. (Voir commandes de processus)
Exécution en différé:
at 20
exe1 <data >result &
CNTRL-D
L'exécution exe1 ne se fera qu'à 20 heures.
10
COPIE D'ECRAN
Il faut la prévoir. Vous mettez en mémoire ce qui apparaît à l'écran dans un fichier, puis
vous en sortez et vous pouvez traiter ce fichier comme un fichier banal (l'éditer, le
modifier ou l'imprimer).
Ouverture du fichier script -a fic1
Sortie exit
si l'on ne donne pas de nom (commande script seule) le fichier contenant les images
parvenant à l'écran s'appelle typescript.
Courrier électronique
Pour envoyer un courrier faire mail nom-du-destinataire mail userid éventuellement
suivi de son adresse (userid@adresse).
pour sortir taper un point, puis un autre sur le prompt Cc:
Pour sortir de l'environnement mail faire quit
Pour recevoir un courrier enter dans l'environnement mail en tapant mail; les courriers
reçus ont de numéros. Ils sont sauvegardés dans mbox une fois lus.
Gestion de l'espace disponible
Vous pouvez réduire l'espace de vos fichiers avec la commande compress fic1.
Le nom de fic1 devient alors fic1.Z. La commande uncompress permet de retrouver les
fichiers dans leur forme utilisable.
La taille de vos fichiers apparaît avec ls -l.
du donne l'espace occupé par les fichiers de l'utilisateur au niveau ou il est et df donne
les renseignements complets sur les disponibilités de l'ordinateur entier.
11
Modification de votre .profile
Vous pouvez mettre dans votre fichier .profile des commandes à exécuter lors de
l'ouverture d'une session, par exemple
faire en sorte que les commandes vi soient accessibles:
EDITOR=/user/vi
export EDITOR
ou définir le terminal:
TERM=cdcpc
export TERM
En dehors de l'édition du .profile,
Pour voir ce que contient TERM faire ECHO $TERM
Pour voir le chemin jusqu'à vi faire ECHO $PATH vi
Pour modifier votre environnement faire $ env puis par exemple TERM=
Aide de l'environnement du CICRP : SOS
Vous pouvez avoir des informations en tapant sos. Il apparaît alors un menu. En
choisissant, par exemple, le numéro 31, on a des détails sur les impressions.
L'instruction man vous renvoie au contenu du manuel explicitant les
commandes : man lpr vous explique comment utiliser la commande lpr.
xman doit donner accès au manuel de façon interactive.
Connexions
Vous pouvez vous brancher sur le CICRP par PPP, telnet.... Regarder les codes
d'accès en cherchant connexion sur le site du CICRP.
12