Ceci est une ancienne révision du document !


.

Page en construction….

Présentation

Rapide

Pseudosonn2
Age16 ans
LieuCompiègne
Ubunteros depuis1 an et demi
Distribution testéeubuntu (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 LOL )

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 :-P 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 :-D

Projets

Je fait cette page pour mettre des liens que je trouve les plus utiles, je posterais aussi mon petit script. C'est mes petits trucs à moi, rien de génial, mais bon… j'aime l'idée de OpenSource et du Partage, alors si ça peut aider quelqu'un d'autre…

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 utilisateurs Abandonné 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

"Bonjour à tous les utilisateurs [ubuntu], Je fais un [script] (gratuit – juste un hobby, il ne sera pas grand ni professionnel comme [d'autres] ). Cela était en préparation depuis [meme pas une semaine], et il [n']est [pas encore] prêt. J’aimerais avoir des commentaires sur ce que vous aimez et n’aimez pas dans [ce script et ce que vous aimeriais y voir]."

Autres

Liens utiles

Vos commentaires


sonn2 Le 14/01/2012, 20:28 DELETEME 8-O LOL

  • utilisateurs/sonn2.1326969825.txt.gz
  • Dernière modification: Le 19/01/2012, 11:43
  • par sonn2