• Aucun résultat trouvé

Cours Unix à télécharger pdf - startdown

N/A
N/A
Protected

Academic year: 2021

Partager "Cours Unix à télécharger pdf - startdown"

Copied!
5
0
0

Texte intégral

(1)
(2)

SOMMAIRE

PRESENTATION HISTORIQUE:

QU'EST CE QU'UNIX ?

COMMENT SE CONNECTER ?

COMMENT EST ORGANISE LE DISQUE ? EXEMPLE D'ORGANISATION DU DISQUE: L'AIDE ET LA DOCUMENTATION

ACTIVATION DES COMMANDES SHELL

COMMANDES SUR REPERTOIRES ET FICHIERS

ETATS DE LA MACHINE

COMMANDES DIVERSES

COMMANDES SUR PERIPHERIQUES DEMANDES D'IMPRESSIONS

ACCES AUX DISQUETTES

DISQUETTESAUFORMAT UNIX : DISQUETTESAUFORMAT DOS

REDIRECTION DES ENTREES SORTIES UTILISATION DU RESULTAT D'EXECUTION D'UNE COMMANDE :

CONNEXIONS ENTRE COMMANDES : REDIRECTION SUR PERIPHERIQUE

ALIAS OU SYNONYMES DE COMMANDES UTILISATION D'ARGUMENTS PASSES A UN ALIAS :

REGROUPEMENT DE COMMANDES DANS UN ALIAS :

(3)
(4)

PRÉSENTATION

HISTORIQUE:

laboratoires BELL en 1970

réécrit en C en 1973 (=> portabilité)

évolutions: AT&T -> UNIX System V.4 (dont SCO) université Berkeley -> UNIX BSD 4.3 avenir: normes: POSIX (Portable Operating System)

IEEE , ANSI (de l'Afnor), ISO (de l'OSI) industriels: AT&T, Sun, DEC, IBM, Apollo

Unix International

OSF (Open Software Fundation) ces deux alliés au Groupe X-OPEN QU'EST CE QU'UNIX ?

Système multiutilisateurs, multitache (notion de processus) Possibilité de réseau (TCP/IP)

Portabilité des applications (langage C) Protection des utilisateurs

Unix est constitué d'un · NOYAU

· INTERPRETEUR DE COMMANDES ( le shell ) · MESSAGERIES

· PROGRAMMES UTILITAIRES ( éditeurs, compilateur C, assembleur, débogueur)

(5)

COMMENT SE CONNECTER ?

entrer un nom d'utilisateur et un mot de passe: accès à un compte créé par l'administrateur de la machine. Caractéristiques de ce compte:

nom, mot de passe, répertoire de login, shell de login, groupes de travail, autorisations ...

Au démarrage, deux fichiers de commandes sont exécutés afin de configurer la session de travail: .cshrc et .login (sous Cshell) ou .profile (sous Bourne Shell).

COMMENT EST ORGANISÉ LE DISQUE ?

en répertoires dans lesquels sont rangés des fichiers et des pseudos fichiers (sous répertoires, drivers de périphériques ...).

La racine (root) est notée / et le chemin complet (path) d’un fichier est donné par

/rep1/rep2/file

Noter que les sous répertoires et que la majorité des fichiers n'ont pas d'extension les caractérisant! Cependant les fichiers dont le nom commence par un . sont cachés.

Les répertoires et fichiers ne sont pas connus de la machine par leur nom mais par un numéro donnant l'index à une table de blocs d'informations (taille, adresse, type, propriétaire, droits, compteur de liens ...). Ce numéro s'appelle inode

(index node). Un répertoire est une suite de couples inode-nom (2 octets-14 caractères); ainsi un même fichier

(un seul bloc d'infos!) peut être vu sous plusieurs noms depuis plusieurs répertoires.

(6)

EXEMPLE D'ORGANISATION DU DISQUE:

/ la racine (qui contient le noyau) /bin binaires du noyau (ls, date, cc, asm ...) /usr/bin autres binaires (vi, awk ...)

/lib bibliothèques /usr/lib "

/usr/include fichiers inclus du C

/dev fichiers périphériques (lp0, tty01, tty1a ..) /etc fichiers exécutables et data divers pour

l’admi-nistrateur (mots de passe, gestion des terminaux ...) et à Champs sur Marne !:

/users répertoire pour la formation /users/stage

/users/prof /users/invite

L'AIDE ET LA DOCUMENTATION

la documentation est regroupée en manuels

- administrator's reference et guide: pour le responsable de la gestion du système (compte super utilisateur root)

reference ADM (administrator) HW (hardware dependant)

- user's reference et guide: pour tout utilisateur du shell references C (commandes)

M (miscellaneous) F (file format)

(7)

- programmer's reference et guide: pour tout utilisateur programmant en C sous système multitache

references CP (programming commands) S (services, subroutines & libraries)

Ainsi que d'autres manuels référençant le DOS, l'assembleur, l'écriture de drivers ...) Toute la documentation, sous forme de manuels, existe

en double sur disque et est accessible par la commande

man <topic>

man <reference> <topic>

exemples :

man man

man C kill ou man 1 kill

man S kill ou man 2 kill (numéro du manuel de 1 à 8)

Le manuel 1 concerne les commandes du shell, le 2 les appels système et le 3 les fonctions de la bibliothèque.

Les pages du manuel sont enchainées par des <RC> avec des déplacements par <+/- n> et sortie par <q>. Sous Unix SCO installé en APII, toutes les gestions de l'administrateur ainsi que certaines commandes pour les utilisateurs banalisés peuvent être facilitées par l'utilitaire multifenêtrage sysadmsh.

(8)

ACTIVATION DES COMMANDES SHELL

cde -options

commande avec option(s)

cde1 ; cde2

enchainement séquentiel

( cde1 ; cde2 )

regroupement de commandes

\

continue la commande sur ligne suivante

! cde

exécute la commande depuis une autre commande (par exemple depuis l'éditeur vi)

time cde

avec mesure du temps

history

visualise les commandes passées au clavier sous Cshell uniquement et sous condition que la commande "set history = 20" soit activée dans ce cas le rappel de commandes peut se faire ainsi :

!!

!n

(le numéro)

!pw

(premières lettres)

!?chaine?

(une chaine contenue dans la commande)

cde !$

(!$ represente alors le dernier argument de la commande précédente)

(9)

sleep n

mise en sommeil de la session pendant n sec.

cde &

en arrière plan

alors

wait

attend la fin des demandes lancées par &

batch

cde >/dev/tty01

redirige les affichages sur terminal, sinon dans le mail

. . .

(

suite de commandes entrées au clavier)

<CTRL> <D>

termine la saisie des cdes

nohup cde &

permet de se deloguer et d'éteindre le terminal, les sorties se font dans nohup.out

at 15:23

permet de choisir l'heure d'exécution

cde >/dev/tty01

. . .

<CTRL> <D>

Dans tous les cas, un numéro de job est attribué et :

at -r <numéro du job>

permet de retirer la demande

at - l

permet de voir les demandes

(10)
(11)

COMMANDES SUR REPERTOIRES ET FICHIERS

pwd

donne le répertoire courant

nota :

.

désigne le répertoire courant et

..

répertoire père

.

ls -lAF

(options l : complet , A : caché , F : info fin / ou *)

affiche le contenu répertoire sous la forme :

trwxrwxrwx NL U G T date name

avec t

: type (- d l b c p s m) du fichier

rwx

: permissions pour u g o (user group other)

cf pages suivantes (existe aussi endossement, sticky et lock S)

NL

: nombre de liens

U

: propriétaire du fichier

G

:

groupe

T

: taille en octets

date

: de dernière modification

name :

nom dont name* pour les exécutables name/ pour les répertoires

lf

affiche en colonnes

lr | more

affiche récursivement

cd path

change de répertoire

(12)

sous Cshell, on peut faire

pushd rep

puis

popd

qui utilisent une pile des repertoires

mkdir rep

crée le répertoire

rmdir rep

destruit le répertoire

copy -r rep1 rep2

recopie (récursivement) le répertoire

cp f1 f2

recopie du fichier f1 sur f2

cp f1 rep

recopie dans autre répertoire

cp f1 f2 ... rep

mv f1 f2

change le nom du fichier

mv rep1 rep2

mv f1 rep

déplace dans un autre répertoire

mv f1 f2 ... rep

ln f1 f2

crée le nom f2 sur le même inode que f1

rm -i f1

destruit avec confirmation

(13)

cat f1

affiche

cat f1 f2

affiche les 2 fichiers

more f1

affiche par pages

more f1 f2

od -c f1

extrait (dump) en caractères octal

od -x f1

ou en hexa

find . -name f1 -print

recherche le fichier f1

test -f f1.fic

teste l'existence du fichier

test -d rep

teste l'existence du fichier

puis

echo $status

donne alors 0 s’il existe, 1 si non

find rep -print -exec chown user {} \;

avec 1 espace après le ; change les propriétaires de toute l'arborescence

file f1

donne le type du fichier

Notes sur les

wildcards

*

chaine quelconque de caractères

?

un caractère quelconque

[abx] un des caractères a, b ou x

[1-9] un des caractères entre 1 et 9

(14)

Notes sur les permission r w x (ou 4 2 1 en octal) pour un fichier r droit de lecture

w droit d’écriture x droit d’exécution

pour un répertoire r droit d’en lister le contenu

w droit de créer, effacer et renommer un de ses fichiers

x droit de le traverser (par les path) ou d’utiliser un des ses fichiers

Masque des permissions par défaut :

Le mode de création par défaut des fichiers est généralement 666 et 777 pour les répertoires. Cependant un masque invalide certaines de ces permissions; par exemple si le masque vaut 022, les fichiers seront créés en 644 (soit rw-r--r--) et les répertoires en 755 (soit rwxr-xr-x).

umask

récupère le masque des permissions par défaut

umask perm

modifie ce masque (perm en octal)

chmod perm f1 [f2 ...]

change permissions (en octal)

chmod [ugoa] [+-] [rwx] f1 [f2 ...]

idem

chown username f1 [f2 ...]

change le propriétaire

(15)

ÉTATS DE LA MACHINE

COMMANDES = PROCESSUS

Chaque processus est référencé par un numéro entier : son pid

ps -f

visualise les processus du terminal courant

ps -l

idem plus complet; état des processus (O run,S sleep,R ready, Z zombie

...)

ps -ef

tous les processus

ps -p pid

visualise ce processus

ps -u user

les processus de cet utilisateur

kill -9 pid

tue ce processus

kill -9 0

tue tous les processus de l’utilisateur

who

infos sur utilisateurs (nom term date-heure de login)

finger

idem en plus complet

whodo

« qui fait quoi? »

who am i

« qui suis je ? »

(16)

COMMANDES DIVERSES

sh

ou

csh

active un nouveau shell : nouveau processus

exec sh

ou

exec csh

remplace le shell : même processus

date

donne la date et l’heure

cal [n°mois] [n°année]

donne un calendrier

clear

efface l'écran

echo "salut"

ou

echo salut

affiche à l’écran

banner "salut"

affiche en gros caractères

passwd

modifie le mot de passe du compte

mail

lecture du courrier

mail dupont . . . <CTRL> <D>

envoie courrier à Dupont

write dupont . . . <CTRL> <D>

envoie message sur terminal de Dupont

wall . . ..<CTRL> <D>

envoie message à tous les terminaux

(17)

COMMANDES SUR PÉRIPHÉRIQUES

/dev/tty01 et /dev/tty03, /dev/tty04 ...

console

/dev/tty1a et /dev/tty2a

lignes séries

/dev/ttyp0, /dev/ttyp1 ...

lignes "réseau"

/dev/tty

Nom générique du terminal pour chaque utilisateur

ls -l /dev/tty1a

visualise l'état du driver de périphérique

stty [-a]

ou

stty [-a] </dev/tty1a

visualise options

stty 19200

ou

(stty 19200) </dev/tty1a

modifie ex :

stty erase "^H "

valide l’effacement arrière

stty intr "^C"

valide le CTRL C (entrés par CTRL V <- et CTRL V CTRL C sous éditeur vi) (entrés par <- et CTRL C sous shell ; ne se visualise pas d’ailleurs)

DEMANDES D'IMPRESSIONS

lp [-nnumber] [-ttitre] f1

impression

pr -n f1 | lp

avec mise en page préalable par pr

lpstat -l -o

visualise les requêtes

(18)

ACCÈS AUX DISQUETTES

Disquettes au format UNIX :

/dev/rfd048ds9

nom d'une disquette du type possibilité numéros abrégés (voir fichier /etc/default/tar)

lister contenu disquette

tar t0 (a: en 5") tar t6 (a: en 3")

tar t1 (b: en 5") tar t7 (b: en 3")

tar x[v]6

relire une disquette

tar xw 6

id avec confirmation

tar x[v]6 f1

relire st un fichier

tar c6 *

nouvelle création et écrit toute arborescense

tar c6 f1

nouvelle création et écrit st un fichier

tar u6 *

ajout de toute l'arborescence

tar u6 f1

ajout d'un fichier

format [6]

formatage disquette (voir fichier /etc/default/format)

Disquettes au format DOS

dosls a:

lister contenu

doscp -m a:toto.txt toto

relire un fichier (-m évite l’ajout de RC)

doscp toto a:

écrire sur disquette

dosmkdir a:/sauve

création répertoire

doscat a:toto.txt

visualiser un fichier

(19)

REDIRECTION DES ENTRÉES SORTIES

UTILISATION DU RÉSULTAT D'EXÉCUTION D'UNE COMMANDE :

les accents graves ` ` permettent de récupérer un résultat de commande :

echo `ls -lFA`

set prompt = "APII-""`pwd` >"

dans un groupe entre " " les accents graves ` ` sont regroupés puis sont évalués dans un groupe entre ' ' les accents graves ` ` sont protégés

(pas traduits)

CONNEXIONS ENTRE COMMANDES :

la sortie d'une commande peut être connectée vers l'entrée d'une autre commande par un tube (ou pipe) :

cde1 | cde2

(cde1; cde2) | cde3

les commandes s'exécutent en parallele (plusieurs processus) et l'ensemble de ces connexions forme un pipeline.

il est possible de capter les données qui transitent dans un tube :

cde1 | tee [-a] f1 | cde2 (-a : ajout)

cde1 | tee f1

(20)

REDIRECTION SUR PÉRIPHÉRIQUE

mail dupont durand < f1

redirige l'entrée

(date; echo "hello") > f1

redirige la sortie

ls > /dev/lp0

echo "hello" > /dev/tty1a

vers imprimante vers terminal quelconque déprotégé

cat f1 >> f2

concatène f1 à la suite de f2

ls > f1

et ajout à la suite de f1 si

ls >> f1

Et si booléen de sécurité noclobber vrai (en Cshell) faire :

ls >! f1

et ajout à la suite de f1 si

ls >>! f1

descripteurs réservés : 0 entrée (clavier)

1 sortie (écran)

2 sortie d'erreurs (écran) sortie des erreurs avec redirections sur fichiers :

en shell

cde 2> error.out

cde 2>> error.out

en cshell

cde > f ichier

sorties seulement

cde >& fichier

sorties + erreurs => astuce :

(cde > f1) >& error.out

(21)
(22)

ALIAS OU SYNONYMES DE COMMANDES

alias d date

définit d comme alias de date

d

utilisation de l’alias

alias d

visualise cet alias

unalias d

détruit cet alias

alias

visualise tous les alias UTILISATION D'ARGUMENTS PASSÉS À UN ALIAS :

appel : bidule f1 f2 f3 f4

la définition de l’alias bidule peut utiliser les arguments de cette façon :

\ ! ^

le premier,

\ ! $

le dernier,

\ ! *

tous

\!:3

le troisième,

\!:2-4

du deuxième au quatrième REGROUPEMENT DE COMMANDES DANS UN ALIAS :

alias d 'date;who'

enchaînement séquentiel

alias print 'pr -n \!* | lp'

parallélisme avec tube

Noter qu’un alias sera prioritaire sur toute autre commande de même nom (possibilité de masquer des commandes de base).

(23)

SCRIPTS OU FICHIERS DE COMMANDES

Ce sont des fichiers développés sous éditeurs et contenant des commandes décrites en shell ou en Cshell.

EXÉCUTION DU SCRIPT DANS UN SOUS PROCESSUS AUTRE :

fscript

si protection

x

; par défaut le script s’exécute sous sh

sh fscript

exécution dans un processus shell

csh fscript

exécution dans un processus Cshell

csh -f fscript

idem sans exécution préalable du .cshrc

EXÉCUTION DU SCRIPT DANS LE MÊME PROCESSUS QUE L’APPELANT :

. fscript

si appelant shell : (noter l’espace)

source fscript

si appelant Cshell :

On peut forcer le shell d'exécution d'un script par une première ligne d'en tête dans le fichier script :

#!/bin/csh [-f] -f pour ne pas avoir le .cshrc

UTILISATION DE PARAMÈTRES PASSÉS À L'APPEL DU SCRIPT en Cshell :

$0 le nom du script lui même

$argv[1] $argv[$var] le 1er et le ième paramètre

(24)

STRUCTURES DE PROGRAMMATIONS

EN CSHELL

:

shell = langage de programmation

les commentaires sont précédés de

#

Sortie du script par exit [n] avec n=0 ok, n=1 erreur; par défaut, n est le retour de la dernière commande du script; la valeur de sortie n se testera par la variable prédéfinie status ex : echo $status

Toutes les structures classiques sont fournies avec des syntaxes différentes selon le shell d'exécution du script.

Sous Cshell :

if (...) then ... else ... endif switch (...) case .... endsw foreach <var> ... end while (...) .... end goto, break

manipulation de variables sous cshell :

la référence au contenu d’une variable se fait par $: $var existence d'opérateurs : + - .. = > ... ? # @

affectation (notez les espaces) : set V = <chaine>

set V pour booléenne

(25)

pour un ensemble de valeurs (utile pour boucles foreach)

set V = (aze rte uuy poiuy)

dans ce cas

$V[i]

rend la ième valeur

et

$#V

donne le nombre de valeurs

unset V

destruction

+ - *

opérations.... (notez les espaces)

set V = `expr $V + 1`

@ V = $V+1

si numérique

test $V ou $?V

test d'existence rend 1 si existe, 0 sinon afficher le résultat du test par echo $status

set V = `line`

lecture clavier

@ V = `line`

pour lecture en numérique

echo $V

affichage écran : utilisation des variables par les commandes :

on peut vouloir traduire ces variables :

"$V" ou $V

ou ne pas les traduire :

'$V' ou \$V

regrouper des chaines :

set V = "<ch1> <ch2>"

regrouper des variables :

set V = "$V1""$V2"

exemple :

set V = "coucou le stagiaire"

echo '$V' = "$V"

affichera : $V = coucou le stagiaire Certaines variables dites d'environnement sont héritées par les sous processus : création :

setenv V <chaine>

(26)

VARIABLES PRÉDÉFINIES DU CSHELL

$HOME

ou

$home

ou

~

répertoire de connexion :

$prompt

signe d’invitation ou prompt :

$PATH

Chemin

set PATH = (p1 p2 p3)

Chemins

$SHELL

shell de connexion :

$LOGNAME

nom de connexion :

$LOGTTY

terminal de connexion :

$TERM

type du terminal :

$status

retour d’exécution de commande

variables booléennes :

ignoreof

interdiction du logout par CTRL D

noclobber

protection contre les redirections

(27)

LES TRAITEMENTS SUR LES FICHIERS DE TEXTE

more f1 f2 ...

affichage par pages écran

cat f1 f2 ...

affichage écran

cat > f1

saisie au clavier du fichier (arrêt par CTRL D)

cat f1 f2 > ftot

concaténation

cat f1 f2 >> ftot

concaténation + ajout en fin de ftot

lp f1 f2 ...

impression sur imprimante

pr f1 f2 ...

impression sur écran avec options de mise en forme

spell f1

correcteur d’orthographe (américain!)

wc [-l-w-c] f1

comptage de lignes, mots (words), caractères (char).

sort

tri par ordre alphabétique et fusionne

grep

recherche les occurences

uniq

extrait des lignes identiques entre fichiers

(28)

comm

comparaison de deux fichiers déjà triés

diff

indication des différences entre fichiers

tr

transcription / suppression des caractères

sed

Stream Editor (éditeur de flots)

awk

langage de recherches et de traitements des lignes de texte

head

garde des premières lignes (10 par défaut)

tail

garde des dernières lignes (10 par défaut)

(29)

L'ÉDITEUR DE TEXTE VI

fichier de configuration au démarrage : .exrc Cet éditeur présente deux modes :

- le mode texte qui permet d'entrer du texte; accessible par une commande d'insertion :

après curseur :

a

avant curseur :

i

après fin ligne :

A

avant début ligne :

I

- le mode commande qui permet d'entrer des commandes permettant de modifier le texte; c'est le mode d'arrivée lorsque l'on appelle vi.

Accessible depuis le mode texte par la demande d'échappement

<ESC> :

- les sauvegarde/sortie de l'éditeur se font en mode commande sur le bandeau de la dernière ligne.

sauvegarde :

:w [autrefile]

sortie :

:q!

ou

:x

avec sauvegarde nom du fichier en cours? :

:f

- il est possible d'insérer un fichier à l'emplacement du curseur

:r file

- et d'éditer/créer/ouvrir une autre fenêtre de fichier :

:e file

(30)

EN MODE COMMANDE

déplacements curseur :

début ligne

0

fin ligne

$

début fichier

< home >

fin fichier

G

n ième ligne

nG

milieu écran

M

effacements : (tous les effacements vont en buffer)

caractère

x

mot

dw

ligne

[n]dd

avant curseur

d0

après curseur

d$

copies en buffer :

de n ligne(s)

[n]yy

du début de la ligne

y0

de la fin de la ligne

y$

restitution du buffer :

n fois

[n]p

remplacement caractère

r <touche>

recherche :

/ <chaine>

puis suivantes par n

scinder une ligne et joindre deux lignes :

(31)

recopie entre fenêtres :

se positionner sur les fenêtres par :e file

puis recopier les n lignes dans des buffers nommés par

"a[n]yy

( a nom du buffer) et les restituer par

"ap

QUELQUES COMMANDES DU FICHIER DE DÉMARRAGE .EXRC

set number

numérote les lignes

set tabstop = n

positionne la tabulation

réaffectation des touches :

- en mode commande :

map ^w :w^M

permet au

CTRL W

de provoquer une sauvegarde du fichier

- en mode insertion de texte :

map! ^^ {

map! ^_ }

permet d'avoir sur vt220 les caractères { et }

nota :

CTRL [

se visualise sous vi par

^^

et

CTRL

] par

^_

sous VT220 le caractères

{

est obtenu par la séquence CAR.COMPOSE

- (

Le caractère CTRL est entré sous vi par

CTRL V

et se visualise par

^

Ainsi le caractère ESCAPE s'obtient sous vi par l'entrée de CTRL V puis CTRL 3 et se visualise

^[

Références

Documents relatifs

Les enquêtes de déplacements urbains : mesurer le présent, simuler le futur = Urban travel survey methods: measuring the present, simulating the future : Actes du colloque des

Ce que j'ai pu constater, et Fassin (1992) le souligne également, c'est que la cause et l'origine du mal sont le plus souvent extériorisées par l'individu et la société. En

Plusieurs conclusions émergent de cette modélisation séculaire du système de transport. • La relation de long terme entre la production industrielle et le volume total de trafic a

A la vue des préoccupations en termes de développement durable, une volonté de prendre en considération les questions d’équité sociale resurgit des discours des décideurs.

Bien que les intervenants en général s’entendent pour dite que les programmes nationaux ont leur place en médium pour les sentences vies, trois intervenants ( 2 ALC et un ACII

améliorer ses propres pratiques pour que les mouvements des marchandises se passent au mieux : un appel à la mutualisation, à la concertation visant un partenariat public-privé,

(2001), par une étude détaillée de la fréquentation et des pratiques liées à une ligne de transports collectifs desservant un quartier difficile de Marseille, montrent bien que

Pour ceux qui ont niveau d’éducation relativement faible (sans instruction, primaire ou moyen) les femmes ont une tendance plus marquée à ne pas être couvertes par