Le

Linux est une implémentation(réalisation) libre d'Unix:

Le système UNIX

Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs. Il possède un ou plusieurs interpréteurs de commandes (shell) ainsi qu'un grand nombre de commandes et de nombreux utilitaires (assembleur, compilateurs pour de nombreux langages, traitements de texte, messagerie électronique, ...). De plus il possède une grande portabilité, ce qui signifie qu'il est possible de mettre en oeuvre un système Unix sur la quasi-totalité des plates-formes matérielles.

De nos jours les systèmes Unix sont très présents dans les milieux professionnels et universitaires grâce à leur grande stabilité, leur niveau de sécurité élevé et le respect des grands standards, notamment en matière de réseau.
L'histoire des systèmes UNIX

Le premier système «Unix» a été mis au point par Ken Thompson dans les laboratoires Bell AT&T à Murray Hill dans le New Jersey aux Etats-Unis à partir de 1965. Le but de Ken Thompson était de mettre au point un système d'exploitation interactif simple, nommé "Multics" (Multiplexed Information and Computing System) afin de faire tourner un jeu qu'il avait créé (space travel, une simulation du système solaire).

Un consortium composé du MIT (Massassuchetts Institue of Technology), de General Electric Co. et de Bell Lab se forma ainsi autour de Multics.

En avril 1969 les laboratoires AT&T décidèrent d'utiliser le système GECOS (General Electric Comprehensive Operating System ) en lieu et place de Multics. Or Ken Thompson et Dennis Ritchie qui rejoignirent l'équipe eûrent besoin de faire fonctionner le jeu space travel sur une plus petite machine (un DEC PDP-7, Programmed Data Processor possédant uniquement 4K de mémoire pour faire fonctionner les programmes des utilisateurs), c'est la raison pour laquelle il réécrirent le système afin de créer une version réduite de Multics appelée UNICS (UNiplexed Information and Computing Service), rapidement contractée en Unix.

La date du 1er janvier 1970 est considérée comme étant la date de naissance du système Unix, ce qui explique pourquoi toutes les horloges système des systèmes d'exploitation Unix démarrent à partir de cette époque.

Parallèlement à ces activités, D.Ritchie participa grandement à la définition du langage C (puisqu'il est considéré comme un de ses créateurs avec B.W.Kernighan), ainsi l'ensemble du système fût entièrement réécrit en langage C en 1973 et baptisé Unix Time-Sharing System (TSS).
Lorsque le système passa à la version 7 en 1979, l'évolution s'accompagna de nombreuses modifications notables telles que :

    * la suppression du bridage lié à la taille des fichiers,
    * une meilleure portabilité du système (fonctionnement sur de nombreuses plates-formes matérielles),
    * l'ajout de nombreux utilitaires.

Un décret datant de 1956 empêchait l'entreprise ATT, dont dépendait Bell Labs, de commercialiser autre chose que des équipements téléphoniques ou télégraphiques, c'est la raison pour laquelle la décision fût prise en 1973 de distribuer les sources d'UNIX dans les universités à des fins éducatives.

Dès fin 1977 des chercheurs de l'Université de Californie redéveloppèrent une version d'Unix à partir des sources fournies par AT&T afin de faire fonctionner le système sur leurs plates-formes VAX et la baptisèrent BSD pour Berkeley Software Developpement.

Ainsi deux branches de développement des sources virent le jour :

    * La branche d'AT&T qui allait devenir System V de UNIX System Labs (USL)
    * BSD (Berkeley Software Developpement) développé par l'Université de Californie

En 1977 AT&T mit les sources d'UNIX à la disposition des autres entreprises, si bien qu'un grand nombre d'UNIX-like furent développés :

    * AIX, Unix commercial basé sur System V développé en février 1990 par IBM
    * Sun Solaris, Unix commercial basé sur System V et BSD développé par SUN Microsystems
    * HP-UX, Unix commercial basé sur BSD développé à partir de 1986 par Hewlett Packard
    * Ultrix, Unix commercial développé par DEC
    * IRIX, Unix commercial développé par SGI
    * Unixware, Unix commercial développé par Novell
    * Unix SCO, Unix commercial basé sur System V développé dès 1979 par Santa Cruz Operations et Hewlett Packard
    * Tru64 UNIX, Unix commercial développé par Compaq

En 1983 AT&T eût le droit de commercialiser son Unix, ce qui marqua l'apparition de UNIX System V, la version commerciale de son système Unix.

En 1985 un professeur hollandais, nommé Andrew Tannenbaum, développa un système d'exploitation minimal, baptisé Minix, afin d'enseigner la programmation système à ses étudiants.
En 1991 un étudiant finlandais, Linus Torvalds, décida de concevoir, sur le modèle Minix, un système d'exploitation capable de fonctionner sur les architectures de type 386.
Il baptisa ce système d'exploitation "Linux" et posta le message suivant sur le groupe de discussion comp.os.minix :

Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby,
won't be big and professional like gnu) for 386(486) AT clones.

Voici un schéma non exhaustif retraçant globalement l'apparition des principaux systèmes de type Unix :

chronogramme des différentes versions d\'UNIX: HP-UX, AIX, BSD, IRIX, Mac OS X, ...
Le standard UNIX

Etant donné le grand nombre de systèmes Unix développés sur la base du System V de AT&T ou bien de BSD, la question d'un standard Unix s'est posée dès 1981 sur le groupe de discussion /etc/group afin d'assurer une portabilité maximale entre les systèmes :

    * en 1983, AT&T publie SVID (System V Interface Definition) décrivant le System V. Cette première définition est différente de POSIX
    * en 1984 le groupe /etc/group publie POSIX, une série de standards développés sous couvert de l'IEEE(Institute of Electrical and Electronics Engineers). POSIX est ainsi également connu sous le nom IEEE P1003.
    * à la même époque, un consortium de constructeurs (Sun, IBM, HP, DEC, AT&T, Unisys, ICL, ...) publie le standard X/Open Portability Guide Issue 3 (XPG3). Ce standard s'occupe tout particulièrement des différences issues de la localisation géographique (date, alphabet, ...).

 Structure des répertoires

/bin      L'ensemble des applications nécessaires au bon fonctionnement du système d'exploitation
/boot     Le répertoire contenant les fichiers correspondant aux périphériques, ainsi que l'amorce de votre système
/dev     Le répertoire contenant les fichiers correspondant aux périphériques
/etc     Le répertoire qui contient les fichiers de configuration du système
/home     Les répertoires personnels des utilisateurs
/lib     Le répertoire contenant les bibliothèques système
/lib64     Le répertoire contenant les bibliothèques système 64 bits
/media     Le répertoire utilisé pour montrer les fichiers de périphériques, tels que le lecteurs de CD/DVD, les lecteurs de disquettes, la mémoire RAM, clés USB, …
/mnt     Le répertoire utilisé pour montrer les fichiers de périphériques, tels que le lecteur de CD/DVD, le lecteur de disquettes, la mémoire RAM, clés USB, …
/opt     Le répertoire où l'on installe certains paquetages des logiciels optionnels (par exemple OpenOffice.org, Mozilla, …)
/proc     Le répertoire contenant des informations sur les processus système
/root     Le répertoire personnel de l'administrateur du système (root)
/sbin     L'ensemble des applications nécessaires au bon fonctionnement du système d'exploitation en super-utilisateur
/tmp     Répertoire des fichiers temporaires de votre système
/usr     Le répertoire où l'on installe les logiciels, les sources du noyau, les manuels de système, …
/srv     Dans ce répertoire se trouvent les fichiers qui sont mis à disposition par différents serveurs fonctionnant sur un système donné (par exemple: serveur www, ftp)
/var     Ce répertoire contient entre autres le mail, les files d'attente des imprimantes


Les commandes de base Linux

    *
      CAL, affiche un calendrier
    *
      CAT, lire dans un fichier
    *
      CD, changer de répertoire
    *
      CP, copier
    *
      DF, indique l'espace utilisé/libre des disques durs
    *
      DU, indique l'espace utilisé/libre des répertoires
    *
      FIND, rechercher
    *
      HISTORY
    *
      IFCONFIG, utilitaire pour les interfaces réseau
    *
      LS, contenu du dossier en cours
    *
      MKDIR, créer un dossier
    *
      MV, déplacer, renommer
    *
      PASSWD, changer son mot de passe
    *
      PING
    *
      PWD, emplacement
    *
      REHASH, rafraîchir le Terminal
    *
      RM, effacer un fichier
    *
      RPM, installer un paquet
    *
      SU, se connecter en tant que super utilisateur (root)
    *
      TAR, RAR, comprimer un fichier
    *
      TOUCH, créer un fichier
    *
      UNAME, afficher des informations sur le système
    *
      WHO, voir les utilisateurs connectés
    *
      WHOAMI, afficher l'utilisateur effectif
     
      Utilisation d'un Terminal
Préambule

La plupart des commandes sont suivies d'un chemin de repértoire ou d'un chemin de fichier :
Syntaxe du chemin

Soit on indique le chemin absolu : /home/user/dossier/

Soit on indique le chemin relatif, par exemple pour atteindre le même répertoire que précédemment si l'on se situe déjà dans /home/user/ : ./dossier/

Pour atteindre un répertoire par un chemin relatif mais d'un niveau supérieur : ../user2/

(ici, si l'on se trouve dans /home/user/, on atteindra le dossier /home/user2/)

Astuce : pour ne pas taper tout le nom du chemin : appuyer sur la touche tab pour utiliser l'auto-complétion, par exemple : cd /h <tab> me complétera automatiquement : cd /home/ et ainsi de suite, si plusieurs répertoire/fichier commencent par les mêmes caractères, il s'affichera les différentes possibilité et il faudra alors compléter pour qu'il n'y ait plus qu'une seule possibilité.

Astuce : le chemin peut être remplacé par une URL, par exemple : fbi l'url

J'ai utilisé la syntaxe suivante : en gras pour les commandes et leurs options, en italique les chemins ou mot à ajouter à la commande.
Pour la navigation dans ses répertoires

    *
      Pour afficher le chemin complet du répertoire courant : pwd

    *
      Pour afficher le contenu du répertoire courant : ls

    *
      Pour afficher le contenu d'un répertoire : ls chemin_du_rep

    *
      Avec plus d'option : ls -o chemin_du_rep

    *
      Pour aller dans un répertoire : cd /chemin_du_rep. Par exemple, pour aller dans le répertoire etc, on tape cd /etc. Astuce: le fait d'ajouter un ~ après la commande cd nous replace directement dans notre répertoire utilisateur (/home/nom_de_l'utilisateur ou /root si on est branché en root). Un simple cd, sans le ~, donne le même résultat.

Pour la gestion de ses fichiers/répertoires

    *
      Pour copier un fichier : cp chemin_du_fichier chemin_du_rep/fichier_de_destination

    *
      Pour copier un repertoire : cp -r chemin_du_rep chemin_du_rep_de_destination

    *
      Pour deplacer un fichier/repertoire : mv chemin_du_rep/fichier chemin_du_rep/fichier_de_destination

    *
      Pour supprimer un fichier : rm chemin_du_fichier

    *
      Pour supprimer un repertoire : rm -r chemin_du_rep

    *
      Pour trouver un fichier : find chemin_du_rep -name nom_du_fichier

    *
      Pour trouver rapidement un repertoire/fichier : locate nom_du_rep/fichier

    *
      Pour trouver l'emplacement d'une commande : whereis commande

    *
      Pour afficher la taille d'un repertoire et des repertoires en dessous : du chemin_du_rep

    *
      Pour afficher l'utilisation des partitions : df -h (-h pour afficher en Giga-Megabytes plutot qu'en bytes)

    *
      Le logiciel Midnight Commander (commande : mc ) permet d'éffectuer toutes ces actions au dessus très simplement.

Les racourcis en console

    *
      CTRL+l : pour nettoyer la console (équivalent à la commande clear)

    *
      CTRL+d : pour se déloguer

    *
      CTRL+c : pour stoper l'execution d'une commande en cours

    *
      CTRL+z : pour reprendre la main sur la console en laissant s'éxecuter la précedente commande en arriere plan.

    *
      CTRL+r : pour rechercher dans la liste des commandes précedement tapées.

    *
      CTRL+j : pour executer la commande tapée (équivaut à la touche entrée)

    *
      CTRL+x (x2) : aller à la fin ou au début de la ligne

    *
      CTRL+w : pour effacer les caractères précedemnt taper

    *
      CTRL+ALT+FX : avec X allant de 1 à 7, aller à la console ttyX (7 étant lemplacement du premier serveur X lancé)

    *
      CTRL+ALT+suppr : souvent associé à reboot

    *
      MAJ+PGE_PRE / +PGE_SUI : faire dérouler la console vers le haut ou le bas

Pour avoir la souris en console

Installer gpm (apt-get install gpm) le lancer (/etc/init.d/gpm start) et voilà ;-)

Utilisation : selection + copier avec le bouton milieu (molette), fonctionne entre les différentes consoles.
Les logiciels
Édition/création de fichier texte

    *
      vi chemin_du_fichier

Appuiyer sur :

    *
      i pour entrer dans le mode d'insertion (pour pouvoir taper quelquechose)

    *
      echap pour quitter le mode d'nsertion

    *
      :w (en mode non-insertion) pour sauvegarder)

    *
      :q! (en mode non-insertion) pour quitter sans sauvegarder

    *
      :wq (en mode non-insertion) pour quitter et sauvegarder

Navigation internet

    *
      w3m URL (la navigation est aisée à l'aides touches fléchées, tab, et entrer), w3m permet l'affichage des images pour les console utilisant le framebuffer

Afficher des images

    *
      fbi chemin_de_limage

Options :

    *
      -t sec (afficher tous les “sec” secondes l'image suivante automatiquement)

    *
      -a (ajustement automatiquement les images à la taille de l'écran)

Astuce : pour afficher à la suite toutes les images d'un répertoire : fbi ./*.jpg
Afficher des fichiers PDF

    *
      fbgs chemin_du_fichierpdf

Lire de la musique

    *
      ogg123 chemin_dun_fichier.ogg

    *
      mpg123 chemin_dun_fichier.mp3

    *
      play chemin_du_fichier.wav/mp3/ogg

Lire une video

    *
      mplayer chemin_du_fichiervideo

    *
      mplayer -vo aa chemin_du_fichiervideo (pour afficher la video en mode ascii)

    *
      mplayer -vo fbdev2 chemin_du_fichiervideo (pour afficher la video en utilisant le framebuffer, (meilleur qualité))

Astuce : pour afficher tout les modes de sortie vidéo gérer par votre systeme, taper : mplayer -vo help



.

Créer un site (aide) | Courrier | Matériel informatique | Permis de conduire | Forum gratuit | Carte de voeux | Plan | Infos légales