Bienvenue sur Linuxetmoi

Linux historique

Au cours de l'année 1991, un étudiant finlandais, nommé Linus Torvalds, a acheté un micro-ordinateur de type PC, afin d'étudier la programmation du microprocesseur i386. Ne voulant pas être limité par MS/DOS, il a tout d'abord utilisé un clone d'Unix, peu cher, appelé Minix. Minix possède lui-même certaines limitations qui, bien que moins importantes que celles de MS/DOS, sont assez génantes (limitation de la taille des exécutables à 64 kilo-octets, limitation des systèmes de fichiers à 64 méga-octets, temps de réponse déplorable, ...). Aussi, Linus Torvalds a commencé à ré-écrire certaines parties du système afin de lui ajouter des fonctionnalités et de le rendre plus efficace et a diffusé une distribution source de son travail via Internet. La première version de Linux (version 0.1 en août 1991) était née.

Cette première version était très limitée (elle ne comportait même pas de gestionnaire des disquettes) et n'était utilisable que sous Minix. Aussi, il est fort probable qu'elle ait été utilisée par très peu de personnes. Néanmoins, un petit nombre de "hackers" ont découvert, à cette époque, cet embryon de système et ont vu en lui la base d'un système exploitable. Aussi, un certain nombre de personnes ont commencé à travailler avec Linus Torvalds afin d'enrichir le noyau.

Au cours des quatre dernières années, le développement du noyau Linux, ainsi que des utilitaires nécessaires pour en faire un système compatible avec Unix, a été mené de manière intensive par un ensemble de programmeurs, situés aux quatre coins du monde, communiquant via le réseau Internet. Ces développeurs ont implémenté de nombreuses fonctionnalités qui font de Linux aujourd'hui un clone efficace d'Unix pour micro-ordinateurs PC-386, Amiga et Atari.

Avant propos

Ce site est plus un pense bête pour moi qu'un site dédié directement à Linux

Fichiers

L'arborescence de Linux suit un modèle standardisé (FSSTND) : elle est presque la même entre les différentes distributions. Bien entendu, tous les répertoires ne sont pas décrits en grand détail : une installation minimale de Linux comporte plusieurs dizaines de milliers de fichiers...

 

l'arborescence de fichiers du système Linux
/etc Contient les fichiers de configuration généraux de tous les programmes du système.
/etc/rc.d Contient les commandes à exécuter au démarrage du système.
/bin Contient des commandes nécessaires lors du démarrage du système. Ces commandes pourront par la suite être utilisées par les utilisateurs.
/sbin Contient des commandes nécessaires lors du démarrage du système, mais en général inutiles pour les utilisateurs (soit parce qu'ils n'ont pas les droits suffisants pour que ces programmes fassent quoi que ce soit d'utile pour eux, soit parce que leur sortie ne les intéresse normalement pas).
/home Est réservé à l'hébergement des comptes des utilisateurs (un sous-dossier par personne). Il est ainsi facile de partager tous les comptes personnels en réseau. L'administrateur root ne figure pas dans ce répertoire, car en cas d'échec du réseau dans ce scénario il doit tout de même pouvoir se loguer.
/dev Ce répertoire contient des fichiers spéciaux (de type caractère ou bloc) permettant d'accéder aux périphériques. On ne peut pas toujours les éditer avec un éditeur de texte ; mais un programme peut effectuer dessus d'autres opérations que la lecture/écriture et cela a un effet sur le matériel (ex : changer la fréquence d'échantillonnage sur la carte son, accéder directement à la mémoire vidéo...). Ces fichiers sont munis de droits, ce qui permet à l'administrateur de décider qui a accès à quels périphériques.
/proc C'est un pseudo-répertoire : en réalité, son contenu n'existe pas physiquement sur le disque, mais est créé dynamiquement par le noyau lui-même. On y trouve nombre d'informations techniques utiles, notamment sur les périphériques reconnus par le système (numéro de ports et interruptions), des statistiques du noyau, du réseau et des processus en cours d'exécution, etc.
/boot C'est le répertoire qui contient le noyau. Il est lu et copié en mémoire au démarrage du système, et ensuite les fichiers du noyau ne servent plus.
/usr Contient tous les programmes et fichiers de données qui ont pour caractéristiques : de ne pas être nécessaires au démarrage de la machine (de sorte qu'on peut installer /usr sur un serveur réseau, ce qui facilite grandement l'administration), et de ne jamais être modifiés en fonctionnement normal de l'ordinateur (de sorte que /usr peut être partagé en lecture seule, pour la sécurité et les performances).
/usr/bin commandes utilisables par tous les utilisateurs, et non nécessaires lors du démarrage du système;
/usr/sbin Commandes réservées au super-utilisateur, et non nécessaires lors du démarrage du système; Contient les pages de manuel.
/usr/doc Contient de nombreuses documentations et sources d'informations.
/usr/share Contient des fichiers de données dans un format portable (des textes, des images, etc. mais pas de l'assembleur), qui pourraient être partagés en réseau même entre des clients Linux qui n'ont pas tous le même type de processeur (ce qui ferait gagner énormément de place sur un serveur servant plusieurs types de client). La migration des fichiers de /usr/lib vers /usr/share selon leur type est un processus lent, mais qui arrive petit à petit dans les distributions.
/usr/X11R6 Contient tous les fichiers du système X-Window (serveurs X, programmes graphiques, bibliothèques, etc.)
/usr/local Lieu où sont stockés les fichiers spécifiques au système installé (installation locale) : il contient une arborescence similaire à celle de /usr. Lorsque l'on récupère et installe un logiciel à partir des sources, il convient de l'installer dans /usr/local parce que le domaine /usr est géré par RPM et qu'il convient ne pas modifier les fichiers des programmes dans son dos.
/var Contient des données mises à jour par différents programmes durant le fonctionnement du système. Autrement dit : cette partition doit rester accessible en écriture, au contraire de /usr, mais elle peut être également partagée en réseau.
/var/lock Fichiers de blocage, pour interdire par exemple deux utilisations simultanées du modem par deux processus.
/var/spool Files d'attente de différents services (imprimantes, messagerie électronique...) : par exemple,les courriers électroniques de sont déposés dans le fichier /var/spool/mail/. Contient les fichiers de rapport constitué de messages datés émis par les différents démons et le noyau. Ils sont classés par thème ; le fichier /etcsyslog.conf permet de modifier leur répartition.
/tmp Contient les données temporaires des différents programmes (parfois, /tmp est un lien symbolique vers /var/tmp).

Commandes

Ne pas oublier le man suivi de la commande exp: man tar
Commandes d'informations
date Affiche la date et l'heure.
who Affiche la liste des utilisateur connectés.
who i am Qui je suis ?
cal Affiche le calendrier.
uname Affiche le nom et les carractéristique du système.
env Affiche l'enviromenent.
alias Affiche les alias.
ls /usr/bin Affiche la liste des commandes externes et standards.
man Affiche le manuel de la commande.
pwd Affiche le répertoire courrant.
df Affiche la place restant libre sur les disque.
Commandes de gestion de fichiers.
ls -l Affiche les attributs d'un fichier.
cp Copie un fichier.
rm Détruit un fichier.
cat ou more Affiche le contenu d'un fichier texte.
file Affiche le type d'un fichier.
diff Comparent des fichiers
vi ou ed Editent un fichier texte.
touch Crée un fichier vide ou met à jour la date de modification d'un fichier.
Commandes de gestion de repertoires.
cd Change de répertoire.
ls Affiche le contenu du répertoire.
rmdir Détruit un répertoire.
mkdir Crée un répertoire.
cp Copie des fichiers dans un répertoire. (cp fichier ... chemin)
Commandes de gestion d'arborescence.
ls -R Affiche les fichiers d'une arborescence.
du Affiche la taille d'une arborescence.
df Affiche la place restant libre sur les disques.
find Recherche de fichiers dans une arborescence.
cp -r Copie une arborescence
rm -rf Supprime une arborescence
Les commandes de droits.
ls -l Affiche les droits.
chmod Change les droits d'un fichier.
chown Change le propriétaire d'un fichier.
umask Positionne les droits par défaut.
chgrp Change le groupe d'un fichier.
newgrp Change le groupe courant.
id Permet de connaitre le groupe courant.
su Change l'identité de l'utilisateur.
Les commandes de sauvegardes.
tar La commande de sauvegarde la plus répandue.
cpio La commande de sauvegarde qui utilise les redirections.
pax La commande de sauvegarde ISO.
dd Sauvegarde bloc à bloc de ou vers un périphérique.
compress ou pack Compresse un fichier.
uncompress ou unpack Décompresse un fichier.
Commandes diverses.
exit Met fin à la session.
passwd Modifier son mot de passe.
echo Affiche un message à l'écran.
bc Calculatrice.
wait Attend la fin d'une taches d'arrière-plan.
calendar Affiche l'agenda du jour.
alias Crée le synonyme d'une commande.
unalias Détruit un alias.
script Mémorise l'istorique d'une session.
sh Exécute un shell intéractif ou un script.
export Met une variable dans l'environement.
stty Configure le terminal.

Dépannage

Les problèmes

Les causes de pannes sont diverses.
Il peut se produire qu'une application ne démarre pas ou bien que la procédure de démarrage de Linux s'arrête.

Voici une liste des problèmes les plus importants:

  • Problème liés au démarrage.
  • Il faut absolument les prévoir.
  • Anticipation.

Enregistrez les paramètres stockés dans l'eprom de votre machine.

  1. Géométrie des disques.
  2. Configuration de la mémoire
  3. Réaliser régulièrement des sauvegardes de vos fichiers
  4. Concervez les supports d'installation
  5. Mémorisez le bloc de boot de votre disque de démarrage
  6. Concervez une copie de /etc/inittab et des scripts de démarrage (les RC)
Une application ne réagit plus.

Il faut dans ce cas, l'arrêter.
Si l'application est complexe, on doit l'arrêter via son script : cd /etc/rc.d/init.d ./le_Nom stop
Dans les autres cas, on utilise la commande kill. ps -ef | grep Le_Nom
458 ? 00:00:00 Le_Nom
kill 458
Ou si l'application ne réagit toujours pas:
kill -9 458

Une sauvegarde paraît corrompu.

La restauration d'une sauvegarde peut ne pas fonctionner, que faire ?
Insister, on ne doit pas juger sur un seul essai, le mieux étant de changer de lecteur ou de système et de rapatrier les données via le réseau.

Un utilisateur à perdu son password.

L'administrateur "root" lui attribue un nouveau mot de pass
passwd le_nom_utilisateur

Root à perdu son password.

L'administrateur "root" démarre le système en mode maintenance, sans avoir fournir de password.
Il a aussi tout intérêt de créer un autre compte ayant les mêmes droits que root
useradd -u 0 -o le_Nom_Du_Compte
passwd le_Nom_Du_Compte

Root à supprimer par erreur le(s) fichiers passwd ou group.

Il suffit de booter sur une disquette sytème et de copier le fichier /etc/passwd- ou /etc/group-. Seul le(s) dernier(s) users seront à recréer.

Astuces

  • Formatage d'une disquette
Comment formater une disquette

C'est très simple la commande mkfs est la pour cela. mkfs -t msdos /dev/fd0 Le -t permet indiquer le type de format.

Comment créer une disquette système

C'est très simple la commande mkbootdisk est la pour cela. mkbootdisk --device /dev/fd0 2.6.3-7mdk le 2.6.3-7mdk correspond à la version du noyau de votre système. Pour connaitre la version du noyau il faut utiliser la commande uname -a

Création d'une disquette d'installation réseau en ftp ou http

Pour cela il faut aller sur le cdrom N°1 de la distrubution à installer et de ce rendre dans le dossier images pour utiliser les fichiers network.img et network_drivers.img et de créer la(les) disquette(s) en utilisant la commande dd
dd if=network.img of=/dev/fd0

  • Montage et démontage disque
Point de montage

Vous voulez démonter votre lecteur de cdrom mais un autre utilisateur l'utilise mais vous ne savez pas qui. La commande fuser permet de trouver l'utilisateur mais aussi de démonter en forçant le démontage. Recherche de l'utilisateur fuser -v /le_point_de_montage Forçer le démontage fuser -k /le_point_de_montage

  • Recherche et suppression de fichier
Rechercher et supprimer une série de fichier

Vous voulez supprimer une série de fichier par exemple les fichiers core Utilisez la commande find
find / -type f -name core -exec rm -f {} \;

Localiser les fichiers pour une recherche rapide

Vous pouvez utiliser la commande locate qui permettra de localiser rapidement un fichier.
Pour créer une base de données locate -u
Puis pour localiser locate le_fichier

Ou est le fichier bin

Vous pouvez utiliser la commande whereis qui affichera le chemin d'un fichier bin. Je ne connais pas le chemin du bin de mysql whereis mysql

  • Archivage tar
Restituer les permisions lors de la restauration d'un fichier tar

C'est juste une option de la commande tar mais elle est bien pratique lors de la restauration de votre fichier home par exemple.
tar -xvpf le_fichier_archive.tar

  • Installation d'un module
Installation d'un pilote

Copier le fichier module puis utiliser insmod suivi du fichier module