workshop_shell
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
workshop_shell [2023/11/04 13:17] – bigMax | workshop_shell [2024/03/20 12:56] (Version actuelle) – bigMax | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
< | < | ||
- | # Workshop Shell Unix (Interpréteur de commandes) | + | # Workshop Shell Unix compatible |
## Guidelines pour l' | ## Guidelines pour l' | ||
Ligne 33: | Ligne 33: | ||
## Navigation dans un FS (système de fichiers) : pwd ; cd ; ls | ## Navigation dans un FS (système de fichiers) : pwd ; cd ; ls | ||
*Présentation avec GUI ouvert.* | *Présentation avec GUI ouvert.* | ||
+ | - pwd: print working directory | ||
+ | - cd: change directory | ||
+ | - ls: list | ||
+ | |||
``` bash | ``` bash | ||
pwd | pwd | ||
Ligne 50: | Ligne 54: | ||
## Manipulation des fichiers : touch ; cp ; mv ; rm ; mkdir | ## Manipulation des fichiers : touch ; cp ; mv ; rm ; mkdir | ||
*Présentation avec GUI ouvert.* | *Présentation avec GUI ouvert.* | ||
+ | - touch: touche un fichier (le créé si il n' | ||
+ | - cp: copy files | ||
+ | - mv: move files | ||
+ | - rm: remove files | ||
+ | - mkdir: make directory | ||
+ | |||
``` bash | ``` bash | ||
touch foo | touch foo | ||
Ligne 61: | Ligne 71: | ||
## Permissions des fichiers : ls -l ; chmod ; chown | ## Permissions des fichiers : ls -l ; chmod ; chown | ||
+ | - chmod: change file mode | ||
+ | - chown: change file owner | ||
``` bash | ``` bash | ||
ls -l foo | ls -l foo | ||
Ligne 67: | Ligne 79: | ||
sudo chown root:root foo | sudo chown root:root foo | ||
ls -l | ls -l | ||
- | ``` | ||
- | |||
- | ## Historique des commandes | ||
- | ``` bash | ||
- | history | ||
- | ``` | ||
- | On peut utiliser les fleches haut et bas du clavier pour parcourir l' | ||
- | |||
- | **Avec la combinaison de touch [CTRL]-[R] on peut rechercher dans l' | ||
- | |||
- | Avec la variable d' | ||
- | ``` bash | ||
- | echo " | ||
- | HISTCONTROL=ignoreboth | ||
- | echo " | ||
- | echo " | ||
- | echo " | ||
- | history 10 | ||
- | ``` | ||
- | |||
- | Généralement la commande history à des options pour allez supprimer des entrées dans l' | ||
- | ``` bash | ||
- | help history | ||
- | echo "mon secret" | ||
- | history 5 | ||
- | history -d -3 | ||
- | history 5 | ||
``` | ``` | ||
Ligne 111: | Ligne 96: | ||
## Administration : ps ; top ; du ; df ; free ; mount | ## Administration : ps ; top ; du ; df ; free ; mount | ||
+ | - id: display user id | ||
+ | - last: display last logged in users | ||
+ | - ps: list process | ||
+ | - top: display top process | ||
+ | - du: disk usage | ||
+ | - df: disk free | ||
+ | - free: display RAM infos | ||
+ | - mount: display mounted file systems | ||
``` bash | ``` bash | ||
id | id | ||
Ligne 122: | Ligne 115: | ||
free -h | free -h | ||
mount | mount | ||
+ | ``` | ||
+ | |||
+ | ## Quelques autres commandes basiques | ||
+ | - echo: imprime les arguments sur la sortie standard (l' | ||
+ | - cat: concatene des fichiers et les imprime sur la sortie standard (l' | ||
+ | - read: lit l' | ||
+ | - which: localise le chemin absolu d'une commande | ||
+ | - grep: imprime les lignes d'un fichier qui match un pattern | ||
+ | - cut: extrait des colonnes d'un fichier | ||
+ | - paste: fusionne des lignes d'un ichier | ||
+ | |||
+ | ## Historique des commandes | ||
+ | ``` bash | ||
+ | history | ||
+ | ``` | ||
+ | On peut utiliser les fleches haut et bas du clavier pour parcourir l' | ||
+ | |||
+ | **Avec la combinaison de touch [CTRL]-[R] on peut rechercher dans l' | ||
+ | |||
+ | Avec la variable d' | ||
+ | ``` bash | ||
+ | echo " | ||
+ | HISTCONTROL=ignoreboth | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | history 10 | ||
+ | ``` | ||
+ | |||
+ | Généralement la commande history à des options pour allez supprimer des entrées dans l' | ||
+ | ``` bash | ||
+ | help history | ||
+ | echo "mon secret" | ||
+ | history 5 | ||
+ | history -d -3 | ||
+ | history 5 | ||
``` | ``` | ||
Ligne 138: | Ligne 167: | ||
## IO (Entrées Sorties) (redirection / pipelines) : 2> > >> | ## IO (Entrées Sorties) (redirection / pipelines) : 2> > >> | ||
- | **TODO**: Utiliser des schéma | + | |
### Configuration par défaut de STDIN STDOUT et STDERR | ### Configuration par défaut de STDIN STDOUT et STDERR | ||
Tous les programmes : | Tous les programmes : | ||
Ligne 148: | Ligne 177: | ||
- STDIN est relié au " | - STDIN est relié au " | ||
- STDOUT et STDERR sont reliés à " | - STDOUT et STDERR sont reliés à " | ||
+ | |||
+ | </ | ||
+ | {{ :: | ||
+ | < | ||
### Suppression des erreurs : 2> /dev/null | ### Suppression des erreurs : 2> /dev/null | ||
Ligne 204: | Ligne 237: | ||
### Pipeline (chaîner des programmes) : | | ### Pipeline (chaîner des programmes) : | | ||
+ | " | ||
+ | |||
``` bash | ``` bash | ||
cat bar | grep " | cat bar | grep " | ||
``` | ``` | ||
+ | |||
+ | </ | ||
+ | {{ :: | ||
+ | < | ||
## Logique : ; && || ! | ## Logique : ; && || ! | ||
Ligne 240: | Ligne 279: | ||
``` | ``` | ||
Il existe une priorité entre simple et double quotte. Une variable ne sera jamais interprété entre simple quottes sauf si englobé entre double quottes. | Il existe une priorité entre simple et double quotte. Une variable ne sera jamais interprété entre simple quottes sauf si englobé entre double quottes. | ||
+ | |||
+ | ## Bloc de commandes : { cmd1 ; cmd2 ; ... ; cmdN ; } ( cmd1 ; cmd2 ; ... ; cmdN ) | ||
+ | - Le bloc () est exécuté dans un sous processus. | ||
+ | - Le bloc {} doit se terminer par un ; | ||
+ | ``` bash | ||
+ | false || ( echo foo ; echo bar ; var=baz ) ; echo $var | ||
+ | false || { echo foo ; echo bar ; var=baz ; } ; echo $var | ||
+ | ``` | ||
## Un peu de recul : execution des commandes | ## Un peu de recul : execution des commandes | ||
Ligne 279: | Ligne 326: | ||
- conditions | - conditions | ||
- boucles | - boucles | ||
+ | |||
+ | Pour installer les packages nécéssaires sur debian/ | ||
+ | ``` bash | ||
+ | sudo apt install imagemagick exiftool | ||
+ | ``` | ||
### Initialisation du script : shebang usage() | ### Initialisation du script : shebang usage() | ||
Ligne 377: | Ligne 429: | ||
done | done | ||
``` | ``` | ||
+ | |||
+ | ## Retours | ||
+ | - Si focus sur les scripts, ne pas présenter les trucs non nécéssaires pour les scripts | ||
+ | - permissions ? | ||
+ | - admin ? | ||
+ | - files ? | ||
+ | |||
+ | - tldr comme manuel express ? | ||
</ | </ |
workshop_shell.1699103826.txt.gz · Dernière modification : 2023/11/04 13:17 de bigMax