Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2011, 21h36   #1
Membre régulier
 
Inscription : août 2008
Messages : 401
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 401
Points : 76
Points : 76
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 :
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 :
1
2
 
Le programme «*zf*» n'est pas installé
je vosu remercie pour vos réponses
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 23h38   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
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.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/07/2011, 21h35   #3
Membre régulier
 
Inscription : août 2008
Messages : 401
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 401
Points : 76
Points : 76
merci de ta réponse, je suis sous ubuntu

si je tape
Code :
1
2
 
var/www/bin$ zf.sh show version

j'ai ceci
Code :
1
2
 
Le programme «*zf.sh*» n'est pas installé.  Vous pouvez l'installer en saisissant:
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 23h00   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
Bonjour,

un script se lance ainsi : ./script.sh (le point représentant le répertoire courant).
Et donc, dans ton cas :
Code :
1
2
cd /var/www/bin
./zf.sh show version
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/07/2011, 07h19   #5
Membre régulier
 
Inscription : août 2008
Messages : 401
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 401
Points : 76
Points : 76
si je tape ceci
Code :
1
2
 
/var/www/bin$ ./zf.sh show version
cela fonctionne
Code :
1
2
 
Zend Framework Version: 1.11.8
si je tape ceci
Code :
1
2
 
/var/www/bin$ bash zf.sh show version
cela fonctionne aussi
Code :
1
2
 
Zend Framework Version: 1.11.8
mais je change de repertoire par exemple
Code :
1
2
 
/var/www/htdocs/exemples$ ./zf.sh show version
cela ne fonctionne pas
Code :
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 ?
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 09h26   #6
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
«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 :
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
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/07/2011, 12h27   #7
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
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 : 3 055
Points : 4 934
Points : 4 934
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 :
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 :
/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...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/07/2011, 22h12   #8
Membre régulier
 
Inscription : août 2008
Messages : 401
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 401
Points : 76
Points : 76
Code :
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.
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 23h27   #9
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
ç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
...
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/07/2011, 08h25   #10
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
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 : 3 055
Points : 4 934
Points : 4 934
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...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/07/2011, 08h30   #11
Membre régulier
 
Inscription : août 2008
Messages : 401
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 401
Points : 76
Points : 76
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 :
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 09h42   #12
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
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 : 3 055
Points : 4 934
Points : 4 934
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 :
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 :
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 :
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 :
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
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/07/2011, 08h53   #13
Membre régulier
 
Inscription : août 2008
Messages : 401
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 401
Points : 76
Points : 76
ça fonctionne
Code :
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h15.


 
 
 
 
Partenaires

Hébergement Web