initiation à unix/linux -...

49
Initiation à Unix/Linux Octobre 2007 [email protected] Bât F – 3 ième  étage – bureau F301bis (Ingénieur de Recherche au CNRS - LPO)

Upload: hakiet

Post on 16-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Initiation à Unix/Linux

Octobre 2007

Nicolas.Grima@univ­brest.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, multi­taches, multi­utilisateurs, 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 travail­stockage (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

Les commandes et notions de base Unix/Linux

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

Un peu de pratiqueTP – première partie

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 ⇨ rwxr­xr­x– chmod 700 ⇨ rwx­­­­­­– chmod 644 ⇨ rw­r­­­r­­– chmod ­R 700 : récursivité

Un peu de pratiqueTP – second partie

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éta­caractères : ;, |, <, >, >>, etc Les méta­caractè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

Un peu de pratiqueTP – troisième partie

Allons un peu plus loin...

É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

Élaboration de scripts – encore +● awk● perl● make et les fichiers Makefile (compilation)

Processeur – Processus ­ Tâches

Processeur Processus

Tâches

(threads)

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).

Un peu de pratiqueTP – quatrième partie