Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/07/2012, à 10:36

Yoannjap

Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Bonjour chers forumers !

Je suis tout à fait débutant sur Ubuntu (oui, j'essaie d'aller pas à pas, mais c'est parfois dur...) Et il y a quelques questions d'ultra-base que je n'ai pourtant pas réussi à éluder. Ni sur les wikis sur lesquels je suis tombé, ni sur les forums, ni la doc officielle et la doc passionnée, ni sur le Livre de Roche, ni sur la leçon Bash (celle assez répandue, en français, datée, mais je n'ai plus l'url). Bref, j'ai passé mon aprèm d'hier à chercher des réponses, sans en trouver.

Je voudrais "installer" (ou "je voudrai que s'exécutent" devrai-je dire) les "ordres" écrites dans un script. L'exemple est celui qui est donné sur ce même forum (http://forum.ubuntu-fr.org/viewtopic.php?id=980741) pour lancer gnome google calendar dès le démarrage pour ne pas avoir à le relancer à chaque fois. Mais bien plus généralement je me pose ces questions suivantes :
     - 1 - J'ai vu qu'on pouvait soit taper (copier-coller) le script dans le terminal. Mais si je l'exécute dans le terminal, est-ce qu'Ubuntu s'en souviendra et exécutera ce script à chaque redémarrage du PC ou du programme ? Et comment j'ai la confirmation que le script s'est bien exécuté ?
     - 2 - J'ai aussi lu partout qu'il est bon de taper ou copier-coller un script dans un éditeur de texte, comme gedit (par défaut). -> mais c'est là que ça se corse : okay, je tape/copie-colle le script sur gedit, et après, je fais quoi ? J'enregistre le fichier sh ?
J'imagine que oui mais... dans quel dossier dois-je enregistrer un script exactement ? Dans le dossier /bin ? Ou alors ça dépend de ce sur quoi (logiciels, fichiers, système, eutécé) agissent les scripts ? Dois-je leur donner un nom précis ou j'en donne un à ma guise, qui me permette de retrouver le fichier script plus tard ?
     - 3 - Ok, imaginons que j'aie mon fichier script enregistré quelque part. Je double-clique dessus et lui demande de s'exécuter une première fois. Mais est-ce qu'ensuite il s'exécutera à chaque nouveau démarrage du PC sans que j'ai à redouble-cliquer dessus à chaque fois ?

Bref je suis un énoooorme noob, mais quitte à aller trop vite dans mon apprentissage de la logique Linux, j'aimerai au moins avoir quelques bases pratiques wink

Mille merci à mon/ma/mes futur(e(s)) druide(s) !

Dernière modification par Yoannjap (Le 22/07/2012, à 10:43)

Hors ligne

#2 Le 22/07/2012, à 11:01

Qid

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

bonjour
déjà pour commencer il y a quand même un truc bizarre dans ton exemple de base : il y a déjà quelque chose de prévu par defaut pour l'execution au démarrage de la session wink
maintenant passons à l'aspect script en lui même : et déjà voyons sa définition parce que de toutes évidence tu n'as pas l'air sur de toi :
un script de base n'est qu'un fichier executable d'enchainement de commande ... d'ou le fait que le terminal fasse la même chose que le script
sauf qu'évidemment pour répondre à ta question 1) le terminal ne garde rien en mémoire sauf via un historique alors qu'un script est bien un fichier
2) en fait ton probleme n'est pas de faire un script mais de savoir comment l'executer ... eh bien ça dépend du type de script mais de façon générique :

. /chemin/du/script/avec/ou/sans/variable/d'environnement/système/nom/du/script/extension/

sous entendu il peu etre n'importe ou pourvu que son démarrage soit bon
3) je crois que j'ai déjà répondu à cette question wink
je te souhaite bonne chance mais tu verras c'est pas ci compliqué


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#3 Le 22/07/2012, à 11:36

Yoannjap

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Merci Qid pour ton aide !
Je saisis mieux l'affaire mais une interrogation reste en suspens : lors de la création d'un script, dans quel dossier dois-je l'enregistrer ?
Et si je dois à chaque fois double-cliquer sur un script pour qu'il lance une série itérative de commandes par le biais du terminal (avec fais-ci et ça uniquement ci,... mais dans le cas où, exécute plutôt ça), à quoi sert un script qui serait censé lancer un programme au démarrage d'Ubuntu ? (les daemons si j'ai bien compris, sont des types de scripts ?)

Hors ligne

#4 Le 22/07/2012, à 11:50

Qid

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Yoannjap a écrit :

lors de la création d'un script, dans quel dossier dois-je l'enregistrer ?
Et si je dois à chaque fois double-cliquer sur un script

j'ai déjà répondu à cette question et techniquement de toutes façon tu te répond à toi même wink
sans compter le fait en plus que de toutes façon tu ne peux pas faire n'importe quoi n'importe ou dans ton système wink

non un démon n'est pas un type de script ... c'est en général plutôt un type de programme qui s'execute de façon invisible ne tache de fond
mais rien à avoir non plus avec les programme au démarrage : certes le principe du démon
c'est de s'éxécuter au démarrage sans qu'on ai rine à faire mais ce n'est pas une obligation

et donc pour finir l'interet du script c'est qu'en effet il peut permettre d'avoir des conditions / des choix multiple / ou autre ...
mais effectivement si comme tu semblais le sous entendre ton but c'est de créer un script qui ne fait que lancer un programme
la comme je te le disais dans mon premier poste ça ne sert à rien : autant appeler directement le programme en question


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#5 Le 22/07/2012, à 18:09

nesthib

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

@Qid : merci de faire un petit effort dans tes explications, ton dernier message n'est pas très compréhensible pour un débutant…

@Yoannjap : pour lancer un script/programme au démarrage il y a de multiples façons de faire. Comme l'indique Qid pour un simple programme il vaut mieux utiliser le gestionnaire graphique d'applications au démarrage (gnome-session-properties).
En ce qui concerne les scripts, je te recommande de lire la page de documentation sur les scripts, tu verras ce qu'est le PATH et comment lancer tes scripts (en résumé si tu veux lancer tes scripts en utilisateur tu peux les mettre dans ~/bin, ~ représentant ton home). Pour se lancer ton script nécessite des droits d'exécution (+x) que tu peux changer soit via un clic-droit > propriétés > permissions, soit en ligne de commande :

chmod u+x /chemin/vers/le/script

il suffit de le faire une fois et une fois ces droits attribués le script pourra se lancer.

Dernière méthode pour lancer un programme au démarrage en tant qu'utilisateur, modifier le fichier /etc/rc.local et ajouter la ligne :

su -c 'ta commande' nom_d_utilisateur &

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#6 Le 23/07/2012, à 03:39

Yoannjap

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Mille merci Nesthib smile
C'est donc dans le dossier /bin que l'on enregistre les scripts. Ouf, une étape de franchie dans mon éducation Linux !

Hors ligne

#7 Le 23/07/2012, à 06:37

Qid

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Yoannjap a écrit :

C'est donc dans le dossier /bin

c'est pas ce qu'il t'a dit non ... et de mon coté je maintiens qu'il script peut s'enregistrer n'importe ou ...
la seul différence est que si il est dans un dossier référencé dans le PATH il pourra etre appelé sans son chemin

@ nesthib > merci de ton coups de main parce que j'avoue que je sais pas si finalement je m'en serais sorti
mais dans ta réponse des choses me laisse perplexe quand même : entre autre tu le sors d'où le /home/$USER/bin ?


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#8 Le 23/07/2012, à 08:52

willcoyote

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Yoannjap a écrit :

C'est donc dans le dossier /bin que l'on enregistre les scripts. Ouf, une étape de franchie dans mon éducation Linux !

Pas exactement, le dossier /bin est un dossier système

nesthib voulait sans doute parler du dossier /home/user/.bin  (important le point, c'est un dossier caché)

Hors ligne

#9 Le 23/07/2012, à 08:58

Hibou57

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Yoannjap a écrit :

Mille merci Nesthib smile
C'est donc dans le dossier /bin que l'on enregistre les scripts. Ouf, une étape de franchie dans mon éducation Linux !

Maintenant que tu sais où le placer pour qu’il soit dans le $PATH et soit reconnu comme programme exécutable, si tu veux qu’un programme démarre à chaque ouverture de cession, tu peux l’ajouter dans “~/.profile”. Il existe une autre manière aussi, mais je n’ai pas vérifié si elle est encore valable sous Ubuntu Precise.

Qid a écrit :

@ nesthib > merci de ton coups de main parce que j'avoue que je sais pas si finalement je m'en serais sorti
mais dans ta réponse des choses me laisse perplexe quand même : entre autre tu le sors d'où le /home/$USER/bin ?

C’est un standard sous Ubuntu, et tu en as une trace dans le “~/.profile” justement. Il contient ceci, par défaut :

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

À chaque ouverture de cession, le script de .profile, vérifie si $HOME/bin existe, et s’il existe, il l’ajoute dans le $PATH.

C’est comme ça sous tout les Ubuntu, depuis des années. C’est peut‑être le cas sous Débian aussi, pour les autres Linux, je ne sais pas.


Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)

Hors ligne

#10 Le 23/07/2012, à 09:04

Qid

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

heu ... on parle de .bin ou de bin alors au final ? ...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#11 Le 23/07/2012, à 12:15

Hibou57

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Je n’avais pas fait attention qu’il avait été question de .bin, je relirai  ; mais pour répondre rapidement, je ne connais pas de .bin, en tous les cas ça n’est pas standard. Le seul répertoire bin dans un dossier caché, que je connaisse, c’est ~/.local/bin. Mais il n’est standard que pour certaines personnes et certaines applications, il ne faut pas compter sur sa présence ou sa reconnaissance. Je sais qu’il est utilisé par Python ou alors certains installateurs d’applications Python. On peut d’ailleurs trouver aussi à côté, un ~/.local/lib/python2.6/site-packages, et dans ce cas, le ~/.local/bin contient des scripts Python.

Pour des applications locales à un compte utilisateurs, mieux vaut compter sur ~/bin. On peut aussi faire ce qu’on veut, mais après il faut le gérer soi‑même, en prenant soin de mettre à jour la variable $PATH (*). Par exemple j’ai un répertoire ~/apps, avec plusieurs sous‑répertoires, pour les applications qui sont composées de plusieurs fichiers, et je réserve ~/bin aux scripts petits‑utilitaires ou aux applications “standalone”, c’est à dire qui n’ont pas de dépendances et de fichiers annexes.

Quand c’est bien organisé, il n’y a pas d’interdit, c’est juste une histoire de standard ou pas standard, et de savoir où un installateur pourra installer quelque chose quand on prévoit qu’il doive pouvoir fonctionner chez les autres et pas seulement chez soi.


(*) Si des répertoires doivent être ajoutés à $PATH, il faut toujours le faire dans ~/.profile. Si tu le fais dans ~/.bashrc par exemple, ton $PATH ne sera à jour que si tu ouvre une console. Il est généralement souhaité qu’il soit OK partout, pour la console et pour le reste de l’environnement (GNOME ou Unity, par exemple). Seul ~/.profile s’applique à l’environnement commun, les autres, sont des profiles spécifiques appliqués seulement à des contextes particuliers.

Dernière modification par Hibou57 (Le 23/07/2012, à 12:17)


Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)

Hors ligne

#12 Le 23/07/2012, à 16:13

nesthib

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

@Yoannjap/Qid/willcoyote : il s'agit de ~/bin (ou ${HOME}/bin dans le home, non caché, comme expliqué par Hibou57


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#13 Le 23/07/2012, à 16:17

Qid

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

nesthib a écrit :

@Yoannjap/Qid/willcoyote : il s'agit de ~/bin (ou ${HOME}/bin dans le home, non caché, comme expliqué par Hibou57

wai bah il existe pas et n'est pas non plus renseigné dans le $PATH donc bon ... et puis même je comprend vraiment pas pourquoi on tourne en rond comme ça
un scripte ça reste un fichier certes exécutable mais du coups on peu le mettre ou on veut sans aucune limite tant qu'on est capable de le retrouver pour le lancer wink


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#14 Le 23/07/2012, à 19:01

Hibou57

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

Qid a écrit :

wai bah il existe pas et n'est pas non plus renseigné dans le $PATH donc bon ...

C’est normal, ça ne doit pas t’empêcher de l’utiliser. C’était expliqué plus ou moins explicitement dans le message où je citais un extrait du ~./profile. Par défaut ~/bin n’existe pas, mais il est prévu et attendu que les utilisateurs en créent un au besoin. Quand il n’existe pas, il n’est pas dans le $PATH, mais quand il existe, il y est ajouté automatiquement, preuve que le cas est bien prévu et attendu.

Pour t’en convaincre, crée un dossier bin dans ton répertoire utilisateur, puis ferme la cession puis ouvre la cession à nouveau, et dans une console, fais “echo $PATH;”, et tu verra qu’il y aura été ajouté automatiquement.

Qid a écrit :

un scripte ça reste un fichier certes exécutable mais du coups on peu le mettre ou on veut sans aucune limite tant qu'on est capable de le retrouver pour le lancer wink

Cependant, c’est mieux de ne pas avoir à entrer son chemin complet à chaque fois, et c’est bien aussi de ne pas trop surcharger le variable $PATH, et pour ça, c’est mieux de regrouper les petits scripts qui sont aussi les plus nombreux, dans un seul répertoire, et pour ça, comme ce fameux ~/bin est l’emplacement le plus standard, autant utiliser cette option, même si évidement, tu es libre de faire comme tu veux.

Tu y vois plus clair ?

Dernière modification par Hibou57 (Le 23/07/2012, à 19:06)


Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)

Hors ligne

#15 Le 23/07/2012, à 21:53

nesthib

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

@Qid : écoute ne bataille pas, c'est toi qui tourne en rond là… crée un dossier bin dans ton home, relance ta session et tu verras bien… roll


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#16 Le 24/07/2012, à 04:50

Qid

Re : Mais où doit-on enregistrer un script, que diable ?! [DÉBUTANT]

ok ok wink ... c'est bon j'ai compris ... je vous crois wink j'avais oublié qu'on avait aussi fait référence au .profil en plus du $path ... neutral


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne