Introduction au système de fichier #
Le système d’exploitation stocke les fichiers et les répertoires de manière organisé et structuré.
Par définition quand on parle de répertoire; il s’agit d’un format de fichier.
Liste des systèmes de fichiers #
En général, des améliorations ont été apportées aux systèmes de fichiers avec les nouvelles versions des systèmes d’exploitation et des systèmes de fichiers. Voici une liste exhaustive de système de fichier courament utilisé:
- ext3
- ext4
- xfs
- NTFS
- FAT
Attribut des fichiers #
Un fichier comporte de nombreux attributs, voici les pricinpaux; indispensable au bon fonctionnement d’un système:
Type | Propriétaire | Groupe | Taille | Mois | Jours | Heure | Nom |
---|---|---|---|---|---|---|---|
drwxrwxr– | root | root | 5176 | 1 | 2 | 15:31 | mon_dossier |
rwxr-x— | root | user | 1024 | 3 | 2 | 10:24 | files1 |
rwxr-x— | user | user | 81920 | 10 | 27 | 19:23 | file2.sh |
Hop hop hop, si vous avez bien fait attention au premier attribut de mon dossier il contient d
pour directory
celà signifie que le premier bit défini le type de fichier:
d
-> répertoire
l
-> lien
Pour tout le détail sur la gestion des droits, je vous invite à vous rendre à l’article sur le contrôle des accès:
Commandes utiles #
cd /root
- Se déplacer dans un autre répertoire
ls -l
- Affiche la liste de fichier du répertorie courant sous forme de liste -l
pwd
- Ou suis-je ? Affiche dans quel chemin d’arborescence on se situe.
whoami
- Qui je suis ? Affiche quel utilisateur je suis.
Création d’un fichier et d’un répertorie #
Commandes de création de fichier #
touch
cp
vi
-> Editeur de texte Vim: Commande alternative (si installé: vim)
Autre éditeur de texte: nano
Commandes de création de répertoire #
mkdir
Commandes de gestion de fichier #
cp
- Copie de fichier cp <source> <destination>
rm
- Suppression de fichier
mv
- Déplacement de fichier mv <source> <destination>
mkdir
- Création de répertoire - Option utile -p
Création de répertoire et de sous répertoire même si le répertoire parent n’existe pas
rmdir
- option -r
: suppression de répertoire
chgrp
- Modification du groupe de propriétaire sur le fichier
Lien #
Commande: ln
Lien symbolique #
Option -s
: lien symbolique
Lien physique #
Sans option lien fixe pour lequel le lien sera cassé si la destination est déplacé ou n’existe plus car un lien physique utilsera le même inode.
Commande utile #
Afficher l’inode pour savoir de quel façon le lien pointe: ls -i
Redirection d’entrée et de sortie #
Standard | Description | Valeur |
---|---|---|
stdin | Input | 0 |
stdout | Output | 1 |
stdout | Error | 2 |
Redirection d’entrée stdin
(0)
#
L’entrée standard sur un terminal c’est simple c’est le clavier, mais bon on a pas tous envoie de tout écrire nous même à la main avec nos petits doigts surtour quand c’est dans un script. Alors c’est pourquoi une bonne redirection peut être utile:
Exemple: Redaction d’un mail a partir du contenu d’un fichier:
mail -s "info météo" [email protected] < prevision.txt
Redirection de sortie stdout
(1)
#
Il s’agit de la sortie standard bien connu car il s’agit de la sortie standard qui affiche sur le terminal la sortie de la commande.
Exemple:
ls -l > /tmp/list_fichier
: Redirection de la sortie strandard dans un fichier. Ecrase et remplace
echo "12:00 J'ai faim" >> mon_planning.txt
: Redrection en fin de fichier
Redirection d’erreur stderr
(2)
#
Quand une commande remonte une erreur c’est dans stderr
. Par défaut le terminal l’affiche tout comme la sortie standard, mais on peut rediriger également juste les erreurs en dehors de notre terminal:
En cas de visibilité client par exemple d’une sortie c’est bien pratique 😉
Exemple: telnet localhost 2> erreur.txt
Pipe #
La commande pipe est une syntaxe permettant la communication de la sortie standard d’une commande stdout
envoyé vers l’entrée d’une seconde commande stdin
Exemple: Ecoute en directe -f
à partir des 200 dernières lignes du fichier trace_http.log mais en filtrant à l’intérieur pour ne rechercher que la valeur d’une adresse IP (pratique lors de tests de debug en live)
tail -200f trace_http.log | grep "192.168.1.200"