Vous êtes sur la page 1sur 10

Introoduction

n au sheell
L'interprréteur de com
mmandes est l'interface enntre l'utilisatteur et le systtème d'explooitation, d'où son nom
anglais «shell»,
« qui signifie
s «coqquille».

Le shell est ainsi chaargé de faire l'intermédiaiire entre le sy


ystème d'expploitation et ll'utilisateur grâce
g aux
lignes dee commandes saisies par ce dernier. Son S rôle conssiste ainsi à lire
l la ligne dde command de,
interprétter sa significcation, exécuuter la comm
mande, puis reetourner le réésultat sur lees sorties.

Le shell est ainsi un fichier exécuutable chargéé d'interpréteer les commaandes, de les transmettre au
système et de retournner le résultaat. Il existe pllusieurs shells, les plus courants étantt

sh (appeelé «Bourne shell»),


s bash h («Bourne again
a shell»),, csh («C Sheell»), Tcsh («Tenex C
shell»), ksh
k («Korn shell»)
s et zsh
h («Zero shell»).

Leur nom
m correspondd généralemeent au nom de
d l'exécutab
ble.

Chaque utilisateur
u poossède un shhell par défauut, qui sera laancé à l'ouverrture d'une innvite de com
mmande.
Le shell par défaut esst précisé daans le fichier de configuraation /etc/passswd dans le dernier cham mp de la
ligne corrrespondant à l'utilisateurr. Il est possiible de chang
ger de shell dans
d une sesssion en exécuutant
tout simpplement le fiichier exécuttable correspondant, par exemple
e :

/bin/bashh

Invitte de com
mmand
de (prom
mpt)
Le shell s'initialise enn lisant sa coonfiguration globale (dan ns un fichier du répertoiree /etc/), puis en lisant
la configguration proppre à l'utilisatteur (dans unn fichier cach
hé, dont le noom commence par un point, situé
dans le répertoire
r de base de l'utilisateur, c'est-à
dire /homme/nom_de_l_utilisateur/ r/.fichier_de__configuratioon), puis il afffiche une innvite de commmande
(en anglaais prompt) comme suit :

machinee:/repertoire/ccourant$

Par défauut dans la pluupart des sheells le promppt est compossé du nom dee la machinee, suivi de deu
ux points
(:), du réépertoire couurant, puis d'uun caractère indiquant le type d'utilisaateur conneccté :

«$» indique qu'il s'aggit d'un utilissateur normaal

«#» indique qu'il s'aggit de l'adminnistrateur, apppelé «root»


 
Notioon de liggne de comma
c ande
Une lignne de commaande est une chaîne
c de caaractère consttituée d'une commande,
c ccorrespondannt à un
fichier exxécutable duu système ouu bien d'une commande
c duu shell ainsi que des arguuments (paraamètres)
optionneels :

ls -al /hoome/jf/

Dans la commande
c c
ci-dessus, ls est
e le nom dee la commannde, -al et /hoome/jean-fraancois/ sont des
d
argumennts. Les argumments comm mençant par - sont appeléss options.

Pour chaaque commannde il existe généralemennt un certain nombre d'opptions pouvaant être détailllées en
tapant unne des comm
mandes suivaantes :

commannde --help
commannde -?
man com
mmande

Entrées-sortties stan
ndard
Lors de l'exécution
l d
d'une v alors ouvrrir trois flux :
commaande, un proccessus est crééé. Celui-ci va

stdin, apppelée entréee standard, dans


d lequel le
l processus va lire les doonnées d'entrrée. Par
défaut sttdin correspoond au clavieer ; STDIN est identifié par
p le numéroo 0 ;

stdout, appelée
a sortie standard, dans lequel le processus va écrire less données de sortie. Par
défaut sttdin correspoond à l'écran ; STDOUT est
e identifié par
p le numérro 1 ;

stderr, appelée
a erreuur standard, dans lequell le processuss va écrire lees messages dd'erreur. Par
défaut sttderr corresppond à l'écrann. STDERR est identifié par le numérro 2 ;

Par défauut lorsque l'oon exécute unn programmee, les donnéees sont donc lues à partir du clavier ett le
program
mme envoie saa sortie et sees erreurs surr l'écran, mais il est possibble de lire lees données à partir de
n'importte quel périphhérique d'enttrée, voire à partir
p d'un fichier et d'envvoyer la sorttie sur un
périphérrique d'affichhage, un fichiier, etc.

Redirections
Linux, comme tout système
s de tyype Unix, poossède des méécanismes peermettant de rediriger less entrées-
sorties sttandards vers des fichierss.


 
Ainsi, l'utilisation du caractère «>» permet de rediriger la sortie standard d'une commande située à
gauche vers le fichier situé à droite :

ls -al /home/jf/ > toto.txt


echo "Toto" > /etc/monfichierdeconfiguration

La commande suivante est équivalente à une copie de fichiers :

cat toto > toto2

La redirection «>» a pour but de créer un nouveau fichier. Ainsi, si un fichier du même nom existait,
celui-ci sera écrasé. La commande suivante crée tout simplement un fichier vide :

> fichier

L'emploi d'un double caractère «>>» permet de concaténer


la sortie standard vers le fichier, c'est-à-dire ajouter la sortie à la suite du fichier, sans l'écraser.

De manière analogue, le caractère «<» indique une redirection de l'entrée standard. La commande
suivante envoie le contenu du fichier toto.txt en entrée de la commande cat, dont le seul but est
d'afficher le contenu sur la sortie standard (exemple inutile mais formateur) :

cat < toto.txt

Enfin l'emploi de la redirection «<<» permet de lire sur l'entrée standard jusqu'à ce que la chaîne
située à droite soit rencontrée. Ainsi, l'exemple suivant va lire l'entrée standard jusqu'à ce que le mot
STOP soit rencontré, puis va afficher le résultat :

cat << STOP

Tubes de communication (pipes)


Les tubes (en anglais «pipes", littéralement tuyaux) constituent un mécanisme de communication
propre à tous les systèmes UNIX. Un tube, symbolisé par une barre verticale (caractère «|»), permet
d'affecter la sortie standard d'une commande à l'entrée standard d'une autre, comme un tuyau
permettant de faire communiquer l'entrée standard d'une commande avec la sortie standard d'une
autre.

Ainsi dans l'exemple suivant, la sortie standard de la commande ls -al est envoyée sur le
programme sort chargé de trier le résultat par ordre alphabétique :

ls -al | sort

Il est possible de cette façon de chaîner un certain nombre de commandes par tubes successifs. Dans
l'exemple suivant la commande affiche tous les fichiers du répertoire courant, sélectionne les lignes
contenant le mot "zip" (grâce à la commande grep) et compte le nombre de lignes total :

ls -l | grep zip | wc -l


 
Quelques caractères spéciaux du shell
Il existe des caractères spéciaux qui sont interprétés par le shell.

* remplace 0 ou n caractères quelconques. Exemple : ls a* liste tous les fichiers dont le nom
commence par a.

? remplace 0 ou 1 caractère quelconque. Exemple : ls *.java? liste tous les fichiers dont le
nom a pour extension .java ou .java suivi de n'importe quel caractère.

[liste] remplace 1 caractère de liste. Exemple : ls *.[ch] liste tous les fichiers dont le nom a
pour extension .c ou .h.

Pour despécialiser ces caractères il faut les mettre entre apostrophes.


Exemple :

rm '?'

Efface le fichier de nom ? est pas tous les fichiers dont le nom fait un caractère.

Exécution de commandes
Pour exécuter une commande comme emacs ou netscape il suffit de taper son nom dans une
fenêtre shell.

Par défaut le shell reste bloqué tant que la commande n'est pas terminée.

Pour arrêter la commande taper simultanément les touches Control et C (Ctrl-C).

Pour exécuter la commande en tache de fond (ce qui permet d'utiliser le shell) il existe deux
possibilités : soit taper le nom de la commande suivi de &, soit lancer la commande comme
précédemment, interrompre la commande en tapant Ctrl-Z dans le shell et la faire passer en
tache de fond en tapant bg (background).

Quelques commandes simples


Consulter le manuel

man [n] commande

Visualisation à l'écran des informations concernant la commande spécifiée. L'affichage est


réalisé par un more. Le manuel est divisé en huit sections:

• 1 : Les commandes utilisateurs


• 2 : Les appels sytèmes
• 3 : La librairie des sous-routines
• 4 : Les formats de fichiers
• 5 : Les fichiers spéciaux
• 7 : Les possibilités diverses
• 8 ou 1m : Les commandes d'administrations système

 
• 9 : glossaire

On peut spécifier la section dans laquelle on veut effectuer la recherche (grace au paramètre
n).

Identifier les utilisateurs du système

who

fournit de informations sur l'ensemble des utilistaeurs qui sont actuellement connectés sur la station.

who am i

renvoie uniquement les informations relatives à l'utilisateur courant.

whoami

renvoit l'identificateur de l'utilisateur courant.

id

renvoie l'UID (user identifier), le GID (Groupe identifier) de l'utilisateur courant.

Il ne faut pas confondre who am i (cas particulier de la commande who) et whoami. Le premier donne
des informations sur l'utilisateur connecté et le second l'identificateur de l'utilisateur courant.

Changer de mot de passe

Pour se connecter, il faut :

un login (identificateur de l'utilisateur) assigné par votre administrateur système

un password (mot de passe) propre à chaque utilisateur

passwd

Permet de définir et de controler son mot de passe.


A l'appel de cette commande, vous devez saisir l'ancien mot de passe, puis vous devez saisir deux fois
votre nouveau mot de passe.

Afficher une chaine de caractères

echo chaine

affiche la chaine passée en paramètre .(vous pouvez aussi afficher des variables: echo $PATH,
pour visualiser la variable PATH)

banner chaine

affiche la chaine passée en paramètre avec des grosses lettres


 
Commandes et manipulation des répertoires

Visualiser le contenu d'un répertoire

ls [-FaRl]

liste le contenu d'un répertoire quelques options :

Positionne à la fin des noms un / pour les répertoires et un * pour les fichiers
-F :
exécutables

-a : Affiche tous les fichiers, y compris les fichiers cachés (ceux qui commencent par . )

-R : Affichage récursif

Description complète du contenu d'un répertoire (une ligne par fichier). Le premier
caractère de la ligne indique le type du fichier :
-l :
- : standard

d : répertoire

Evite de lister le contenu d'un répertoire : si rep est un repertoire, ls -l rep listera le
-d :
contenu du répertoire rep, alors que ls -ld rep listera la description du répertoire

changer de répertoire

cd chemin

change le répertoire courant pour celui specifié par le chemin.

Cd

change le répertoire courant pour le home directory.

cd -

change le répertoire courant pour le répertoire précédent

pwd

(print working directory) affiche le chemin du répertoire courant

Créer et détruire un répertoire

mkdir répertoire

création d'un répertoire contenant les deux fichiers . et ..

rmdir répertoire

supprime un répertoire vide (pour supprimer un répertoire non vide, il faut utiliser la commande rm


 
Commandes et manipulation des fichiers
Visualiser le contenu d'un fichier

cat fich1 fich2

concatène et affiche (sur la sortie standard) le contenu des fichiers

paste fich1 fich 2

concatène horizontalement les fichiers fich1 et fich2 et affiche (sur la sortie standard) le résultat.

more fich

visualise le contenu du ou des fichiers par page.


pour un fichier contenant plus d'une page :

q ou Q : pour terminer la visualisation

RETURN : pour visualiser une ligne supplémentaire

ESPACE : pour visualiser la page suivante

h: pour obtenir de l'aide

Imprimer un fichier

lp [-dimp] fichiers

imprime le ou les fichiers spécifiés sur l'imprimante par défaut ou sur celle spécifiée par l'option -
d (attention, pas de blanc entre l'option et le nom de l'imprimante).

lpq

visualise la file d'impression courante

lpstat [-t]

renvoie des informations sur l'etat de l'imprimante par défaut et de sa queue d'impression . (l'option -
t permet de visualiser toutes les imprimantes)

cancel num_impression

detruit l'impression designée par num_impression(vous recuperz ce numero par la commande lpq ou
lpstat)

Chercher une chaine de caractères dans un fichier

grep [-iv] expression fichiers

sans option : recherche dans les fichiers les lignes contenant l'expression


 
-i : pour ne pas tenir compte des majuscules/minuscules

-v : pour afficher les lignes ne contenant pas l'expression spécifiée.

Faire une copie d'un fichier

cp source destination

copie le fichier source dans le fichier destination.


Si le fichierdestination n'existe pas, il est créé . Sinon son contenu est ecrasé sans avertissement.
Si la destination est un répertoire, alors la source peut être une liste de fichiers.

Déplacer ou changer le nom d'un fichier

mv source destination

renomme ou deplace le fichier source en destination. Si la destination est un répertoire, alors la source
peut être une liste de fichiers.

Identifier le type d'un fichier

file fichiers

Determine le type du ou des fichiers specifiés. (Attention, le résultat est parfois erronée)

Créer un lien sur un fichier

ln [-s] source destination

création un lien sur un fichier ou un répertoire. Un lien est un moyen d'accéder à un même fichier ou
un répertoire sous plusieurs noms ou à partir de plusieurs répertoires. Attention un lien n'est pas une
copie: si vous modifiez le fichier alors tous les liens sur ce fichier seront modifiés.
Il existe deux sortes de liens: le lien physique et le lien symbolique (avec l'option -s). Le lien physique
ne peut adresser que des fichiers, alors que le lien symbolique peut aussi lier des répertoires.

Dans le cas de lien physique, pour effacer le fichier, vous devez effacer tous les liens qui pointent sur
ce fichier. Par contre pour des liens symboliques, vous pouvez effacer le fichier sans effacer les liens,
mais alors ceux-ci seront invalides.

Détruire un fichier


 
rm [-irf] fichiers

efface les fichiers(attention, on ne peut pas récuperer un fichier qui a été effacé)

-i : intéractif, demande une confirmation sur chaque fichier

-f : force la suppression du fichier

-r : resursivité. permet d'effacer un répertoire et son contenu

Rechercher un fichier

find rep -name nom -print

recherche le(s) fichier(s) caractérisé par name (vous pouvez utiliser une expression régulière), à partir
du répertoire rep et affiche le résultat.
vous pouvez décrire le fichier à rechercher par une expression réguliere, ou indiquer le type de fichiers
à chercher ou encore le propriétaire ...
vous pouvez aussi executer d'autres actions, comme effacer le fichiers... (pour plus de détails, voir le
man)

Permission sur les fichiers

Une des formes pour les options de chmod est dest op droit. Les valeurs possibles
de dest sont :

• a change les droits pour tout le monde ;


• u change les droits pour le propriétaire du fichier ;
• g change les droits pour le groupe du propriétaire du fichier ;
• o change les droits pour les autres.

Les valeurs possibles de op sont :

• + ajoute les droits droit pour dest ;


• - retire les droits droit pour dest.

Les valeurs principales de droit sont :

• r les droits en lecture ;


• w les droits en écriture ;
• x les droits en exécution.

Exemple :

chmod a+rx .
chmod ug+w
chmod go-wx

chown proprietaire fichiers


 
change le propriétaire du fichier. Le nouveau propriétaire doit être connu du système.

chgrp groupe fichiers

change le groupe du fichier. Le nouveau groupe doit être connu du système.

Divers
Se connecter sur un autre compte

su [-] utilisateur

change l'utilisateur courant . Vous devez saisir le mot de passe du nouvel utilisateur (sauf si le compte
d'origine est le root).
Si vous indiquez - alors les fichiers de login (.cshrc ou autre suivant le shell) sont executés et vous
vous retrouvez dans le home directory du nouveau compte.

Se connecter sur une autre station

rlogin station

vous êtes connecte sue une autre station mais avec le meme login . Vous devez saisir le mot de passe
sur la nouvelle station(sauf si vous positionner le fichier .rhosts). Si vous ne saisissez pas le mot de
passe, vous pouvez alors changer de compte.

Surveiller les programmes en cours d'execution

ps

affiche la liste des processus actifs. Attention les options de cette commande change suivant le
système que vous avez, (verifiez les par le man)

Tuer un processus

kill num_process

supprime le processus specifié (vous recuperez le numéro du processus par un ps). Si malgré la
commande, le processus n'est pas détruit, essayez kill -9 num_process

10 
 

Vous aimerez peut-être aussi