UNIX est un OS extrêmement puissant et malheureusement complexe,
ce document vous ouvre une porte vers sa maîtrise. Le but n'est pas
découvrir toutes les fonctionnalités de LINUX, pour cela
il vous faudra lire un ouvrage plus conséquent, par exemple : "UNIX"
de M. Wielsch.
Une station de travail (Work Station) est un ordinateur puissant qui est destiné des tâches praticulières. Il a peu de temps encore, on opposait les stations de travail aux PCs, qui étaient bien loin derrière au niveau des performances. Ceci a légèrement changé, car heureusement pour nous les utilisateurs et malheureusement pour les fabricants de station de travail, les PCs ont connus un évolution technologique énorme. Si bien qu'à l'heure actuelle certains PCs haut de gamme sont plus performants que certaines stations de travail bas de gamme, pour un prix nettement moins élevé.
UNIX est un système d'exploitation multitâches et
multi-utilisateurs.
(MS-DOS est un système d'exploitation monotâche et mono-utilisateur).
Système d'exploitation :
(Operating System) |
Il s'agit d'un "programme" qui est charge de gérer les ressources matérielles (mémoire, écran, clavier, disque...) et de mettre ces ressources à disposition des programmes de l'utilisateur. |
Multitâches : | Le système d'exploitation est capable de faire "tourner" plusieurs programmes en même temps. (Sur un ordinateur qui n'a qu'un processeur les programmes utilisent le processeur tour à tour très rapidement. Ce qui donne l'impression à l'utilistaeur que les programmes fonctionnent tous en m^eme temps.) |
Multi-utilisateurs : | Plusieurs utilisateurs différents peuvent utiliser le même ordinateur en même temps. Ils ont chacun un écran et un clavier (terminal), ils se partagent le processeur, la mémoire et le disque dur... Ils ont chacun un acompte différent qui peut être protègé par un mot de passe, ce qui garantit une securité minimum. Un utilistateur ne peut pas éffacer les fichiers crées par un autre, sauf si l'administrateur lui en donne le pouvoir. |
l'administrateur est la personne qui s'occupe de gèrer la station de travail. Son role est de créer les acomptes pour le nouveau utilistaeur et de gèrer la configuration des logiciels. Le nom de son acompte est toujours "root". Il a tous les pouvoirs, il peut tout effacer sur le disque dur, changer les mots de passe des utilisateurs et si il en a envie, il peut lire les fichiers personnels des utilisateurs.
Le SHELL est l'interpréteur de commande. Il sert à "traduire" les informations qui proviennent du système d'exploitation en informations compréhensibles par un humain et inversement, à "traduire" les informations entrées par un humain en informations compréhensibles par l'OS (Operating System). Il permet aussi de créer des petits programmes et donne accès à quelque commandes de base (ls, cd, pwd, ...).
X-Window ajoute des fonctions spécialisées pour l'affichage graphique.
Le gestionnaire de fenêtres (Window manager) sert à définir l'apparence des icons, des fenêtres, les couleurs et les actions à effectuer lorsque l'utilisateur "cilc" avec la souris.
Le bureau est la totalité de l'écran, là où viennent se poser les icons, ...
Le BIOS sert à initialiser le matériel, à vérifier qu'il fonctionne et à charger le Kernel UNIX dans la mémoire.
Depuis plusieurs sociétés ont développé
séparément leurs versions de UNIX. Les universités
américaines ont largement contribué au développement
de UNIX, en particulier celle de Berkeley.
AT&T a essayé de définir les standards UNIX, les
différents constructeurs informatiques ne suivent pas forcement
ces standards. Les derniers standards sont l'X/OPEN Portability Guide et
POSIX, beaucoup de sociétés les suivent.
L' X-Consortium du MIT (Massachusetts Institue for Technology) qui réunit la plus part des constructeurs informatique a développé l'interface graphique X-Window pour UNIX.
( MS-DOS, le système d'exploitation qui a fait la fortune de Bill Gates, est un lointain dérivé de UNIX. Windows NT est un système d'exploitation qui tente de préserver la compatibilité MS-DOS et les avantages du Multi-tâches UNIX.)
Il existe plusieurs versions de UNIX qui fonctionnent sur les PC compatibles IBM, dont une particulièrement intéressante, puisque elle est gratuite , comprend un nombre impréssionnant d'applications et est accompagnée de tous les codes sources. Elle s'appelle LINUX. Elle a été développée par Linus Torvalds (Université d'Helsinki Finlande) et des milliers de bénévoles. A l'heure actuelle, Linux est le seul OS pour PC qui peut prétendre concurrencer ceux de Microsoft dans un proche avenir.
Séquence de démarrage :
Le micro-processeur (CPU : Central Processing Unit) est chargé
d'exécuter les instructions des programmes. Ce n'est pas un cerveau,
il complètement stupide, il ne fait que ce que le programmeur lui
demande de faire. Si le CPU se retrouve dans une situation que le programmeur
du kernel n'a pas prévu, il fait "planter" le système. Sous
UNIX un "plantage" du système se traduit par un message du genre
"PANIC : General exception". Le "plantage" d'un programme simple se traduit
par un message du style "Segmentation Fault. core dumped".
Les points communs à tous les shells :
L'arborescences en bref :
Les répertoires où les utilisateurs doivent enregistrer leurs fichiers sont : "/usr/tmp" pour les fichiers temporaires et "/home/Nom_Utilisateur" (ex : "/home/guest") + ses sous-répertoires pour tous les fichiers normaux.
Exemple :
La command pwd indique le chemin absolu du répertoire courant. La commande cd permet de changer de répertoire courant.
Tous les répertoires, même si ils sont vides, contiennent
2 pseudo-sous-répertoires : "." et "..".
Le "." représente le répertoire lui-même et ".."
représente le répertoire parent.
Exemple :
Il peut y avoir jusqu'à 255 caractères dans un nom de fichier ou de répertoire.
Il est possible de donner 2 ou plusieurs nom à un fichier avec
la commande ln. Pour créer un répertoire on utilise
mkdir.
Chaque fichier a 3 catégories de droits d'accès :
r : lecture autorisée
w : écriture autorisée
x : exécution autorisée
|
|
|
|
|
|
|
|
hello_world est un fichier exécutable par tout le monde, le créateur est le seul à pouvoir le modifier ou le supprimer.
mon_fichier.txt est lisible par tout le monde, le créateur
et son groupe peuvent le supprimer.
La commande ps -x affiche tous les processus qui tournent actuellement. La commande killall stop tous les processus du même nom. La commande kill -9 stop un seul processus.
Exemple :
Exemple :
Les données sont transmises entre les deux machines par les interfaces
ethernet qui sont reliées entre elles par un câble.
Les données ne sont pas transmises tel quelles sur le câble,
on leur ajoute des entêtes qui servent à savoir qui a envoyé
les données et à qui elles sont destinées. UNIX utilise
en général le protocole TCP/IP pour communiquer entre les
machines.
Chaque machine à un numéro unique (ex : 192.34.46.2)
appelé "IP address". Chaque machine à un nom (HostName),
UNIX convertit automatiquement ce nom en "IP address". Vous devez donc
connaître soit l' "IP address", soit le "HostName" d'une machine
pour pouvoir y accèder à distance.
|
|
|
|
|
|
La commande last permet de savoir le nom des derniers utilisateurs qui ont ouverts une session sur un système.
Voici une liste non-exhaustive des commandes standards de UNIX :
|
|
alias | Définition de pseudo commandes. ex : alias dir="ls -l" |
ar | Archivage de fichiers. |
at | Exécution decalée dans le temps d'une commande. ex : at 1615 < toto.run |
awk | Langage de programmation. |
banner | Affichage de grands caratères. ex : banner hooops |
basename | Retoune le nom du ficher seul dans un chemin absolu.
ex : basename /usr/people/converse/converse |
bg | Met un processus en arrière plan. |
break | Interruption d'une boucle. |
breaksw | Interruption de switch. |
cal | Affiche un calendrier. |
cancel | Suppression d'une impression en cours. |
case | Decision à choix multiples. |
cat | Affiche le contenu d'un fichier. |
gcc | Compilateur C. |
cd | Changement de réperoire courant. |
chgrp | Modifie le groupe créateur d'un fichier. |
chmod | Modifie les droits d'un fichier. ex : chmod +x execut_me |
chown | Changement du propriétaire d'un fichier. |
chroot | Indique une racine virtuelle à une commande. |
coltabl | Modifie les valeurs par défaut de l'odre de tri. |
continue | Reprend l'exécution d'une boucle. |
cp | Copie un ou des fichiers. ex : cp toto.txt titi.txt |
cpio | Archivage et désarchivage. |
crontab | Execution d'une commande à intervals réguliers. |
cu | Liaison avec une machine par modem. |
cut | Coupe des fichiers en colonnes. ex : cat toto.txt | cut -d "-"
|
date | Affiche la date actuelle. |
dd | Copie et conversion de fichiers.
ex : dd if=/usr/tmp/toto.txt of=/tmp/titi.txt |
default | Choix par défaut. |
df | Affiche l'espace utilisé sur le système de fichiers. |
diff | Affiche les différences entre 2 fichiers. |
du | Affiche l'espace utilisé du disque. |
echo | Affiche du texte. ex : echo "hello world !" |
ed | Editeur ligne. |
egrep | Affiche toutes les lignes qui contiennent un mot recherché.
ex : cat toto.txt | egrep 'titi' |
env | Affiche et modifie les variables d'environnement. |
eval | Evalue plusieurs foix le contenu d'une ligne de commande. |
ex | Editeur ligne. |
exit | Sortie d'un script ou d'un shell. |
export | Export les variables dans les shells enfants. |
expr | Evaluation d'une expression. ex : echo `eval 2 + 2` |
false | Valeure de retour d'un script shell. |
fc | Rappel des commandes précédentes |
fg | Remet une commande d'arrière plan au premier plan. |
fgrep | Recherche rapide d'un mot dans un fichier.
ex : fgrep "hello" toto.txt |
file | Affiche le type d'un fichier. |
find | Cherche un fichier. ex : find / -name "t?t?.txt" -print |
for | Boucle. |
foreach | Boucle. |
goto | Saut. |
grep | Recherche d'un mot dans un fichier. ex : grep "ERROR" toto.txt |
cat /proc/pci | Affiche la configuration matérielle. |
history | Affiche les dernières commandes exécutées. |
id | Affiche les numéros d'utilisateurs et de groupes. |
ifconfig | Affiche le nom des interfaces réseau configurées. |
if | Si. |
jobs | Affiche les processus d'arrière plan. |
join | Join deux fichiers. |
kill | Envoie un signal à un processus. ex : kill -9 1458 |
last | Affiche le nom des derniers utilisateurs de la machine. |
ld | Linker. |
ln | Création d'un lien sur un fichier. |
logname | Affiche le nom de l'utilisateur. |
logout | Fin d'une session. |
lpr | Impression. |
lpq -l | Affiche l'état de l'imprimante. |
ls | Donne la liste des fichiers. |
m4 | Préprocesseur de macro. |
E-Mail. | |
mailx | E-Mail. |
make | Contruction de programmes. |
man | Aide. |
mesg | Verouillage des accès à l'écran par d'autres utilistateurs. |
mknod | Création de fichiers spéciaux. |
more | Affichage d'un fichier page par page. |
mv | Déplacement de fichiers. |
netstat | Affiche l'état du réseau. |
newgrp | Change l'appatenance à un groupe d'utilisateurs. |
nice | Modifie la priorité de traitement d'une commande. |
nohup | Fait ignorer les sigaux à une commande. |
nvram | Affiche le contenu de la mémoire non-volatile. |
od | Affiche les données en hexadécimal. |
passwd | Change de mot de passe. |
perl | Programmation. |
pg | Affichage page par page d'un fichier. |
ping | Test du réseau. |
pr | Formatage des données. |
Affiche du texte. | |
printenv | Affiche les variables d'environnement. |
ps | Affiche les processus en cours. |
pwd | Affiche le répertoire actif. |
read | Lit des données depuis le clavier. |
readonly | Protection des variables. |
repeat | Répeter l'exécution d'une commande. |
return | Saut en arrière dans un script. |
rlogin | Ouverture d'une session à distance. |
rm | Efface des fichiers. |
rmdir | Efface un répertoire. |
rsh | Shell à distance. |
sed | Editeur de texte. |
select | Sélection de menu. |
set | Affiche toutes les variables. |
sh | Bourne-shell. |
shift | Décalage des paramètres. |
sleep | Interrompt le processus pendant un certain temps. |
sort | Tri de données. |
strings | Extraction des caractères lisibles d'un fichier binaire. |
stty | Configuration d'une interface série. |
su | Changement d'utilisateur. |
switch | Choix multiple. |
sync | Vide les mémoires tempons des périphériques. |
tail | Affiche la dernière partie d'un fichier. |
tar | Archivage. |
tclsh | Programmation. |
tcsh | C-shell étendu. |
tee | Duplication d'un flux de données. |
telnet | Ouverture d'une session à distance. |
test | Test d'une expression. |
time | Affiche la durée d'exécution d'une commande. |
touch | Modification de la date de création d'un fichier. |
tr | Conversion de caractère. |
trap | Modification de la réaction aux signaux. |
true | Valeur de retour pour un script. |
tty | Affichage des nom des terminaux. |
ulimit | Taille maximale d'un fichier. |
umask | Définition des droits par défaut. |
unalias | Suppression d'un alias. |
unset | Supression d'une variable. |
until | Jusqu'à ce que... |
uucp | Copie à distance. |
uuname | Affiche les noms des machines. |
uustat | Etat de uucp. |
uux | Exécution à distance. |
vi | Editeur de texte UNIX standard. vi a 2 modes de fonctionnement
: commande et saisie.
Pour entrer ou revenir en mode commande tapez sur la touche <ESC>.
|
wait | Attente d'un processus en arrière plan. |
wall | Envoi d'un message à tous les utilisateurs. |
wc | Compte le nombre de mots. |
which | Indique où se trouve la commande dans le path. |
while | Tant que... |
who | Affiche la liste des utilisateurs. |
whoami | Affichage du nom d'utilisateur |
xterm | Lance un nouveau Unix shell. |
wish | Programmation graphique en Tcl/Tk. |
write | Envoie un message à un autre utilisateur. |
xargs | Combinaison de lignes de commandes et de saisies clavier. |
Lire un fichier binaire (fichier "core" ou exécutable)
:
linux10# strings core |more
echo -n "Entrez votre nom : "
read nom
echo "Bonjour "$nom", soyez le bienvenu dans le monde de UNIX."
^D
linux10# chmod +x mon_prog
linux10# ./mon_prog
Entrez votre nom : jml
Bonjour jml, soyez le bienvenu dans le monde de UNIX.
linux10#