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épertoire joe.\

  • 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épertoire joe.\

  • 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épertoire test 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épertoire test 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 commande ls.\

  • 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 commande cat 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 possibles

  • x 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
......  
  1. 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.
    
  2. telnet « hostname »
    ancien mode de connexion (non sécurisé)

  3. scp user@host1:fichier1 fichier2

  4. 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
    
  5. ftp « hostname »
    transfert de fichiers (non scurisé)

  6. 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