{{tag>cour fun-mooc mooc informatique bash}}
====== Bash: Gestion des variables et de l'environnement ======
Sous Unix il existe deux catégories... odifications de l'environnement et des options du bash influenceront le comportement du shell et des pro... **interne** de type chaîne de caractères:
<code bash>
# Attention pas d'espaces entre le nom de variab
{{tag>cour fun-mooc informatique shell bash}}
====== Bash: Structures itératives ======
Dans une structure itérative ou "boucle" un même bloc de ... n à beaucoup de langages
de programmation.
<code bash>
while condition
do
commande1
commande2
...... xemple d'utilisation de boucles while ====
<code bash>
#!/bin/bash
# Si l'argument 1 est vide, un mot
nclassrooms]].
====== Lancez des commandes sous Bash ======
Passons à la pratique : nous allons explorer les différentes fonctionnalités de Bash, directement depuis un terminal de commandes.
=... ssez austère qui vous présente un **prompt** :
{{bash_prompt.png|Capture d'écran d'un prompt}}
Cette ... /.bashrc) et dans une variable gérée par le shell Bash. En l'occurrence, cette variable est nommée **$PS
{{tag>cour fun-mooc informatique bash}}
====== Bash: construire des filtres élaborés ======
Certains programmes utilitaires possède beaucou... s de recherche sont présentées ci dessous.
<code bash>
# Rechercher dans les répertoires /etc et /bin
#... xemple d'utilisation de l'option **-exec**:
<code bash>
# Retrouver à partir du répertoire courant tous
vous aviez démarré Samba par la commande :
<code bash>
sudo systemctl start smbd
</code>
De la même fa... rrêter le serveur smbd par la commande :
<code bash>
sudo systemctl stop smbd
</code>
D’autres actio... te qui liste toutes les unités “actives” :
<code bash>
systemctl list-units
</code>
Vous voyez qu’il y... fficher que les unités de type “service” :
<code bash>
systemctl list-units --type=service
</code>
Vou
{{tag>cour fun-mooc informatique bash}}
====== Commandes de filtrage ======
Les filtres permettent de ... un fichier on utilise la commande **head**:
<code bash>
# extraire les 15 premières lignes
$ head -n 15 ... 'un fichier, utiliser la commande **tail**:
<code bash>
# extraire les 20 dernières lignes
$ tail -n 20 ... précisée en octets ou en nombre de lignes.
<code bash>
# découpe file en fichiers de 30 lignes max avec
ns d’utiliser LVM avec notre disque RAID :
<code bash>
$ sudo umount /dev/md0 #Le volume doit être démo... ’importe quel volume physique à ce groupe.
<code bash>
$ sudo vgcreate raid-volumes /dev/md0
</code>
V... ta2” de 200 Mo sur votre groupe de volume.
<code bash>
$ sudo lvcreate --name data1 --size 800M raid-vo... vous faut donc les formater et les monter.
<code bash>
$ sudo mkfs -t ext4 /dev/raid-volumes/data1
$ su
{{tag>cour fun-mooc bash sysadmin}}
====== Bash: Aide à la saisie et l'édition ======
Le shell Bash intègre des fonctionnalités d'aide à la saisie, à ... uches et les commandes readline voir le manuel de bash section "Readline Command Names"
</note>
===== G
{{tag>cour fun-mooc bash}}
===== Bash: calculs numériques =====
Par défaut le Bash traite toutes les valeurs comme des chaînes de caractères... opérateur doit être séparé par un espace:
<code bash>
# Pour que expr puisse interpréter correctement
{{tag>cour mooc informatique bash}}
====== Éléments d'un script shell ======
En plus du mode interacti... mple d’une affectation par la commande set:
<code bash>
$ set -- 1 2 3 4 5 6 7 8 9 a b
$ echo $1 $9 ${10... ns le script decal.sh avec le code suivant:
<code bash>
#!/bin/bash
echo $# $@
shift
echo $# $@
</code>
L’exécution de ce script avec 3 arguments montre que
nformations sur l’heure de votre système :
<code bash>
$ timedatectl Local time: Wed 2021-11-23 18:49... veur en utilisant l'argument ''set-time'':
<code bash>
# format de la date "yyyy-mm-dd hh:mm:ss"
$ sudo... es'' mais attention, il y en a beaucoup...
<code bash>
$ timedatectl list-timezones | grep -i paris
Eur... e fuseau horaire grâce à ''set-timezone'':
<code bash>
$ sudo timedatectl set-timezone Europe/Paris
</c
ses IPv6 associées aux interfaces de PC-1:
<code bash>
ip -6 address show
</code>
^ lo0 | **::1** ... 'aide des commandes **ifconfig** ou **ip**
<code bash>
$ ip link show eth0
</code>
Adresse MAC de l'in... ast peuvent être affichées via la commande:
<code bash>
$ ip -6 maddr show
</code>
Adresse multicast so... at des interfaces présentes sur le routeur:
<code bash>
show interfaces detail
</code>
^ eth0 | fd75:e
staller le serveur samba par la commande :
<code bash>
apt-get install samba
</code>
Puis, pour config... s, redémarrez le serveur par la commande :
<code bash>
# Vérifier la syntaxe du fichier de configuratio... e sambashare, ajoutez le via la commande :
<code bash>
# lister les groupes de l'utilisateur anUser
gro... ompte système (laissez vide pour nobody) :
<code bash>
pdbedit -a anUser
pdbedit -a nobody
</code>
Si
{{tag>cour fun-mooc mooc informatique shell bash}}
====== Shell Bash: constructions syntaxiques ======
Le shell est un interpréteur de ligne de comma... l'affectation d'une valeur à une variable.
<code bash>
# Affectation d'une valeur a une variable
PI=3.14
MSG="Hello Bash"
</code>
<note warning>
Ne pas introduire d'espa
{{tag>cour mooc informatique bash}}
====== Expressions conditionnelles et tests ======
Bash fournit des structures de contrôle permettant de ... contrôle et de la réalisation de tests.
En shell Bash on peut donc voir toute commande comme une expres... ux syntaxes valides pour la commande test:
<code bash>
# Utilisation du mnémonique
test "$a" -gt 10
#