Unix TD

Résolu
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010 - 29 déc. 2008 à 12:36
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010 - 2 janv. 2009 à 12:56
bjr tt le monde
1)je voudrais créer l'arborescence suivant ;en utilisant que les chemins relatifs
dans /home/Olivier il y a 2 répertoires :projet1 et projet2
                                                 -projet1 contient deux fichiers fich11 fich12.
                                                 -projet2 contient 3 fichiers  fich21 fich22 fich23. 
dans /home/Alain il y a aussi deux répertoires ;projet3 et projet4
                                                  -projet3 contient 3 fichiers fich31 fich32 fhich33.
                                                   -projet4 contient 2 fichiers  fich41 fich42.
 .2)Copier  l'arborescence du répertoire projet2 dans le répertoire projet1 et l'arborescence du répertoire projet4 dans le répertoire projet3.
3)supprimer les répertoires projet2 et Projet4.
   .
5)Alain et Olivier appartiennent au meme groupe.
       a)Modifier les permissions du fichier fchi33 de telle facon que Olivier puisse le lire et l'éxécuter main ne puisse pas ni le modifier ni le supprimer.
      b)Modifier les permissions du fichier fhich23  telle sorte que Alain puisse le lire,le modifier et l'éxecuter mais Olivier ne puisse pas le modifier.
6)      a)Lister les fichiers du répertoire projet1 dans le fichier Temp et les fichiers du répertoire projet3 dans le fichier TempA.
        b)Ajouter les permissions du fichier fich23 au fichier Temp et les permissions du fichier fich33 au fichier TempA. 

voici ce que j'ai fait;
1)mkdir /hom/Olivier/projet1     /home /Olivier/projet2
  cd  /hom/Olivier/projet1 
  touch fihc11 fich12
  cd hom/Olivier/projet2
  touch fich21 fich22 fich23
 mkdir /home/Alain/projet3    /home/Alain/projet4
 cd /home/Alain/projet3
 touch fich31 fich32 fich33
cd /home/Alain/projet4
 touch fich41 fich42
2)cp-R projet2  projet1
    cp-R projet4  projet3
3)cd projet2
rm fich 21 fich22 fich23
rmdir projet2
cd projet4
rm fich41 fich42
rmdir projet4
5) a) cd projet3
       chmod g-w  fic33
  b)cd projet2
     chmod g+xw  u-w  fich23
6)  a)mv projet1    Temp
        mv projet3    TempA
b)???????




Je sais que j'ai fait beaucoup d'erreurs,Alors  Pouvez-vous m'aider à corriger exercice,SVP??
Merci d'avance.

7 réponses

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
31 déc. 2008 à 14:21
Comme je te l'ai dit, n'importe quelle commande console part du répertoire courant.
Par exemple, si on tape ls, cela va lister les objets (fichiers, dossiers,...) contenus dans le répertoire courant. Ca n'affichera donc pas la même chose selon si l'on est dans /home/pouet ou dans /home/pouet/tchoupi.
Donc par défaut, les commandes tapées (si on ne précise pas de chemins) utilisent l'adressage relatif. Pour donner une définition, on pourrait donc dire que le chemin relatif part (par défaut) du répertoire courant.
Au contraire, l'adressage absolu part du début de l'arborescence, donc du répertoire racine.
Sous UNIX, le répertoire racine se note simplement /
donc chaque chemin que tu verras commencer par un /, cela signifiera que c'est un adressage absolu (on part du répertoire racine).
C'est pour ça que toi, quand tu faisais mkdir /home/Olivier/projet1 c'était de l'adressage absolu (tu partais du répertoire racine), et c'est pour ça aussi que je te disais que quand on utilise l'adressage relatif, il faut préciser d'où l'on part.
Par exemple, pour la commande mkdir ci-dessus, si on se trouve dans /home/Olivier, alors la commande avec adressage relatif sera mkdir projet1, si on se trouve dans /home, la commande sera mkdir /Olivier/projet1.

Ensuite, les .. symbolisent comme tu l'as dit le répertoire parent. C'est très simple, imagine que tu es dans /home/Olivier et que tu veux aller dans /home/Alain. Soit tu utilises l'adressage absolu : cd /home/Alain, soit l'adressage relatif cd ../Alain. Le ".." signifie que tu retourne dans le répertoire parent de Olivier/ puis ensuite tu vas tout bêtement dans Alain/
Donc ../.. signifie qu'on se "recule" deux fois de suite, par exemple pour passer de projet2/ à home/

Cordialement, uaip.
3
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
30 déc. 2008 à 23:21
Question 1 :

Je ne suis pas d'accord avec toi : il n'y a que pour les commandes touch que tu utilises des chemins relatifs (puis c'est home et non hom).
Quand on affirme "chemin relatif", on précise à quoi il est relatif ! Je montre un exemple où je me déplace chaque fois dans les dossiers créés pour créer tous mes fichiers (en statique) en utilisant les chemins relatifs les plus courts, en gros je change constamment de dossier courant (il y a plein d'autres méthodes possibles) :
cd
cd home/Olivier
mkdir projet1 projet2
cd projet1
touch fich11 fich12
cd ../projet2
touch fich21 fich22 fich23
cd ../..
mkdir Alain
mkdir projet3 projet4
cd projet3
touch fich31 fich32 fich33
cd ../projet4
touch fich41 fich42
Je précise que je ne suis pas sûr du tout pour les créations de home directories (Olivier et Alain).

Question 2 :
Je pense que la méthode est bonne, sauf que c'est cp -R et non cp-R. Par contre, tes commandes supposent que tu as changé de répertoire courant entre temps. Sinon, d'un point de vue absolu, c'est :
cp -R /home/Olivier/projet2 /home/Olivier/projet1
cp -R /home/Alain/projet4 /home/Alain/projet3
D'un point de vue relatif :
cd /home/Olivier
cp -R projet2 projet1
cd ../Alain
cp -R projet4 projet3

Question 3 :
Ta commande ne marchera pas. Tu ne peux pas effacer un dossier en utilisant "rm dossier" si c'est le dossier courant !
Je m'explique, si tu fais ceci :
cd projet2
rmdir projet2
Cela suppose que tu effaces un dossier "projet2" lui même contenu dans un dossier "projet2" (le dossier courant). Quand tu exécutes une commande en utilisant l'adressage relatif, sache que la commande part du dossier courant.
Donc, je mettrais ceci :
cd /home/Olivier/projet2
rm fich21 fich22 fich23
cd ..
rmdir projet2
cd /home/Alain/projet4

rm fich41 fich42

cd ..

rmdir projet4

Question 5 (a) :
Toujours le même problème pour ton adressage relatif... Avant de taper "cd projet3", es-tu sûr d'être dans le dossier Alain/ ? Si non, ça te retournera une erreur.
Puis pour chmod, certes tu enlèves le mode W c'est bien, mais tu ne touches pas aux modes R (lecture) et X (exécution). Et si jamais l'un de ceux-ci était à 0 ? Alors Olivier ne pourra pas faire tout ce que la consigne demande.
Je mettrais ceci :
chmod g=rx /home/Alain/projet3/fich33

Question 5 (b) :
Là encore je ne suis pas sûr, mais je crois que les droits doivent être séparés par des virgules. Puis tu as oublié des droits, et encore une fois, il ne faut pas utiliser + ou - mais = (pour fixer les droits, et non en ajouter ou en enlever).
Je mettrais ceci :
chmod u=rwx,g=rx /home/Alain/projet3/fich23

Question 6 (a) :
Par contre là, c'est tout faux
mv déplace (ou renomme) des fichiers. Là, la consigne demande de lister des fichiers et rediriger la sortie standard (écran) dans un fichier.
Une méthode facile, valable dans ton cas (mais pas partout si la consigne demande de ne pas lister récursivement), c'est la commande find.
Là encore, plusieurs méthodes :
cd /home/Olivier/projet1
find . -type f -print > Temp
Ou :
cd /home/Olivier/projet1

find . -type f -exec echo {}>> Temp \;
Etc...

Question 6 (b) :
Ca désolé, je ne sais pas.

__________
En bref, sache que j'ai écrit ce message sans aucun document, toutes les commandes que j'ai données sortent de ma mémoire, il se peut donc que me trompe parfois.
De plus, j'ai pris la peine de rédiger un minimum, certes je n'ai pas expliqué grand chose, mais je te conseille vivement de faire le minimum de lecture pour comprendre, et ne pas recopier bêtement mes exemples.
Si tu as des questions concernant le fonctionnement de find, chmod, etc, n'hésite pas. Ce forum est là pour ça.
Bonne chance.

Cordialement, uaip.
0
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
31 déc. 2008 à 12:40
tout d'abord
,merci pour votre aide..

Pour la première question(c-à-d question 1) ,je ne comprend pas pourquoi vous avez écrit mkdir Alain et pas  cd  home/Alain puis mkdir  projet3....

_Quelle est la différence entre les chemins relatifs et les chemins absolus?(Pouvez-vous me donner quelques exemples?)
_Quel est la signification de cd ../projet et cd ../.. (je sais que.. désigne le répertoire parent du répertoire courant).
_Existe-t-il une différence entre home/Alain et /home/Alain??

encore une fois,MERCI.
0
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
31 déc. 2008 à 14:39
vraiment,je ne sais pas comment je vous remercier.
seulement maintenant,je commence à comprendre les commandes de unix

.
0

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

Posez votre question
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
1 janv. 2009 à 23:54
bsr à tous
Qaunt à la question6)a) ,s'il n'y a pas un commende pour ajouter les permmissions d'un fichier à un autre,je pense qu'il faut utilisé la commande chmod comme suite
:
chmod g=rwx,u=rx Temp





Je vais vous expliquer ce que j'ai fait;
tout d'abord ,les permmissions du fich23 sont;Alain puisse le lire,le modifier et


l'exécuter
(g=rwx),Olivier ne puisee pas le modifier(u=rx)




c-à-d

chmod g=rwx,u=rx  fich23





Alors pour ajouter les permmissions du fich23 au fichier Temp






on va écrire
;chmod g=rwx,u=rx  Temp (tout simplement).
n'est ce pas????

pour la question1) je ne comprend pas pourqoui voue avez écrit ;
mkdir Alain
mkdir projet3  projet4
je pense qu'il doit être écrit;
cd home/Alain
mkdir projet3 projet4

J'ai attendu avec impatience la réponse
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
2 janv. 2009 à 10:50
Oups, pour la 1) je voulais écrire ceci :
mkdir Alain
cd Alain
mkdir projet3 projet4
(ta commande cd home/Alain ne marche pas pour 2 raisons : on est déjà dans le répertoire home/ donc il aurait fallu écrire cd Alain mais de toute façon ce répertoire (Alain/) n'existe pas puisqu'il n'est pas encore créé).

Pour la commande du chmod c'est pas bête en effet, mais je pense que l'intérêt de la question est de passer les paramètres d'un fichier à un autre, sans forcément savoir lesquels sont activés. Dans ton exemple, tu sais que le fichier fich23 a les paramètres g=rwx,u=rx donc tu peux le réécrire pour Temp. Mais si on ne te donne pas ces paramètres, tu es mal barré
Garde quand même ton idée si tu ne trouves pas l'autre méthode.

Cordialement, uaip.
0
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
2 janv. 2009 à 12:56
bjr
Je comprends maintenant
1)


cd
mkdir Olivier
cd Olivier
mkdir projet1 projet2
cd projet1
touch fich11 fich12




cd../projet2
touch fich21 fich23 fich24
 ../..cd
mkdir Alain
cd Alain
mkdir projet3 projet4
cd projet3
touch fich31 fich32 fich33
cd ../projet4
touch fich41 fich42

C'est très facile

MERCI BCP
0
Rejoignez-nous