Présentation de Linux
Présentation d’un gestionnaire de tâches
Travaux pratiques encadrés tout au long de la
session
Nœuds de calcul
Stockage haute performance
Stockage capacitif
Réseau
8 octobre 2013 Olivier Collin
1971 : Thompson - 1ere version
1973 Ritchie - 2e version (C)
1975 1ere diff commerciale
1978 BSD (Université)
1979 v7
1982 SunOS
1983 Système V
1992 Solaris
2 types d’UNIX
• Système V (industrie informatique)
• BSD (éducation, université)
1967 Projet Multics (GE, Bell, MIT)
Thompson et Ritchie dans les années 70
multi-tâche
multi-utilisateur
disponibilité
langage de commande
réseau
nombreux utilitaires
système de fichiers
système gère les appels au noyau
disponible sur une large gamme de machines
extensible
UNIX comporte :
Plusieurs shells (interface de commandes)
Choix de l’interface graphique
Nombreuses commandes pratiques et combinables
Un système de fichier hiérarchique
Compilateur C et autres langages
Shell X windows
Mode texte (VT100) Mode graphique
Unix
commande: nom du programme
options : modulent le comportement du programme
arguments : souvent le nom des fichiers sur lesquels on travaille
commande (options) argument1 argument2 ... argumentN
Attention:
• différence majuscules/minuscules Toto <> toto <> TOTO
• espace comme séparateur
Messages d’erreurs
command not found n’existe pas (ou pas dans le chemin) cannot execute
permission denied problème de droits d ’accès usage: problème avec les options
arguments too long problème avec les arguments (ex ls ) bus error
segmentation fault plantage du programme
Etc.
3 types d’entrées/sorties
entrée standard STDIN clavier sortie standard STDOUT écran erreur standard STDERR écran
Processus
STDIN STDOUT
STDERR
STDOUT STDERR
STDIN
Redirection
Avec les opérateurs > et <
ls > listing Redirige la sortie de la commande ls dans le fichier listing
sort < listing Redirige l’entrée de la commande sort
Rq: on verra plus tard ls | sort
compte UNIX:
nom d’utilisateur : login mot de passe : password
après authentification, lancement d ’ un shell (sh, csh, ksh, etc.) qui est un interpréteur de commandes
existence d’un compte spécial : root
• réservé à l’administrateur système
• possède tous les droits
Sur PC : telnet de windows Sur Mac: NCSA telnet, macIP Sur UNIX: telnet
Lance une session en mode texte sur une machine UNIX.
Clients telnet
Représentation sous forme d’arbre
• racine = début de l’arbre
• feuilles = fichiers ou répertoires vides
racine
rep2 rep1
fichier1 fichier2
1. Noble, W. S. A quick guide to organizing computational biology projects. PLoS Comput. Biol. 5, e1000424 (2009).
/
/var
dev /etc /sbin /home /usr
Uucp Cron
lp Init.d
/tmp
Rc0.d Rc2.d
adm lp mail spool
default Rc.d Rc1.d Rc3.d
rep1 rep2
rep3 rep4
/ cd rep1
cd ..
cd ..
cd .
iznogoud [13]%ls -a
./ ../ commande* majGCG.pl* utilisateurs
Nom absolu: nom du fichier à partir de la racine
Nom relatif : nom du fichier à partir du répertoire courant
rep2 /rep1/rep3/fichier1
./rep3/fichier1
../rep1/rep3/fichier1 Absolu
Relatif
racine (/)
rep1
rep3 fichier2
fichier1
O P
O P
Pour référencer le fichier fichier1
rep2 racine (/)
rep1
rep3 fichier2
fichier1
O
P
Pour aller dans le répertoire rep3
cd /rep1/rep3
P
O cd rep3
cd ../rep1/rep3 Absolu
Relatif
Définition: chaîne de caractères non structurée (du point de vue du système)
nom de fichier: 256 caractères
éviter les caractères suivants:
* ? < > ! / \ qui sont des caractères réservés du shell
fichiers spéciaux : commencent par un .
invisibles avec la commande ls sans options
-rwxr--r-- 1 ocollin 1223 Jun 18 1997 majGCG.pl
Droits d’accès
Possesseur
Taille
Date modification
Nom du fichier
Nombre de liens
Résultats de la commande ls -l
commande pwd: donne le répertoire courant Exemple :
commande ls : donne le contenu d’un répertoire
ses options permettent d’obtenir plus de renseignements eventail des options :
/usr/bin/ls [ -aAbcCdfFgilLmnopqrRstux1 ] iznogoud [24]%pwd
/util2/si/olivier/Mailcheck
Option Signification
-a affiche tous les fichiers, même les fichiers cachés
-F ajoute des signes permettant de différencier les exécutables (*), les répertoires (/), les liens symboliques (@)
-l format long avec les permissions, le propriétaire, la taille, la date, etc.
-R liste les sous-répertoires s'ils existent -s affiche la taille des fichiers en blocs
-t affiche en fonction de la date de dernière modification
Quelques options:
Exemple d’utilisation: ls -lR
cp : copie(duplication) de fichiers
cp toto toto.sav
copie le fichier toto dans le fichier toto.sav
il faut posséder les droits de lectures sur le fichier source et les droits d’écritures dans le répertoire destination
cp toto tutu titi sauvegarde
copie les fichiers toto tutu titi dans le répertoire sauvegarde
ln : met en place des liens entre des fichiers ln fichier1 fichier2
crée un lien appelé fichier2 vers le fichier1 Comparable aux raccourcis Windows et aux alias MacOS
rep1
fich1 fich2
ln fich2 lien
rep1
fich1 fich2 lien
mv : renomme un fichier
rm : efface un fichier
mv fichier1 fichier2 iznogoud [64]%ls fichier1
iznogoud [65]%mv fichier1 fichier2 iznogoud [66]%ls
fichier2
rm fichier
iznogoud [67]%rm fichier2
rm: remove fichier2 (yes/no)? y iznogoud [68]%ls
iznogoud [69]%
Option -r permet la récursivité On peut avec mv renommer ou déplacer un fichier
mkdir : création d’un répertoire
rmdir : effacement d’un répertoire
iznogoud [71]%mkdir rep1 iznogoud [72]%ls
rep1/
iznogoud [73]%rmdir rep1 iznogoud [74]%ls
iznogoud [75]%
d rwxrwxrwx
permissions des autres permissions du groupe
type de fichier
permissions du possesseur
répertoire fichier etc.
r : lecture w: écriture x: exécution - : pas de droit
On modifie les droits d’accès avec la commande chmod
-rw-r--- 1 ocollin 0 Jun 23 13:57 fich1 olrik [6]%chmod a+r fich1
-rw-r--r-- 1 ocollin 0 Jun 23 13:57 fich1
chmod [ugoa ]{ + | - | = } fichier u : utilisateur (user)
g : groupe (group) o : autres (others) a : tous (all)
+ : ajouter les droits - : retirer les droits
= : conserver les droits
Exemple:
Les options permettent de modifier le comportement de la commande
On modifie l’identité du propriétaire avec la commande chown
# ls -l licence.dat
-rw--- 1 ocollin s_info 99 Sep 23 1998 licence.dat
# chown leroux licence.dat
# ls -l licence.dat
-rw--- 1 leroux s_info 99 Sep 23 1998 licence.dat
cat, more : affichent le contenu d’un fichier à l’écran
head, tail: affichent le début et la fin d’un fichier cat : affiche tout le fichier
permet affichage caractères non imprimables more : affichage page par page
possibilité de recherche
head -30 .cshrc Affiche les 30 1eres lignes de .cshrc tail -f syslog Permet de suivre l’accroissement du
fichier syslog
La commande find permet de localiser un fichier dans l’arborescence Syntaxe simplifiée:
find repertoire_depart -name nom_fichier -print
Appel avec la commande man sujet Organisation du manuel en sections
Section Contenu
1 commandes générales 2 appels systèmes
3 Bibliothèques 4 Périphériques
5 format des fichiers 6 jeux et démos
7 Troff
8 utilitaires de maintenance
Type Section NAME
Description sommaire SYNOPSIS
Utilisation et options DESCRIPTION
Description détaillée OPTIONS
FILES
Fichiers associés SEE ALSO
Commandes associées BUGS
User Commands man(1)
NAME
man - find and display reference manual pages
SYNOPSIS
man [ - ] [ -adFlrt ] [ -M path ] [ -T macro-package ] [-s section ] name ...
man [ -M path ] -k keyword ...
man [ -M path ] -f file ...
DESCRIPTION
The man command displays information from the reference manuals. It displays complete manual pages th
:
OPTIONS
The following options are supported:
-a Show all manual pages matching name within the
man -k ou apropos
man -f ou whatis
whereis
Fichiers man disponibles pour une commande donnée
Description succinte d’une commande donnée
Liste des fichiers relatifs à une commande
Emacs : famille d’éditeurs
• GNU Emacs : tourne sous X, VT100
• microEmacs : tourne sous VT100
GNU Emacs : très puissant Editeur de texte
Modules pour de nombreux langages (C, Perl, HTML) Lecteur News
Lecteur Mail etc.
BSD :
1- lpr -Pimprimante nom_fichier 2- lpq
3- lprm
Système V
1- lp -dimprimante nom_fichier 2- stat
3- cancel
1- Impression 2- File d ’attente 3- Suppression
• utilisation interactive
• personnalisation de l’environnement
• élaboration de programmes (scripts) Utilisation
Familles de shells
Although most users think of the shell as an interactive command interpreter, it is really a programming language in which each statement runs a command. Because it must satisfy both the interactive and programming aspects of command execution, it is a strange language, shaped as much by history as by design.
Brian Kernighan & Rob Pike
Bourne shell C shell
Korn shell Toronto C shell Bourne Again shell
Z shell
Noyau Unix et drivers
Commandes intégrées
Shell
ls vi
Utilisateur
Shell Binaires Commentaires Fichiers
Bourne shell /bin/sh Le plus simple .profile
Bourne Again shell /bin/bash Remplacant GNU du Bourne shell .bash_profile .bashrc
Korn shell /bin/ksh Le successeur du Bourne shell .profile
C shell /bin/csh Un shell avec une syntaxe basée sur le langage C .cshrc .login
Toronto C shell /bin/tcsh Le C shell amélioré .tcshrc .cshrc
.logout
Z shell /bin/zsh .
redirection des entrées/sorties utilisation des métacaractères
existence de variables pour personnaliser son environnement
existence d'un historique des commandes possibilité de création d'alias
existence de structures de contrôle pour l'écriture de programmes contrôle des processus
B.Joy - Associé aux UNIX BSD
fichiers spéciaux
.cshrc : lu à chaque lancement d’un C- shell
: contient les instructions de configuration du shell .login : lu à chaque session
.logout: lu à chaque fin de session
: contient des instructions de nettoyage
Contrôlent le C-shell, c.a.d. la manière dont il se comportera dans l’utilisation de ses fonctions:
Exemples: filec, noclobber, history, etc.
Initialisation: set var = valeur Annulation: unset var
Affichage: set
Permettent de définir l’environnement dans lequel vont tourner les programmes
Par convention toujours écrites en majuscules
Variable Signification
HOME Le répertoire de base de l'utilisateur
PATH Le chemin de recherche des commandes TERM Le type du terminal
USER Le nom de l'utilisateur EDITOR L'éditeur par défaut EXINIT
LOGNAME Le nom de l'utilisateur
MAIL Le fichier qui contient le courrier électronique PRINTER L'imprimante par défaut
PWD Le répertoire courant
SHELL Le chemin absolu du shell
TERMCAP Le fichier de gestion du terminal
Initialisation avec la commande setenv Affichage avec la commande printenv
iznogoud [42]%echo $TERM xterm
iznogoud [43]%setenv TERM vt100 iznogoud [44]%echo $TERM
vt100
iznogoud [45]%printenv TERM vt100
Syntaxe Utilisation Commande > fichier envoie la sortie de la commande vers fichier
Commande >! Fichier envoie la sortie de la commande vers fichier et outrepasse l'option noclobber
Commande >> fichier ajoute la sortie de la commande à fichier
Commande >>! Fichier ajoute la sortie de la commande à fichier en outrepassant l'option noclobber
Commande < fichier la commande reçoit en entrée le contenu de fichier Commande >& fichier envoie la sortie standard et l'erreur standard dans fichier
Commande >&! Fichier envoie la sortie standard et l'erreur standard dans fichier et outrepasse l'option noclobber
Commande >>& fichier ajoute la sortie standard et l'erreur standard dans fichier
Commande >>&! Fichier ajoute la sortie standard et l'erreur standard dans fichier et outrepasse l'option noclobber
(commande > fichier1) >&
fichier2
envoie la sortie de commande dans fichier1 et l'erreur dans fichier2
Permet d’élaborer des outils complexes à partir d’outils simples commande1 | commande2
Le résultat de la commande1 est envoyé à la commande 2 Quelques exemples:
• ls -l | lpr
• cat .cshrc | more
• cat fichier | head -75 | tail -50
• who | sort