Initiation à Unix/Linux
Octobre 2007
Nicolas.Grima@univbrest.frBât F – 3ième étage – bureau F301bis
(Ingénieur de Recherche au CNRS LPO)
A qui s'adresse ce cours Objectifs● Personnes qui ne connaissent pas ou très peu
l'environnement Unix/Linux.● Personnes qui veulent revoir leurs connaissances
de cet environnement.● Mise à niveau pour pouvoir s'intégrer facilement
dans une équipe de recherche dont souvent les moyens informatiques sont sous Unix/Linux (stage de fin d'année – thèse etc).
Tour de table● Connaissances générales en informatique: cours,
formations, expériences.● Systèmes d'exploitation: Unix, Linux, Windows,
Mac OS.● Langage de programmation: C/C++, Fortran,
autres.● Plate formes: PC, Mac, calculateurs, autres.
Le support de cours● Document fait par le centre de ressources en
informatique scientifique du CNRS – IDRIS.● http://www.idris.fr/data/cours/unix/user/choix_doc.html
Introduction✔ En recherche/ingénierie les ordinateurs sont
généralement sous Unix/Linux.✔ Le nombre de PC sous Linux est croissant.✔ Unix/Linux permet de travailler de façon
identique et efficace sur de nombreuses plateformes.
✔ Unix : fiabilité, système ouvert, multitaches, multiutilisateurs, interactif et batch, nombreux outils
IntroductionOrdinateur – vocabulaire matériel.
CPU (central Process Unit)
Mémoire cache
Processeur
Mémoire vive(RAM)
Espace de stockage
Disques Durs Lecteurs CD/DVD Etc…
Principale difficulté d'Unix c'est son côté ligne(s) de commandes pour dialoguer avec l'ordinateur.
Utilisateur(s)
Noyau – Système d'exploitation
Ordinateur (matériel)
Shell – Programmes - Bibliothèques
Adm
inis
trat
eur(
s) Interface (graphique ou texte)
IntroductionOrdinateur – vocabulaire logiciel.
Connexions : locale et distante● un identifiant et un mot de passe (login/password).
Machine locale
● Pour chaque compte on a : login, password, groupe, Home, langage de commande (shell).
● Interface "Graphique" (locale) – Interface "Texte"
(distante).
Machine distante
Démarrage
Où suis je ?– Sur votre HOME=/home/qqc/login ou ~login.– Un espace disque qui vous est propre (souvent sauvegarde).– Pour savoir où vous êtes taper la commande pwd.– Pour revenir dans votre HOME entrer cd.
Démarrage (suite)Deux grandes familles de Shell
● ksh (bash, zsh, sh, ...) et ses fichiers cachés :– .profile (à la connexion)– .kshrc (à chaque nouvelle fenêtre ou session)
● csh (tcsh, ...) et ses fichiers cachés :– .login (à la connexion)– .cshrc (à chaque nouvelle fenêtre ou session)Utiliser chsh ou ypchsh pour changer de Shell.
● L'espace de travailstockage (bâtiment) est formé de plusieurs disques durs (salles de rangement).
● Les disques durs de votre ordinateur sont partitionner (armoires)
● Chaque partition est découpée suivant une arborescence de répertoire (tiroirs, placards, dossiers, etc)
● Les différents types de fichiers (chaussettes, chemises, etc) sont stocké dans ces répertoires avec des droits d'accès.
Répertoires – Fichiers Arborescence
Répertoires – Fichiers Arborescence
/
bin
lib
usr
etc
var
opt
boot
dev
home
Root
bin
lib
include
Bibliothèques
Commandes unix/linux
qqc
login1
login2
login3
...
Login n
répert.
répert.
.login
.cshrc
fichier
fichier
/home/qqc/login/.cshrc
Ou trouver de l'information
Utiliser la commande man (manual)cette commande permet de tout connaître d'une
commande ou d'un produit.par exemple :
– man man– man pwd– man cd
Commandes de base lsls : afficher le contenu d'un répertoire.
Exemples d'utilisation :– ls rtl : liste de façon détaillé les fichiers et les
répertoires du plus ancien au plus récent.– ls al : liste de façon détaillé les fichiers et répertoires
courant et ceux cachés.– ls *.f : liste tous les fichiers qui se terminent par .f.
Possibilité de créer des alias et de les ajouter dans les fichiers .profile ou .login.
Commandes de base cdcd : changer de répertoire.
Exemples d'utilisation :– cd ou cd $HOME : ramène au HOME.– cd .. : ramène dans le répertoire parent.– cd rep : va dans le répertoire rep à partir du répertoire
où vous êtes.– cd /usr/bin : va dans le répertoire bin en écrivant tout
l'arborescence.– cd : une bonne astuce pour revenir dans le répertoire
d'où vous veniez précédemment.
Commandes de base pwdpwd : Afficher le nom du
répertoire de travail en cours.
/
bin
lib
usr
etc
var
opt
boot
dev
home
Root
bin
lib
include
qqc
login1
login2
login3
...
Login n
répert.
répert.
.login
.cshrc
Commandes de base mkdir
mkdir : créer des répertoires.
Exemple d’utilisation :– mkdir rep : crée le répertoire rep.
Commandes de base cpcp : copier des fichiers.
Exemples d'utilisation :– cp fic1 fic2 : copier le fic1 dans le fic2.– cp fic1 rep : copier le fic1 dans le répertoire rep avec le
même nom.– cp r rep1 rep2 : copier récursivement les répertoires.
Commandes de base mvmv : déplacer ou renommer des fichiers.
Exemples d'utilisation :– mv fic1 fic2 : renomme le fichier fic1 en fic2.– mv fic1 rep : déplace le fic1 dans le répertoire rep sans
changer le nom.
Commandes de base rm
rm : Effacer des fichiers ou répertoires.Exemples d'utilisation :
– rm fic1 : efface le fichier fic1.– rm fic* : efface tous les fichiers qui commence par fic.– rm r rep : efface récursivement le contenu du
répertoire rep et le répertoire rep.
Les droits Unix/Linux● Contrôle de lecture (r), écriture (w) et exécution
(x) d'un fichier ou d'un répertoire.● Notions de loginlogin, groupgroup et otherother.
r w x r w xd r w x
ls -al -rw-r--r-- 1 grima lpo/ubo 144 jun 24 10:58 .aumixrcdrwxr-xr-x 5 grima lpo/ubo 512 jun 10 15:48 AUTOMAKEdrwx------ 2 grima lpo/ubo 512 jan 21 2005 .autosave
Les droits Unix/Linux chmod chown
chmod : modifier les autorisations d'accès à un fichier.
chown : modifier le propriétaire et le groupe d'un fichier.
exemples d'application :– chmod 755 ⇨ rwxrxrx– chmod 700 ⇨ rwx– chmod 644 ⇨ rwrr– chmod R 700 : récursivité
A la recherche des fichiers (find)et de leur contenu (grep)
find : rechercher des fichiers dans une hiérarchie de répertoires.
Exemples d'application :– find rep name "*blabla*" print : recherche récursivement
tous les fichiers dont le nom comporte blabla à partir du répertoire rep.
– find rep name "*toto*" exec rm {} \; : recherche ... et efface ces fichiers.
– man find : c'est une commande clé...
A la recherche des fichiers (find)et de leur contenu (grep)
grep : afficher les lignes correspondant à un motif donné.
Exemples d'application :– grep i toto *.f90 : recherche la chaîne toto sans distinction
entre minuscule et majuscule dans tous les fichiers se terminant par .f90 du répertoire courant.
– find rep name "*.f90" exec grep i toto {} \; : recherche récursivement ... à partir du répertoire rep.
Métacaractères : ;, |, <, >, >>, etc Les métacaractères servent à contrôler les
enchaînements de commandes, les redirection de résultats, etc.
● ls l; grep i toto *.f90 : enchaîne deux commandes Unix sur la même ligne.
● ls l | grep i f90 : la recherche de f90 va se faire sur la sortie de la commande ls l.
● ls l | more : très souvent utilisé pour afficher progressivement les résultats lorsque les fichiers sont nombreux.
● ls l | grep i f90 > fic1 : et le résultat sera stocké dans le fichier fic1.
La variable d'env. PATHet la commande type ou whichPATH est une variable d'environnement qui
indique des répertoires privilégiés où les exécutables seront recherchés.
● echo $PATH ⇨ /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/sbin:/sbin:/opt/linux/ferret/bin:/opt/linux/GMT3.4.1/bin:.
● find ... : pas besoin d'entrer /usr/bin/find ...
La variable d'env. PATHet la commande type ou whichType (ksh) ou which (csh) : localise une
commande ou un exécutable à partir des chemins renseignés dans la variable PATH.
Exemples d'application :– type ifort ⇨ /opt/intel_fc_80/bin/ifort– which pwd ⇨ /bin/pwd
ftp ou sftp : programme de transfert de fichiers.ftp mach.dom.fr ou sftp [email protected]
ftp> put fichier ou ftp> get fichierftp> quit
limite : on ne peut pas transférer un répertoire !
Partager des données
Machine locale Machine distante
tar : utilitaire de gestion d'archives.On utilise généralement cette commande pour mettre dans un fichier toute une arborescence de
fichiers et de répertoires.– archive : tar cvf archive.tar répertoire– désarchive : tar xvf archive.tar– vérifier : tar tvf archive.tar
Partager des données tar
Gzip et gunzip : compacter ou décompacter des fichiers.
Permet de réduire considérablement la taille d'un fichier volumineux (ASCII).
– compacter : gzip archive.tar ⇨archive.tar.gz– décompacter : gunzip archive.tar.gz ⇨archive.tarUn fichier tar.gz permet des transfert (ftp) plus
rapide !
Partager des données gzip
Éditeurs de Textevi emacs nedit
● vi : présent partout, mode texte, combinaisons de lettres pour les commandes. Simple et rapide pour des petits programmes et changements.
● emacs : très présent, fenêtre graphique, combinaisons de lettres et boutons pour les commandes. Usine à gaz. Gros développements.
● nedit : moins présent, même avantages qu'emacs, mais moins usine à gaz.
Éditeurs de Textevi emacs nedit
Connaître un minimum vi.Prenez le même éditeur que votre responsable de stage ou le plus répandu dans le service.
Élaboration de scriptsScript : un ensemble de commandes (Shell) placées dans
un fichier que l'on peut exécuter.
! Éviter de récrire une commande Unix qui existe déjà !– sort : trier les lignes d'un fichier texte.– uniq : Éliminer les lignes dupliquées dans un fichier trié.– paste : regrouper les lignes de différents fichiers.– cut : Supprimer une partie de chaque ligne d'un fichier.– tr : Transposer ou éliminer des caractères
(Page 41)
Élaboration de scripts suite● Création d'un fichier avec son éditeur de texte préféré.● Première ligne doit commencer par :
– #!/usr/bin/ksh ou #!/usr/bin/csh ou #!/usr/local/bin/perl, etc● En plus des commandes :
– Boucles– Tests conditionnels– Les variables
● Le fichier doit avoir les droits Unix en exécution.
Élaboration de scripts ksh● Boucles
for#!/usr/bin/kshfor i in `ls *.f90`do
echo "je traite le fichier :" $idone
while#!/usr/bin/kshi=1while ((i<=5))do
echo $i((i=i+1))
done
Élaboration de scripts ksh● Tests conditionnels
If (nombres)#!/usr/bin/ksh...if (( numero < 10 )) || (( a!=2))then
echo "plut petit"else
echo "plus grand"fi
If (texte)#!/usr/bin/kshread repif [[ $rep = "oui"]]then
rm f *.hfi
Élaboration de scripts ksh● Création de ses propres variables :
– ma_variable=/home/group/login/exe.old– echo ${ma_variable}– echo ${ma_variable%.*}.new ⇨/home/group/login/exe.new– Basename ${ma_variable} ⇨exe.old
● Calculs :– ((i=i+1))– Echo "mon resultat est : $((354%54))"
Élaboration de scripts ksh● Variables : (commande param1 param2 ...)
– $ : permet d'avoir le contenu d'une variable.– $? : retour d'exécution de commande. 0 = tout est ok, sinon >0
pour une erreur.– $# : nombre de paramètres– $@ : liste des paramètres– $0 : nom de la commande– $n : paramètre de rang n– $$ : numéro de processus courant
Gestion des processus – top – pstop : affiche les processus (mode intéractif).
ps : affiches les processus (mode texte)
Gestion des processuskill – Ctrl c – Ctrl d
kill : envoyer un signal à un processus.kill 9 pid : "tue" le processus qui a pour identifiant pid.Ctrl c : "tue" une commande sur laquelle on à la main.
Ctrl d ou exit : termine une session (fenêtre par exemple).
Ctrl z : bloque un processus bg : le met en arrière plan
Les inclassables à connaître
● df k : pour connaître l'occupation des "file systems".
● du k : pour connaître l'occupation d'une arborescence de répertoire (par exemple votre $HOME).
Top Related