Shell Bash Fundamentals - LPI Exam Preparation

Page 1 sur 64Lecteur de document UniversityLib

Shell Bash Fundamentals - LPI Exam Preparation

Bash Command Line and Linux Systems · exam

Voir tous les documents en systèmes d'exploitation et cloud

LPI

Exam 101

103.1 Ligne de commande

1

103.1 Domaines de connaissances

Poids : 4

Utilisation de la ligne de commande

Modification de l'environnement d'ex cution du shell : variables

Historique des commandes

Ex cution de commandes : dans et hors des chemins d finis

dans la variable d'environnement PATH

UPMC FP Pr paration LPI - v1.1

2

103.1 shell bash

Commandes internes et externes

Les commandes internes font partie du shell (builtin

commands) :

pas de fichier ex cutable correspondant

Les commandes externes ... c'est l'ensemble des

programmes de votre syst me

... mais il existe des commandes internes et externes qui

portent le m me nom : echo

Comment reconna tre le type d'une commande

type a commande

$ type cd

cd is a shell builtin

$ type more

more is /bin/more

UPMC FP Pr paration LPI - v1.1

$ type a echo

echo is a shell builtin

echo is /bin/echo

3

103.1 shell bash

Le shell ( coquille ) est un programme qui permet la saisie et

l'interpr tation de ce qui est tap . C'est l'interface entre le

syst me et l'utilisateur.

Ici pas d'interface graphique : l'interaction utilisateur se fait par

l'interm diaire de mots frapp s au clavier

C'est la fois...

Un interpr teur de commandes (un programme qui boucle en

attente des commandes utilisateur)

Un langage de programmation (interpr t ) offrant les

structures de base comme tout autre langage

Sous Unix, le shell est un programme au m me titre qu'un

autre. On peut donc changer de shell si besoin.

UPMC FP Pr paration LPI - v1.1

4

103.1 shell bash

shells les plus r pandus :

sh (bourne shell) : disponible sur toute plate forme Unix

bash (bourne Again shell) : Distribu sur la majeure partie

des Linux; version am lior e de sh et csh

ksh (korn shell) : Bourne shell am lior par AT&T

csh (C shell) : shell d velopp pour BSD

Tcsh (Tom's C shell) : variante du C chell

Sur les Linux r cents

Lien symbolique : /bin/sh > /bin/bash

Un shell est associ par d faut chaque utilisateur. Il est d finit

dans le fichier /etc/passwd

UPMC FP Pr paration LPI - v1.1

5

103.1 shell bash

La liste des shells valides sur un syst mes est stock e dans le

fichier /etc/shells

La commande chsh permet de modifier le shell par d faut d'un

utilisateur

/bin/nologin : commande refusant la connexion d'un

utilisateur lorsqu'elle remplace son shell par d faut.

Le message d'information standard peut tre remplac par le

contenu du fichier /etc/nologin.txt si ce fichier existe.

$ cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

UPMC FP Pr paration LPI - v1.1

6

103.1 shell bash

Tous les shells se pr sentent sous la m me forme :

une cha ne de caract res affiche que le shell attend que

l'utilisateur tape une commande au clavier : le prompt

Par convention

$ : identifie un utilisateur standard

# : identifie une session root

un curseur qui va se d placer au fur et mesure de la saisie

des commandes

Prompt

UPMC FP Pr paration LPI - v1.1

Curseur d'insertion

7

103.1 shell bash

La composition du prompt est g r e via des variables

d'environnement

PS1 : prompt par d faut

PS2 : prompt affich lorsque la ligne de commande continue

sur la ligne suivante (souvent '>')

PS3 : prompt affich lors d'une boucle select d'un script shell

PS4 : prompt utilis lorsque le shell est en mode debug

(souvent : '+')

Utilisation de s quences d' chappement pour modifier ces

variables (extrait)

\d : date

\h et \H : nom de machine (avec et sans nom de

domaine)

UPMC FP Pr paration LPI - v1.1

8

103.1 shell bash

....

\u : nom utilisateur

\w et W\ : r pertoire courant et basename

\$ : # pour root et $ pour les autres utilisateurs

\n : newline

$ echo $PS1

[\u@\h \W]\$

$ PS1="Mon prompt\

$"

Mon prompt$

$ echo "Commande qui se poursuit \

> sur la seconde ligne"

Commande qui se poursuit sur la seconde ligne

UPMC FP Pr paration LPI - v1.1

9

103.1 shell bash

commande unix = un ensemble de mots s par s par des

caract res blancs (white spaces) :espace, tabulation

premier mot : nom de la commande

reste des mots : param tres de la commande

parmis ces param tres, les options, modifient le comportement

de la commande

format d'une commande type :

$ commande parametres

les crochets [ et ] encadrent les l ments facultatifs de la

commande

les crochets ne doivent pas appara tre dans la ligne de

commande

UPMC FP Pr paration LPI - v1.1

10

103.1 shell bash

La syntaxe pour sp cifier une option a t d finie dans le

programme de la commande

Il existe pourtant des notations que l'on retrouve dans la plupart

des commandes (mais il existe des exceptions)

une option est introduite par le signe et est souvent constitu e d'une

lettre

$ cp r v source dest

l'ordre des options n'a pas d'importance et on peut les cumuler

$ ls a l = $ ls l a = $ ls al

les options constitu e d'un mot entier sont souvent introduite par le

signe

$ urpmi auto update

UPMC FP Pr paration LPI - v1.1

11

103.1 shell bash

Erreur classique : oubli de l'espace entre la commande, les

options et les param tres

le shell ne reconna t pas la commande et affiche un

message d'erreur

les param tres ou options ne sont pas valides pour la

commande : la commande affiche une erreur

r sultat inattendu de la commande

$ ls al

total 6011

drwxr xr x 63 franck franck 3072 mar 7 21:33 ./

drwxr xr x 6 root root 1024 f v 20 12:30 ../

rw rw r 1 franck franck 95684 d c 13 16:57 24488

linuxevolution.tar.bz2

.....

$ ls al

bash: ls al: command not found

UPMC FP Pr paration LPI - v1.1

12

103.1 Historique des commandes

Historique des commandes

Chaque commande valid e est enregistr e

chronologiquement avant son interpr tation et

Publicité

substitutions

Fonctionnalit du shell activ e par d faut :

set o history

A la sortie du shell, les commandes sont crites dans le

fichier .bash_history

Par d faut, le shell enregistre 1000 commandes

Param trable via la variable HISTSIZE

UPMC FP Pr paration LPI - v1.1

13

103.1 Historique des commandes

bash peut rechercher et rappeler (et ex cuter !) des

commandes d j saisies gr ce aux fl ches de navigation

et

: rappelle la commande pr c dente (dans l'ordre

chronologique)

: rappelle la commande suivante (dans l'ordre

chronologique)

!! : rappelle la derni re commande

!cha ne : rapelle la derni re commande d butant par

cha ne

!?cha ne : rapelle la derni re commande contenant

cha ne

! n : rappelle la ni me derni re commande

!n : rappelle la ni me commande

UPMC FP Pr paration LPI - v1.1

14

103.1 Historique des commandes

Int r ts :

Gain de temps et vite les erreurs de saisie en particulier

pour les commandes longues

Effet m moire des commandes saisies sur une machine

history | grep mount

Commande history : affiche l'historique complet des

commandes

history N : affiche les N derni res commandes

history d num ligne : efface la ligne la position

num ligne

history a : met jour le fichier .bash_history

UPMC FP Pr paration LPI - v1.1

15

103.1 Historique des commandes

$ history a

$ tail 5 .bash_history

echo $HISTORY

echo $HISTSIZE

history 5

tail 5 .bash_history

history a

$ history 5

1002 ls

1003 history 5

1004 echo $HISTORY

1005 echo $HISTSIZE

1006 history 5

$ tail 5 .bash_history

ssh [email protected]

exit

ssh [email protected]

uname a

exit

UPMC FP Pr paration LPI - v1.1

16

103.1 shell bash

$ ls c*.txt

centre2.txt centre3.txt centre4.txt centre.txt

$ !!

ls c*.txt

centre2.txt centre3.txt centre4.txt centre.txt

$ !ls

ls c*.txt

centre2.txt centre3.txt centre4.txt centre.txt

$ !ls:s/txt/py/

ls c*.py

centre1.py centre2.py centre3.py check.py clean.py colorcal.py

UPMC FP Pr paration LPI - v1.1

17

103.1 Raccourcis

Quelques raccourcis utiles (mode emacs)

+ : positionne le curseur au d but de la commande

+ : positionne le curseur la fin de la commande

+ : positionne le curseur au d but du mot suivant

+ : positionne le curseur au d but du mot pr c dant

+ : inverse deux lettres

+ : efface (coupe) la ligne

+ : efface (coupe) de la position courante jusqu' la fin

de ligne

+ : colle le texte coup

UPMC FP Pr paration LPI - v1.1

18

103.1 Raccourcis

Navigation dans la commande

Utiliser les fl ches de navigation et pour d placer

le curseur d'insertion dans la ligne de commande

Edition de la commande

: supprime la caract re pr c dent le curseur

d'insertion

: supprime la caract re suivant le curseur d'insertion

UPMC FP Pr paration LPI - v1.1

19

103.1 shell bash

Commande exec

Ex cute le programme pass en param tre et quitte

imm diatement (en fait remplace le processus en cours) le

programme appelant

Si appel depuis un script shell : arr t imm diat du script

$ echo $$

5116

$ bash

$ echo $$

5597

$ exec bash

$ echo $$

5597

$ exit

exit

$ echo $$

5116

UPMC FP Pr paration LPI - v1.1

20

103.1 shell bash

Commande source

Permet d'ex cuter un script dans le processus courant. Cela

permet de conserver les affectations ou modifications de

variables valides dans le processus courant.

Deux syntaxes (commandes source ou . )

. /opt/appli/etc/config.sh

source /opt/appli/etc/config.sh

UPMC FP Pr paration LPI - v1.1

21

103.1 shell bash

Commande echo

Affiche les arguments pass s en param tre sur la sortie

standard

Options

n : pas de newline

e : interpr tation des caract res d' chappement

\n : newline

\b : backspace

\t : tabulation horizontale

UPMC FP Pr paration LPI - v1.1

22

103.1 shell bash

Commande uname

Affiche les informations sur la version de noyau et le syst me

en cours d' x cution

Options

a : affiche tout

s : nom du noyau

r : release du noyau

v : version du noyau

m : nom de la machine (CPU)

o : nom de l'OS

i : plateforme mat rielle

p : processeur

UPMC FP Pr paration LPI - v1.1

23

103.1 shell bash

$ uname a

Linux port 135.ipsl.jussieu.fr 2.6.30.5 43.fc11.i686.PAE #1 SMP Thu Aug 27

21:34:36 EDT 2009 i686 i686 i386 GNU/Linux

$ uname s

Linux

$ uname v

#1 SMP Thu Aug 27 21:34:36 EDT 2009

$ uname r

2.6.30.5 43.fc11.i686.PAE

$ uname m

i686

$ uname o

GNU/Linux

$ uname i

i386

$ uname p

i686

UPMC FP Pr paration LPI - v1.1

Publicité

24

103.1 shell bash

tabulation, espace : d limiteurs des lements d'une commande

retour chariot : fin et demande d'ex cution de la commande

; : s parateur de commandes sur une seule ligne

( ) : ex cution de commande dans un sous shell

{ } : ex cution des commandes en s rie

& : lancer une commande en arri re plan

' , " , \ : quote characters, alt rent la mani re dont le

shell interpr te les caract res sp ciaux

< , > , << , >> , | : redirections des entr es sorties

* , ? , [ ] , [^] : expansion des noms de fichiers

$ : valeur d'une variable

UPMC FP Pr paration LPI - v1.1

25

103.1 shell bash

; permet de lancer plusieurs commandes sur la m me ligne

utile pour grouper plusieurs commandes dans un sous shell

$ date;ls exemple.txt

mer mar 28 23:24:06 CEST 2007

exemple.txt

$ (ls ; whoami ; id ) > result.txt

UPMC FP Pr paration LPI - v1.1

26

103.1 shell bash

( ) : d limitent un bloc de commandes ex cut es dans

un sous shell

$ pwd ; (cd rep; pwd) ; pwd

/home/franck/UNIX

/home/franck/UNIX/rep

/home/franck/UNIX

UPMC FP Pr paration LPI - v1.1

27

103.1 shell bash

' : (apostrophe single quote) le shell n'interpr te aucun

caract re sp cial pour tout les texte encadr par deux

apostrophes

'' : (guillemet double quote) le shell n'interpr te aucun

caract re sp cial pour tout les texte encadr par deux

guillemets l'exception de $ , ` et \ .

\ : (antislash backslash) le shell n'interpr te pas le

caract re sp cial sui suit imm diatement l'antislash.

UPMC FP Pr paration LPI - v1.1

28

103.1 shell bash

Exemples :

$ echo un deux

un deux

$ echo "un deux"

un deux

$ echo 'un deux'

un deux

$ echo "aujourd'hui"

aujourd'hui

$ echo aujourd\'hui

aujourd'hui

$ echo aujourd'hui

> '

aujourdhui

UPMC FP Pr paration LPI - v1.1

29

103.1 shell bash

Exemples :

$ echo '"today"'

"today"

$ echo "today"

today

$ echo '"'

"

$ echo "'"

'

$ echo $HOME

/home/franck

$ echo "$HOME"

/home/franck

$ echo '$HOME'

$HOME

$ echo "\$HOME"

$HOME

$ echo '\$HOME'

\$HOME

UPMC FP Pr paration LPI - v1.1

30

103.1 shell bash

Exemples :

$ find . \( name '*.jpg' o name

'*.jpeg' \) atime +7 exec rm {} \;

$ echo trois\>deux

trois>deux

Seul le caract re sp cial '>' n'est pas

interpr t

$ echo "la variable \$HOME

contient

> mon rep perso : $HOME"

la variable $HOME contient

> mon rep perso : /home/franck

UPMC FP Pr paration LPI - v1.1

31

103.1 shell bash

Fichiers d'initialisation du shell bash

Il existe en fait plusieurs modes d'ex cution du shell

shell de login : shell lanc par la commande login

shell interactif : les commandes sont saisies au terminal

shell non interactif : les commandes sont lues et ex cut es

partir d'un fichier

En fonction du mode d'ex cution du shell, des fichiers

d'initialisation du shell seront ex cut s ou non

shell de login interactif :

ex cution de /etc/profile

ex cution du premier fichier parmi

$HOME/.bash_profile ,

$HOME/.bash_login , $HOME/.profile

UPMC FP Pr paration LPI - v1.1

32

103.1 shell bash

shell non de login interactif ou non interactif:

ex cution de $HOME/.bashrc

$HOME/.bashrc peut faire appel au fichier

/etc/bashrc commun tous les utilisateurs

pour modifier le comportement du shell pour tous les

utilisateurs on modifie les fichiers /etc/bashrc et

/etc/profile

pour modifier le comportement du shell pour chaque

utilisateur on modifie les fichiers d'initialisation localis s dans

le r pertoire home

UPMC FP Pr paration LPI - v1.1

33

103.1 shell bash

Application : modifier de fa on permanente la variable PATH et

ajouter le chemin $HOME/bin

ajout dans le fichier $HOME/.bash_profile

PATH=$PATH:$HOME/bin

Quand le shell de login se termine

execution de le $HOME/.bash_logout

UPMC FP Pr paration LPI - v1.1

34

103.1 shell bash

Pour simplifier

/etc/profile : valable pour tous les utilisateurs;

ex cut au login. Contient g n ralement les variables

d'environnement, PATH, programmes au d marrage

/etc/bashrc : valable pour tous les utilisateurs;

appel depuis les fichiers .bashrc de chaque

utilisateur; contient les fonctions et alias

$HOME/.bash_profile ,

$HOME/.bash_login , $HOME/.profile :

sp cifique chaque utilisateur; ex cut au login; ex cution

de l'un des trois

$HOME/.bashrc : sp cifique chaque utilisateur;

ex cution au login ou non (interactif ou non)

UPMC FP Pr paration LPI - v1.1

35

103.1 Variables d'environnement

G n ralit s

Les variables d finies dans un shell sont d finies et

accessibles uniquement pour ce shell

la commande set affiche la liste des variables d finies

dans la session shell

Par convention les variables sont crites en majuscules

Les noms de variables sont sensibles la casse

Attention l'interpr tation par le shell du caract re $ en

fonction de l'utilisation des apostrophes ou guillemets

Un nom de variable doit tre compos uniquement de

caract re alphanum riques et du caract re undescore : _

UPMC FP Pr paration LPI - v1.1

36

103.1 Variables d'environnement

Affectation

variable=valeur

Attention l'erreur classique : pas d'espaces dans une

commande d'affectation ( l'espace est un m tacaract re qui

poss de une signification pr cise pour le shell)

$ VAR=valeur

$ VAR =valeur

bash: VAR: command not found

Publicité

$ VAR= valeur

bash: valeur: command not

found

$ VAR = valeur

bash: VAR: command not found

UPMC FP Pr paration LPI - v1.1

37

103.1 Variables d'environnement

Consultation du contenu d'un variable

$variable

${variable}

$ echo $VAR

$

VAR=valeur

$ echo $VAR

valeur

Suppression d'une variable

unset variable

$ echo $VAR

valeur

$ unset VAR

$ echo $VAR

UPMC FP Pr paration LPI - v1.1

38

103.1 Variables d'environnement

Utilisation des parenth ses : permet d'ajouter au contenu d'un

variable une suite de caract res.

Le shell identifie un nom de variable comme tant une suite de

caract res termin es par un espace

$ echo $VAR1

Lpi

$ echo $VAR1_2010

$ echo ${VAR1}_2010

lpi_2010

UPMC FP Pr paration LPI - v1.1

39

103.1 Variables d'environnement

Port e des variables

Par d faut, le contenu des variables ne sont pas accessibles

depuis les commandes lanc es depuis le shell

$ VAR=valeur

$ echo $VAR

valeur

$ bash

$ echo $VAR

$ exit

exit

$ echo $VAR

valeur

les exemples suivants utilisent le shell comme application mais les principes restent

identiques pour n'importe quelle application

UPMC FP Pr paration LPI - v1.1

40

103.1 Variables d'environnement

Port e des variables

Solution : utiliser la commande export

Attention : le param tre de export est bien le nom de la

variable (VAR) et non son contenu ($VAR)

$ echo $VAR

valeur

$ export VAR

$ bash

$ echo $VAR

valeur

$ echo $VAR

valeur

$ exit

exit

UPMC FP Pr paration LPI - v1.1

41

103.1 Variables d'environnement

Attention ! les variables h rit es ne sont pas modifiables

les variables sont dupliqu es au lancement d'une application

$ echo $VAR

valeur

$ export VAR

$ bash

$ echo $VAR

valeur

$ VAR=aoi

$ echo $VAR

aoi

$ exit

exit

$ echo $VAR

valeur

UPMC FP Pr paration LPI - v1.1

42

103.1 Variables d'environnement

Il est possible d'assigner et d'exporter une variable en une

seule commande

$ export VAR1=lpi

$ bash

$ echo $VAR1

lpi

UPMC FP Pr paration LPI - v1.1

43

103.1 Variables d'environnement

Liste des variables d'environnement standard

HOME : r pertoire utilisateur (home)

USER : login de l'utilisateur

SHELL : chemin du shell utilis

PATH : liste des r pertoires de recherche des commandes

TERM : type de terminal utilis

PWD : r pertoire courant

$ : process ID du processus courant (ne peut pas tre

modifi e)

? : code de retour de la derni re commande (ne peut pas

tre modifi e)

! : process ID du dernier processus en background

UPMC FP Pr paration LPI - v1.1

44

103.1 Variables d'environnement

$ echo $PWD

/home/franck

$ echo $$

3031

$ echo $?

0

$ ps edf | grep bash

franck 3031 3028 0 22:08 pts/0 00:00:00 bash

franck 4301 3031 0 23:40 pts/0 00:00:00 grep bash

UPMC FP Pr paration LPI - v1.1

45

103.1 Variables d'environnement

Commande env

Sans param tre, affiche les variables d'environnement

courantes. Permet galement d'ex cuter une commande dans

un environnement modifi .

Options

i : lance une commande dans un environnement vide

u : lance une commande en supprimant une variable de

l'environnement d'ex cution

UPMC FP Pr paration LPI - v1.1

46

103.1 Variables d'environnement

$ env

ORBIT_SOCKETDIR=/tmp/orbit franck

HOSTNAME=toto.jussieu.fr

IMSETTINGS_INTEGRATE_DESKTOP=yes

TERM=xterm

SHELL=/bin/bash

HISTSIZE=1000

$ env | wc l

46

$ env | grep SHELL

SHELL=/bin/bash

UPMC FP Pr paration LPI - v1.1

47

103.1 Variables d'environnement

$ env | grep VAR1

VAR1=lpi

$ env i bash

$ env | grep VAR1

$ man env

WARNING: terminal is not fully functional

$ env VAR2=examen bash

$ echo $VAR2

Examen

$ exit

$ echo $VAR2

UPMC FP Pr paration LPI - v1.1

48

103.1 Variables d'environnement

Commande set

Sans param tre, affiche les variables d'environnement

courantes ainsi que les fonctions.

Son utilisation habituelle consiste modifier (activer ou

d sactiver) les options d'ex cution du shell.

Pour activer une option : set f ou set o noglob

Pour d sactiver une option : set +f ou set + o noglob

La commande set dispose d'un grand nombre d'options

x : xtrace ou mode debug

Pour le reste :

http://www.gnu.org/software/bash/manual/html_node/The

Publicité

Set Builtin.html

UPMC FP Pr paration LPI - v1.1

49

103.1 Variables d'environnement

La commande set dispose d'un grand nombre d'options. Entre

autres :

x : (xtrace) : affiche les commandes apr s les avoir

interpr t s. Permet de mettre en vidence le travail de

substitution (commandes, param tres) du shell

v : (verbose) : affiche les commandes avant de les

ex cuter

n : (noexec) : utilis pour v rifier la syntaxe de shell script.

Ignor pour les shell interactifs

f : (noglob) : d sactive le file globbing

UPMC FP Pr paration LPI - v1.1

50

103.1 Variables d'environnement

$ set v

echo ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo ne "\007"

$ ls

ls

env.txt fic1 fic2 fic3 fic4 ok.txt pas ok.txt set.txt

echo ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo ne "\007"

UPMC FP Pr paration LPI - v1.1

51

103.1 Variables d'environnement

$ set x

++ echo ne '\033]0;franck@machine:~/src/exo lpi'

$ VAR3=linux

+ VAR3=linux

++ echo ne '\033]0;franck@machine:~/src/exo lpi'

$ echo $VAR3

+ echo linux

linux

++ echo ne '\033]0;franck@machine:~/src/exo lpi'

$ kill HUP `cat /var/run/xinetd.pid

`++ cat /var/run/xinetd.pid

+ kill HUP 2070

bash: kill: (2070) Op ration non permise

++ echo ne '\033]0;franck@machine:~/src/exo lpi'

UPMC FP Pr paration LPI - v1.1

52

103.1 Path

On acc de un fichier travers son chemin dans

l'arborescence

le chemin est constitu d'une liste de noms de r pertoires et

se termine par le nom du fichier

le caract re / permet de s parer les diff rents r pertoires

qui constituent le chemin

/repertoire1/r pertoire2/fichier

UPMC FP Pr paration LPI - v1.1

53

103.1 Path

Chemin d'acc s absolu

C'est le chemin qui permet d'acc der un fichier et qui

commence par la racine de l'arbre

Un chemin absolu doit toujours commencer par /

exemple : /usr/include/sys/stat.h

UPMC FP Pr paration LPI - v1.1

54

103.1 Path

Chemin d'acc s relatif

C'est le chemin qui permet d'acc der un fichier et qui peut

commencer n'importe quel endroit de l'arbre except

la racine

Un chemin relatif est relatif la position de r f rence

(le r pertoire courant)

le r pertoire courant est not頫 .

le r pertoire parent du r pertoire courant est not頫 ..

UPMC FP Pr paration LPI - v1.1

55

103.1 Path

exemple 1 : depuis /usr/include/ , le chemin relatif du fichier

stat.h est sys/stat.h

UPMC FP Pr paration LPI - v1.1

56

103.1 Path

exemple 2 : depuis /usr/include/ , le chemin relatif du fichier

ls est ../../bin/ls

UPMC FP Pr paration LPI - v1.1

57

103.1 Path

Importance des critures . et ..

commande find pour lancer une recherche partir de

l'endroit courant

$ find . name fichier print

pour lancer une commande qui se trouve dans le r pertoire

courant

$ ./macommande

Comparaison Windows/Unix

Windows : plusieurs volumes C:, D: ; \ comme

s parateur de r pertoires

Unix : une arbre unique; / comme s parateur de

r pertoires

UPMC FP Pr paration LPI - v1.1

58

103.1 Path

PATH : liste des r pertoires de recherche des commandes

s par s par le caract re :

Parcours des r pertoires jusqu' trouver la commande en

question

Exemple : PATH=/bin:/usr/bin:/usr/local/bin

$ ls

recherche dans /bin si ls existe. Si oui ex cution,

sinon chemin suivant

recherche dans /usr/bin si ls existe. Si oui

ex cution, sinon chemin suivant etc....

si la commande n'est trouv e dans aucun chemin

command not found

UPMC FP Pr paration LPI - v1.1

59

103.1 Path

Pour modifier son PATH ( $HOME/bin par exemple)

$ PATH=$HOME/bin:$PATH

$ export PATH

$ PATH=$PATH:$HOME/bin

$ export PATH

Pour retirer un chemin il faut saisir compl tement les chemins

et les affecter la variable PATH

Ne pas mettre . dans son path

ex cuter la commande dans le r pertoire courant en la

pr c dant de ./ si la commande n'est trouv e dans

aucun chemin

$ ./monscript.sh

UPMC FP Pr paration LPI - v1.1

60

103.1 Path

Diff rence habituelle du contenu de la variable PATH entre un

utilisateur standard et root :

PATH de root contient les chemins /sbin, /usr/sbin,

/sur/local/sbin

Ce qui fait que

Sous l'identit de root, le shell trouve directement la

commande ifconfig

Sous l'identit d'un utilisateur standard, il faut lui donner le

chemin absolu de la commande (/sbin/ifconfig)

UPMC FP Pr paration LPI - v1.1

61

103.1 Path

Commande pwd

Affiche le chemin absolu du r pertoire courant (print working

directory)

Chemin pr sent galement dans la variable PWD

Changement de r pertoire courant avec la commande cd

cd chemin : chgmt vers chemin

cd ~ : chgmt vers le son r pertoire personnel

cd ~user1 : chgmt vers le r pertoire personnel de

l'utilisateur user1

cd : idem cd ~

cd : chgmt vers OLDPWD

UPMC FP Pr paration LPI - v1.1

62

103.1 Path

$ pwd

/home/franck/src/exo lpi

$ cd /etc

$ pwd

/etc

$ cd

/home/franck/src/exo lpi

$ echo $PWD

/home/franck/src/exo lpi

$ echo $OLDPWD

/etc

UPMC FP Pr paration LPI - v1.1

63

103.1 Conseils LPI

Attention la syntaxe exacte des commandes

UPMC FP Pr paration LPI - v1.1

64