Gros probleme
jeff
-
asevere Messages postés 13521 Statut Webmaster -
asevere Messages postés 13521 Statut Webmaster -
Bonjour a tous les passiones de linux.
Voici mon gros probleme que j'ai a resoudre d'ici la fin du week end. Pouvez-vous m'aider???...
1. Quelles sont les règles de substitution de bash concernant le
caractère "~"?
2. Donner un exemple en shell qui utilise la valeur (code de
terminaison) d'une commande et un autre exemple qui utilise le
resultat d'une comande (normalement affiché sur la sortie
standard).
3. Donner une suite de commande pour supprimer chaque fichier du
registre courant portant un nom de la forme nom~ dans la mesure où
le fichier de nom nom existe aussi.
4. Donner une suite de commande permettant d'obtenir, dans le
repertoire courant, un fichier texte liste.txt contenant des noms
de fichiers du repertoire courant. Les noms de fichier commençant
par "." ou le nom "liste.txt" lui-même ne doivent pas apparaitre
dans cette liste.
5. Indiquer le nom du gestionnaire de fenêtre que vous utilisez
generalement dans les seances de TD, le nom de l'emulateur de
terminal, le nom de l'éditeur de textes, le nom du navigateur
web.
Indiquer s'il y a lieu le ou les fichier d'initialisation utilisé
par ces applications.
6. Quelle est sous Emacs, la difference entre une clé de commande
et une foction En quoi ces notions sont-elles liées entre elles ?
7. Pourquoi l'appel system pour definir un fichier s'appele-t-il
unlink?
Donner 3 erreurs pouvant survenir dans l'execution de cet appel.
8. Indiquer succintement les avantages et inconvenients des
fonction getchar et putchar par rapport aux appels system read et
write.
9. Indiquer et decrire succintement 5 signaux différents que les
processus Unix peuvent utiliser.
10. Un processus P crée un nouveau processus Q par l'appel system
fork. Après la fin de l'execution de cet appel, quelles
différences y'a t'il entre les informations gérée par le system
concernant P et celle concernant Q?
Dans ce qui suit on poura utiliser la commande interne "test-L
nom" qui réussit ssi "nom" est un lien symbolique.
On poura aussi utiliser la commande "readlink nom" qui a la même
fonction mais qui affiche un plus sur la sortie standard, en cas de
réussite, le nom contenu dans le lien.
Enfin "readlink -f nom" affiche sur la sortie standard le chemin absolu, dans la mesure où il existe, obtenu à partir de nom en suivant recursivement jusqu'au bout tous les liens symbolique ; si le chemin absolu
obtenu n'existe pas dans le system de fichier, la commande echoue
et n'affiche rien.
Soit un lien symbolique "x" qui designe (pas necessairement
directement) un nom de fichier "y" existant qui n'est pas un lien
symbolique.
11. Ecrire un script Shell, ayant "x" comme argument, pour inverser
le lien. Aussi "x" doit devenir le nom d'un vrai fichier contenant
l'ancien "y" et "y" devenir un lien symbolique sur "x".
12. Donner des exemples judicieusement choisi qui permettent de
vérifier, dans tous les cas de figure, la transformation est sans
conséquence sur l'utilisation normal des noms de fichier
concerné.
On suppose qu'il existe une commande "relative source cible" qui
affiche sur la sortie standard le chemin relatif le plus court
entre le chemin source et le chemin cible (ex:
"relative/usr/home/machin" "/usr/home/truc/toto" affiche
"../truc/toto").
13. Ecrire un script Shell qu'inverse tous les liens de chacun
des repertoires passé en argument, en ne générant que des liens
relatifs les plus court possible.
En cas de liste d'argument vide, le script opère dans le
repertoir courant.
Il reste à réaliser la commande relative
14. Essayer d'écrire un script pour cela. En cas de difficultés,
indiquer et justifier les outils à utiliser pour les pallier.
Merci d'avance.
Voici mon gros probleme que j'ai a resoudre d'ici la fin du week end. Pouvez-vous m'aider???...
1. Quelles sont les règles de substitution de bash concernant le
caractère "~"?
2. Donner un exemple en shell qui utilise la valeur (code de
terminaison) d'une commande et un autre exemple qui utilise le
resultat d'une comande (normalement affiché sur la sortie
standard).
3. Donner une suite de commande pour supprimer chaque fichier du
registre courant portant un nom de la forme nom~ dans la mesure où
le fichier de nom nom existe aussi.
4. Donner une suite de commande permettant d'obtenir, dans le
repertoire courant, un fichier texte liste.txt contenant des noms
de fichiers du repertoire courant. Les noms de fichier commençant
par "." ou le nom "liste.txt" lui-même ne doivent pas apparaitre
dans cette liste.
5. Indiquer le nom du gestionnaire de fenêtre que vous utilisez
generalement dans les seances de TD, le nom de l'emulateur de
terminal, le nom de l'éditeur de textes, le nom du navigateur
web.
Indiquer s'il y a lieu le ou les fichier d'initialisation utilisé
par ces applications.
6. Quelle est sous Emacs, la difference entre une clé de commande
et une foction En quoi ces notions sont-elles liées entre elles ?
7. Pourquoi l'appel system pour definir un fichier s'appele-t-il
unlink?
Donner 3 erreurs pouvant survenir dans l'execution de cet appel.
8. Indiquer succintement les avantages et inconvenients des
fonction getchar et putchar par rapport aux appels system read et
write.
9. Indiquer et decrire succintement 5 signaux différents que les
processus Unix peuvent utiliser.
10. Un processus P crée un nouveau processus Q par l'appel system
fork. Après la fin de l'execution de cet appel, quelles
différences y'a t'il entre les informations gérée par le system
concernant P et celle concernant Q?
Dans ce qui suit on poura utiliser la commande interne "test-L
nom" qui réussit ssi "nom" est un lien symbolique.
On poura aussi utiliser la commande "readlink nom" qui a la même
fonction mais qui affiche un plus sur la sortie standard, en cas de
réussite, le nom contenu dans le lien.
Enfin "readlink -f nom" affiche sur la sortie standard le chemin absolu, dans la mesure où il existe, obtenu à partir de nom en suivant recursivement jusqu'au bout tous les liens symbolique ; si le chemin absolu
obtenu n'existe pas dans le system de fichier, la commande echoue
et n'affiche rien.
Soit un lien symbolique "x" qui designe (pas necessairement
directement) un nom de fichier "y" existant qui n'est pas un lien
symbolique.
11. Ecrire un script Shell, ayant "x" comme argument, pour inverser
le lien. Aussi "x" doit devenir le nom d'un vrai fichier contenant
l'ancien "y" et "y" devenir un lien symbolique sur "x".
12. Donner des exemples judicieusement choisi qui permettent de
vérifier, dans tous les cas de figure, la transformation est sans
conséquence sur l'utilisation normal des noms de fichier
concerné.
On suppose qu'il existe une commande "relative source cible" qui
affiche sur la sortie standard le chemin relatif le plus court
entre le chemin source et le chemin cible (ex:
"relative/usr/home/machin" "/usr/home/truc/toto" affiche
"../truc/toto").
13. Ecrire un script Shell qu'inverse tous les liens de chacun
des repertoires passé en argument, en ne générant que des liens
relatifs les plus court possible.
En cas de liste d'argument vide, le script opère dans le
repertoir courant.
Il reste à réaliser la commande relative
14. Essayer d'écrire un script pour cela. En cas de difficultés,
indiquer et justifier les outils à utiliser pour les pallier.
Merci d'avance.
7 réponses
Salut.
C'est un devoir que tu dois rendre ?
Si oui, sans vouloir jouer les pères la morale, je ne pense pas que cela t'aidera beaucoup de faire les exos à ta place.
Par contre si tu bloques sur des points particuliers, pose la question ici en détaillant bien ce qui te bloques.
Bon courage.
A++
La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
C'est un devoir que tu dois rendre ?
Si oui, sans vouloir jouer les pères la morale, je ne pense pas que cela t'aidera beaucoup de faire les exos à ta place.
Par contre si tu bloques sur des points particuliers, pose la question ici en détaillant bien ce qui te bloques.
Bon courage.
A++
La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Ok les gars.
Loin de moi l'idee de vous prendre pour des con, mais je serais heureux d'aparaitre quand meme dans votre top 100 des plus gros blerots.
Vous avez raison, ceci est un sujet que j'essaie de faire pour m'entraine a une epreuve d'utilisation des systeme informatique.
En fait depuis ce matin j'ai plus ou moins trouve la reponse aux 10 premieres questions. Mais n'ayant jamais fait de script shell je galere sur les 4 dernires questions. Mais j'essaie a l'aide de bouquins de faire un truc.
Je ne demande pas de reponse a ces question, mais juste un peu d'aide ou une mise sur la voie.
Voila
Loin de moi l'idee de vous prendre pour des con, mais je serais heureux d'aparaitre quand meme dans votre top 100 des plus gros blerots.
Vous avez raison, ceci est un sujet que j'essaie de faire pour m'entraine a une epreuve d'utilisation des systeme informatique.
En fait depuis ce matin j'ai plus ou moins trouve la reponse aux 10 premieres questions. Mais n'ayant jamais fait de script shell je galere sur les 4 dernires questions. Mais j'essaie a l'aide de bouquins de faire un truc.
Je ne demande pas de reponse a ces question, mais juste un peu d'aide ou une mise sur la voie.
Voila
Salut,
Dans ce cas précise sur quelle question tu bloques exactement et décris nous ce que tu as déjà tenté et pourquoi tu n'y arrive pas ou qu'est-ce que tu comprends pas...
___________
- X e n o r --- Jeune & Vaillant Guerrier CCM
Dans ce cas précise sur quelle question tu bloques exactement et décris nous ce que tu as déjà tenté et pourquoi tu n'y arrive pas ou qu'est-ce que tu comprends pas...
___________
- X e n o r --- Jeune & Vaillant Guerrier CCM
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
alors voila je bloque sur la question 11.
x est un lien symbolique vers y, et nous voulons que notre script qui prend x en argument, inverse ce lien. C a dire au bout du compte y sera un lien symbolique vers x.
Nous avons trouve la commande pour fabriquer un lien symbolique (ln -s y s pour cree x->y)
Et le gros pb, c qu'on ne sait pas transformer un fichier existant en un lien symbolique, la machine nous renvoie `y': File exists
Comment faire ???
Merci d'avance
x est un lien symbolique vers y, et nous voulons que notre script qui prend x en argument, inverse ce lien. C a dire au bout du compte y sera un lien symbolique vers x.
Nous avons trouve la commande pour fabriquer un lien symbolique (ln -s y s pour cree x->y)
Et le gros pb, c qu'on ne sait pas transformer un fichier existant en un lien symbolique, la machine nous renvoie `y': File exists
Comment faire ???
Merci d'avance
copie du fichier y vers z, copie du fichier x vers y, copie du fichier z vers x, changement de la destination du lien de x vers y!
si la commande ne peut pas écraser le fichier y il suffit d'ajouter un intermédiaire:
copie du fichier y vers z, suppression de y, copie du fichier x vers y, copie du fichier z vers x, changement de la destination du lien de x vers y!
c'est ca?
si la commande ne peut pas écraser le fichier y il suffit d'ajouter un intermédiaire:
copie du fichier y vers z, suppression de y, copie du fichier x vers y, copie du fichier z vers x, changement de la destination du lien de x vers y!
c'est ca?
Bah oui mais non :)
enfin tu recuperes déjà ce qu'il faut dans $tebhvx
Mais tes deux commandes en dessous, elles fonctionnent pas si ?
moi j'ai:
...Mana mana
Tutudutu...
enfin tu recuperes déjà ce qu'il faut dans $tebhvx
Mais tes deux commandes en dessous, elles fonctionnent pas si ?
moi j'ai:
ln: 'x' fichier existant. ln: 'y' et 'x' identifient le même fichier.<note perso>depuis quand il est en français ce poste!?</note perso>
...Mana mana
Tutudutu...
si si, au poil!
tu fais de feu le lien symbolique un lien dur.... euh bon bref tu fais de ton symlynk un hard link en lui foutant l'option -f dans la gueule (pour que le post reste français :-)), sur quoi tu as ensuite toute latitude pour faire un symlink vers celui-ci, qui devient le seul à pointer sur l'inode...
essaye, tu verras, ça gazouille
par contre j'ai rien trouvé de plus élégant (et j'ai lu aujourd'hui même mais impossible de me souvenir où, et que c'était le seul moyen) pour connaître la cible d'un symlink (je m'inscriche un peu en faux, avec namei et un sed kivabien -mais lourdeau- c'est jouable)
tu fais de feu le lien symbolique un lien dur.... euh bon bref tu fais de ton symlynk un hard link en lui foutant l'option -f dans la gueule (pour que le post reste français :-)), sur quoi tu as ensuite toute latitude pour faire un symlink vers celui-ci, qui devient le seul à pointer sur l'inode...
essaye, tu verras, ça gazouille
par contre j'ai rien trouvé de plus élégant (et j'ai lu aujourd'hui même mais impossible de me souvenir où, et que c'était le seul moyen) pour connaître la cible d'un symlink (je m'inscriche un peu en faux, avec namei et un sed kivabien -mais lourdeau- c'est jouable)