atelier20211120-cli_is_fun-run
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| atelier20211120-cli_is_fun-run [2021/12/06 11:46] – créée wap | atelier20211120-cli_is_fun-run [2021/12/06 11:58] (Version actuelle) – wap | ||
|---|---|---|---|
| Ligne 7: | Ligne 7: | ||
| ===== Préambule ===== | ===== Préambule ===== | ||
| - | La ligne de commande, c'est magique. Il existe des tas de sortilèges. Si vous êtes perdu, vous pouvez toujours demander votre chemin à `man` (le manuel). | + | La ligne de commande, c'est magique. Il existe des tas de sortilèges. Si vous êtes perdu, vous pouvez toujours demander votre chemin à man (le manuel). |
| ===== Exemple 1 ===== | ===== Exemple 1 ===== | ||
| Ligne 15: | Ligne 15: | ||
| Affichage des fichiers triés par extension: | Affichage des fichiers triés par extension: | ||
| - | ---- | + | |
| - | ls -lX | + | |
| - | ---- | + | |
| Beuh, c'est moche ! Installons exa ! | Beuh, c'est moche ! Installons exa ! | ||
| Ligne 23: | Ligne 21: | ||
| La commande devient: | La commande devient: | ||
| - | ---- | + | |
| - | exa -l --icons --sort=extension | + | |
| - | ---- | + | |
| ==== Un petit mot concernant les arguments ==== | ==== Un petit mot concernant les arguments ==== | ||
| - | Lorsqu' | + | Lorsqu' |
| - | [%step] | + | |
| - | * `-h`: c'est une option courte (1 lettre): permet d' | + | * --human-readable: |
| - | * `--human-readable`: c'est une option longue: plus facile à lire / retenir | + | |
| ==== Un petit alias peut-être ? ==== | ==== Un petit alias peut-être ? ==== | ||
| exa c'est bien, mais c'est long à taper: créons un alias. | exa c'est bien, mais c'est long à taper: créons un alias. | ||
| - | Dans votre fichier | + | Dans votre fichier ~/.bashrc ou ~/.zshrc, ajoutez: |
| - | ---- | + | |
| - | alias ll=" | + | |
| - | ---- | + | |
| ==== Quelques trucs de base ==== | ==== Quelques trucs de base ==== | ||
| Ligne 48: | Ligne 41: | ||
| Notations particulières couramment utilisées: | Notations particulières couramment utilisées: | ||
| - | [%step] | + | |
| - | * dossiers | + | * ~ : raccourci pour signifier "mon dossier personnel" |
| - | * `~` : raccourci pour signifier "mon dossier personnel" | + | * / : caractère de séparation de dossiers dans un chemin |
| - | * `/` : caractère de séparation de dossiers dans un chemin | + | * fichiers commençant par . : fichiers cachés |
| - | * fichiers commençant par `.` : fichiers cachés | + | |
| ===== Exemple 2 ===== | ===== Exemple 2 ===== | ||
| Ligne 58: | Ligne 50: | ||
| Détecter un " | Détecter un " | ||
| - | ---- | + | |
| - | ls PW1_{4700..4750}.jpg > /dev/null | + | |
| - | ---- | + | |
| ==== Les redirections ==== | ==== Les redirections ==== | ||
| - | Chaque programme peut rediriger la sortie écran (stdout) vers un fichier via l' | + | Chaque programme peut rediriger la sortie écran (stdout) vers un fichier via l' |
| - | [%step] | + | |
| - | * `/dev/null` : pseudo-fichier qui ignore tout ce qu'on lui envoie | + | * les erreurs restent visibles à l' |
| - | * les erreurs restent visibles à l' | + | |
| ===== Exemple 3 ===== | ===== Exemple 3 ===== | ||
| Ligne 76: | Ligne 65: | ||
| Dans un log de serveur web (nginx), affichage des 100 urls les plus consultées: | Dans un log de serveur web (nginx), affichage des 100 urls les plus consultées: | ||
| - | ---- | + | |
| - | awk ' | + | |
| - | ---- | + | |
| ==== awk ==== | ==== awk ==== | ||
| Ligne 85: | Ligne 72: | ||
| Outil de traitement et d' | Outil de traitement et d' | ||
| - | https:// | + | [[https:// |
| - | En gros, les mots sont séparés par un caractère blanc et sont numérotés de `$1` à `$x`. | + | En gros, les mots sont séparés par un caractère blanc et sont numérotés de $1 à $x. |
| - | La ligne `{print $7}` signifie: | + | La ligne {print $7} signifie: |
| affiche le septième champ (l' | affiche le septième champ (l' | ||
| Ligne 97: | Ligne 84: | ||
| Concept clé du shell UNIX, le pipe permet de rediriger la sortie d'un programme vers l' | Concept clé du shell UNIX, le pipe permet de rediriger la sortie d'un programme vers l' | ||
| - | Il est représenté par le caractère | + | Il est représenté par le caractère | |
| ===== Exemple 4: encore awk ===== | ===== Exemple 4: encore awk ===== | ||
| Ligne 103: | Ligne 90: | ||
| Dans un log de serveur web (nginx), affichage des 30 urls générant le plus de code http 404: | Dans un log de serveur web (nginx), affichage des 30 urls générant le plus de code http 404: | ||
| - | ---- | + | |
| - | awk '$9 == " | + | |
| - | | sort -rn | head -n 30 | + | |
| - | ---- | + | |
| - | La ligne `$9 == " | + | La ligne $9 == " |
| - | Si le neuvième champ de chaque ligne est `404`, alors affiche le septième champ. | + | Si le neuvième champ de chaque ligne est 404, alors affiche le septième champ. |
| ===== Exemple 5 ===== | ===== Exemple 5 ===== | ||
| Ligne 116: | Ligne 100: | ||
| Générateur de phrase de passe composées de 2 mots: | Générateur de phrase de passe composées de 2 mots: | ||
| - | ---- | + | |
| - | look . | grep -E " | + | |
| - | ---- | + | |
| ==== look ==== | ==== look ==== | ||
| Ligne 126: | Ligne 108: | ||
| Si aucun fichier n'est spécifié, recherche dans un dictionnaire. | Si aucun fichier n'est spécifié, recherche dans un dictionnaire. | ||
| - | `.` signifie " | + | . signifie " |
| ==== grep ==== | ==== grep ==== | ||
| Ligne 137: | Ligne 119: | ||
| ==== N' | ==== N' | ||
| - | [%step] | + | |
| - | * `^` : rien avant | + | * [a-z] : n' |
| - | * `[a-z]` : n' | + | * {4,8} : répétée de 4 à 8 fois |
| - | * `{4,8}` : répétée de 4 à 8 fois | + | * $ : rien après |
| - | * `$` : rien après | + | |
| ==== xargs ==== | ==== xargs ==== | ||
| Parfois, il n'est pas possible que la sortie d'une commande corresponde à l' | Parfois, il n'est pas possible que la sortie d'une commande corresponde à l' | ||
| - | xargs permet de se sortir de situations parfois difficiles où il n'est pas possible d' | + | xargs permet de se sortir de situations parfois difficiles où il n'est pas possible d' |
| Par défaut, xargs affiche ce qu'il reçoit sur 1 ligne. L' | Par défaut, xargs affiche ce qu'il reçoit sur 1 ligne. L' | ||
| - | ---- | + | |
| - | cd /usr/bin ; ls -1 | shuf | xargs man | + | |
| - | ---- | + | |
| ==== Autre exemple d' | ==== Autre exemple d' | ||
| Ligne 158: | Ligne 137: | ||
| Afficher toutes les lignes qui ne sont pas des commentaires dans un fichier de configuration: | Afficher toutes les lignes qui ne sont pas des commentaires dans un fichier de configuration: | ||
| - | ---- | + | |
| - | grep ' | + | |
| - | ---- | + | |
| - | [%step] | + | |
| - | * `^` : rien avant | + | * [^x] : qui n'est pas le caractère x. |
| - | * `[^x]` : qui n'est pas le caractère | + | |
| ===== Du fun, du fun, du fun ===== | ===== Du fun, du fun, du fun ===== | ||
| Ligne 172: | Ligne 148: | ||
| Les outils indispensables: | Les outils indispensables: | ||
| - | [%step] | + | |
| - | * Mettez de la couleur dans vos terminaux: | + | * Inspectez votre machine: neofetch |
| - | * Inspectez votre machine: | + | * Réalisez des bannières avec style: figlet |
| - | * Réalisez des bannières avec style: | + | * Invitez une vache dans le terminal: cowsay |
| - | * Invitez une vache dans le terminal: | + | * Faites parler chuck norris: fortune-mod-chucknorris |
| - | * Faites parler chuck norris: | + | |
| ==== La météo ==== | ==== La météo ==== | ||
| Ligne 183: | Ligne 158: | ||
| Rapide, facile et sans pub: | Rapide, facile et sans pub: | ||
| - | ---- | + | |
| - | curl fr.wttr.in/ | + | |
| - | ---- | + | |
| curl: outil d' | curl: outil d' | ||
| Ligne 191: | Ligne 164: | ||
| ==== Base combo ==== | ==== Base combo ==== | ||
| - | ---- | + | |
| - | neofetch | + | catimg loligrub-asbl.png |
| - | catimg loligrub-asbl.png | + | chuck | cowsay | lolcat -F 1 |
| - | chuck | cowsay | lolcat -F 1 | + | figlet -tc -f shadow "Merci de votre attention \!" | lolcat |
| - | figlet -tc -f shadow "Merci de votre attention \!" | lolcat | + | |
| - | ---- | + | |
| - | La sortie de figlet peut être redirigée vers `/etc/motd` (message of the day). | + | La sortie de figlet peut être redirigée vers /etc/motd (message of the day). |
| ==== Ultra combo ! ==== | ==== Ultra combo ! ==== | ||
| - | ---- | + | |
| - | yes "$(seq 231 -1 16)" | while read i; do printf " | + | |
| sleep .03; done | sleep .03; done | ||
| - | ---- | ||
| - | ---- | + | |
| - | grep -ao " | + | |
| tr -d \\n | lolcat -F 0.001 | tr -d \\n | lolcat -F 0.001 | ||
| - | ---- | ||
| ==== Le meilleur pour la fin ==== | ==== Le meilleur pour la fin ==== | ||
| - | ---- | + | |
| - | for p in {36..1..4}; do espeak-ng -v en -p $p\ | + | |
| "We are the Borg. Lower your shields and surrender your ships...\ | "We are the Borg. Lower your shields and surrender your ships...\ | ||
| Your biological and technological distinctiveness will be added to our own.\ | Your biological and technological distinctiveness will be added to our own.\ | ||
| Resistance is futile." | Resistance is futile." | ||
| & sleep 0.007; done | & sleep 0.007; done | ||
| - | ---- | ||
| - | ---- | + | |
| - | yes $COLUMNS $LINES|awk ' | + | {e*=-1}; |
| - | | + | printf " |
| - | | + | |
| - | ---- | + | |
| ===== Quelques références ===== | ===== Quelques références ===== | ||
| - | * https:// | + | |
| - | * https:// | + | * [[https:// |
| - | * https:// | + | * [[https:// |
| - | * https:// | + | * [[https:// |
| - | * https:// | + | * [[https:// |
| ===== Merci ===== | ===== Merci ===== | ||
atelier20211120-cli_is_fun-run.1638791175.txt.gz · Dernière modification : 2021/12/06 11:46 de wap