Fichiers et répertoires

publicité
Linux - but de ce cours
Fastidieux, mais indispensable
Organisation interne de Linux
Connaître les commandes utiles et constituer
un mini formulaire basique
Comprendre les différences entre Windows et
Linux
Environnement : Introduction à Linux
Présentation
Un linux, plusieurs distributions
Gérer son espace de stockage
Les utilisateurs du système
Les commandes fondamentales
TP... !
Linux - Présentation
Linux est un système d'exploitation
Autres systèmes connus : Windows, MacOS, BeOS, FreeBSD,
OpenBSD, ...
Son ancêtre date des années 70 : Unix
Philosophie : logiciels libres
Tout le monde peut participer au développement de ces logiciels
License GNU : Gnu is not Unix, Unix est un système propriétaire
Gratuit, mais ce n'est pas son unique attrait
Grande communauté de développeurs
Peu vulnérable aux virus actuels
Linux - Présentation
Linux est né au début des années 90
Initiateur du projet : Linus Torvalds
Système basé sur Unix
Multi-tâches et multi-plateformes : Sparc, Alpha, ...
Linux n'est que le noyau du système
Linux est basé sur la license GPL (GNU Public License):
On peut utiliser du code sous licence GPL mais le programme devra
également être sous cette licence
Clônes d'Unix basés sur des licences autres que GPL :
License BSD : OpenBSD, FreeBSD ...
Particularité : On peut réutiliser librement du code BSD dans des
programmes non-libres (ex : Windows)
Environnement : Introduction à Linux
Un linux, plusieurs distributions
Linux – Les distributions
Qu'est ce qu'une distribution ?
Support : CD/DVD, disquette, installation réseau, clés USB, ...
Contenu :
Système de base
Noyau (gestion du matériel et du système en général)
Gestionnaire de démarrage (“Boot manager”) : lilo, grub, ...
Interface utilisateur
Shell (bash, ksh ...) en mode texte
“Explorateurs” graphiques à la Windows
Services
Serveur d'impression, serveur Web, ftp, dns, ssh, annuaires ...
Linux – Les distributions
Qu'est ce qu'une distribution ?
Contenu (suite) :
Serveur d'applications graphiques (appelé “serveur X”)
Xfree et Xorg
Environnements
KDE, Gnome, ...
Applications
Bureautique : openoffice, organiseurs, ...
Graphisme : Gimp, Blender (3D), ...
...
On trouve des applications gratuites dans à peu près tous les
domaines
Linux – Les distributions
Une distribution, une philosophie
Utilisation de packages binaires
RedHat/Fedora
Mandriva (ex ”Mandrake”)
Debian
...
Utilisations de sources
Gentoo : système “Live” / tous les programmes sont recompilés
Quelle distribution choisir ?
En fonction de ses besoins
Serveur (web, ftp, firewall, ...)
Machine de bureau (“workstation”)
Machine de développement
En fonction de son niveau
Environnement : Introduction à Linux
Gérer son espace de stockage
Linux – Gérer l'espace de stockage
Disque dur et partitions
Pour fonctionner Linux s'installe sur le disque dur de la machine
L'espace du disque est découpé sous forme de partitions
Ex : faire cohabiter plusieurs systèmes sur le même disque
Linux nécessite au moins deux partitions
Une partition racine, comportant les fichiers du système
Une partition d'échange (“swap”) invisible pour l'utilisateur : espace disque
utilisé comme mémoire supplémentaire (beaucoup plus lent !)
On peut utiliser des disques/partitions supplémentaires
Exemple : /var, /boot ...
swap
Partition Racine Linux /
/home
Windows
Disque dur
Linux – Gérer l'espace de stockage
Disque dur et partitions
Le bootloader
Exemple : Lilo , grub etc.
Premier programme exécuté au démarrage de la machine
Si l'on dispose de plusieurs systèmes d'exploitation, ce programme permet de
démarrer (“booter”) sur l'un d'entre eux
Permet également de choisir parmi plusieurs noyaux
Bootloader
●
swap
Partition Racine Linux /
● Linux
Windows
/home
Windows
Disque dur
Linux – Gérer l'espace de stockage
Partitions : “points de montage”
Monter une partition = relier la partition à un répertoire
Exemple :
Sys. de fich.
/dev/hda7
/dev/hda6
/dev/hda1
/dev/hda5
Taille
8,8G
14G
9,9G
9G
Occ.
6,5G
9,5G
7,1G
6,8G
Disp.
2,3G
4,5G
2,8G
2,2G
%Occ.
75%
66%
78%
85%
Monté sur
/
/home
/mnt/windows/systeme
/mnt/windows/donnees
Partitions et systèmes de fichiers
Plusieurs types de partitions :
Partitions non-journalisées : FAT, Ext2 ...
Partitions journalisées : NTFS, Ext3, ReiserFS ...
Choix important
Performances
Fiabilité
Linux – Gérer l'espace de stockage
Arborescence du système
/ : Racine du système
etc/ : fichiers de configuration
bin/ : programmes et commandes de base
boot/ : noyau du système
tmp/ : fichiers temporaires créés et utilisés par le système
var/ : divers fichiers relatifs au système d'exploitation (logs, files, cache, ...)
usr/ : programmes utilisateurs, librairies, fichiers partagés, ...
home/ : répertoires personnels des utilisateurs
toto/
jean/
mnt/ : communément utilisé pour les divers “montages” de disques ou partitions
cdrom/
windows/
Linux – Gérer l'espace de stockage
Arborescence du système
/
C'est la racine du système de fichiers. Tous les répertoires suivants
sont des sous répertoires de cette racine.
/bin
Contient les commandes de base du système comme cat, cp, mv, ls,
ln, tar ...
/boot
Contient divers fichiers qui concernent le démarrage de l'ordinateur,
notamment le chargeur de démarrage Lilo (ou Grub), le noyau ...
Linux – Gérer l'espace de stockage
Arborescence du système
/dev
Contient tous les “descripteurs” de périphériques : sous Linux, chaque périphérique
est représenté par un fichier particulier.
Tous les périphériques y figurent : clavier, souris, ports de communication...

✗
✗
✗
✗





Nomenclature des périphériques sous Linux :
hdx : disques durs (ou CD-Roms) IDE. On remplace x par a, b, c ou d.
hda : périph. maître sur la première nappe IDE
hdb : périph. esclave sur la première nappe IDE,
hdc : périph. maître sur la seconde nappe IDE
hdd : périph. esclave sur la seconde nappe IDE
sdx : disques SCSI
fdx : lecteurs de disquettes, où x est à remplacer par 0 (1er lecteur) ou 1 (le 2nd)
ttySx : ports série (x va de 0 à 1 généralement)
lpx : ports parallèles (x va de 0 à 1)
...
Linux – Gérer l'espace de stockage
Arborescence du système
/etc
Contient les fichiers de configuration des logiciels GNU/Linux.
/home
- Par convention, contient les répertoires personnels des utilisateurs.
- Par exemple, si mon login (identifiant de connexion) est “toto”, alors mon
répertoire personnel sera “/home/toto”.
- Il est préférable de placer le répertoire “/home” dans une partition différente
de la racine, afin de faciliter la mise à jour du système : on peut formater la
partition “/” (racine du système) ou “/usr” sans toucher aux données
personnelles ni aux réglages personnels des logiciels.
/lib
Contient les bibliothèques (“librairies”) des programmes
Linux – Gérer l'espace de stockage
Arborescence du système
/mnt
- Par convention, contient les répertoires qui permettent d'accéder aux
lecteurs.
- Par exemple, après montage, “/mnt/cdrom” contient les informations stockées
sur le CD présent dans le lecteur
/opt
Contient les programmes ajoutés en dehors de la distribution. En général, ce
répertoire est situé sur une autre partition que celle qui contient la racine,
toujours afin de faciliter les mises à jour du système. De plus, chaque
programme de “/opt” est dans son propre sous-répertoire, ce qui conduit à une
structure propre (alors que tout est en vrac dans /usr/bin !).
/proc
Contient divers fichiers virtuels : c'est la représentation sous forme de fichiers
des informations du système. Il ne s'agit pas de vrais fichiers stockés sur le
disque dur.
Linux – Gérer l'espace de stockage
Arborescence du système
/root
Répertoire personnel du super utilisateur “root”.
/sbin
Contient les commandes utilisables seulement par “root” (l'administrateur), comme
“halt” qui arrête l'ordinateur, “fdisk” qui partitionne le disque, etc... Tout le monde ne
peut pas faire ces opérations (heureusement !)
/tmp
Répertoire temporaire. En théorie, ce sont les programmes qui l'utilisent pour stocker
des fichiers de sauvegarde ou pour faire diverses opérations. En général, les
utilisateurs doivent éviter de stocker des fichiers dans ce répertoire.
/usr
Répertoire très important ! Il contient tous les programmes utilisateur (/usr/bin), les
données partagées entre tous les programmes (/usr/share : icônes, fonds d'écran,
sons, etc...), les documentations (/usr/share/doc)...
Linux – Gérer l'espace de stockage
Arborescence du système
/var
Contient les fichiers de journalisation (logs : /var/log), les mails
(/var/spool/mail), les files d'impression, des archives utilisées par le
système ...
Environnement : Introduction à Linux
Les utilisateurs du système
Linux – Les utilisateurs
L'administrateur
Aussi appelé “root” ou “super utilisateur”
Est responsable du fonctionnement du système
A tous les “droits” (lecture, écriture ...)
Les utilisateurs
Chacun possède son propre espace : /home/toto
Obéissent aux règles définies par l'administrateur
Peuvent être répartis dans différents groupes
Même si vous êtes seul sur le système, il vaut mieux créer un
utilisateur en plus de l'administrateur
Réduire le nombre d'erreurs “critiques”
Environnement : Introduction à Linux
Les commandes fondamentales
Linux – Les commandes fondamentales
Fichiers et répertoires
Listage, taille et arborescence
“ls” : cette commande liste les fichiers du répertoire passé en
paramètre ou du répertoire courant
Linux – Les commandes fondamentales
Fichiers et répertoires
Listage, taille et arborescence
“ls” : cette commande liste les fichiers du répertoire passé en
paramètre ou du répertoire courant
Exemple :
turing:~/progs# ls -alh
total 13M
drwxr-xr-x
9
root
drwxr-xr-x
29 root
drwxr-xr-x
2
root
drwxr-xr-x
6
root
-rw-r--r-1
root
drwxr-xr-x
3
stef
drwxrwxr-x
10 stef
-rw-r--r-1
stef
root
root
root
users
root
users
bio
bio
4.0k Sep 22 16:16
.
4.0k Sep 22 14:28
..
4.0k Jun 24 09:15
java
4.0k Sep 27 15:33
k3b-0.11.17
11M Sep 23 10:29
k3b-0.11.17.tar
4.0k Jun 22 08:21
pciutils-2.1.11
4.0k Jul 7
14:35
rsync-2.6.2
503k
Jul 7
14:34
rsync-2.6.2.tar.gz
Linux – Les commandes fondamentales
Fichiers et répertoires
Listage, taille et arborescence
cd (“Change Directory”) : changer de répertoire. L'argument de
cette commande est donc le répertoire à attendre
Exemple :
- cd /etc
- cd .. (remonte d'un cran dans l'arborescence)
pwd (“Print Working Directory”) : affiche le chemin complet du
répertoire courant (idéal quand on est perdu)
Linux – Les commandes fondamentales
Fichiers et répertoires
Listage, taille et arborescence
du (“Disk Usage”) : affiche des informations sur l'occupation du disque :
Exemple :
turing:~/progs/rsync-2.6.2# du -h
24k
./doc
432k ./lib
236k ./patches
8.0k ./packaging/lsb
8.0k ./packaging/solaris
20k
./packaging
92k
./testsuite
6.2M .
df (“Disk Free”) : affiche l'espace libre et l'espace utilisé d'un disque :
Exemple :
turing:~# df -h
Filesystem
/dev/hda1
Size
109G
Used
14G
Avail
89G
Use%
14%
Mounted on
/
Linux – Les commandes fondamentales
Fichiers et répertoires
Copie, déplacement, suppression
cp (“Copy”) : copier un fichier/répertoire
- Syntaxe : cp <fichier source> <fichier destination>
mv (“Move”) : déplacer (ou renommer) un fichier/répertoire
- Syntaxe similaire à cp : mv <source> <destination>
- La différence est que le fichier source est supprimé (il est
déplacé à l'emplacement spécifié en destination)
rm (“Remove”) : supprimer un fichier/répertoire
- Syntaxe : “rm <fichier>” ou “rm -r <répertoire>”
- L'option -f permet de forcer la suppression sans confirmation
préalable
Linux – Les commandes fondamentales
Fichiers et répertoires
Archivage et compression
tar : permet de créer et de récupérer une archive
Syntaxe :
- tar cvf archive.tar fichier1 fichier2 fichier3 ...
pour créer une archive contenant les fichiers 1 à 3
- tar xvf archive.tar
pour récupèrer les fichiers contenus dans l'archive
gzip et bzip2
- permettent de compresser/décompresser des fichiers
Association de tar et de gzip/bzip2 : meilleure compression
Exemple : tar xfz archive.tar.gz / tar xfj archive.tar.bz2
Linux – Les commandes fondamentales
Fichiers et répertoires
Opérations sur les fichiers textes
cat :
cat <fichier> : affiche le contenu du fichier
more :
Similaire à cat mais l'affichage s'arrête en fonction de la taille du
terminal, il suffit de taper espace pour faire défiler le texte
less :
Similaire à more mais en mieux
touch :
touch <toto> : crée un fichier “toto” vide
grep :
grep <motif> <fichier> : affiche les lignes du fichier contenant le “motif”
- l'option -i permet d'ignorer la casse
- l'option -v permet d'inverser la recherche (“tout sauf ...”)
Linux – Les commandes fondamentales
Gestion des processus et des connexions
ps (processus) : liste les processus en cours d'éxecution.
- On utilisera cette commande avec les options “a”, “u” et “x”
- Chaque processus est identifié par un “pid” (Processus ID)
kill : kill <pid> tue le processus identifié par le pid en paramètre
killall : killall <nom du programme>
- Tue tous les processus dont le nom exact est passé en paramètre
netstat : affiche les connexions au réseau
- option “-a”: affiche toutes les connexions
- option “-l” : affiche les ports en attente de connexion (“Listen”)
- option “-p” : affiche le nom du programme propriétaire de la connexion
- option “-n” : affiche les adresses IP à la place des noms DNS
Linux – Les commandes fondamentales
Administration système : les permissions
On peut définir des permissions sur les fichiers : lecture, écriture et exécution
(read : r, write : w, execute : x)
On positionne les permissions pour 3 catégories de personnes :
- Soi même (user : u)
- Les utilisateurs appartenant au même groupe (group : g)
- Les autres (others : o)
- Tout le monde (all : a)
“chmod” (change access mode) : Deux méthodes : lettres ou chiffres
Lettres : chmod a+r+x,u-w <fichier(s)>
Chiffres : - la permission d'exécution correspond à la valeur “1”
- la permission d'écriture correspond à la valeur “2”
- la permission de lecture correspond à la valeur “4”
- on additionne les droits que l'on veut accorder
Exemple : chmod 644 <fichier(s)> (6=4+2 : lecture+écriture)
Linux – Les commandes fondamentales
Administration système : les permissions
chown (change owner)
- changer le propriétaire d'un fichier
Exemple :
- chown <nouveau_prop.>:<nouveau_groupe> <fichier(s)>
chgrp : (change group)
- changer uniquement le groupe
Exemple :
- chgrp <nouveau_groupe> <fichier(s)>
Linux – Les commandes fondamentales
Les commandes “shell”
Les redirections
- commande > fichier : redirige le résultat d'une commande dans un
fichier
Exemple : “ls > resultat.txt”
- commande >> fichier : idem avec concaténation
Les “tubes” (ou “pipes”)
- commande1 | commande 2 ...
Applique la commande 2 sur le résultat de la commande 1
Exemple : ls | grep toto
Linux
Des questions ?
TP !
- Installation d'une distribution
- Prise en main
- Familiarisation avec les commandes de base
Téléchargement