Ceci est une ancienne révision du document !
.
Présentation
Présentation
Rapide
Pseudo | sonn2 |
Age | 16 ans |
Lieu | Compiègne |
Ubunteros depuis | 1 an et demi |
Distribution testée | ubuntu (EDT: gnome, unity, kde) version toujours à jour, actuelle 10.10 |
passioné par l'informatique depuis mes 9~10 ans. (mes débuts sur win et MS-DOS ![]() |
Languages
Je connait déjà quelques languages de programation :
- HTML (norme 5 )
- CSS (norme 3)
- PHP
- SQL
- JavaScript
Et je suis en train d'apprendre :
- Bash
- Python
- C (pour plus tard…)
Philosophie
J'ai quitter le monde propriétaire il y a plus d'un an et je respire enfin
J'adore l'idée de pouvoir modifier mon système comme je le veux (même si pour le moment je me contente de peu…) mon savoir est trop faible à mon gout, mais heureusement j'ai la soif d'apprendre
Projets
gestionnaire de taches/assistant de mon ordi en bash
Introduction
C'est un petit script qui permet d'effectuer d'autres petits scripts contenu dans des fonctions, rien d'extraordinaire, je commence depuis 3 jours le bash :p mais bon… comme j'ai pas trouver quelque chose de semblable.. je partage :) meme si c'est nul et que en l'état ça sert pas à grand chose… mais c'est pas beuger ;) du moins j'ai pas vu.. Donc s'il vous plait les habitués, venez pas dire que c'est nul, etc… parce que je le SAIT!! merci :) Ce script necessite d'ếtre "installé", pour cela, creer un REPERTOIRE et placer dans celui-là les 4 fichiers dont les sources sont en dessous, et lancer le script ainsi
sudo ./script.sh installation
- version : 0.4
- dépendances : zenity (si lancement de cet environnement)
- Permet l'exécution de 10 fonctions définies dans chaque environnement.
- Nécessite les droits root.
- Le mot de passe est : test
- Peut etre lancer en console ou en graphique.
- la possibilité de lancer directement une fonction passé en parametre (utile pour un cron par exemple)
exemple de lancement :
sudo ./script.sh terminal ou sudo ./script.sh zenity
A venir :
possible gestion des utilisateursAbandonné car inutile…- une meuilleur ergonomie pour le menu terminal avec l'utilisation de dialog
- un script de connexion ssh
- un script de sauvegarde automatique de fichier
- un script de rangement semi-automique de fichier
- un script de restauration rapide de programmes préféré (utilise en cas de réinstallation de sa distribution)
- un systeme de log (dont certaines lignes de commande sont déjà présentes ^^ )
si vous avez d'autres idées à me proposer n'hésiter pas ;)
code
Le fichier "script.sh"
#!/bin/bash clear #version 0.4 source "config.sh" source "programmes.sh" source "fonctions.sh" echo " "`date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$lancement" >> $sortie_log initialisation if [ `pwd` == "$repertoire" ] then if ((EUID == 0)) then #possibilité n°1 if [ -z "$1" ] then echo `date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$plm_m" >> $sortie_log echo "$plm_m" zenity --error --title="$plm_t" --text="$plm_m" exit 3 #possibilité n°2 elif [ "$1" == "terminal" ] then echo `date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$l_m_1 $0 $l_m_2 $# $l_m_3 $1" >> $sortie_log echo -e "$l_m_1 $0 $l_m_2 $# $l_m_3 $1\n" terminal_verification_mdp echo "$msg_bienvenue_m" terminal_choisir_programme #possibilité n°3 elif [ "$1" == "zenity" ] then echo `date +%Y-%m-%d\;%H:%M:%S` -- `logname` -- "$l_m_1 $0 $l_m_2 $# $l_m_3 $1" >> $sortie_log zenity --info --title="$l_t" --text="$l_m_1 $0 $l_m_2 $# $l_m_3 $1" zenity_verification_mdp zenity --info --title="$msg_bienvenue_t" --text="$msg_bienvenue_m" zenity_choisir_programme #possibilité n°4 else for i in ${!noms_fonctions_terminal[*]} do if [ "$1" == "${noms_fonctions_terminal[i]}" ] then eval "${noms_fonctions_terminal[i]}" exit 9 fi done for i in ${!noms_fonctions_zenity[*]} do if [ "$1" == "${noms_fonctions_zenity[i]}" ] then eval "${noms_fonctions_zenity[i]}" exit 9 fi done if [ "$1" == "installation" ] then installation exit 9 fi #si on n'as pas déjà quitter, c'est que la fonction n'existe pas, donc on affiche une erreur clear echo "$pli_m" zenity --error --title="$pli_t" --text="$pli_m" exit 4 fi else clear echo "$root_manquant_m" zenity --error --title="$root_manquant_t" --text="$root_manquant_m" exit 2 fi else clear echo "$install_non_m" zenity --error --title="$install_non_t" --text="$install_non_m" exit 1 fi exit # 1 = lancer sans être installé # 2 = lancer sans root # 3 = lancer sans parametre # 4 = lancer avec un parametre d'environnement incorrect # 5 = trop d'erreurs de mdp dans l'environnement terminal # 6 = fin normal de la session d'environnement terminal # 7 = trop d'erreurs de mdp dans l'environnement zenity # 8 = fin normal de la session d'environnement zenity # 9 = fin normal de la session sans environnement
Le fichier "config.sh"
#!/bin/bash #variables supplémentaires utilisées : # mdp # afficher_message # quitter # définition des variables # repertoire="/gestionnaire_de_tache" sortie_log="log.gdt" let "nb_essai_restant = 3" s_mdp="test" ner="Nombre d'essai restant :" #lancement message l_t="" l_m_1="Vous avez lancé" #$0 l_m_2="avec" #$# l_m_3="paramètres dans l'environnement " #fin lancement message lancement="Lancement du script..." install_non_t="Erreur fatale!" install_non_m="Le script n'est pas installé!" root_manquant_t="Erreur fatale!" root_manquant_m="Ce script nécessite d'etre lancé en tant que root!" # plm_t="Erreur fatale!" plm_m="Paramètre de lancement manquant!" pli_t="Erreur fatale!" pli_m="Paramètre de lancement incorrect!" entrer_mdp_t="Informations requises" entrer_mdp_m="Entrez votre mot de passe:" mdp_vide_t="Erreur!" mdp_vide_m="Votre mot de passe est vide!" mdp_incorrect_t="Erreur!" mdp_incorrect_m="Votre mot de passe est incorrect!" mdp_erreur_t="Erreur fatale!" mdp_erreur_m="Vous avez fait trop d'erreurs pour le mot de passe!" msg_bienvenue_t="Bienvenue!" msg_bienvenue_m="Bienvenue!" entrer_choix_t="Informations requises" entrer_choix_m="Entrez votre choix :" choix_vide_t="Erreur!" choix_vide_m="Votre choix est vide!" choix_incorrect_l="Erreur!" choix_incorrect_m="Choix incorrect !" fenetre_fermee_t="Erreur!" fenetre_fermee_m="Fenetre fermée sans entrer les informations nécessaires!" # # fin définition des variables
Le fichier "programmes.sh"
#!/bin/bash #définitions des array # noms_fonctions_terminal=( '' 'terminal_01' 'terminal_02' 'terminal_03' 'terminal_04' 'terminal_05' 'terminal_06' 'terminal_07' 'terminal_08' 'terminal_09' 'terminal_10' ) descriptions_fonctions_terminal=( '' 'Obtenir la liste des commandes les plus utiles' 'Mettre à jour votre cache de paquets et vos paquets' 'Obtenir la liste des utilisateurs de la machine courante' 'Chiffrer une variable en sha1' 'vide' 'vide' 'vide' 'vide' 'vide' 'vide' ) noms_fonctions_zenity=( '' 'zenity_01' 'zenity_02' 'zenity_03' 'zenity_04' 'zenity_05' 'zenity_06' 'zenity_07' 'zenity_08' 'zenity_09' 'zenity_10' ) descriptions_fonctions_zenity=( '' 'vide' 'vide' 'vide' 'vide' 'vide' 'vide' 'vide' 'vide' 'vide' 'vide' ) # #fin des définitions des array # définition des fonctions terminal # function terminal_01 { echo "Pour obtenir une liste des commandes les plus utiles :" echo "http://doc.ubuntu-fr.org/commande_shell" } function terminal_02 { apt-get update apt-get upgrade } function terminal_03 { n=1 # Nombre d'utilisateurs for nom in $(awk 'BEGIN{FS=":"}{print $1}' < "/etc/passwd" ) do echo "UTILISATEUR #$n = $nom" let "n += 1" done } function terminal_04 { read -p "Entrez votre mot de passe:" -s var read sha1 x < <(sha1sum <<< "$var") echo -e "\nVotre mdp en sha1 =" echo $sha1 } function terminal_05 { dmidecode } function terminal_06 { echo "fonction vide :p" } function terminal_07 { echo "fonction vide :p" } function terminal_08 { echo "fonction vide :p" } function terminal_09 { echo "fonction vide :p" } function terminal_10 { echo "fonction vide :p" } # # fin définition des fonctions terminal # définition des fonctions zenity # function zenity_01 { zenity --info title="Vide!" --text="Vide!" } function zenity_02 { zenity --info title="Vide!" --text="Vide!" } function zenity_03 { zenity --info title="Vide!" --text="Vide!" } function zenity_04 { zenity --info title="Vide!" --text="Vide!" } function zenity_05 { zenity --info title="Vide!" --text="Vide!" } function zenity_06 { zenity --info title="Vide!" --text="Vide!" } function zenity_07 { zenity --info title="Vide!" --text="Vide!" } function zenity_09 { zenity --info title="Vide!" --text="Vide!" } function zenity_10 { zenity --info title="Vide!" --text="Vide!" } # # fin définition des fonctions zenity
le fichier "fonctions.sh"
#définitions des fonctions systèmes # function installation { if [ -d $repertoire ] then read -p "Le répertoire $repertoire existe déjà, il seras effacer" sudo rm -r $repertoire fi sudo mkdir $repertoire sudo mv *.* $repertoire sudo rm -r `pwd` chown -R root:root $repertoire chmod -R 000 $repertoire } function initialisation { menu_terminal="Menu de : ${#noms_fonctions_terminal[*]} programmes\n" for i in ${!noms_fonctions_terminal[*]} do menu_terminal+="$i => ${descriptions_fonctions_terminal[i]} \n" done } #définitions des fonctions de l'environnement terminal # function terminal_verification_mdp { while true do read -p "$entrer_mdp_m" -s mdp echo #si le mdp entré est vide if [ -z "$mdp" ] then echo "$mdp_vide_m" #si le mdp entré est incorrect elif [ -n "$mdp" ]&&[ "$mdp" != "$s_mdp" ] then echo "$mdp_incorrect_m" #si le mdp est correct elif [ -n "$mdp" ]&&[ "$mdp" == "$s_mdp" ] then break fi let "nb_essai_restant = nb_essai_restant-1" echo "$ner $nb_essai_restant" #si le nombre d'essai restant est inférieur ou égal à 0 if [ "$nb_essai_restant" -le 0 ] then clear echo "$mdp_erreur_m" exit 5 fi echo done } function terminal_choisir_programme { while true do echo -e "$menu_terminal"; afficher_message=false read -p "$entrer_choix_m" choix if [ -z "$choix" ] then echo -e "$choix_vide_m" else case "$choix" in "1") eval ${noms_fonctions_terminal[1]} ;afficher_message=true; ;; "2") eval ${noms_fonctions_terminal[2]} ;afficher_message=true; ;; "3") eval ${noms_fonctions_terminal[3]} ;afficher_message=true; ;; "4") eval ${noms_fonctions_terminal[4]} ;afficher_message=true; ;; "5") eval ${noms_fonctions_terminal[5]} ;afficher_message=true; ;; "6") eval ${noms_fonctions_terminal[6]} ;afficher_message=true; ;; "7") eval ${noms_fonctions_terminal[7]} ;afficher_message=true; ;; "8") eval ${noms_fonctions_terminal[8]} ;afficher_message=true; ;; "9") eval ${noms_fonctions_terminal[9]} ;afficher_message=true; ;; "10")eval ${noms_fonctions_terminal[10]};afficher_message=true; ;; *) echo -e "$choix_incorrect_m"; ;; esac fi if [ "$afficher_message" == true ] then terminal_message_quitter fi done } function terminal_message_quitter { while true do read -p "Voulez-vous continuer ?[o/n]" quitter if [ -z $quitter ] then echo elif [ $quitter == "o" ]||[ $quitter == "O" ]||[ $quitter == "y" ]||[ $quitter == "Y" ] then break elif [ $quitter == "n" ]||[ $quitter == "N" ] then clear echo "Au revoir!" exit 6 fi done } # #fin définitions des fonctions de l'environnement terminal #définitions des fonctions de l'environnement zenity # function zenity_verification_mdp { while true do if mdp=`zenity --entry --title="$entrer_mdp_t" --text="$entrer_mdp_m \n $ner $nb_essai_restant" --hide-text` then #si le mdp entré est vide if [ -z "$mdp" ] then zenity --error --title="$mdp_vide_t" --text="$mdp_vide_m" #si le mdp entré est incorrect elif [ -n "$mdp" ]&&[ "$mdp" != "$s_mdp" ] then zenity --error --title="$mdp_incorrect_t" --text="$mdp_incorrect_m" #si le mdp est correct elif [ -n "$mdp" ]&&[ "$mdp" == "$s_mdp" ] then break fi else zenity --error --title="$fenetre_fermee_t" --text="$fenetre_fermee_m" fi let "nb_essai_restant = nb_essai_restant-1" #si le nombre d'essai restant est inférieur ou égal à 0 if [ "$nb_essai_restant" -le 0 ] then zenity --error --title="$mdp_erreur_t" --text="$mdp_erreur_m" exit 7 fi done } function zenity_choisir_programme { while true do choix=`zenity --list --title="$entrer_choix_t" --text="$entrer_choix_m" --column="N°" --column="Programmes" \ 1 "${descriptions_fonctions_zenity[1]}" 2 "${descriptions_fonctions_zenity[2]}" 3 "${descriptions_fonctions_zenity[3]}" \ 4 "${descriptions_fonctions_zenity[4]}" 5 "${descriptions_fonctions_zenity[5]}" 6 "${descriptions_fonctions_zenity[6]}" \ 7 "${descriptions_fonctions_zenity[7]}" 8 "${descriptions_fonctions_zenity[8]}" 9 "${descriptions_fonctions_zenity[9]}" \ 10 "${descriptions_fonctions_zenity[10]}" ` afficher_message=false if [ -z "$choix" ] then echo -e "$choix_vide_m" else case "$choix" in "1") eval ${noms_fonctions_zenity[1]} ;afficher_message=true; ;; "2") eval ${noms_fonctions_zenity[2]} ;afficher_message=true; ;; "3") eval ${noms_fonctions_zenity[3]} ;afficher_message=true; ;; "4") eval ${noms_fonctions_zenity[4]} ;afficher_message=true; ;; "5") eval ${noms_fonctions_zenity[5]} ;afficher_message=true; ;; "6") eval ${noms_fonctions_zenity[6]} ;afficher_message=true; ;; "7") eval ${noms_fonctions_zenity[7]} ;afficher_message=true; ;; "8") eval ${noms_fonctions_zenity[8]} ;afficher_message=true; ;; "9") eval ${noms_fonctions_zenity[9]} ;afficher_message=true; ;; "10")eval ${noms_fonctions_zenity[10]};afficher_message=true; ;; *) echo -e "$choix_incorrect_m"; ;; esac fi if [ "$afficher_message" == true ] then zenity_message_quitter fi done } function zenity_message_quitter { while true do zenity --question --title "que faire" --text "Voulez-vous continuer ?[o/n]" if [ $? == 0 ] then break else zenity --info --title="au revoir" --text="au revoir" exit 8 fi done } # #fin définitions des fonctions de l'environnement zenity
message xD
Autres
Autres
Liens utiles
Vos commentaires
— sonn2 Le 14/01/2012, 20:28