Cours Unix de Base
Cours Unix de Base
Cours Unix de Base
• Architecture-type :
APPLICATIONS applications
(jeux, outIls bureautIques, …)
Langage machine
MATERIEL
Dispositifs physiques
Architecture système d'Unix
applications graphiques des
utilisateurs
Navigateur web, office,
multimedia...
Applications en ligne de
commande
ls, mkdir, wget, ssh, gcc,
Espace
busybox...
Librairies partagées utilisateur
libjpeg, libstdc++, libxml...
Librairie C
GNU C library, uClibc...
noyau système
Espace
Linux, Hurd... noyau
Matériel et périphérique Matériel
Le projet GNU
GNU = GNU is Not Unix (« GNU N'est pas Unix »)
(un acronyme récursif!)
Projet de réaliser un système à la Unix entièrement libre.
Lancé en 1984 par Richard Stallman, un chercheur du MIT,
à une époque où les sources d'Unix n'étaient plus libres
d'accès.
Composants initiaux : compilateur C (gcc), make (GNU
make), Emacs, bibliothèque C (glibc), outils de base (ls, cp
...)
Cependant, en 1991, le projet GNU n'avait toujours pas de
noyau et tournait sur des Unix propriétaires.
UNIX ? C’est quoi hein ??
• C’est un système d’exploitation (OS)
• Dont le code source est écrit en C
• Il permet un certain nombre
d’opérations :
☺Gestion des ressources matériels
☺Gestion du système de fichiers
☺Chargement / Exécution / et
Suspension de programmes
KDE
GNOME
XFCE ….
p. 34 Dr DABONE
• Dans chaque répertoire, on trouve au moins deux
fichiers,
35
Chemins absolus et relatifs
• Pour désigner un fichier quelconque, on peut utiliser soit
un chemin absolu, soit un chemin relatif.
36
• Un chemin relatif spécifie la suite des répertoires à
traverser en partant du répertoire courant, séparés par
des caractères /
• Par exemple, si l’on travaille dans le répertoire dabone,
38
Gestion des répertoires
Se déplacer dans les répertoires :
39
Lister les fichiers
• ls [opts] [rép] : liste le contenu d’un répertoire
• ls -l : Idem mais donne le maximum d'informations :
• Type-Fichier Droits
• Compteur-Lien
• Nom_propriétaire
• Nom_groupe
• Taille_octet
• Mois
• Jour
• Heure
40
Types de fichiers
41
Créer un répertoire
• mkdir [options] [nom répertoire] crée un répertoire
• Options :
-p : crée les répertoires parents si nécessaire
-m : Donne des droits d'accès spécifiques
Supprimer un répertoire
La commande rmdir (remove directory) permet de supprimer un
répertoire vide.
rmdir [options] [nom répertoire]
Remarque : pour supprimer un répertoire non vide :
rm –r rep
Créer un fichier
touch file : crée un fichier vide file, si file n’existe pas,
change la date de file si il existe
Supprimer un fichier
rm file : supprime le fichier file
42
Copier un fichier ou un répertoire
cp [options] source destination
Attention :
Gardez à l'esprit que si le fichier cible existe déjà, il sera purement et
simplement écrasé, sans aucun message d'avertissement. Soyez donc très
prudent en matière de copie de fichiers
cp -r source destination permet de copier le répertoire
source
• Renommer et/ou déplacer
• La commande mv (move) remplit ces deux fonctions.
• mv [options] source destination permet de renommer et/ou
déplacer un fichier ou un répertoire
43
• cat sert à afficher le contenu d’un fichier
• more affiche le contenu d’un fichier écran par écran
avec possibilité de défilement
• less même comportement que more mais avec
possibilité de défilement en arrière (utile pour les
grands fichiers).
• tac c’est l’inverse de cat affiche un fichier en
commençant par la fin (utile pour les fichiers Log)
fichier répertoire
p. 50 Arnaud Lewandowski
• Affichage des caractéristiques : ls -l
groupe
group
type
-rw-r--r--
user
others
p. 51 Arnaud Lewandowski
• Changer les permissions : chmod
chmod <classe op perm, …>|nnn <fic>
• classe :
– chaque perm = 1 valeur :
u : user
g : group r 4
o : others w 2
a : all x 1
• op : rien 0
= : affectation – déf. des permissions (par
- : suppr. addition) pour chaque classe
+ : ajout
• perm : exemples :
r : lecture
w : écriture chmod u=rwx,g=rx,o=r tp1.tex
x : exécution
chmod a+x script.sh
chmod 755 script.sh
Exemple :
perrot@von-neumann>ls -la rep3
total 3
drwx------ 2 perrot 512 Sep 21 21 : 30 .
drwxr--r-x 8 perrot 512 Sep 21 21 : 30 ..
-rw------- 1 perrot 50 Sep 21 21 : 30 fic1
Le Bourne Shell
• Debut de session :
• Fichiers /etc/profile et .profile
• Fin de session :
• Commandes : exit
Variables d’environnement
➢ Exemple :
✓ le login de l'utilisateur (stocké dans la variable
✓le login de l'utilisateur (stocké dans la variable $USER)
$USER)
✓le répertoire de connexion de l’utilisateur ($HOME)
✓ le répertoire de connexion de l’utilisateur
✓la liste des répertoires dans lesquels aller chercher les exécutables
($HOME)
des commandes externes ($PATH)
✓ la liste des répertoires dans lesquels aller chercher
les exécutables des commandes externes ($PATH)
• Le C-shell
• Début de session :
• Fichiers .login puis .cshrc
• Fin de session :
• Commandes : exit, logout ou CTRL+D
Les variables ➢Les variables prédéfinies
✓$set nomvar[=valeur] ➢home
✓$setenv nomvar valeur ➢path
✓$set ➢cdpath
✓$env ou $printenv ➢prompt
✓$unset nomvar ➢cwd
✓$unsetenv nomvar ➢shell
7. Editeur de texte (non graphique)
Éditeurs de texte
Éditeurs de texte graphiques
Conviennent pour la plupart des besoins
nedit
Emacs, Xemacs
Éditeurs en mode texte uniquement
Souvent indispensables aux administrateurs
système et parfaits pour les utilisateurs
expérimentés
vi
nano
L'éditeur de texte nedit
http : //www.nedit.org/
Le meilleur éditeur de texte pour ceux qui ne sont pas
experts en vi ou emacs
Quelques fonctionnalités attrayantes :
Sélection et déplacement de texte très facile
Mise en évidence de la syntaxe pour la plupart des
langages et des formats.
Peut être personnalisé en fonction de vos propres
fichiers de journaux (log), pour faire ressortir
certains messages d’erreur ou d'avertissement
Facile à personnaliser via des menus
Pas installé par défaut sur toutes les distributions.
vi
Éditeur de texte en mode texte disponible sur tous les
systèmes Unix. Créé avant même l’apparition de la souris.
Difficile à apprendre pour les débutants habitués aux
éditeurs graphiques.
Très productif pour les utilisateurs avancés
Souvent incontournable pour modifier des fichiers en
administration de système ou dans les systèmes
embarqués, quand vous ne disposez que d’une console
texte.
vim - vi improved (amélioré)
Implémentation de vi maintenant disponible
sur la plupart des stations de travail GNU /
Linux
Apporte de nombreuses fonctionnalités des
éditeurs modernes : mise en évidence de la
syntaxe, historique de commandes, aide,
annulation sans limite et bien d’autres.
Exemple de fonctionnalité sympa : peut ouvrir
directement les fichiers compressés.
Accompagné d’une interface graphique GTK
(gvim)
Hélas, pas un logiciel libre (à cause d’une
petite restriction à la liberté d’effectuer des
changements)
Commande de base de vi
vi est extrêmement puissant, il contient
30 commandes facile à apprendre et
suffisante pour 99% des besoins
quotidiens!
• Unix
• Système Multi-Utilisateur
• Chaque utilisateur peut avoir plusieurs sessions
• Chaque utilisateur possède un login
Ajouter un Utilisateur
• Commande useradd options login
• Options
– -d : affecte le répertoire personnel de l’utilisateur
– -m –k répert : crée le répertoire de connexion et copie les
fichiers de répert(le répertoire par defaut est « /etc/skel*
») dans le répertoire de connexion de l’utilisateur
– -c : Concerne le champ commentaire du fichier
/etc/passwd
– -e : La date d’expiration du compte
– -f : Le nombre de jours d’inactivité au bout duquel le
compte devient invalide
– -g : le groupe principal du user doit être crée au préalable
– -G : Les groupes supplémentaires de l’utilisateur
– -D :
– Sans options : affiche les commandes définies par défaut
– Options : Permet de mettre à jour les commandes par
défaut*
Supprimer un Utilisateur
• Commande
– userdel options login
• Options
– -r : Permet d’effacer le répertoire
personnel de l’utilisateur
Changer le mot de passe d’ un Utilisateur
• Caractéristique
• Affecte un password au user*
• Commande
– passwd options login
• Options
– -l : Permet de verrouiller le compte de
l’utilisateur
– -f : force le changement de mot passe à la
prochaine connexion
– -d : Supprime le mot de passe d’un
utilisateur
Affiche des information sur l’utilisateur
• Commandes
– whoami : Affiche le nom de l’utilisateur
courant
• Autres Commandes
– who
– fingers
Les Groupes
Unix permet notamment une administration de
groupes(création de
groupe, ajout d’utilisateur à un groupe ,
suppression d’utilisateur d’un
groupe , Suppression de groupe).
Créer un nouveau groupe
• Caractéristiques :
– Crée un groupe
• Commande
– groupadd nom_du_groupe
• Options
– -g : Affecte le numéro du groupe
– -r : définit le groupe comme groupe
système*
– -f : Permet de stopper la
commande en cours lorsque le
groupe ou GUID du groupe existe
déjà
Effacer un groupe
• Commande
– groupdel nom_du_groupe
• Options
– -g : Affecte le numéro du groupe
– -r : définit le groupe comme groupe système*
– -f : Permet de stopper la commande en cours
lorsque le groupe ou GUID du groupe existe
déjà
Modifier un compte
• Caractéristiques :
– Changer les caractéristiques d‘un compte
• Commande
– usermod user
• Options
– Semblabe aux options de useradd sauf
que la ils ont une fonction de modification
Changer d’identité
• Caractéristiques :
– Permettre à l’utilisateur de Changer son identité
• Commande
– su user : Agit avec les droits de l’utilisateur sans
changer d’environnement ,nécessite un password.
– su – user : Change d’identité et d’environnement
10. Utilitaires Unix
▪ Unix ayant été initialement développé pour manipuler des documents contenant du
texte, il comprend de nombreux utilitaires facilitant ces traitements.
▪ Une description de l'ensemble de ces utilitaires sort du cadre de ce cours !!! Okey
???
▪ De nombreux livres et ressources Internet fournissent une description détaillée.
Voici cependant une brève présentation de quelques utilitaires de manipulation de
texte qui peuvent s'avérer très utiles en pratique pour vous !!!
•cat : utilitaire permettant notamment de lire et afficher le contenu d'un fichier.
•echo : utilitaire permettant d'afficher une chaîne de caractères passée en
argument.
•headet tail : utilitaires permettant respectivement d'extraire le début ou la fin d'un
fichier.
•wc : utilitaire permettant de compter le nombre de caractères et de lignes d'un
fichier.
•grep : utilitaire permettant notamment d'extraire d'un fichier texte les lignes qui
contiennent ou ne contiennent pas une chaîne de caractères passée en argument.
•sort : utilitaire permettant de trier les lignes d'un fichier texte.
•uniq : utilitaire permettant de filtrer le contenu d'un fichier texte afin d'en extraire
les lignes qui sont uniques ou dupliquées (cela requiert que le fichier d'entrée soit
trié, car cet utilitaire ne compare que les lignes consécutives).
•gzipet gunzip : utilitaires permettant respectivement de compresser
et de décompresser des fichiers. Les fichiers compressés prennent
moins de place sur le disque que les fichiers standard et ont par
convention un nom qui se termine par .gz.
•tar : utilitaire permettant de regrouper plusieurs fichiers dans une
archive. Souvent utilisé en combinaison avec gzippour réaliser des
backups ou distribuer des logiciels.
•sed : utilitaire permettant d'éditer, c'est-à-dire de modifier les
caractères présents dans un flux de données.
•awk : utilitaire incluant un petit langage de programmation et qui
permet d'écrire rapidement de nombreux programmes de
manipulation de fichiers de texte.
11. Utilisation du réseau
Configuration réseau (1)
ifconfig -a
Affiche les informations sur toutes les
interfaces réseau disponibles sur votre
système.
ifconfig eth0
Liste les détails de l'interface eth0
ifconfig eth0 192.168.0.200
Assigne l'adresse IP 192.168.0.200 à eth0
(1 adresse IP par interface)
ifconfig eth0 down
Eteint l'interface eth0
(libère son adresse IP)
Configuration réseau (2)
route add default gw 192.168.0.1
Configure la route par défaut pour les paquets à
destination de l'extérieur du réseau local. La passerelle
(ici 192.168.0.1) est responsable de l'envoyer à la
prochaine passerelle, etc., jusqu'à la destination finale.
route
Listes les routes existantes
route del default
route del <IP>
Supprime les routes données
Utile pour redéfinir une nouvelle route.
12. Le système X Window
• Le système X Window est un système distribué
Le client X, est une application qui a besoin d'afficher des informations sur un écran.
• Le serveur X est un programme, exécuté sur une machine ("machine hôte") connectée habituellement à
un écran, un clavier et une souris. Il offre des services d'affichage aux clients qui en ont besoin.
Client-Serveur ?
• L'intérêt de l'architecture client-serveur est multiple !!! You know?
• Hétérogénéité et transparence : le réseau inséré entre un client et un
serveur assure une totale indépendance des deux parties
• leur seule contrainte est le respect du protocole de communication,
moyennant quoi, n'importe quel type de machine respectant le
protocole client peut s'afficher sur n'importe quel type de machine
respectant le protocole serveur.
• Un cas remarquable est l'utilisation de terminaux X, qui sont des
machines spéciales, dont la seule fonction est d'agir en serveur X.
• Il s'agit là d'une des rares industries, produisant du matériel
(hardware), directement générée par un produit logiciel (software).
• Centralisation des ressources : le serveur X est le seul programme qui
accède physiquement aux ressources de la machine (écran, clavier,
souris,...).
• Il implémente la logique permettant d'arbitrer le partage de ces
ressources entre ses différents clients, ce qui résout les problèmes
d'accès concurrents à celles-ci.
Annexe : Bibliographie
• Consultable en ligne :
– http : //www.root66.net/linux/Linux-france.org/article/ohoarau/
– ...
peace for my beloved country