1. Introduction à Unix#
1.1. Notions de système d’exploitation: « OS »#
1.1.1. Principes#
types: Unix (Linux), Windows (Win 95/98, Win NT, XP), Mac OS …
BIOS
Chargeur=Boot (LILO)
Noyau=Kernel (vmlinuz)
Interpréteurs de commande=shell (sh, bash, csh)
Interfaces graphiques=GUI (X11, gestionnaires de fenetres KDE, NexStep)
1.2. Système de fichiers#
arborescence logique: répertoires (dossier, directory)
racine ou root « / »
répertoires systèmes « /bin » « /lib » « /usr »
répertoires utilisateurs « /home/nom_utilisateur »
arborescence physique: disque et partitions
partitions locales et distantes\
[buffat@ufrmeca Cours]$ df Filesystem 1k-blocks Use% Mounted on /dev/sda2 54441 55% / /dev/sda6 995115 40% /home /dev/sda7 792800 87% /home1 /dev/sda5 995115 80% /usr /dev/sda8 567548 75% /home2 /dev/sdb1 1981000 47% /home3 /dev/sdb2 1981000 49% /home4 /dev/sdb3 1981000 1% /home5 /dev/sdb4 2687444 0% /home6 mecapar:/home7 2640869 36% /mnt
1.3. Controle d’accès#
login + password
permissions
protection des fichiers[buffat@ufrmeca cours_unix]$ ls -al base.tex -rw-r--r-- 1 buffat aero 28044 Jan 29 1995 base.tex
et des répertoires
[buffat@ufrmeca Latex]$ ls -al cours_unix total 732 drwxr-xr-x 8 buffat aero 1024 Sep 10 13:56 . drwxr-xr-x 24 buffat aero 1024 Jul 28 16:00 .. drwxr-xr-x 2 buffat aero 1024 May 18 13:21 BE drwxr-xr-x 3 buffat aero 1024 Apr 20 09:42 Cours drwxr-xr-x 6 buffat aero 1024 Feb 17 1997 Demo -rw-r--r-- 1 buffat aero 28044 Jan 29 1995 base.tex
Modification des protections d’un fichier: chmod.
chmod {a,u,g,o}{+,-}{r,w,x}
avec all (tous), user (propriétaire), group (groupe) , ou other (les autres).
1.3.1. liens sur les fichiers#
commande ln
ln {-as}
ln -s ../Cours/doc.tex doc1.tex
1.4. Commandes du shell#
cd
Change le répertoire de travail courant.
Syntaxe:cd
\ls
Affiche des informations sur les fichiers ou répertoires.
Syntaxe:ls …
Exemple :ls -lF /usr/bin
affichera le contenu du répertoire/usr/bin
.\cp
Copie un (des) fichier(s) dans un autre fichier ou répertoire.
Syntaxe:cp …
Exemple :cp ../frog joe
copie le fichier../frog
dans le fichier ou le répertoirejoe
.\mv
Déplace un (des) fichier(s) vers un autre fichier ou répertoire.
Syntaxe:mv …
Exemple :mv ../frog joe
déplace le fichier../frog
dans le fichier ou le répertoirejoe
.\rm
Supprime des fichiers..
Syntaxe:rm …
Options:-i
demandera confirmation avant chaque effacement de fichier.
Exemple :rm -i /home/dupont/recettes/cassoulet /home/dupont/recettes/vomitifs/macdo
effacera les fichiers cassoulet et macdo si l’opération est bien confirmée par l’opérateur.\mkdir
Crée de nouveaux répertoires.
Syntaxe:mkdir …
Exemple :mkdir /tmp/test
créera le répertoiretest
dans le répertoire/tmp
.\rmdir
Cette commande supprime les répertoires vides.
Syntaxe:rmdir …
Où à sont les répertoires à supprimer.
Exemple :rmdir /tmp/test
supprime le répertoiretest
dans/tmp
, si il est vide (et s’il existe).\man
Affiche la page de manuel pour la commande ou la ressource donnée.
Syntaxe:man
Exemple :man ls
donne la description de la commandels
.\more
Affiche le contenu des fichiers, un écran à la fois.
Syntaxe:more …
Exemple :more /etc/termcap
affiche le fichier
/etc/termcap
.cat
Normalement destinée à concaténer des fichiers, la commandecat
est aussi utilisée pour afficher tout le contenu d’un fichier d’un coup.
Syntaxe:cat …
Exemple :cat /etc/passwd
affiche le contenu du fichier/etc/passwd
.\echo
Affiche simplement les arguments qu’on lui passe.
Syntaxe:echo …
Example:echo "Bonjour tout le monde"
affichera la chaı̂ne «Bonjour tout le monde
».\grep
Affiche toutes les lignes dans le (les) fichier(s) correspondant à l’expression donnée.
Syntaxe:grep …
Où est une expression rationnelle, et à les fichiers dans lesquels la rechercher.
Exemple :grep local /etc/hosts
affichera toutes les lignes du fichier/etc/hosts
qui contiennent l’expression «local
».\
1.5. Caractères génériques du shell#
* remplace n’importe quelle suite de caractère
? remplace 1 caractère
[ccc]
remplace un caractère parmi ccc; (0-9) et (a-b) sont possiblesx
protection du caractère x (i.e non interprétation)“xxx” prend xxx littéralement sans interprétation
"xxx"
idem mais avec interprétation de‘cde‘
remplace par le résultat de la commande#
début de commentaire;
fin de commande
1.6. les entrées sorties#
entrée standard stdin, sortie standard stdout, sortie d’erreur
stderr
redirection des E/S
: *prog
file* remplace l’entrée standard de prog par le contenu de file.str
: prog `` str l’entrée standard suit jusqu’à l’apparition de « str » dans le flot de données.: *prog
file* écrit la sortie standard de prog dans file.: *prog
file* ajoute la sortie standard de prog dans file.|
: prog1|
prog2 création d’un « pipe » en connectant la sortie de prog1 à l’entrée de prog2
1.7. contrôle de processus#
commande ps
[buffat@ufrmeca COURS_UNIX]$ ps
PID TTY TIME CMD
6289 pts/1 00:00:00 bash
11272 pts/1 00:00:00 ps
processus en avant-plan, arrière-plan
arrêt d’un processus
kill pid
1.8. Editeur de texte#
un éditeur simple, mais puissant vi ou autre kwrite,.. xemacs..
2. Réseau#
2.1. Définition#
nom de machine hostname
nom de domaine domainname\
[buffat@ufrmeca COURS_UNIX]$ hostname -a
ufrmeca
[buffat@ufrmeca COURS_UNIX]$ hostname -d
univ-lyon1.fr
[buffat@ufrmeca COURS_UNIX]$ hostname
ufrmeca.univ-lyon1.fr
numéro IP = numéro carte ethernet unique
[buffat@ufrmeca COURS_UNIX]$ /sbin/ifconfig
eth0 Lien encap:Ethernet HWaddr 00:C0:4F:C9:62:03
inet adr:134.214.93.120 Bcast:134.214.95.255 Masque:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Paquets Reçus:5443720 erreurs:13 jetés:13 débordements:0 trames:13
Paquets transmis:697928 erreurs:0 jetés:0 débordements:0 carrier:0
collisions:6850 lg file transmission:100
Interruption:19 Adresse de base:0xdce0
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
Paquets Reçus:4636 erreurs:0 jetés:0 débordements:0 trames:0
Paquets transmis:4636 erreurs:0 jetés:0 débordements:0 carrier:0
collisions:0 lg file transmission:0
Numero de réseau et masque
[buffat@ufrmeca COURS_UNIX]$ cat ifcfg-eth0
DEVICE=eth0
IPADDR=134.214.93.120
NETMASK=255.255.252.0
NETWORK=134.214.92.0
2.2. Protocol de communication#
transmission de packets sur le réseau avec un protocol de communication
(TCP/IP)
accès à un service entre 2 machines
| num. IP destination | num. IP source | service (port) | message |\\
2.3. Serveur de noms#
transformation \(IP <-> hostname\)
fichier local \(/etc/host\)
[buffat@ufrmeca Cours]$ cat /etc/hosts | more
127.0.0.1 localhost
134.214.94.123 alien.univ-lyon1.fr alien
134.214.93.120 ufrmeca.univ-lyon1.fr ufrmeca
# UCB
#134.214.92.151 biomeca
134.214.92.164 mecaflu4.univ-lyon1.fr mecaflu4
134.214.94.124 mecapar.univ-lyon1.fr mecapar
134.214.92.100 secret-meca.univ-lyon1.fr secret-meca
serveur de noms
[buffat@ufrmeca Cours]$ cat /etc/resolv.conf
search univ-lyon1.fr
nameserver 134.214.100.6
nameserver 134.214.100.245
nameserver 156.18.22.3
resolution des noms
[buffat@ufrmeca Cours]$ nslookup
Default Server: cismsun.univ-lyon1.fr
Address: 134.214.100.6
> athena.mecaflu.ec-lyon.fr
Server: cismsun.univ-lyon1.fr
Address: 134.214.100.6
Non-authoritative answer:
Name: athena.mecaflu.ec-lyon.fr
Address: 156.18.40.105
2.4. Routage#
Porte=GATEWAY
[buffat@ufrmeca Cours]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ufrmeca.univ-lyon1.fr
DOMAINNAME=univ-lyon1.fr
GATEWAY=134.214.92.1
GATEWAYDEV=eth0
FORWARD_IPV4=no
Table de routage
[buffat@ufrmeca Cours]$ /sbin/route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
134.214.93.120 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
134.214.92.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 134.214.92.1 0.0.0.0 UG 0 0 0 eth0
Test de routage
[root@ufrmeca Cours]# traceroute athena.mecaflu.ec-lyon.fr
traceroute to athena.mecaflu.ec-lyon.fr (156.18.40.105), 30 hops max, 40 byte packets
1 accel101-1ercycle (134.214.92.1) 3.336 ms 18.720 ms 2.632 ms
2 cs7505-cism (134.214.200.225) 1.202 ms 1.156 ms 0.964 ms
3 u-1-cism-villeurbanne (193.48.222.2) 2.021 ms 5.537 ms 2.071 ms
4 lyon.aramis.ft.net (193.48.66.13) 21.626 ms 9.631 ms 8.879 ms
5 centrale-lyon.aramis.ft.net (193.48.66.62) 6.949 ms 29.308 ms 60.353 ms
6 193.54.216.1 (193.54.216.1) 19.696 ms 47.226 ms 22.045 ms
7 eclgw.servers.ec-lyon.fr (156.18.19.254) 9.213 ms 110.096 ms 36.818 ms
8 athena.mecaflu.ec-lyon.fr (156.18.40.105) 41.103 ms 39.818 ms 80.468 ms
Test d’une connection: \(ping\)
[root@ufrmeca Cours]# ping athena.mecaflu.ec-lyon.fr
PING athena.mecaflu.ec-lyon.fr (156.18.40.105): 56 data bytes
64 bytes from 156.18.40.105: icmp_seq=0 ttl=248 time=51.9 ms
64 bytes from 156.18.40.105: icmp_seq=1 ttl=248 time=53.0 ms
64 bytes from 156.18.40.105: icmp_seq=2 ttl=248 time=79.7 ms
64 bytes from 156.18.40.105: icmp_seq=3 ttl=248 time=16.5 ms
--- athena.mecaflu.ec-lyon.fr ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 16.5/50.2/79.7 ms
2.5. Services#
service= port + protocol (TCP,UDP)// messagerie (mail)= port 25 TCP
[buffat@ufrmeca Cours]$ telnet mecalpha 25
Trying 134.214.95.86...
Connected to mecalpha.univ-lyon1.fr.
Escape character is '^]'.
220 mecalpha.univ-lyon1.fr ESMTP Sendmail 8.8.7/8.8.7; Wed, 22 Sep 1999 01:00:39 +0200
helo mecalpha
250 mecalpha.univ-lyon1.fr Hello buffat@ufrmeca [134.214.93.120], pleased to meet you
......
ssh nom@hostname\
connexion sécurisée [buffat@p2chpd-visu2]$ ssh buffat@athena.mecaflu.ec-lyon.fr buffat@athena.mecaflu.ec-lyon.fr's password:xxxxxxx Last login: Thu Jul 10 09:46:01 from lns-th2-10-82-64 Digital UNIX V4.0D (Rev. 878); Mon Dec 13 15:29:15 MET 1999 athena.mecaflu.ec-lyon.fr>exit athena.mecaflu.ec-lyon.fr> logout Connection to athena.mecaflu.ec-lyon.fr closed.
telnet « hostname »
ancien mode de connexion (non sécurisé)scp user@host1:fichier1 fichier2
scp fichier1 user@host1:fichier2 transfert de fichier sécurisé
scp lstree.txt buffat@athena.mecaflu.ec-lyon.fr:toto.txt buffat@athena.mecaflu.ec-lyon.fr's password: xxxxxx lstree.txt 100% 206 962.5KB/s 00:00
ftp « hostname »
transfert de fichiers (non scurisé)mail : messagerie
envoi (en général avec un client)[buffat@ufrmeca COURS_UNIX]$ mail buffat@mecapar.univ-lyon1.fr Subject: essai mail Hello, essai de mail Marc ^D Cc: buffat
reception
You have mail in /var/spool/mail/buffat [buffat@ufrmeca COURS_UNIX]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/buffat": 1 message 1 new >N 1 buffat@ufrmeca.univ- Wed Sep 15 14:12 16/439 "essai mail" & q