Академический Документы
Профессиональный Документы
Культура Документы
1 : Aot 2009
Bourne shell
Korn Shell
Bash (Bourne again shell)
Tcsh (Terminal C shell)
Linterprteur de commande MS-DOS (Sous Windows)
PowerShell (Windows 2008 server)
Rpertoire
courant
root@Nom:/home/karim# |
Nom de la
machine
# : Superutilisateur
$ : Utilisateur normal
3 types diffrents:
Lentre standard dfinie par le symbole stdin et le descripteur 0
Provenant du clavier par dfaut
La sortie standard stdout et le descripteur 1
Dirige vers lcran par dfaut
La sortie derreurs stderr et le descripteur 2
Egalement redirige vers lcran par dfaut
Commande
stdout
stderr
Fichier log
Paramtre 1
obligatoire
Paramtre 2
obligatoire
Exemples :
Listing long avec rpertoires cachs et fichiers plus gros en 1er
ls alS /etc
Syntaxe :
man commande
User Commands
CP(1)
NAME
cp - copy files and directories
SYNOPSIS
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
Mandatory
too
arguments
to
long
Signification
Jeux
Divers
Appels noyau
> listinglisting-etc.txt
ls
listing-etc.txt
< listinglisting-etc.txt
commande1
stdout
stdin
commande2
stdout
| grep mp3
ls -l
rout@fredon:~$ ls
-rw-r--r-- 1 karim
-rw-r--r-- 1 karim
-rw-r--r-- 1 karim
-rw-r--r-- 1 karim
stdout
l /etc
karim
karim
karim
karim
|
0
0
0
0
stdin
grep mp3
grep mp3
2008-08-27
2008-08-27
2008-08-27
2008-08-27
15:16
15:16
15:16
15:16
stdout
morceau1.mp3
morceau2.mp3
morceau3.mp3
morceau4.mp3
Exemple
La variable $? correspond la valeur renvoye par la dernire
commande excute (Donc la commande cd )
# cd toto
Bash : cd toto : Le rpertoire nexiste pas
# echo $?
1
Astrisque ou toile : *
Interprt comme toute suite de caractres alphanumrique
Exemple : Effacer tous les fichiers commenant par rapport
rm rapport*
Point dinterrogation : ?
Interprt comme un seul caractre alphanumrique
Exemple : Effacer certains fichiers commenant par rapport?.doc
rm rapport?.doc
Point virgule : ;
Sparateur de commandes
cp bilan.txt bilan2007.txt ; rm bilan.txt
Les crochets : []
Remplace un caractre choisi parmi ceux numrs entre les
crochets
Exemple : Effacer les fichiers dont la 1re lettre est a ou b et
se terminant par .txt
rm [ab]*.txt
[ab]
Lespace
Utilis comme sparateur de paramtres pour une commande
Exemple : Effacement de 2 fichiers passs en paramtres
rm rapport.doc rapport2008.txt
Lantislash : \
Inhibe le caractre spcial suivant
Exemple : Effacer un fichier contenant le caractre spcial espace
rm rapport\ .txt
Exemples
Rechercher la chane toto dans tous les fichiers du rpertoire
/home/paul
grep toto /home/karim/*
Recherche multicritres
Par la date, la taille, le nom,
Syntaxe :
find [-H] [-L] [-P] [path...] [expression]
-size +10M
+ grand que
-name *.mpeg
Syntaxes :
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
Options intressantes
-r : Permet de recherche dans les sous-rpertoires (Peut-tre long)
-n : Connatre le n de la ligne et donc la position de loccurrence
trouve dans le fichier
-A : Ajouter la sortie les lignes situes aprs la ligne filtre
-B : Ajouter la sortie les lignes situes avant la ligne filtre
Signification
grep
"[Mm]icrosoft"
/etc
grep
"rap200[0-9]"
texte.txt
egrep
"[cC]hat|
|[cC]hien"
ls -l | egrep "mpeg|mpg$"
texte.txt
argument
#! /bin/sh
cp $1 tata.txt
echo $?
Excution
root@karim:~/Documents/cours-shell# ./script.sh file.txt
cp: ne peut valuer `file.txt': Aucun fichier ou dossier de ce type
1
Exemples
# Teste si le paramtre $1 est egal 2
if [ $1 -eq 2 ]
then
# Commande
fi
# Teste si le paramtre $1 est un fichier OU un rpertoire
if [ -d $1 o f $2 ]
then
# Commande
fi
# Teste si le fichier existe
if [ ! f "/etc/toto.conf ]
then
# Commande excute si le fichier nexiste pas
fi