Language shell

Les commandes de base
commandestructureoptionsexplication
historyaffiche l'historique de l'utilisateur
manman [commande]affiche l'aide d'une commande en particulier
ls -a #ignore si le fichier est caché
-l #liste sur une ligne
lister les entrée d'un dossier
cdpas d'option pour se déplacer (change directory)
par défault se place dans le home ~
mkdir-p #force la création de l'arborescence création d'un dossier
rmdir -r #mode récursif
-f #forçage
supprime un dossier
cp [OPTION]... [-T] SOURCE DEST -i #invite avant écraser
-d #preserve le liens
-p #ne suit pas le liens symbolique jusqu'a la source
-r #récursivement
copier un fichier
mv [OPTION]... [-T] SOURCE DEST -udéplacer un fichier
déplace uniquement si la source est plus récente
rm [OPTION]... [FILE]...-r #recursive
-f #forçage
supression
cat [OPTION]... [FILE]... -n #numérote les lignes afficher le contenue d'un fichier sur la sortie standart
touch création de fichier
touch -m -t 0001010000 fichier.txt Modifiez les dates d'accès et de modification du fichier au 1er Janvier 2000 à 0h00
ln [nom du fichier] [nom du nouveau fichier]-scrée un lien symbolique
Commandes approfondies
commandestructureoptionsexplication
chmod[OPTION]... MODE[,MODE]... FILE...-R #récursivité
ugoa #user, group, other or all
+-= #ajout retrait ou positionnement
rwx... #read write, execute
...st #set-uid, set-gid or sticky
...ugo #recopie les droits user, group, all
file
change les permission d'un fichier, d'un dossier
chown[OPTION]... MODE[,MODE]... FILE...-R #récursivité
ugoa #user, group, other or all
+-= #ajout retrait ou positionnement
rwx... #read write, execute
...st #set-uid, set-gid or sticky
...ugo #recopie les droits user, group, all
file
change le propriétaire, le groupe d'un fichier, d'un dossier
diff [OPTION]... [FILE]... compare le contenue de deux fichiers lignes par lignes
more [OPTION]... [FILE]... affiche page à page
less [option] [fichier] parcourt interactif
df [OPTION]... [FILE]... -h #rend lisible l'affichage affiche l'utilisation de l'espace disque du système de fichier
du[OPTION]... [FILE]...-h #rend lisible l'affichage
-s #ne pas inclure les sous dossier
taille disque d'une entrée logique
basenameOPTION... CHEMIN/NAME... reference [suffixe] nettoyage des branches du sgf pour récupérer le nom du fichier
dirnameOPTION... CHEMIN/NAME.. reference [suffixe] nettoyage de la branche pour récupérer le chemin de fichie
date[OPTION]... [+FORMAT]date +%Y-%m-%d donne la date
echo[SHORT-OPTION]... [STRING]... envoie sur la sortie standard le flux d'entré
read [arg1,arg2] lecture de l'entrée standart et référencement par arguement
expr [arg1,arg2] evalue une expression arithmétique
seq[OPTION]... LAST génère des séquences
head[OPTION]... [FILE]...-n #le nombre de lignes renvoie n ligne depuis la tête
tail[OPTION]... [FILE]...-n #le nombre de lignes renvoie n ligne depuis la queue
wc[OPTION]... [FILE]... renvoie le nbr de ligne nbr caractère etc…
cut[OPTION]... [FILE]... [c/d] x-x
cut -d; -f2
coupe
tr[OPTION]... SET1 [SET2] trie
sort [OPTION]... [FILE]... trie alpha numérique
uniq[OPTION]... [INPUT [OUTPUT]] nettoyage des données dupliquées consécutives
tee[OPTION]... [FILE]...-i #ignore l'interruption idem à cat mais crée plusieurs sortie
read lecture d une ligne de l entree standart
findfind / -name "test" #recherche test depuis la racine
find . | sed 's/[^/]*\//| /g;s/| *\([^| ]\)/+--- \1/' #crée une arborescence
recherche une occurence dans une arborescence
les "build in command"
expr
OpérateursSignification
$nb1 + $nb2Addition
$nb1 - $nb2Soustraction
$nb1 \* $nb2Multiplication
$nb1 / $nb2Division
$nb1 % $nb2Modulo
Opérateurs de comparaison
$nb1 \> $nb2VRAI si $nb1 est strictement supérieur à $nb2
$nb1 \>= $nb2VRAI si $nb1 est supérieur ou égal à $nb2
$nb1 \< $nb2VRAI si $nb1 est strictement inférieur à $nb2
$nb1 \<= $nb2VRAI si $nb1 est inférieur ou égal à $nb2
$nb1 = $nb2VRAI si $nb1 est égal à $nb2
$nb1 != $nb2VRAI si $nb1 est diférent de $nb2
Opérateurs logiques
$chaine1 \& $chaine2VRAI si les 2 chaines sont vraies
$chaine1 \| $chaine2VRAI si l'une des 2 chaines est vraie
Opérateurs divers
-$nb1Opposé de $nb1
\( expression \)Regroupement
$chaine : expression_reguliereCompare la chaine avec l'expression régulière
les commande de systeme
commandeoptionsexplication
topaffiche l'etat des processus en cour dynamiquement
ps-u #utilisateur
-faux
affiche un instantané des processus actuels
kill PIDtuer un processus par son numéro de processus
killall/pkill NomProcesstuer un processus par son nom
strace -p #PID du processussuivre les appel systeme d'un processus
bgpasse une commande en arrière plan
fgpasse une commande au premier plan
Commande réseau
commandeoptionsexplication
ifconfigpermet de configurer et d'afficher les informations des interfaces réseau IP
ping-cpermet de tester l'accessibilité d'une autre machine à travers un réseau IP. La commande mesure également le temps mis pour recevoir une réponse, appelé round-trip time (temps aller-retour).
digeffectue une recherche DNS en interrogeant des serveurs de noms
netstat--inet -n -p -aAffiche les connexions réseau, les tables de routage, les statistiques des inter‐ faces, les connexions masquées, les messages netlink, et les membres multicast.
telnet(terminal network ou telecommunication network, ou encore teletype network) est un protocole utilisé sur tout réseau TCP/IP, permettant de communiquer avec un serveur distant en échangeant des lignes de texte et en recevant des réponses également sous forme de texte.
routeaffiche les routes connue du systeme
lspciafiche des informations très détaillées sur les périphériques du bus PCI d'un ordinateur
nmtuiutilitaire de neetwork manager en interface semi-graphique
nmap -sL -sV 192.168.1.0/24scan reeau





chattr (Change Attribute) est un utilitaire Linux en ligne de commande utilisé pour définir/désactiver certains attributs d'un fichier dans le système Linux afin de sécuriser la suppression ou la modification accidentelle de fichiers et dossiers importants, même si vous êtes connecté en tant qu'utilisateur root.
ASi un fichier est accédé avec l'attribut 'A' défini, son enregistrement atime n'est pas mis à jour.chattr +A <file>
SSi un fichier est modifié avec l'attribut 'S' défini, les modifications sont mises à jour de manière synchrone sur le disque.chattr +S <file>
aUn fichier est défini avec l'attribut 'a', ne peut être ouvert qu'en mode ajout pour l'écriture.chattr +a <file>
iUn fichier est défini avec l'attribut 'i', ne peut pas être modifié (immuable). Signifie pas de renommage, pas de création de lien symbolique, pas d'exécution, pas d'écriture, seul le superutilisateur peut supprimer l'attribut.chattr +i <file>
jUn fichier avec l'attribut 'j' est défini, toutes ses informations mises à jour dans le journal ext3 avant d'être mises à jour dans le fichier lui-même.chattr +j <file>
tUn fichier est défini avec l'attribut 't', pas de fusion de queue.chattr +t <file>
dUn fichier avec l'attribut 'd' ne sera plus candidat à la sauvegarde lorsque le processus de vidage est exécuté.chattr +d <file>
uLorsqu'un fichier avec l'attribut 'u' est supprimé, ses données sont enregistrées. Cela permet à l'utilisateur de demander sa restauration. chattr +u <file>





Les caractères spéciaux
?un caractère quelqu'onque
[ ]enssemble
*n'importe lequel
\le caractère qui le suit ne seras pas substitué
[a-c]de a à c
ls a*ctout fichier qui se commence par a et se fini par c
> redirige le flux de sortie vers un fichier
>> redirige le flux de sortie vers un fichier et le met à la fin
2< redirige le flux d'erreur vers un fichier
2>&1 redirige le flux de sortie et d'erreur dans le même flux
< envoie le contenu d'un fichier à une commande
<< passe la console en mode saisie au clavier, ligne par ligne. Toutes ces lignes seront envoyées à la commande lorsque le mot-clé de fin aura été écrit.





Les niveau d'interprétation d'écriture et de lecture
'[expression]' Les simples quotes délimitent une chaîne de caractères. Même si cette chaîne contient des commandes ou des variables shell, celles-ci ne seront pas interprétées. Par exemple : $ variable="secret"
$ echo 'Mon mot de passe est $variable.'
Mon mot de passe est $variable.
"[expression] " Les doubles quotes délimitent une chaîne de caractères, mais les noms de variable sont interprétés par le shell. Par exemple : $ variable="secret"
$ echo "Mon mot de passe est $variable."
Mon mot de passe est secret.
` [expression] ` Bash considère que les Back-quotes (ouvre un nouveau shell et considère le résultat comme une commande) délimitent une commande à exécuter. Les noms de variable et les commandes sont donc interprétés. Par exemple :$ echo `variable="connu";
echo "Mon mot de passe est $variable."`
Mon mot de passe est connu.
(()) similaire à la commande let, la construction ((...)) permet une évaluation arithmétique
permet aussi la manipulation de variables à la manière du C dans Bash, par exemple (( var++ )).
(( t = a<45?7:11 )) # opérateur à trois opérandes, style C.
"echo "If a < 45, then t = 7, else t = 11.
echo "t = $t"





Variables
variable affectation referencement affichage
ma_var ma_var="helloworld" $ma_var echo $ma_var





les expression régulières
grep[OPTIONS] PATTERN [FILE...]-E
-v
Interprette les pattern comme une expression régulière
inverse
recherche des pattern sur l'entrée standart
sed[OPTION]... {script-only-if-no-other-script} [input-file]...-n
-i
-s
d
mode silencieux (n'affiche que les paterne demandé)
applique directement les modification
substitution
supprimer
s/pattern/pattern/ =>(substitute)
"/pattern/pattern/p" => (print)
"/pattern/pattern/g" =>(générale) ne s'arrete pas à la première occurence





commandes et les expression régulières
Pattern d'expressionexplication exempleresultat
. caractere quelqu onque grep -E "^....$" monfichier.txt afficher toutes les lignes comportant 4 caractere
^ debut de ligne grep "^c" monfichier.txt affiche toutes les lignes commençant par le caractère "c"
$ fin de ligne grep "e$" nouveau1 affiche toutes les lignes se terminant par le caractère "e"
. caractere grep "^c.*!" monfichier afficher toutes les lignes commençant par c
et ayant un nbr de caractère après lesquels on à le "!"
* replicateur (Ofois ou nfois) sed "s/(.*)/bonjour/" monfichier
sed "s/^e.*,/bonjour/" monfichier | cat
remplace les (nnnnnn) par bonjour
remplace "en raisonner, n'ayant pas un sol, j'écris sur la valeur de l'argent"
par "bonjour j'écris sur la valeur de l'argent"
+ replicateur non null au moins 1 fois "^e[a-z ?'-]+\." monfichiertexte patterne commençant par e, suivi de caractère [a-z] d'espace de point d'interrogation d'apostrophe de - et d'un point
? replicateur d option au plus 1 fois "^et .?.?" et ri | et me | et pa
\{n\}
{n} exactement n fois
{n,m} entre n et m fois
{n,} au minimum n fois
replicateur n fois -E "a{2,3}"
"a\{2,3\}"
reconnaît aa ou aaa.
[] enssemble de caractère "^[A-Z].*\." monfichier tout ce qui commençant par une majuscule jusqu'au point
[^xyz] en debut d enssemble tout sauf sed "s/^[^0-9]/Majusculeeletenculent/" monfichierremplace toutes les lettre qui ne sont pas des numéro par Majuscu[...]t





script-shell les conditions
commandeexplicationsexemples
-zvérifie si la chaine est vide-z $chaine1
-nvérifie si la chaine est non vide-n $chaine1
!= vérifie si deux chaines sont différentes$chaine1 != $chaine2
=
==
vérifie si les chaines sont identiques$chaine1 = $chaine2
$chaine1 == $chaine2
-eq Vérifie si les nombres sont égaux (equal). À ne pas confondre avec le « = » qui, lui, compare deux chaînes de caractères.$num1 -eq $num2
-ne Vérifie si les nombres sont différents (nonequal).
Encore une fois, ne confondez pas avec « != » qui est censé être utilisé sur des chaînes de caractères.
$num1 -ne $num2
-lt Vérifie sinum1est inférieur ( < ) ànum2(lowerthan).$num1 -lt $num2
-le Vérifie sinum1est inférieur ou égal ( < = ) ànum2(lowerorequal).$num1 -le $num2
-gt Vérifie sinum1est supérieur ( > ) ànum2(greaterthan).$num1 -gt $num2
-geVérifie sinum1est supérieur ou égal ( >= ) ànum2(greaterorequal).$num1 -ge $num2





Condition/vérification du système de fichier
-eVérifie si le fichier existe.-e $nomfichier
-dVérifie si le fichier est un répertoire. N'oubliez pas que sous Linux, tout est considéré comme un fichier, même un répertoire !-d $nomfichier
-fVérifie si le fichier est un… fichier. Un vrai fichier cette fois, pas un dossier.-f $nomfichier
-LVérifie si le fichier est un lien symbolique (raccourci).-L $nomfichier
-rVérifie si le fichier est lisible (r).-r $nomfichier
-w Vérifie si le fichier est modifiable (w).-w $nomfichier
-x Vérifie si le fichier est exécutable (x).-x $nomfichier
-ntVérifie sifichier1est plus récent quefichier2(newerthan).$fichier1 -nt $fichier2
-otVérifie sifichier1est plus vieux quefichier2(olderthan).$fichier1 -ot $fichier2





script-shell les arguements $
$0 nom du script. Plus précisément, il s agit du paramètre 0 de la ligne de commande, équivalent de argv[0]
$0, $1 ... $9... ${10}, ${11} espectivement premier, deuxième, ..., neuvième paramètre de la ligne de commande
$* tous les paramètres vus comme un seul mot
$@ tous les paramètres vus comme des mots séparés : "$@" équivaut à "$1" "$2" ...
$# nombre de paramètres sur la ligne de commande
$- options du shell
$? code de retour de la dernière commande
exit $1; fixe le $? à 1
convention : $?=0 succès, $?!=O code d'erreur
$$ PID du shell
echo $$ affiche le nbr de processus en cours
$! PID du dernier processus lancé en arrière plan
$_ dernier arguement de la commande précédente
$IFS contient la liste de tout les séparateur
par défault : IFS=$' \t\n'
exemple pour lire un fichier csv:
while IFS=";" read -r nom ip
do
echo "$nom;$duplex"
done < <(tail -n +2 file.csv)
${arr[*]}tout les items du tableau
${!arr[*]} tout les indexes du tableau
${#arr[*]} nombres d'items dans la case du tableau
${#arr[0]} nombres d'items dans la case du tableau 0





les boucles
si if [ test ]
then
commandes
else
commandes
fi
si if [ test ]
then
commandes
elif
commande
else
commandes
fi
tanque while [ expr]
do
commandes
done
tanque until[ expr ]
do
commandes
done
pour for ID in list
do
commandes
done
pour for ID
do
commandes
done
shiftdécalle les paramètre d'un vers la gauche (un parametre disparait)
rupture de flow
break [n] n : permet de préciser le niveau de rupture (sortir d'une 2, ou trois boucle etc...
continue [n] n : permet de préciser le niveau de rupture (sortir d'une 2, ou trois boucle etc...





les séquences conditionelles et syntaxes
; evalue de gauche à droite
| permet de rediriger le flux de sortie
() concatène le flux de sortie
concatene une commande vers un flux
&& (sequence si vrai) evalue la commande de droite si retour de gauche faux
arrete la sequence si echec de la commande de gauche
|| (sequence si faux) evalue la commande de droite si retour de gauche faux
arrete la sequence des qu une commande se deroule avec succes
#!/bin/sh [options] le shebang
[$# lt 1]&& exit 1 vérifie si un des deux parametre est vrai
[$# -ne 0]|| exit 1 vérifie si un des deux parametre est vrai





Variables d'environnement
printenvpermet d'afficher toutes les variables d'environnement
$SHELLshell en cour d'exécution de l'utilsiateur
$PPID affiche le pid du processus père du processus actuel
$PWDchemin courant
$RANDOM (génere des variables aléaoire )
$HOSTNAMEle nom du systeme hote
$PATHenssemble des chemins dans lequel le shell va chercher les commandes qu'on lui donne
$HOMEchemin du repertoire home de l'utilisateur
$PS1variable d'environnement du shell utilisateur
PROMPT_COMMANDLa variable PROMPT_COMMAND est exécuté à chaque fois que l'utilisateur exécute une commande, de cette manière il est possible d executer un script en fonction du repertoire dans lequel se trouve l utilisateurexport PROMPT_COMMAND='test -x ./.prompt_command && ./.prompt_command'





Signaux de retour d'un processus
Numéro (dépend de l'implémentation ou du processeur)NomSignification
1SIGHUPDéconnexion du terminal ou mort du processus de contrôle
2SIGINTInterruption depuis le clavier
3SIGQUITQuitter (depuis le clavier)
4SIGILLInstruction illégale
5SIGTRAPUn point d'arrêt a été trouvé
6SIGABRTSignal d'arrêt depuis la fonction abort() du langage C
6SIGIOTSynonyme de SIGABRT
7SIGEMTTerminaison
8SIGFPEErreur mathématique en virgule flottante
9SIGKILLSignal KILL. Permet de terminer un processus en urgence
10SIGBUSErreur de bus
11SIGSEGVRéférence mémoire invalide
11SIGSEGVRéférence mémoire invalide
12SIGSYSMauvais argument de routine
13SIGPIPETentative d'écriture dans un tube sans lecteur à l'autre bout
14SIGALARMEnvoyé quand un timer atteint la durée décomptée
15SIGTERMTerminaison normale de processus
16, 10, 30SIGUSR1Au choix de l'utilisateur
16SIGSTKFLTErreur de pile sur coprocesseur
16, 23, 21SIGURGUn socket a le flag "urgent d'activé
17, 12, 31SIGUSR2Au choix de l'utilisateur
17, 20, 18SIGCHLDProcessus fils arrêté ou terminé
17, 19, 23SIGSTOPArrêt du processus
18, 20, 24SIGTSTPStop déclenché depuis un terminal
18SIGTSTPIdem SIGCHLD
19, 18, 25SIGCONTContinuer si le processus est arrêté
20, 21, 26SIGTTINLecture depuis un terminal (en arrière-plan)
20, 21, 26SIGTTOUÉcriture depuis un terminal (en arrière-plan)
23, 29, 22SIGIOEntrées-sorties à nouveau possibles
-SIGPOLLIdem SIGIO
24, 24, 30SIGXCPULimite de temps CPU dépassée
25, 31SIGFSZTaille de fichier excessive
26, 28SIGVTALRMAlarme virtuelle
27, 29SIGPROPProfile Alarm Clock
28, 20SIGWINCHFenêtre redimensionnée
29, 30, 19SIGPWRChute d'alimentation
29SIGINFOIdem SIGPWR
-SIGLOSTPerte de verrou de fichier
31SIGUNUSEDSignal inutilisé





les couleurs
les couleurs\033[A;B;Cm
avec A=effet, B=texte, C=fond
printf '\033[A;B;Cm'
annuler\033[0mprintf '\033[0m'
couleurtextefond
noir3040
rouge3141
vert3242
jaune3343
bleue3444
Magenta3545
Cyan3646
Blanc3747
-
effetcode
normal0
gras1
non gras21
souligné4
non souligné24
clignotant5
non clignotant25
inversé7
non inversé27





commande avancées
La commande cat
Affichez le contenu d'un fichier texte grâce à la commande catcat fichier.txt
Affichez le contenu de 3 fichiers textes 'fichier_1.txt', 'fichier_2.txt' et 'fichier_3.txt' dans l'ordre fichier_2.txt, fichier_1.txt puis fichier_3.txt avec une seule commande cat.cat fichier2.txt fichier1.txt fichier3.txt
La commande more/less
Affichez le contenu d'un fichier texte de grande taille page par page grace à la commande more (ou less) page par page more/less fichier.txt
Affichez le contenu d'un fichier texte de grande taille page par page en commençant à la ligne 100 more/less +100 fichier.txt
Cherchez une chaîne de caractères dans un fichier de grande taille en utilisant les fonctionnalités de la commande 'more' (ou less)more/less +/string fichier.txt
La commande head
Affichez les 50 premières lignes d'un fichier textehead -n 10 fichier.txt
Affichez les 5 premières lignes de 5 fichiers texte à l'aide d'une seule commande headhead -n 10 fichier.txt fichier1.txt …
Affichez les 200 premiers caractères d'un fichier texte head -c200 fichier.txt
La commande tail
Affichez les 10 dernières lignes d'un fichier textesame que head
Affichez les 5 dernières lignes de 5 fichiers textesame que head
Affichez les dernières lignes d'un fichier texte au fur et à mesure de leur ajouttail fichier.txt -f
La commande cut
Affichez la 3ième colonne d'un fichier dont les colonnes sont séparées par une tabulationcut -d';' -f2
Affichez la 1ère colonne et les colonnes 5 à 8 d'un fichier dont les colonnes sont séparées par une virgulecat fichier1.txt |cut -d',' -f1,5-8
Affichez les 10 premiers caractères de toutes les lignes d'un fichier textecat fichier1.txt |cut -c 1-200
La commande sort
Triez les lignes d'un fichier suivant l'ordre alphanumériquesort fichier
Triez les lignes d'un fichier suivant l'ordre alphanumérique de la 3ième colonne (séparées par une tabulation)sort -t',' -k2 fichier1.txt
Triez les lignes d'un fichier suivant l'ordre numérique de la 2ième colonne (séparées par un caractère ':')
Triez les lignes d'un fichier suivant l'ordre numérique inversé de la 2ème colonne (séparées par un caractère ':')sort -t',' -k2 -r fichier1.txt
Triez les lignes d'un fichier suivant l'ordre alphanumérique en n'affichant qu'une seule fois les lignes identiquessort -t',' -k2 -r -u fichier1.txt
La commande paste
Affichez le contenu de 2 fichiers "collés" ligne par lignepaste fichier1 fichier2
Affichez le contenu de 3 fichiers "collés" ligne parligne en utilisant le caractères '+' aux "jonctions" des fichiers paste -d + fichier1 fichier2 fichier3
La commande uniq
Affichez le contenu d'un fichier en n'affichant qu'une seule fois les lignes identiques qui se suiventuniq file.txt
Affichez le contenu d'un fichier en n'affichant qu'une seule fois les lignes identiques qui se suivent sans tenir compte de la casse pour la comparaisonuniq - fichier.txt
Affichez le contenu d'un fichier en n'affichant qu'une seule fois les lignes identiques sans tenir compte des 5 premiers caractèresuniq -s 5 fichier1.txt -d
Affichez le contenu d'un fichier en n'affichant qu'une seule fois les lignes identiques qui se suivent, chaque ligne étant précédée par le nombre de fois qu'elle est répétée consécutivementuniq -f 1 fichier1.txt
La commande wc
Affichez le nombre de lignes, de mots et de caractères d'un fichierwc fihier.txt
Affichez le nombre de caractères d'un fichierwc -m fihier.txt
Affichez le nombre de lignes d'un fichierwc -l fihier.txt
Affichez le nombre de mots d'un fichierwc -w fihier.txt
La commande tr
Affichez les caractères de l'entrée standard sans le caractère 'a' tr -d 'a' < fichier1.txt
Affichez les caractères de l'entrée standard en remplaçant le caractère 'a' par 'A'tr a A < fichier1.txt
Affichez les caractères de l'entrée standard sans les caractère 'a', 'b' et 'c' en une seule commande trtr -d 'a,b,c' < fichier1.txt
Affichez les caractères de l'entrée standard en ne conservant qu'une seule occurence des caractères 's' ou 't' qui se suivent immédiatementtr [:lower:] [:upper:] < fichier1.txt
La commande diff
Affichez les différences entre deux fichiers texte diff fichier1 fichier2
Affichez les différences entre deux fichiers texte en ne prenant pas en compte la casse diff -i fichier1 fichier2
Affichez les différences entre les fichiers de deux répertoires (et récursivement de leurs sous-répertoires)diff -r fichier1 fichier2





Globbing
Bash procède à l'expansion des noms de fichiers, un processus connu sous le nom de globbing - mais cela n'utilise pas l'ensemble des expression régulières standard. Au lieu de cela, le globbing reconnaît et développe les jokers. Globbing interprète les caractères génériques standard * et ?, les listes de caractères entre crochets et certains autres caractères spéciaux (tels que ^ pour annuler le sens d'une correspondance).
ls -l t?.sh
ls -l [ab]*
ls -l [a-c]*
ls -l [^ab]*
ls -l {b*,c*,*est*}
ls -l * ->(sans valider avec entree) vous appuyez sur ctrl+x puis sur * le resultat de la commande ls s'applique dans la ligne de commande, pratique pour supprimer des nom de fichier intappables





menue cli
i=1 echo "Press [ENTER] when ok" echo -e -n "Menbre Payeur : ${list_menbre_payeur[$i]} \r" while read -rsn1 ui; do case "$ui" in "") break;; #Enter $'\x1b') # quand une touche direction est pressée read -rsn1 -t 0.1 tmp if [[ "$tmp" == "[" ]]; then read -rsn1 -t 0.1 tmp case "$tmp" in "A") i=$(($i+1)); # up ;; "B") i=$(($i-1)); # down ;; esac fi echo -e -n " \r" echo -e -n "Menbre Payeur : ${list_menbre_payeur[$i]} \r" # Flush "stdin" with 0.1 sec timeout. read -rsn5 -t 0.1 ;; q) break;; esac done