Language shell
Les commandes de base | ||||
---|---|---|---|---|
commande | structure | options | explication | |
history | affiche l'historique de l'utilisateur | |||
man | man [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 | ||
cd | pas 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 | -u | dé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] | -s | crée un lien symbolique |
Commandes approfondies | ||||
---|---|---|---|---|
commande | structure | options | explication | |
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 | |
basename | OPTION... CHEMIN/NAME... | reference [suffixe] | nettoyage des branches du sgf pour récupérer le nom du fichier | |
dirname | OPTION... 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 | |||
find | find / -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érateurs | Signification | |||
$nb1 + $nb2 | Addition | |||
$nb1 - $nb2 | Soustraction | |||
$nb1 \* $nb2 | Multiplication | |||
$nb1 / $nb2 | Division | |||
$nb1 % $nb2 | Modulo | |||
Opérateurs de comparaison | ||||
$nb1 \> $nb2 | VRAI si $nb1 est strictement supérieur à $nb2 | |||
$nb1 \>= $nb2 | VRAI si $nb1 est supérieur ou égal à $nb2 | |||
$nb1 \< $nb2 | VRAI si $nb1 est strictement inférieur à $nb2 | |||
$nb1 \<= $nb2 | VRAI si $nb1 est inférieur ou égal à $nb2 | |||
$nb1 = $nb2 | VRAI si $nb1 est égal à $nb2 | |||
$nb1 != $nb2 | VRAI si $nb1 est diférent de $nb2 | |||
Opérateurs logiques | ||||
$chaine1 \& $chaine2 | VRAI si les 2 chaines sont vraies | |||
$chaine1 \| $chaine2 | VRAI si l'une des 2 chaines est vraie | |||
Opérateurs divers | ||||
-$nb1 | Opposé de $nb1 | |||
\( expression \) | Regroupement | |||
$chaine : expression_reguliere | Compare la chaine avec l'expression régulière |
les commande de systeme | ||||
---|---|---|---|---|
commande | options | explication | ||
top | affiche l'etat des processus en cour dynamiquement | |||
ps | -u #utilisateur -faux | affiche un instantané des processus actuels | ||
kill PID | tuer un processus par son numéro de processus | |||
killall/pkill | NomProcess | tuer un processus par son nom | ||
strace | -p #PID du processus | suivre les appel systeme d'un processus | ||
bg | passe une commande en arrière plan | |||
fg | passe une commande au premier plan |
Commande réseau | ||||
---|---|---|---|---|
commande | options | explication | ||
ifconfig | permet de configurer et d'afficher les informations des interfaces réseau IP | |||
ping | -c | permet 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). | ||
dig | effectue une recherche DNS en interrogeant des serveurs de noms | |||
netstat | --inet -n -p -a | Affiche 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. | |||
route | affiche les routes connue du systeme | |||
lspci | afiche des informations très détaillées sur les périphériques du bus PCI d'un ordinateur | |||
nmtui | utilitaire de neetwork manager en interface semi-graphique | |||
nmap | -sL -sV 192.168.1.0/24 | scan 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. | ||||
---|---|---|---|---|
A | Si un fichier est accédé avec l'attribut 'A' défini, son enregistrement atime n'est pas mis à jour. | chattr +A <file> | ||
S | Si 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> | ||
a | Un fichier est défini avec l'attribut 'a', ne peut être ouvert qu'en mode ajout pour l'écriture. | chattr +a <file> | ||
i | Un 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> | ||
j | Un 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> | ||
t | Un fichier est défini avec l'attribut 't', pas de fusion de queue. | chattr +t <file> | ||
d | Un fichier avec l'attribut 'd' ne sera plus candidat à la sauvegarde lorsque le processus de vidage est exécuté. | chattr +d <file> | ||
u | Lorsqu'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*c | tout 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'expression | explication | exemple | resultat |
. | 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/" monfichier | remplace toutes les lettre qui ne sont pas des numéro par Majuscu[...]t |
script-shell les conditions | ||
---|---|---|
commande | explications | exemples |
-z | vérifie si la chaine est vide | -z $chaine1 |
-n | vé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 |
-ge | Vérifie sinum1est supérieur ou égal ( >= ) ànum2(greaterorequal). | $num1 -ge $num2 |
Condition/vérification du système de fichier | ||
---|---|---|
-e | Vérifie si le fichier existe. | -e $nomfichier |
-d | Vé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 |
-f | Vérifie si le fichier est un… fichier. Un vrai fichier cette fois, pas un dossier. | -f $nomfichier |
-L | Vérifie si le fichier est un lien symbolique (raccourci). | -L $nomfichier |
-r | Vé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 |
-nt | Vérifie sifichier1est plus récent quefichier2(newerthan). | $fichier1 -nt $fichier2 |
-ot | Vé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 |
shift | dé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 | |||
---|---|---|---|
printenv | permet d'afficher toutes les variables d'environnement | ||
$SHELL | shell en cour d'exécution de l'utilsiateur | ||
$PPID | affiche le pid du processus père du processus actuel | ||
$PWD | chemin courant | ||
$RANDOM | (génere des variables aléaoire ) | ||
$HOSTNAME | le nom du systeme hote | ||
$PATH | enssemble des chemins dans lequel le shell va chercher les commandes qu'on lui donne | ||
$HOME | chemin du repertoire home de l'utilisateur | ||
$PS1 | variable d'environnement du shell utilisateur | ||
PROMPT_COMMAND | La 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 utilisateur | export 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) | Nom | Signification | |
1 | SIGHUP | Déconnexion du terminal ou mort du processus de contrôle | |
2 | SIGINT | Interruption depuis le clavier | |
3 | SIGQUIT | Quitter (depuis le clavier) | |
4 | SIGILL | Instruction illégale | |
5 | SIGTRAP | Un point d'arrêt a été trouvé | |
6 | SIGABRT | Signal d'arrêt depuis la fonction abort() du langage C | |
6 | SIGIOT | Synonyme de SIGABRT | |
7 | SIGEMT | Terminaison | |
8 | SIGFPE | Erreur mathématique en virgule flottante | |
9 | SIGKILL | Signal KILL. Permet de terminer un processus en urgence | |
10 | SIGBUS | Erreur de bus | |
11 | SIGSEGV | Référence mémoire invalide | |
11 | SIGSEGV | Référence mémoire invalide | |
12 | SIGSYS | Mauvais argument de routine | |
13 | SIGPIPE | Tentative d'écriture dans un tube sans lecteur à l'autre bout | |
14 | SIGALARM | Envoyé quand un timer atteint la durée décomptée | |
15 | SIGTERM | Terminaison normale de processus | |
16, 10, 30 | SIGUSR1 | Au choix de l'utilisateur | |
16 | SIGSTKFLT | Erreur de pile sur coprocesseur | |
16, 23, 21 | SIGURG | Un socket a le flag "urgent d'activé | |
17, 12, 31 | SIGUSR2 | Au choix de l'utilisateur | |
17, 20, 18 | SIGCHLD | Processus fils arrêté ou terminé | |
17, 19, 23 | SIGSTOP | Arrêt du processus | |
18, 20, 24 | SIGTSTP | Stop déclenché depuis un terminal | |
18 | SIGTSTP | Idem SIGCHLD | |
19, 18, 25 | SIGCONT | Continuer si le processus est arrêté | |
20, 21, 26 | SIGTTIN | Lecture depuis un terminal (en arrière-plan) | |
20, 21, 26 | SIGTTOU | Écriture depuis un terminal (en arrière-plan) | |
23, 29, 22 | SIGIO | Entrées-sorties à nouveau possibles | |
- | SIGPOLL | Idem SIGIO | |
24, 24, 30 | SIGXCPU | Limite de temps CPU dépassée | |
25, 31 | SIGFSZ | Taille de fichier excessive | |
26, 28 | SIGVTALRM | Alarme virtuelle | |
27, 29 | SIGPROP | Profile Alarm Clock | |
28, 20 | SIGWINCH | Fenêtre redimensionnée | |
29, 30, 19 | SIGPWR | Chute d'alimentation | |
29 | SIGINFO | Idem SIGPWR | |
- | SIGLOST | Perte de verrou de fichier | |
31 | SIGUNUSED | Signal inutilisé |
les couleurs | |||
---|---|---|---|
les couleurs | \033[A;B;Cm avec A=effet, B=texte, C=fond | printf '\033[A;B;Cm' | |
annuler | \033[0m | printf '\033[0m' | |
couleur | texte | fond | |
noir | 30 | 40 | |
rouge | 31 | 41 | |
vert | 32 | 42 | |
jaune | 33 | 43 | |
bleue | 34 | 44 | |
Magenta | 35 | 45 | |
Cyan | 36 | 46 | |
Blanc | 37 | 47 | |
- | |||
effet | code | ||
normal | 0 | ||
gras | 1 | ||
non gras | 21 | ||
souligné | 4 | ||
non souligné | 24 | ||
clignotant | 5 | ||
non clignotant | 25 | ||
inversé | 7 | ||
non inversé | 27 |
commande avancées | |||
---|---|---|---|
La commande cat | |||
Affichez le contenu d'un fichier texte grâce à la commande cat | cat 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 texte | head -n 10 fichier.txt | ||
Affichez les 5 premières lignes de 5 fichiers texte à l'aide d'une seule commande head | head -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 texte | same que head | ||
Affichez les 5 dernières lignes de 5 fichiers texte | same que head | ||
Affichez les dernières lignes d'un fichier texte au fur et à mesure de leur ajout | tail fichier.txt -f | ||
La commande cut | |||
Affichez la 3ième colonne d'un fichier dont les colonnes sont séparées par une tabulation | cut -d';' -f2 | ||
Affichez la 1ère colonne et les colonnes 5 à 8 d'un fichier dont les colonnes sont séparées par une virgule | cat fichier1.txt |cut -d',' -f1,5-8 | ||
Affichez les 10 premiers caractères de toutes les lignes d'un fichier texte | cat fichier1.txt |cut -c 1-200 | ||
La commande sort | |||
Triez les lignes d'un fichier suivant l'ordre alphanumérique | sort 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 identiques | sort -t',' -k2 -r -u fichier1.txt | ||
La commande paste | |||
Affichez le contenu de 2 fichiers "collés" ligne par ligne | paste 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 suivent | uniq 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 comparaison | uniq - 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ères | uniq -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écutivement | uniq -f 1 fichier1.txt | ||
La commande wc | |||
Affichez le nombre de lignes, de mots et de caractères d'un fichier | wc fihier.txt | ||
Affichez le nombre de caractères d'un fichier | wc -m fihier.txt | ||
Affichez le nombre de lignes d'un fichier | wc -l fihier.txt | ||
Affichez le nombre de mots d'un fichier | wc -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 tr | tr -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édiatement | tr [: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
|