Outils pour utilisateurs

Outils du site


workshop_shell

Ceci est une ancienne révision du document !


Workshop Shell Unix

Guidelines pour l'atelier

  • Deconseiler de prendre des notes le workshop est disponible sur le wiki.
  • Proposer d'interrompre et poser des questions à chaud.
  • Demander à l'assemblé ce que va produire une ligne commande avant de l'exécuter.

Intro: shell / terminal

Présentation avec GUI ouvert.

pwd
cd /tmp
pwd
cd
pwd
ls
ls -a

Fichiers : touch ; cp ; mv ; rm ; mkdir

Présentation avec GUI ouvert.

touch foo
cp foo bar
mv bar baz
rm foo
mkdir pif
mkdir -p paf/pouf

Permissions : ls -l ; chmod ; chown

ls -l foo
chmod u-r foo
ls -l foo
sudo chown root:root foo
ls -l

Obtenir de l'aide : help ; man

La commande help permet d'obtenir une aide sommaire sur les commandes du shell.

help

La commande man permet d'obtenir de l'aide sur les programmes installés. On peut rechercher le mot clé "foo" dans le manuel en tappant "/foo".

man man

Administration : ps ; top ; du ; df ; free ; mount

id
last
ps u
ps aux
uptime
top
du -h
df -h
free -h
mount

Expansion : * ? ~ {1..5} {Z..A} $USER

TODO : Attention les expansions dependent beaucoup du shell (sh, bash, zsh, ...)

rm -rf work1 ; mkdir work1 ; cd work1
touch foo bar baz
ls f*
ls b*
ls b?z
echo {A..C}
echo $USER

IO (Entrées Sorties) : redirection / pipelines

TODO: Utiliser des schéma

Ecriture dans fichier

rm -rf work2 ; mkdir work2 ; cd work2
echo "Hello World" > foo
cat foo
> foo
cat foo

Ecrire à la fin d'un fichier

> bar
echo hello > bar
cat bar
echo world >> bar
cat bar

Ecrire sur les sortie standard et d'erreur

echo "sur la sortie standard"
>&2 echo "sur la sortie d'erreur"

Rediriger l' entree

cat < bar

Rediriger les sorties

echo "pif" > stdout
>&2 echo "paf" 2> stderr
>&2 echo "pouf" > stdout 2>&1

Pipeline

cat bar | grep "lo"

Logique : ; && ||

echo "un" ; echo "deux"
echo "OR_1" || echo "OR_2"
echo "AND_1" && echo "AND_2"
false ; echo "RC=$?"
true || echo "second statement" ; echo "RC=$?"
false || echo "second statement" ; echo "RC=$?"
true && echo "second statement" ; echo "RC=$?"
false && echo "second statement" ; echo "RC=$?"

Variables : $PS1 $PATH $?

echo $USER
echo $PATH
echo $HOME
export
echo $PS1
echo $?
echo $!
 
 
## Scripts : philosophie tests loops fonctions
 
### Fil rouge : un script pour trier ses photos
- variables
- conditions
- fonctions
- boucles
- return code (exit)
 
### Philosophie UNIX
- Écrivez des programmes qui effectuent une seule chose et qui le font bien.
- Écrivez des programmes qui collaborent.
- Écrivez des programmes pour gérer des flux de texte [en pratique des flux d'octets], car c'est une interface universelle.
workshop_shell.1699059616.txt.gz · Dernière modification : 2023/11/04 01:00 de bigMax