Unix - Scripts Sh
Répondre à la discussion
Affichage des résultats 1 à 23 sur 23

Unix - Scripts Sh



  1. #1
    invitee75a2d43

    Unix - Scripts Sh


    ------

    Bonjour, Je suis absolument tout nouveau en info, car en fait je suis en licence de maths mais j´ai une UE d´info, j´aii commencé cette semaine mon cours de Unix. Donc je m´excuse à l´avance pour la naivité de mes questions:

    Dans mes exos de Unix, il s´agit entre autre d´executer des scripts sh, donc dans mon terminal de me mettre dans le bon répertoire et d´executer un script. Pour ça j´écrit simplement "machin.sh". Est-ce faux? En tous cas il n´y a aucun script qui marche, j´obtient toujours la réponse "commande introuvable".

    Quelqu´un a-t-il une idée? J´utilise Ubuntu.

    Merci d´avance

    -----

  2. #2
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par christophe_de_Berlin Voir le message
    Dans mes exos de Unix, il s´agit entre autre d´executer des scripts sh, donc dans mon terminal de me mettre dans le bon répertoire et d´executer un script. Pour ça j´écrit simplement "machin.sh". Est-ce faux? En tous cas il n´y a aucun script qui marche, j´obtient toujours la réponse "commande introuvable".
    Euh, oui, ça semble pas mal... (quoique, dans l'idéal, il vaut mieux taper ./machin.sh)

    Tu as peut être oublié de donner les droits en exécution à ton script.
    Il faut pour celà lancer la commande
    Code:
    chmod 755 machin.sh
    Normallement, tu pourras alors l'appeler...

  3. #3
    invitee75a2d43

    Re : Unix - Scripts Sh

    je crois presque avoir trouvé une réponse à ma question: serait-ce possible qu´il faille écrire: "sh machin.sh" au lieu de "machin.sh"?
    j´ai vu ça par hasard quelquepart mais je n´en suis pas sûr.

  4. #4
    invitee75a2d43

    Re : Unix - Scripts Sh

    ben ça a l´air d´être exactement ça: "sh machin.sh". Bizarre j´ai lu ça nul part dans mon cours. Est-ce d´une façon générale comme ça ou bien seulement dans Ubuntu? ou bien est-ce effectivement une question de droits comme tu dis?

  5. A voir en vidéo sur Futura
  6. #5
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par christophe_de_Berlin Voir le message
    ben ça a l´air d´être exactement ça: "sh machin.sh". Bizarre j´ai lu ça nul part dans mon cours. Est-ce d´une façon générale comme ça ou bien seulement dans Ubuntu? ou bien est-ce effectivement une question de droits comme tu dis?
    As-tu essayé de lancer la commande indiquée (chmod) ?
    C'est suffisant pour pouvoir le lancer directement (sous Ubuntu y compris)

    Je résume:
    Code:
    chmod 755 machin.sh
    ./machin.sh
    (sans oublier le "./" dans la 2ème ligne)

    Sinon, effectivement sh machin.sh marche... mais ce n'est pas le plus pratique...

  7. #6
    invitee75a2d43

    Re : Unix - Scripts Sh

    non je n´ai pas essayé, c´est mon deuxième jour en Unix je ne connais pas cette commande mais je m´en vais de ce pas l´essayer. merci

  8. #7
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par christophe_de_Berlin Voir le message
    non je n´ai pas essayé, c´est mon deuxième jour en Unix je ne connais pas cette commande mais je m´en vais de ce pas l´essayer. merci
    OK, chmod permet de changer les droits d'utilisation des fichiers/programmes.
    Ces droits sont de 3 types:
    - lecture = 4
    - écriture = 2
    - exécution = 1
    7 signifie les trois (7=1+2+4)
    5 signifie lecture et éxécution (5=1+4)
    ...

    Et les 3 chiffres correspondent aux droits de chaque type d'utilisateurs. Dans l'ordre:
    - le propriétaire du fichier
    - le groupe associé au fichier
    - tous les autres.

    lancer la commande chmod 755 permet donc:
    - de donner au propriétaire (toi) tous les droits
    - de donner au groupe et aux autres la possibilité de lire ou d'exécuter le programme, mais pas de le modifier.

    Tu trouveras sur le net pas mal d'infos à ce sujet

  9. #8
    inviteb276d5b4

    Re : Unix - Scripts Sh

    Bonjour.
    Citation Envoyé par christophe_de_Berlin
    j´obtient toujours la réponse "commande introuvable".
    Tu n'est pas logué en « root » mais en simple utilisateur.
    Tape « su » puis ton mot de passe root et lance ton script.

    Ps: C'est une histoire de goût mais on est mieux sous Fedora que sous Ubuntu

  10. #9
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par Bob Trebor Voir le message
    Tu n'est pas logué en « root » mais en simple utilisateur.
    Tape « su » puis ton mot de passe root et lance ton script.

    Non, passer en root n'est surtout pas la solution. Le profil root n'est pas fait pour lancer des scripts utilisateurs, on n'est pas sous windows !
    Comprendre basiquement la gestion des droits est un minimum quand on passe sous Unix/Linux (note pour christophe_de_Berlin: Ubuntu est une distribution Linux, pas Unix, mais c'est pas grave )
    Et la solution "passe en root" n'est vraiment pas un bon conseil... surtout que dans le cas présent, je ne crois pas que ça aurait changé quoique ce soit...

    Ps: C'est une histoire de goût mais on est mieux sous Fedora que sous Ubuntu
    Ce n'est effectivement qu'une question de gout

  11. #10
    inviteb276d5b4

    Re : Unix - Scripts Sh

    Citation Envoyé par Faith
    Non, passer en root n'est surtout pas la solution...
    Oui tu as raison !
    Mais ça permet de tester si c'est un problème de droit. Si la commande passe en root, c'est qu'en tant qu'utilisateur tu n'as pas les droits suffisants. J'aurai du préciser « pour tester ».

    Citation Envoyé par Faith
    Ce n'est effectivement qu'une question de gout
    Enfin pour moi pas seulement.
    Fedora est la seule version qui confond pas ma carte tv avec ma carte son.
    Plus l'ajout de PlanetCCRMA avec un noyau RT c'est le top pour la musique.

  12. #11
    invite8ef93f7f

    Re : Unix - Scripts Sh

    chmod ne fonctionne pas qu'avec les combinaisons de chiffres

    tu peux aussi utiliser une solution que je trouve + facile à mémoriser

    chmod u+x machin.sh

    en résumé :
    chmod

    ensuite le groupe (u=users g=group o=others a=all(tous) )
    ajouter (+) ou enlever (-) des droits
    droit en lecture (r) ecriture (w) ou execution (x)

    un bon résumé ici (sur la doc ubuntu mais c'est valable pour toutes les distros linux)
    http://doc.ubuntu-fr.org/droits#les_permissions

  13. #12
    polo974

    Re : Unix - Scripts Sh

    ne pas oublier la commande man (manuel d'emploi).
    commencer par man man pour savoir comment fonctionne man.
    puis passer aux autres.
    donc:
    man chmod

    mais bon traaf a tout dit avec chmod u+x...

    su est une commande dangereuse, vu qu'elle ouvre tous les droits sauf ceux à l'erreur... (sans parler des risques pirates)

  14. #13
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par Bob Trebor Voir le message
    Mais ça permet de tester si c'est un problème de droit. Si la commande passe en root, c'est qu'en tant qu'utilisateur tu n'as pas les droits suffisants. J'aurai du préciser « pour tester ».
    Je viens de tester, cette solution ne marche pas: même en root, il faut définir les droits d'exécution.

    Citation Envoyé par polo974
    commencer par man man
    lol, ça me rappelle l'école Mais c'est vrai...

  15. #14
    invite09c249d5

    Re : Unix - Scripts Sh

    T'es même pas obligé de mettre une extension .sh, vu qu'un script est un fichier texte executable, dans lequel se trouve des commandes. Tu peux le faire si tu veux etre sur de le reconnaitre.

    Pour l'executer, tu fais ./ton_script, sh ton_script ou même bash ton_script. Ça dépend de ton terminal, mais ce n'est pas très important. C'est comme ça sur linux, BSD, Solaris.
    Les autres, (AIX, HP-UX, Irix, SV,...) je sais pas, mais ça doit être pareil vu qu'ils utilisent les mêmes standards POSIX.

  16. #15
    inviteb276d5b4

    Re : Unix - Scripts Sh

    Citation Envoyé par Faith Voir le message
    Je viens de tester, cette solution ne marche pas: même en root, il faut définir les droits d'exécution.
    Tiens c'est étrange. Sous fedora ça passe. Tu utilises quoi comme commande ?
    Moi je fais « bash mon-script » et ça roule sans définir de droits.

  17. #16
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par Bob Trebor Voir le message
    Tiens c'est étrange. Sous fedora ça passe. Tu utilises quoi comme commande ?
    Moi je fais « bash mon-script » et ça roule sans définir de droits.
    Ou là, on parle de deux choses très différentes:
    a ) ./mon-script => mon-script est une commande qui doit être exécutée, donc avoir les droits en exécution
    b ) bash mon-script => mon-script est un paramètre de bash donc on a juste besoin des droits en utilisation.

  18. #17
    invitebda71f50

    Re : Unix - Scripts Sh

    Bonsoir.
    Alors, c'est:
    sh ./la_commande.sh

    Sinon pour faire plus simple:
    Il faut donner au .sh les droits d'éxecution et en plus spécifier dans le fichier qu'il s'exécute avec la commande sh.
    La toute première ligne du fichier doit être:
    Code:
    #!/bin/sh
    De plus, il faut préciser le chemin complet même si on est dans le bon répertoire et lancer avec:
    ./la_commande.sh

    Dans le nom du fichier, l'extension est purement informative et ne sert absolument à rien à linux.

    Et on déconseille en général fortement d'ajouter "./" dans le path, ça contituerais un gros trou de sécurité.

  19. #18
    invite2c6a0bae

    Re : Unix - Scripts Sh

    Citation Envoyé par le fatumbi Voir le message
    Bonsoir.
    Alors, c'est:
    sh ./la_commande.sh

    Et on déconseille en général fortement d'ajouter "./" dans le path, ça contituerais un gros trou de sécurité.
    tu veux dire que taper :

    ./la_commande.sh

    est dangereux ??? Peux tu preciser pourquoi stp ?

    Merci.

  20. #19
    invite765732342432
    Invité

    Re : Unix - Scripts Sh

    Citation Envoyé par .:Spip:. Voir le message
    ./la_commande.sh

    est dangereux ??? Peux tu preciser pourquoi stp ?
    Non, non, ce n'est pas ce qu'il a dit !
    Il y a une variable "path" qui contient tous les chemins dans lesquels chercher une commande lorsqu'on l'appelle.

    Si on rajoute './' à ce "path", alors, il suffit de taper "la_commande.sh" (sans le './') pour la lancer (le système cherche dans le répertoire courant, trouve et lance).
    Ca peut éventuellement poser un problème si on a une commande dans un répertoire de même nom qu'une commande "système".

    Suis-je assez clair ?

  21. #20
    invite2c6a0bae

    Re : Unix - Scripts Sh

    Ah bah, justement, ca rebondit sur une question que je me pose depuis un moment dont je n'ai guere pris le temps de resoudre. Et en gros tu me donnes la soluce (décidement ce soir... )

    En tout cas je crois voir ce que tu dis.

    En fait, mon probleme c'etait de pouvoir executer Xtremsplit dans n'importe quel dossier.

    donc d'apres Léa
    http://www.lea-linux.org/cached/inde..._son_PATH.html
    Par contre pas tout compris. Faudrait que je regarde ca plus en détail.

    En tout cas, si tu sais ce qu'il faut modifier sur mandriva pour ca, je prendrai volontier.

    François.

  22. #21
    invitebda71f50

    Re : Unix - Scripts Sh

    Non, ce n'est pas ça qui est dangereux, au contraire il vaut mieux s'obliger à devoir spécifier "./" (... ou de bien ranger ses scripts.)

    On pourrait avoir l'idée d'ajouter "." dans la variable d'environnement $PATH$ de manière à pouvoir taper directement:
    la_commande.sh

    Donc sans avoir à spécifier le chemin, justement, ce qui parrait ne pas être une mauvaise idée pour se faciliter la vie...

    Mais n'importe quel processus lancé sous le compte de l'utilisateur, herite de $PATH$ et pourrait se servir de ce trou pour exécuter n'importe quoi n'importe ou (dans /tmp p.ex ou du côté d'un cache internet quelconque)

    cf : http://ploug.eu.org/doc/conseils-securite-unix.pdf.

    Ici, ils le déconseillent bien pour root mais conseillent ceci pour les utilisateurs: "Dans les règles de recherche (path ou PATH), spécifiez le répertoire courant “.” en fin de liste et non au début." ... mais je ne suis pas d'accord, ça permet juste d'éviter qu'une commande banale soit détournée.

  23. #22
    invitebda71f50

    Re : Unix - Scripts Sh

    tiens, j'ai été un peu longuet à retrouver le pdf ...

    pour interpréter ton lien, le plus simple est de bien ranger tes affaires:
    tu crées un répertoire
    ~/bin
    où tu poses tes scripts et programmes

    Puis tu edites ~/.bashrc (plus souvent: ~/.profile suivant le shell et la distrib) pour ajouter ":~/bin" dans la ligne qui défini la liste des chemins (PATH=.......) où sont recherchés les commandes exécutables.

  24. #23
    invitee75a2d43

    Re : Unix - Scripts Sh

    ou la la!! ben dites donc, j´en ai eu des réponses!! Pas mal pour mon deuxième jour! Donc je vais essayer d´analyser la chose, ça fait beaucoup mais je vais y arriver.

    merci à tous

    Christophe

Discussions similaires

  1. QCad : créer des scripts ?
    Par invite58a3c88f dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 11/11/2007, 09h16
  2. unix et linux
    Par invitefacf0d25 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 07/03/2007, 17h15
  3. unix
    Par invited9d78a37 dans le forum Logiciel - Software - Open Source
    Réponses: 33
    Dernier message: 09/02/2007, 11h20
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...