Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 11-03-2014 11:09:59

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

[résolu]lancer un script de n'importe en modifiant ~/.bashrc

Bonjour,

j'ai voulu exécuter un script (nommé script.b) avec son nom de n'importe où, avec une autre méthode que celle qui consiste à le placer dans /bin, /usr/bin ou /usr/local/bin.

Je voudrais le lancer en le plaçant dans un répertoire (nommé MesScripts) créé dans mon répertoire courant dans lequel je mets script.b ;
après lui avoir donné les droits d'exécution ; et après avoir modifié ~/.bashrc en y ajoutant cette ligne tout à la fin :


PATH=$PATH":~/MesScripts"
 



Le chemin de mon fichier MesScripts apparaît bien maintenant :


hypathie@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:~/MesScripts
hypathie@debian:~$
 



Mais des fichiers inquiétants apparaissent dans le répertoire MesScripts :
Pour être plus précise, j'ai fait depuis mon répertoire courant :


nano script.b
 


Puis j'ai inscrit :


#!/bin/bash
echo bonjour
 



Puis ls -la script.b => -rw-r--r-- 1

puis : chmod u+x script.b
puis ls -la script.b => -rwxr--r-- 1

puis : mkdir MesScripts

puis : mv /home/hypathie/script.b /home/hypathie/MesScripts/

Je ferme le terminal et ré-ouvre.

J'arrive à l'exécuter normalement en faisant  :


hypathie@debian:~$ cd ~/MesScripts/
hypathie@debian:~/MesScripts$ ./script.b
bonjour
 



J'arrive aussi à exécuter script.b en écrivant simplement : script.b dans le terminal et non plus ./script.b  depuis son répertoire parent :


hypathie@debian:~/MesScripts$ script.b
bonjour
hypathie@debian:~/MesScripts$
 



de même depuis n'importe où :


hypathie@debian:~$ script.b
bonjour
hypathie@debian:~$
 



Mon problème c'est que dans le répertoire MesScripts il s'est créé ces fichiers :

hypathie@debian:~/MesScripts$ ls -la
total 12
drwxr-xr-x  2 hypathie hypathie 4096 mars  11 09:18 .
drwxr-xr-x 28 hypathie hypathie 4096 mars  11 09:09 ..
-rwxr--r--  1 hypathie hypathie   25 mars  11 08:35 script.b
-rw-r--r--  1 hypathie hypathie    0 mars  11 09:18 typescript



et ce qui incompréhensible pour moi c'est que depuis MesScripts si je lance script ou typescript j'ai des réponses sans comprendre ce que sont ces fichiers  :


hypathie@debian:~/MesScripts$ script
Le script a débuté, le fichier est typescript
 



et si je lance


hypathie@debian:~/MesScripts$ typescript
bash: /home/hypathie/MesScripts/typescript: Permission non accordée
 



1) qu'est-ce que c'est que ces fichiers qui je n'ai pas crée ?
J'ai du mal à penser que c'est mon éditeur de texte qui les a créé ; j'ai l'impression que c'est d'avoir modifié ~/.bashrc qui fait cela, et je ne sais pas si c'est dangereux wink

2) quel est la différence entre modifier le fichier ~/.bashrc comme je l'ai fait et placer son fichier script.b dans un des fichiers /bin, /urs/bin ou /urs/local/bin ?
En fonction de quoi choisir /bin ; ou /urs/bin ; ou /urs/local/bin ou le laisser des un répertoire qu'on a placé dans le PATH ?

Merci beaucoup

Dernière modification par Hypathie (18-03-2014 18:18:00)

Hors ligne

#2 11-03-2014 11:38:37

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Bonjour,
en ce qui concerne les dossiers : . est le dossier courant et  .. est le dossier parent.  smile

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#3 11-03-2014 11:54:30

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Hypathie a écrit :

2) quel est la différence entre modifier le fichier ~/.bashrc comme je l'ai fait et placer son fichier script.b dans un des fichiers /bin, /urs/bin ou /urs/local/bin ?


Dans /bin, /urs/bin ou /urs/local/bin, ton script peut être accessible à tous les utilisateurs du système.


I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#4 11-03-2014 12:23:04

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Bonjour paskal,

mais n'y a-t-il pas aussi un choix à faire entre /bin, /urs/bin ou /urs/local/bin,

par exemple en se disant que pour tel ou tel genre de tache qu'on donne à un script, il faut le mettre dans tel ou tel de ces répertoires ?

ou peut-on mettre un script dans n'importe lequel quelque soit ce qu'il est ?

merci

Dernière modification par Hypathie (11-03-2014 12:23:33)

Hors ligne

#5 11-03-2014 12:27:31

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Je dirais que c'est aussi une question de "bonnes pratiques", voir https://www.debian.org/doc/packaging-ma … s-2.3.html  (en)

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#6 11-03-2014 12:34:32

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Perso, j'installe mes développements dans /usr/share et je place un lien symbolique dans /usr/bin.  smile

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#7 11-03-2014 12:35:11

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Personnellement, j'ai un répertoire  bin dans mon home (plutôt que MesScripts). C'est juste une question de goût et
c'est plus en accord avec le nommage des répertoires à la unix wink

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#8 11-03-2014 12:36:44

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

mais au secours !

je n'ai rien crée d'autre que ce que j'ai mentionné dans mon #1

et quand je vais au niveau du répertoire parent (MesScripts) de script.b

et que je commence à écrire : scr  puis que je me sers de l'autocomplétion j'ai :


hypathie@debian:~/MesScripts$ scr
screendump
script
script.b
scriptreplay
scrollkeeper-config
scrollkeeper-extract
scrollkeeper-gen-seriesid
scrollkeeper-get-cl
scrollkeeper-get-content-list
scrollkeeper-get-extended-content-list
scrollkeeper-get-index-from-docpath
scrollkeeper-get-toc-from-docpath
scrollkeeper-get-toc-from-id
scrollkeeper-install
scrollkeeper-preinstall
scrollkeeper-rebuilddb
scrollkeeper-uninstall
scrollkeeper-update

 



qu'est-ce que c'est que tout cela, en particulier "script" que je n'ai jamais créé mais sur lequel je n'ai pas de droit d'exécusion ???

J'ai un peu peur de faire une bêtise mais j'ai bien envie de faire un chmod u+x script
puis de l'exécuter pour voir ce que c'est : je peux sans danger, tu crois ? big_smile

(merci je vais aller voir ton lien aussi)

Hors ligne

#9 11-03-2014 12:40:30

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

De plus, le fait d'avoir modifier ton .bashrc pour  mettre ~/MesScripts dans $PATH, ne peut pas modifier le contenu de ~/MesScripts…

Aussi, quand tu vois un fichier que tu ne connais pas, il est bon d'éviter d'essayer de l'exécuter… Par contre il serait utile de savoir
ce que c'est en le visualisant avec less par exemple, ou en demandant ce qu'en pense file :

 
$ file ~/MesScripts/typescript
 


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#10 11-03-2014 12:42:22

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

J'avais oublié, tu peux regarder si ce fichier à les droits d'exécution :


$ ls -l ~/MesScripts/
 


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#11 11-03-2014 12:44:58

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Hypathie a écrit :

J'ai un peu peur de faire une bêtise mais j'ai bien envie de faire un chmod u+x script
puis de l'exécuter pour voir ce que c'est : je peux sans danger, tu crois ? big_smile


J'ai faillit de passer le lien vers la fameuse scène de Marathon Man "c'est sans danger", mais il faut avoir le coeur bien accroché pour la visionner.  wink


I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

#12 11-03-2014 12:50:28

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

ha oui paskal, surtout qu'en y repensant, le truc bizarre de mon fil sur les points d'interrogation dans mon terminal, qui m'a vallu une réinstall, a dû arriver en faisant des p'tits essais de ce genre

lol

Hors ligne

#13 11-03-2014 12:51:15

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Hypathie a écrit :

j'ai voulu exécuter un script (nommé script.b) avec son nom de n'importe où, avec une autre méthode que celle qui consiste à le placer dans /bin, /us/bin ou /urs/local/bin.

Je voudrais le lancer en le plaçant dans un répertoire (nommé MesScripts) créé dans mon répertoire courant dans lequel je mets script.b ;
après lui avoir donné les droits d'exécution ; et après avoir modifié ~/.bashrc en y ajoutant cette ligne tout à la fin :


PATH=$PATH":~/MesScripts"
 


Ok, préfère utiliser $HOME à ~, car c'est une variable qui sera remplacée par le bon chemin absolu.
Sinon, félicitations, tout semble marcher au poil.

Hypathie a écrit :

Mais des fichiers inquiétants apparaissent dans le répertoire MesScripts :

Mon problème c'est que dans le répertoire MesScripts il s'est créé ces fichiers :

hypathie@debian:~/MesScripts$ ls -la
total 12
drwxr-xr-x  2 hypathie hypathie 4096 mars  11 09:18 .
drwxr-xr-x 28 hypathie hypathie 4096 mars  11 09:09 ..
-rwxr--r--  1 hypathie hypathie   25 mars  11 08:35 script.b
-rw-r--r--  1 hypathie hypathie    0 mars  11 09:18 typescript



et ce qui incompréhensible pour moi c'est que depuis MesScripts si je lance script ou typescript j'ai des réponses sans comprendre ce que sont ces fichiers  :


hypathie@debian:~/MesScripts$ script
Le script a débuté, le fichier est typescript
 



et si je lance


hypathie@debian:~/MesScripts$ typescript
bash: /home/hypathie/MesScripts/typescript: Permission non accordée
 



1) qu'est-ce que c'est que ces fichiers qui je n'ai pas crée ?
J'ai du mal à penser que c'est mon éditeur de texte qui les a créé ; j'ai l'impression que c'est d'avoir modifié ~/.bashrc qui fait cela, et je ne sais pas si c'est dangereux wink


Alors,
D'abord, comme disait paskal, . et .. sont présents dans chaque dossiers et sont des dossiers correspondant respectivement au dossier courant et au dossier parent.
Ensuite, typescript, c'est le fichier créé par défaut au lancement de «script», qui est une application installée par défaut.

Vue la proximité de nom entre script et script.b, je suis sûr que tu as du lancer script au lieu de script.b au moins une fois, ce qui a créé le fichier typescript.

Ensuite, transcript est dans le path, donc tu peux le lancer depuis n'importe où. Sauf qu'il n'est pas exécutable (tu n'as pas fait de chmod +x dessus), donc si tu tentes de le nancer, tu as une permission non accordée.
Rien d'hors-piste donc, tu peux sereinement supprimer ce fichier typescript.

Hypathie a écrit :

2) quel est la différence entre modifier le fichier ~/.bashrc comme je l'ai fait et placer son fichier script.b dans un des fichiers /bin, /urs/bin ou /urs/local/bin ?
En fonction de quoi choisir /bin ; ou /urs/bin ; ou /urs/local/bin ou le laisser des un répertoire qu'on a placé dans le PATH ?


Modifier son ~/.bashrc pour modifier le PATH, c'est BIEN, c'est comme ça qu'un utilisateur doit faire, et c'est même à peu près la seule manière qu'il a de faire pour faire ce que tu veux faire.

Placer son fichier exécutable dans /bin, c'est bien uniquement si tu es administratrice et que ton exécutable est nécessaire au démarrage de la machine et peut être utilisé avant que /usr ne soit accessible (parfois, /usr est fourni par le réseau, le système doit donc pouvoir booter indépendamment jusqu'à ce qu'il puisse monter /usr).

Placer son fichier exécutable dans /usr/bin, c'est bien uniquement si tu es dpkg et que tu installes un paquet Debian officiel.

Placer son fichier exécutable dans /usr/local/bin, c'est bien uniquement si tu es administratrice et n'es pas sur Debian mais sur Archlinux ou autres.


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#14 11-03-2014 12:52:04

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Pour lire un fichier typescript, il faut utiliser cat, et non pas l'exécuter big_smile

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#15 11-03-2014 12:52:52

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

@enicar : ça me donne cela


hypathie@debian:~$ file ~/MesScripts/typescript
/home/hypathie/MesScripts/typescript: empty
 



???

Hors ligne

#16 11-03-2014 12:58:58

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Lis bien la réponse de captnfab, il t'explique ce que le fichier typescript est.

Et file te dis que le fichier est vide ! Il n'y a rien dedans (ce que te confirmera le ls -l)

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#17 11-03-2014 13:04:40

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Merci captnfab,

oui c'est bien ce qui s'est passer j'ai exécuter une fois (au moins script) qui est bien un truc vide ;
effectivement comme c'était par erreur, je n'avais pas les droits sur "script", et j'ai tout effacer après avoir compris... Sans problème smile

Enfin pour ce qui apparaît quand j'utilise l'autocomplétion (mon #8) c'est peut-être des commandes et non pas des fichiers ?

Modifier son ~/.bashrc pour modifier le PATH, c'est BIEN, c'est comme ça qu'un utilisateur doit faire, et c'est même à peu près la seule manière qu'il a de faire pour faire ce que tu veux faire.

Placer son fichier exécutable dans /bin, c'est bien uniquement si tu es administratrice et que ton exécutable est nécessaire au démarrage de la machine et peut être utilisé avant que /usr ne soit accessible (parfois, /usr est fourni par le réseau, le système doit donc pouvoir booter indépendamment jusqu'à ce qu'il puisse monter /usr).

Placer son fichier exécutable dans /usr/bin, c'est bien uniquement si tu es dpkg et que tu installes un paquet Debian officiel.

Placer son fichier exécutable dans /usr/local/bin, c'est bien uniquement si tu es administratrice et n'es pas sur Debian mais sur Archlinux ou autres



je peux le préciser dans le wiki https://debian-facile.org/doc:programma … ll:scripts? et ouvrir un fil pour qu'on m'aide à comprendre l'exemple de script de la deuxième partie ?

Hors ligne

#18 11-03-2014 13:06:48

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [résolu]lancer un script de n'importe en modifiant ~/.bashrc

Oui.

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

Pied de page des forums