Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.03954832706834 Monero.

Programmation en Shell Bash Linux : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
(Page créée avec « Category:Debian {{Transclusion_Entete}} =Programmation en Shell Bash Linux= ==Code retour== Par convention, un code de retour égal à 0 signifie que la commande s'es... »)
(Aucune différence)

Version du 13 février 2018 à 18:06

Naviguer sur le wiki : Accueil du wiki - Sommaire Administrateur - Sommaire des projets - Sommaire pour Webmaster - Sommaire We make Hack
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets

Programmation en Shell Bash Linux

Code retour

Par convention, un code de retour égal à 0 signifie que la commande s'est exécutée correctement.
Un code différent de 0 signifie soit une erreur d'exécution, soit une erreur syntaxique.
sudo apt-get install TRUUUUUC
Évidemment aucun logiciel ne va s'installer.
echo $?
Le code erreur 100 est affiché sur la console.
Le code erreur n'est pas 0, donc, la commande qui a été lancée n'a pas aboutie.
ls
if [ "$?" = "0" ] ; then
echo "OK"
else
echo "NOK"
fi
Source complémnetaire : okki666.free.fr/docmaster/articles/linux131.html
Autre possibilité, récupérer ce que apt-get envoie dans stderr pour avoir les messages d'erreur.

Utiliser la commande awk

awk est une commande très puissante, un langage de programmation a elle tout seule qui permet une recherche de chaînes et l'exécution d'actions sur les lignes sélectionnées.
Cette commande est utile pour récupérer de l'information, générer des rapports, transformer des données entre autres.
Une grande partie de la syntaxe a été empruntée au langage c, d'ailleurs awk sont les abréviations de ces 3 créateurs dont k pour Kernighan, un des inventeurs du c. 
Exemple de la commande :
myvar="toto" cat $fic | awk '{ sub(/'$myvar'/,"commentaire"); print}'
Application :
[[email protected] trash]$ cat fich.txt Je m'appelle Toto et moi Tutu et mon frère Titi. [[email protected] trash]$ var="Toto" [[email protected] trash]$ cat fich.txt | awk '{ sub(/'$var'/,"Tata");print}' Je m'appelle Tata et moi Tutu et mon frère Titi. [[email protected] trash]$
Ok-ko.png Source : http://www.shellunix.com/awk.html
Ok-ko.png Source : http://www.funix.org/fr/unix/awk.htm
Ok-ko.png Source : https://linuxconfig.org/learning-linux-commands-awk

Utiliser la commande sed

Remplacer une ligne entière

Remplacer une ligne entière par "Tata" uniquement si cette ligne contient "appelle" ?
$ cat plop
Je m'appelle Toto
et moi Tutu
et mon frère Titi.
$ sed '/appelle/cTata' plop
Tata
et moi Tutu
et mon frère Titi.

Ajouter un espace après tous les points

Ajouter un espace après chaque point ou caractères de ponctuation avec la commande sed 's/\./\. /g' input.txt > output.txt

Ressources complémentaires sur sed

Ok-ko.png Source : https://doc.ubuntu-fr.org/sed
Ok-ko.png Source : https://www.shellunix.com/sed.html
Ok-ko.png Source : https://openclassrooms.com/courses/la-commande-sed
Ok-ko.png Source : https://www.system-linux.eu/index.php?post/2008/12/21/La-commande-Sed
Ok-ko.png Source : https://supersonique.net/administration/rechercher-et-remplacer-en-ligne-de-commande-bash-shell-sed/
Ok-ko.png Source : 31 exemples : https://likegeeks.com/sed-linux/

Utiliser une pause entre deux commandes

Mettre pause avec sleep

# Waits 0.5 second.
sleep .5
# Mettre en pause un script pendant une minute.
sleep 60
sleep 60s
sleep 1m
# Waits 5 hours.
sleep 5h
# Waits 5 days.
sleep 5d

Mettre pause avec read

read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
Ok-ko.png Tutoriel complémentaire pour utiliser read : http://www.quennec.fr/trucs-astuces/syst%C3%A8mes/gnulinux/programmation-shell-sous-gnulinux/les-bases-de-la-programmation-shell/la-commande-read

Mettre pause avec read

read -p "Appuyer sur une touche pour continuer ..."

Mettre pause avec read

#! /bin/bash

echo "Appuyer la touche <Entrée> pour continuer..."
read touche
case $touche in
*)	echo "Reprise du script..."
	;;
esac

Mettre pause avec read

#! /bin/bash

echo "Voulez-vous continuer ? [O/N]"
read mot
while
[ "$mot" = "O" ]
do
echo "Voulez-vous continuer ? [O/N]"
read mot
done
echo "Programme achevé..."

Utiliser des couleurs dans le shell

# Déclarer les couleurs
noir='\e[0;30m' gris='\e[1;30m' rougefonce='\e[0;31m' rose='\e[1;31m' vertfonce='\e[0;32m' vertclair='\e[1;32m' orange='\e[0;33m' jaune='\e[1;33m' bleufonce='\e[0;34m' bleuclair='\e[1;34m' violetfonce='\e[0;35m' violetclair='\e[1;35m' cyanfonce='\e[0;36m' cyanclair='\e[1;36m' grisclair='\e[0;37m' blanc='\e[1;37m' neutre='\e[0;m'
# Utiliser la couleur
# N'oublies pas le "-e" pour la commande "echo" sans quoi les caractères d'échappement ne seront pas interprétés ;-\
# Si echo -e ne fonctionne pas, tenter avec /bin/echo -e 
echo -e "${rougefonce}Bonjour${neutre} ${jaune}les gens${neutre}"
Plus d'informations sur les couleurs et la mise en forme avec shell : https://www.admin-linux.fr/bash-de-la-couleur-dans-le-shell/

Passer root dans un script et poursuivre l’exécution

# On ne peut pas passer root dans un script et poursuivre l'exécution du script en tant que root.
# su, sudo, etc. sont des commandes externes, exécutées dans un autre processus.
# Elles ne peuvent donc pas changer l'uid du script en cours (Le process père).
# Passer les commandes à exécuter en root comme étant des arguments de la commande "su" ou "sudo".

# A la demande du mot de passe, c'est le mot de passe root qu'il faut saisir.

# Passer en root.
su -c '
# Tes commandes à lancer en tant que root, exemple avec le chargement d'une image Docker.
docker load -i /home/user/image.tar
'

# La suite du script.
## Ici du code.

Créer un menu à choix multiples

#!/bin/bash
clear # Clear the screen.
cat ascii-seo.sh

sleep 4

echo " ################################## "
echo " #          Choix du menu         # "
echo " #    Installation automatique    # " 
echo " ################################## "
echo
echo " Cet assistant installe, configure ou supprime vos paquets automatiquement. "
echo
echo " [1] Installer Docker "
echo " [2] Supprimer Docker "
echo " [3] Supprimer les conteneurs et les images de Docker "
echo " [4] Importer l'image Docker de Debian "
echo " [5] Exit "
echo
echo "Choisir une option pour continuer :"

read person
case "$person" in

# "1" | "un" | "UN" | "Un" valeurs acceptées pour lancer ce menu.
  "1" | "un" | "UN" | "Un" )
  echo
  echo " Installer Docker "
  echo " Ajouter les commandes "
  sleep 4
  ;;
# Double points virgule pour fermer chaque option.

# "2" | "deux" | "DEUX" | "Deux" valeurs acceptées pour lancer ce menu.
  "2" | "deux" | "DEUX" | "Deux" )
  echo
  echo " Supprimer Docker "
  echo " Ajouter les commandes "
  sleep 4
  ;;
# Double points virgule pour fermer chaque option.

# "3" | "trois" | "TROIS" | "Trois" valeurs acceptées pour lancer ce menu.
  "3" | "trois" | "TROIS" | "Trois" )
  echo
  echo " Supprimer les conteneurs et les images de Docker "
  echo " Ajouter les commandes "
  sleep 4
  ;;
# Double points virgule pour fermer chaque option.

# "4" | "quatre" | "QUATRE" | "Quatre" valeurs acceptées pour lancer ce menu.
  "4" | "quatre" | "QUATRE" | "Quatre" )
  echo
  echo " Importer l'image Docker de Debian "
  echo " Ajouter les commandes "
  sleep 4
  ;;
# Double points virgule pour fermer chaque option.

# "5" | "cinq" | "CINQ" | "Cinq" valeurs acceptées pour lancer ce menu.
  "5" | "cinq" | "CINQ" | "Cinq" )
  echo
  echo " EXIT "
  echo " L'assistant pour une installation automatique va s'arrêter. "
  echo " Utiliser la commande sh menu.sh pour relancer l'assistant. "
  sleep 4
  exit
  ;;
# Double points virgule pour fermer chaque option.

          * )
  # Réponse par défaut.
  echo "Ce choix n'est pas disponible."
  sleep 2
  echo
  echo "Merci d'utiliser uniquement les options du menu."
  sleep 3
  sh menu.sh
  ;;

esac
exit 0 

Zenity

Ouvrir un menu graphique à choix multiples avec Zenity.
#! /bin/bash
selection=$(zenity --list "Option 1" "Option 2" "Option 3" --column="" --text="Text above column(s)" --title="My menu")

case "$selection" in
"Option 1")zenity --info --text="Do something here for No1";;
"Option 2")zenity --info --text="Do something here for No2";;
"Option 3")zenity --info --text="Do something here for No3";;
esac

Bibliographie

Ok-ko.png Source : https://doc.ubuntu-fr.org/tutoriel/script_shell
Ok-ko.png Source : http://www.dreamsyssoft.com/unix-shell-scripting/ifelse-tutorial.php
Ok-ko.png Introduction à Shell Bash : https://ensiwiki.ensimag.fr/index.php?title=Introduction_aux_scripts_shell
Ok-ko.png Les tests avec Bash : https://fr.wikibooks.org/wiki/Programmation_Bash/Tests
Ok-ko.png Source : https://linuxfrench.wordpress.com/2017/03/07/4-ligne-de-commande-scripts-shell/

NAVIGATION

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

PARTICIPER ET PARTAGER

Vous êtes sur le HackerSpace de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
Pourquoi utiliser GNU/Linux ? Y'a moins bien, mais, c'est beaucoup plus cher.
GNU/Linux, hackerspace, opensource, logiciels libres et transition écologique.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Pour écrire en Markdown : Éditeur - Générateur de tableau 1 - Générateur de tableau 2.
Vous pouvez partager les articles du wiki avec l'ensemble de la communauté des internautes.
Les recherches sur la sécurité servent à administrer et protéger votre système informatique.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

SOUTENIR VISIONDUWEB

Soutenir Vision du web avec des Bitcoins : 33ZsupGQr1rUmwj62HadcZ55hsGJajD9wN
Soutenir Vision du web avec des Bitcoins Cash : 15q5xAVFGpMbqgKsr8uhXymTv7kLfke7hq
Soutenir Vision du web avec des Bitcoins Gold : GNcVseSdiEGRzKYwZWeCbGGg1sZ6Nax172
Soutenir Vision du web avec des Bitcore (BTX) : 1Ks9FDF4FVauAHBCpBFKySiSmD8LaQhqDH
Soutenir Vision du web avec des Blackcoins : BKYBEhQGm9ExrYoWzbvmHA491sK2ArxFM6
Soutenir Vision du web avec des Bytecoins : 241LTEY5L3CSTN2afYf97obxGp4ahUYnq5jDwx5b15NQDothce8fpUeKA32X5SrJuDPBgXTsSmQRoAbCzcDvM2d2Pe9w6AY
Soutenir Vision du web avec des Clams : xMF9u1evuiN2zzEjg2KhgeYPcCLU84Ki5T
Soutenir Vision du web avec des Dash : Xd4vJFnWy27be8cLGSiXVYzP6nKFbdHATU
Soutenir Vision du web avec des Monero : 469EK3yr8JbNe3Gf1rXHD81zcHT7o1hTsDxqvWtxunnaTDLVNiXQ2NyWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm413rpYt
Soutenir Vision du web avec des Dogecoins : A64jhqCgsUyrUCPte6fV3BcG2Y7daH13Ym
Soutenir Vision du web avec des Ethereum : 0x0E4D6B7A1F88A56A1A66bf408c72FAE3d104D632
Soutenir Vision du web avec des Ethereum Classique : 0x633d83a4ab31e63d76d01edb660ecca4498ef8fa
Soutenir Vision du web avec des Litecoins : 3LKigW6TCS5MvXrZFGh8VMEtZf6MtE86iz
Soutenir Vision du web avec des Potcoins : PUYvjeJ3n2frypgD5yd95yNnwoztnZL5P3
Soutenir Vision du web avec des Solarcoins : 8aYbMcAL68U8f3c3o5pEKUKeWxx48gU1eq
Soutenir Vision du web avec des Zcash : t1Tkiv7nTt9Gwwui9ifsBdp37dTnRG7oYHp