Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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 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
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é :
1
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
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.
2
Ainsi, l'utilisation du caractère «>» permet de rediriger la sortie standard d'une commande située à
gauche vers le fichier situé à droite :
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
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) :
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 :
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
3
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.
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 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).
On peut spécifier la section dans laquelle on veut effectuer la recherche (grace au paramètre
n).
who
fournit de informations sur l'ensemble des utilistaeurs qui sont actuellement connectés sur la station.
who am i
whoami
id
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.
passwd
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
5
Commandes et manipulation des répertoires
ls [-FaRl]
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
Cd
cd -
pwd
mkdir répertoire
rmdir répertoire
supprime un répertoire vide (pour supprimer un répertoire non vide, il faut utiliser la commande rm
6
Commandes et manipulation des fichiers
Visualiser le contenu d'un fichier
concatène horizontalement les fichiers fich1 et fich2 et affiche (sur la sortie standard) le résultat.
more fich
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
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)
sans option : recherche dans les fichiers les lignes contenant l'expression
7
-i : pour ne pas tenir compte des majuscules/minuscules
cp source destination
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.
file fichiers
Determine le type du ou des fichiers specifiés. (Attention, le résultat est parfois erronée)
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
8
rm [-irf] fichiers
efface les fichiers(attention, on ne peut pas récuperer un fichier qui a été effacé)
Rechercher un fichier
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)
Une des formes pour les options de chmod est dest op droit. Les valeurs possibles
de dest sont :
Exemple :
chmod a+rx .
chmod ug+w
chmod go-wx
9
change le propriétaire du fichier. Le nouveau propriétaire 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.
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.
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