IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

comment crée t-on une commande sous console


Sujet :

Linux

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut comment crée t-on une commande sous console
    Bonsoir, comment fait t'on pour que en mode console il reconnaissent la commande

    exemple
    grâce à la commande php et version la console nous donne la version de php.

    il me semble que c'est un .sh qu'il faut utiliser ?

    j'ai un dossier framwork avec son .sh qui se trouve en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /var/www/bin/zf.sh
    bon but est que si je tappe
    la console me donner la version de zf.

    dans l'état actuelle si je tape
    la console m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le programme «*zf*» n'est pas installé
    je vosu remercie pour vos réponses

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    /var/www/bin n'est peut-être pas dans ton PATH, ou alors tu n'as pas les droits d'exécution sur le dossier.
    que retourne :/var/www/bin/zf.sh show version ?

    Contrairement à (Win)DOS, les extentions de fichiers ne sont pas facultatives lorsqu'on appelle un programme.
    Dernière modification par Invité ; 14/07/2011 à 23h01.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de ta réponse, je suis sous ubuntu

    si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var/www/bin$ zf.sh show version

    j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le programme «*zf.sh*» n'est pas installé.  Vous pouvez l'installer en saisissant:

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    un script se lance ainsi : ./script.sh (le point représentant le répertoire courant).
    Et donc, dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /var/www/bin
    ./zf.sh show version

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    si je tape ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /var/www/bin$ ./zf.sh show version
    cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Zend Framework Version: 1.11.8
    si je tape ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /var/www/bin$ bash zf.sh show version
    cela fonctionne aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Zend Framework Version: 1.11.8
    mais je change de repertoire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /var/www/htdocs/exemples$ ./zf.sh show version
    cela ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bash: ./zf.sh: Aucun fichier ou dossier de ce type
    il n'est pas portable la commande zf? comment je peux faire pour l'appeller dans n'importe quelle dossier ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    «le point représente le répertoire courant» où se trouve le script !
    si tu changes de répertoire, alors tu ne peux plus appeler le script de cette façon.

    si tu descends de deux répertoires dans une autre branche de l'arborescence, alors il faut remonter d'autant et indiquer le bon répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cd /var/www/bin
    ./zf.sh show version
    cd /var/www/htdocs/exemples
    ../../bin/zf.sh show version
    ou encore, comme je te l'ai "dit", il faut ajouter /var/www/bin à ton PATH

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 875
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    «le point représente le répertoire courant» où se trouve le script !
    si tu changes de répertoire, alors tu ne peux plus appeler le script de cette façon.

    si tu descends de deux répertoires dans une autre branche de l'arborescence, alors il faut remonter d'autant et indiquer le bon répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cd /var/www/bin
    ./zf.sh show version
    cd /var/www/htdocs/exemples
    ../../bin/zf.sh show version
    Ou bien en donnant directement le chemin lors de l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /var/www/bin/zf.sh show version
    Citation Envoyé par N_BaH Voir le message
    ou encore, comme je te l'ai "dit", il faut ajouter /var/www/bin à ton PATH
    Ce qu'il y a probablement de plus efficace (à long terme) à faire effectivement...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ou encore, comme je te l'ai "dit", il faut ajouter /var/www/bin à ton PATH
    ou se trouve le fichier qui relie a "PATH" ??
    comment je procède, sur windows il fallait aller sur systeme/option/environnement de developpement.

  9. #9
    Invité
    Invité(e)
    Par défaut
    ça dépend
    si tu veux que la variable soit définie globalement (ce qui n'est pas forcément une bonne idée), il faut l'exporter depuis le fichier /etc/profile
    si tu veux qu'elle soit définie uniquement pour ton utilisateur, tu dois l'exporter depuis son fichier /home/$tonUser/.profile

    il pourrait être intéressant que tu lises quelques cours concernant UNIX/Linux
    - système de fichier
    - shell
    ...

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 875
    Billets dans le blog
    1
    Par défaut
    Pour faire simple:
    - le fichier "/etc/profile" est lu par tout utilisateur qui se connecte. Ca permet de définir des actions pour tout le monde.
    - le fichier "$HOME/.profile" ($HOME étant le répertoire personnel de chacun) est ensuite lu par l'utilisateur. Ca permet de définir des actions pour une personne en particulier. A noter que sous Linux, ce fichier se nomme "$HOME/.bash_profile"
    - le fichier "$HOME/.bashrc" est lu à chaque fois qu'un shell est lancé. Un shell est lancé par exemple quand tu ouvres une fenêtre console, quand tu tapes ":sh" sous "vi" pour basculer en shell. Ca permet de définir des actions spécifiques plus fines

    De plus à ce système de base, on peut rajouter des trucs plus complexes. Par exemple sous Linux on trouve un dossier "/etc/profile.d" contenant plein de scripts particuliers. Chacun de ces scripts sera exécuté à la connexion (entre le /etc/profile et le .profile). On peut trouver aussi un /etc/bashrc. Bref on peut affiner quoi...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    c'est dimmage pour ton lien il n'y a pas de pdf, donc je rame pour rechercher ce que je veux

    voici ce que j'ai essayer mais cela ne fonctionne pas

    Cela fait plusieurs jours que je ne trouve pas de fichier de configration du path,

    en fait je me suis rendu compte qu'il fallait montrer les fichiers caché

    voici ce que j'ai essayer j'ai donc ouvert dans home/user/.bashrc


    j'ai donc essayer de mettre cette ligne au début de ce fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    echo 'export PATH=$PATH:/var/www/bin/zf.sh' /home/user/.bashrc 
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
     
    # If not running interactively, don't do anything
    [ -z "$PS1" ] && return
    en appelant zf.sh il ne connait pas la commande

  12. #12
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 875
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par keokaz Voir le message
    voici ce que j'ai essayer j'ai donc ouvert dans home/user/.bashrc


    j'ai donc essayer de mettre cette ligne au début de ce fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    echo 'export PATH=$PATH:/var/www/bin/zf.sh' /home/user/.bashrc 
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
     
    # If not running interactively, don't do anything
    [ -z "$PS1" ] && return
    Ben non. Ta ligne ne veut rien dire => afficher 'export PATH=$PATH:/var/www/bin/zf.sh' /home/user/.bashrc => ça affichera bêtement "export PATH=$PATH:/var/www/bin/zf.sh' /home/user/.bashrc" !!!

    Tu vois bien que ce fichier commence par 3 lignes en commentaire qui t'expliquent à quoi il sert. Il te dit même d'aller voir le document "/usr/share/doc/bash/examples/startup-files" pour avoir des exemples. Mais c'est vrai que les commentaires sont un truc inutile qu'il n'est pas nécessaire de se fatiguer à lire et à comprendre...

    Ensuite il y a les actions proprement dites. La toute première est de détecter si le shell qui invoque ce fichier est un shell de travail ou un script. Et la façon de détecter est de tester si la variable "PS1" est vide ou pas. Si elle est vide, on quitte le .bashrc.

    Et ensuite, c'est à ta disposition. Donc en dessous, te suffit de rajouter la modification du PATH. Et c'est quoi le PATH ? C'est une variable donc on le modifie en tapant PATH="ce que l'on veut". Mais comme il serait bête de perdre le PATH actuel, il sera intéressant de dire que le nouveau PATH sera égal à l'ancien concaténé du séparateur ":" et du nouveau chemin. Et on ne met dans le PATH que des chemins, pas des commandes (comme sous Windows d'ailleurs !!!)

    Donc tu rajoutes la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PATH="$PATH:/var/www/bin"
    Ensuite, il sera nécessaire d'exporter cette variable afin qu'elle soit connue de tous les processus fils de ton shell courant. Donc tu rajoutes la ligne
    Ce qui devrait te donner le fichier suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
     
    # If not running interactively, don't do anything
    [ -z "$PS1" ] && return
     
    PATH="$PATH:/var/www/bin"
    export PATH
    A noter que le bash accepte d'exporter une variable lors de son initialisation (ce qui n'est pas forcément vrai dans les autres shells). Donc si t'es certain d'être toujours en bash, tu peux remplacer les 2 dernières lignes par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    export PATH="$PATH:/var/www/bin"
    Citation Envoyé par keokaz Voir le message
    en fait je me suis rendu compte qu'il fallait montrer les fichiers caché
    J'ai l'impression que tu te crois toujours sous Windows et que tu travailles avec les fenêtres de visualisation. Alors pour un utilisateur lambda qui se contente de travailler sous gimp, openoffice ou firefox ça peut suffire mais quand on veut ensuite se mettre à réellement "administrer" son système (modifier l'environnement, rajouter des programmes, etc...), faut alors prendre l'habitude de travailler en lignes de commandes. Plus rébarbatif au début certes ; surtout quand on vient du monde des fenêtres magiques où on se contente de cliquer dans des cases sans savoir ce qui se passe derrière (et où il se passe plus souvent des choses que tu ne voulais pas qu'elles se passent) mais ensuite tellement plus gratifiant... => http://projet.chezdamien.net/article...as-windows.php
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @mon dossier: zf.sh show version
    Je te remercie beaucoup de ton explication, j'ai lu des tutos shell et des tutos scripts , mais j'avais du mal a comprendre comment ça fonctionne et par ou commencer, je travaille souvent sous ubuntu souvent et je n'ai pas de reflexe de chercher les fichiers cacher, d'ailleur sous XP ou 7 je mets toujours l'option "afficher les fichiers cachés", par contre sous linux je ne sais pas ou modfier cette option (faut dire que je ne cherche pas) a chaque fois dans quelques situation je vais sur affichage et afficher les fichiers cacher.

    c'est très déroutant quand c'est la première fois de modifier ce fichiers, pourant je devrais être habituer car sous linux je change quelque fois la configuration comme php.ini, ou httpd.conf pour apache, ou les .yml, mais c'est le langage qui change


    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/08/2012, 16h18
  2. Réponses: 2
    Dernier message: 08/01/2008, 14h11
  3. Comment lancer une commande sous BCB
    Par Xavier dans le forum C++Builder
    Réponses: 8
    Dernier message: 07/01/2007, 07h58
  4. Comment enregistrer valeurs d'une DataSet sous Excel?
    Par alfadev dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/08/2006, 14h33
  5. comment faire insertion par une transaction sous access
    Par iam dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/04/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo