Debutant unix

Fermé
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 17 mars 2009 à 22:44
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 18 mars 2009 à 00:31
Bonjour,
je suis debutant sous linux ubuntu et me heurte a quelques soucis :

1) je n'arrive pas a faire les install depuis le applications/add-remove (exemple vlc)
message d'erreur au bout de 24 fichiers telecharges sur 35 : The repository might be no longer available or could not be contacted because of network problems.
pourtant je n'ai aucun souci de connection je pense

2) dans un script shell voici un morceau de code tout simple :
#!/bin/sh

echo Bonjour $USER...

echo Tu es actuellement dans le repertoire $PWD

echo -----------------------


if test $# -lt 1
then echo insufficient arguments

fi
la condition marche parfaitement mais dans le terminal s'affiche tout le temps : not found
(je pense pour le $#)

3)j'ai essaye chmod u+rwx *.sh,chmod g+rwx *.sh,chmod o+rwx *.sh
le g et o ne changent rien et je narrive pas a executer le shell avec ./*.sh
mais suis oblige de faire sh *.sh

merci beaucoup d'avance pour toute suggestion ou astuce

cordialement,

8 réponses

KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
17 mars 2009 à 22:50
Pour faire avancer le Shilimilibilick :

Ton bout de script marche parfaitement chez moi ...
Voici la sortie
Nibbler:~ KuK$ ./ccm.sh 
Bonjour KuK...
Tu es actuellement dans le repertoire /Users/KuK
-----------------------
insufficient arguments
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
17 mars 2009 à 22:51
chez moi :

ubuntu@ubuntu:/media/LINUX_DATA/2ATP4/v2/work$ sh TP4.sh
--------------------
Bonjour ubuntu...
Tu es actuellement dans le repertoire /media/LINUX_DATA/2ATP4/v2/work
--------------------
-----------------------
: not found
0
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
17 mars 2009 à 22:53
tu peux faire un ls -l TP4.sh ?
histoire de voir les droits sur ton fichier
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
17 mars 2009 à 22:58
voila :
ubuntu@ubuntu:/media/LINUX_DATA/2ATP4/v2/work$ ls -l
total 8
-rwx------ 1 ubuntu root 0 2009-03-17 21:25 temp.sh
-rwx------ 1 ubuntu root 224 2009-03-17 21:27 TP4.sh
-rw------- 1 ubuntu root 232 2009-03-17 21:26 TP4.sh~

ubuntu@ubuntu:/media/LINUX_DATA/2ATP4/v2/work$ chmod g+rwx TP4.sh

ubuntu@ubuntu:/media/LINUX_DATA/2ATP4/v2/work$ ls -l
total 8
-rwx------ 1 ubuntu root 0 2009-03-17 21:25 temp.sh
-rwx------ 1 ubuntu root 224 2009-03-17 21:27 TP4.sh !!!!!ne change rien...
-rw------- 1 ubuntu root 232 2009-03-17 21:26 TP4.sh~
ubuntu@ubuntu:/media/LINUX_DATA/2ATP4/v2/work$
0
synopsis8 Messages postés 1364 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 1 juin 2013 243
17 mars 2009 à 23:16
1) Dans synaptic tu peux choisir le merilleur serveur pour telecharger les paquets :
Settings -> Repositories -> Onglet "Ubuntu Software" -> "Download from :" -> et la tu choisis ton pays et "Select best server"

Ca t'orientera sur le serveur qui repond le mieux.
Si tu as encore le soucis avec un autre repository qui ne soit pas ubuntu, ca veut dire qu'il n'est simplement pas disponible, et ca ne vient pas de la liaison reseau.

2) Rajoute des crochets [ ] et dans ta condition "if' avec des backquotes ` autour de la fonction test a executer.

if [ `test` $# -lt 1 ]
then echo insufficient arguments

fi

Note que j'ai aussi mis des espaces pour séparer les crochets, ca fait plus propre.

3) Je sais, ca énerve, tu as bien mis les droits en exécutions, mais il faut que tu fasses 'sh monscript.sh" pour avoir qq chose.
Comme tu m'a sl'air d'être un garçon bien organisé et bien structuré (je le vois a la manière dont tu pas pose tes questions), je présume que tu as sagement rangé tous tes scripts dans un sous-répertoire.
Normallement, un chmod 755 sur le fichier.sh voir 700 si tu es parano est suffisant.
Neanmoins, si tu ranges te scripts dans un sous-repertoire, penses a mettre a jour ton PATH dans ton fichier .profile ou .bashrc comme tu preferes, de maniere a avoir :
PATH=$PATH:$HOME/SousRepertoireOuJaiTousMesScripts

Voila.
Tiens nous au jus.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
17 mars 2009 à 23:33
tout d'abord merci beaucoup pour ce message clair et structure

1)dans synaptic j'ai lance la recherche et selectionne le serveur resultant : cz.archive.ubuntu.com
(czeck republic ??)
pourtant dans synoptic je recherche vlc et ne le trouve pas
donc je reviens dans add/remove et cette fois bloque de la meme maniere a 36 fichiers sur 40

2) et 3) voici le resultat :

ubuntu@ubuntu:~/Desktop/work$ sh TP4.sh
--------------------
Bonjour ubuntu...
Tu es actuellement dans le repertoire /home/ubuntu/Desktop/work
--------------------
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
-----------------------
: not found
insufficient arguments

du code suivant :
#!/bin/sh
echo --------------------

echo Bonjour $USER...

echo Tu es actuellement dans le repertoire $PWD

echo --------------------
echo $PATH

echo -----------------------



if [ `test` $# -lt 1 ]
then echo insufficient arguments

fi

je suis desole de te decevoir mais etant novice je ne sais pas de quoi s'agit les fichiers
.profile ou .bashrc
le path est il errone ?
par ailleurs j'ai toujours le not found

merci encore
0
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
17 mars 2009 à 23:39
Les fichiers .pofile et .bashrc sont des fichiers de "profil"
Ils contiennent des options pour

.profile : ton environnement (variables, PATH, etc ...)
.bashrc : ton shell bash
0
synopsis8 Messages postés 1364 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 1 juin 2013 243
18 mars 2009 à 00:03
1) Effectivement tu rapatries tes dépots depuis un serveur Tchèque.
Mais on ne sait pas ou tu es, si tu es a Prague c'est bien, sinon il faut le changer avec la méthode que je t'ai précisé plus haut.
Settings -> Repositories -> Onglet "Ubuntu Software" -> "Download from :" -> et la tu choisis ton pays et "Select best server"
Une fois cela fait tu fais une mise a jour du catalogue.

Si VLC n'est toujours pas disponible, dans ce cas il faudra rajouter le repository qui distribue VLS dans ton Synaptic. De cette maniere Sysnaptic saura ou aller le telecharger, par ailleurs il saura aussi le mettre a jour lorsque de nouvelels veriosn seront publiees.

Pour rajouter le repository distribuant VLC, tu peux chercher dans google : "VLC ubuntu repository" ou bien encore "VLC ubuntu sources.list" car la liste des repositories se trouve dans le fichier sources.list

2) J'ai recopié ton code sur mon pc, et je n'ai pas l'affichage du message "not found" a l'exécution.
Ca ne vient pas du code, peut-être que ce message s'affiche systématiquement quand tu lances une commande.
Mais ton code est propre selon moi.

Concernant les fichiers .profile ou .bashrc ce sont des fichiers caches précédés par un point dans leur nom (c'est grace a ce point qu'ils sont d'ailleurs cachés).

Ces fichiers ont pour vocations de charger des paramètres, des variables, des alias lorsque tu ouvres une session (une simple fenêtre de type console est une session), tu peux modifier toi même ces fichiers a souhaits.
Ces fichiers ont aussi pour vocation de fixer les paramètres de la variable PATH.
Le role de la variable PATH est de répertorier tous les répertoires ou se trouves des commandes a exécuter, cela existe sur n'importe quel OS.
De cette maniere le simple fait d'appeler une commande particulière (ex TP4,.sh) même si tu n'es pas positionne dans le répertoire ou cette commande réside, fait que le système par le biais de la variable PATH sait exactement ou la commande TP4.sh se trouve.

Il en est de même si tu es positionné dans un répertoire "/home/ubuntu/Desktop/work" et que tu veuilles exécuter une commande, il faut déclarer ce répertoire comme contenant des commandes a exécuter.

Pour cela, soit dans ton fichier .profile soit sans ton fichier .bashrc

Il te faut remplacer la ligne :
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin­:/usr/games
par la ligne
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin­:/usr/games:/home/ubuntu/Desktop/work

N'oublie pas de quitter la console et d'en ouvrir une nouvelle apres ca.
La tu n'auras plus besoin d'exécuter tes scripts en tapant "sh TP4.sh" mais simplement "TP4.sh"

Si tu n'as pas de ligne PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin­:/usr/games
Cela veut dire que la variable PATH est calibrée de manière générale pour tous les utilisateurs et dans un autre fichier.
Dans ce cas, que ce soit dans ton .profile ou ton ,bashrc (tu choisis comme tu veux), tu mettras la ligne :

PATH=$PATH:/home/ubuntu/Desktop/work

Voila, n'hésites pas si tu as besoin de clarifications, mce sera avec plaisir, mais je risque d'aller me coucher bientôt.
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
18 mars 2009 à 00:31
ok merci encore pour les infos

pour les install j'ai eu un ami au tel entre temps ki me dit :

!!!!QUOI!!!! t en live CD ???? evidemment que les install ne marchent pas nigaud!!!!!

comme je l'ai dit je suis sous linux depuis 6h

donc j install en ce moment ayant fait une ext3 et une swap

je testerai ensuite cette histoire de path et posterai des ke possible

merci encore pour ton aide et a tres bientot
0