salut tout le monde je prepare un bts iris par le cned et jai un petit soussi avec un exo donc j aurais aimer avoir une petite aide. je presise je debut sous linux et je suis sous debian sarge.
http://buse.974.free.fr/img/exo1.JPG
pour la question 1 ses ok
pour la 2 jai mis
ls -l | grep -i " 2 [a-z]"
pour la 3 jai mis
ls -lSi | grep -i " 2 [a-z]"
pour la 4
jy arrive avec la commande find mais pas en completant la ligne du dessu
donc ou ma commande du dessu nai pas la bonne ou jai du oublier quelque chose
pour la 5
je pensse metre
>> toto
a la fin de la qestion 4
et la 6
cat /usr/bin/toto
pour l'exo 7
find /etc -type f = rechercher tout les fichiers dans etc sinon je block sur le reste
donc si quelqun peu maider pour la question 4 et exo 7 sa serai simpas
je ne demande pas de me faire tout l'exo mais etant par correspondance donc sans prof avec mais cour et internet je nai rien trouver donc une petite aide avec des explications serai la bien venu merci d'avance
# aide commande linux
Posté par buse974 . Évalué à -1.
[^] # aide commande du per noel
Posté par roof . Évalué à 5.
dis donc en BTS on ne fait pas ses devoirs tout seul?
[^] # Re: aide commande du per noel
Posté par tontonflingueur . Évalué à 2.
Oui, mais il fait son BTS par le CNED (Centre National d'Enseignement à Distance), donc ça n'est pas tout à fait pareil ...
[^] # Lecture
Posté par Cheneson Cyril . Évalué à 5.
man find
man xargs
man grep
http://howtos.linux.com/guides/abs-guide/io-redirection.shtm(...)
@++
Cyril
[^] # Re: aide commande linux
Posté par herqu . Évalué à 2.
Remarque 1 : Tu ne dois pas te déplacer dans l'arborescence (énoncé ) .
Remarque 2 : En testant ta réponse à la question 2, il y a deux lignes de fausses chez moi ( "fichier" de taille 2 ( en fait dans ce cas précis un lien) ( et . ( répertoire courant ))
Pour finir la question 4 ne présente pas de grande difficulté si tu sais répondre à la question 2.
# exo7
Posté par jimee (site web personnel) . Évalué à 3.
1)
La commande affiche chaque ligne contenant "floppy" parmi les lignes de tous les fichiers du répertoire /etc, mais avec une erreur...
2)
find parcourt le répertoire /etc et ses sous-répertoires à la recherche de fichiers classiques (c'est à dire ni répertoire, ni lien symbolique, ni fichier spécial...). Pour chacun de ces fichiers, il affiche le nom du fichier sur une ligne. Un extrait de la sortie du find peut alors ressembler à :
/etc/passwd
/etc/group
/etc/fichier avec un espace
/etc/fichier_sans_espace
La sortie standard de la commande find est alors passée comme entrée standard à la commande xargs.
Ensuite, xargs va lire son entrée standard comme une liste de noms, séparés par des espaces ou des sauts de ligne, et va appeler la commande grep pour chaque membre de la liste :
grep floppy /etc/passwd
grep floppy /etc/group
grep floppy /etc/fichier
grep floppy avec
grep floppy un
grep floppy espace
grep floppy /etc/fichier_sans_espace
Le nom qui contenait des espaces a été découpé sur plusieurs commande, ce qui va produire des messages d'erreurs (qui seront supprimés après, par le 2>/dev/null) et ne lancera pas la recherche dans le bon fichier. D'autres erreurs se produisent avec les noms de fichiers contenant des retours à la ligne, des apostrophes ou des guillemets, ou finissant par un backslash...
Enfin, la dernière partie de la commande redirige les messages d'erreur dans le fichier spécial /dev/null, ce qui empèche leur affichage.
Pour corriger le problème des fichiers dont le nom comporte des espaces ou d'autres caractères spéciaux, on peut faire:
find /etc -type f -print0 | xargs --null grep floppy 2> /dev/null
Les noms de fichiers sont alors séparés par des caractères "null" (code ascii 0) en sortie du find, et xargs ne tient compte que de ces caractères "null" comme séparateurs de la liste. Le problème est complètement résolu car le caractère "null" est interdit dans les noms de fichiers.
# exo 6
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
1. Deuxième champ
2. ls -l | grep -i " 2 [a-z]" <= ne matche pas uniquement le deuxieme champ.
/bin/ls -l /usr/bin | grep -e '[rwx-]\+ \+2' <= probabilitée supérieure, a moins d'avoir un fichier nommé -rxw- ca devrait marcher
3. ls -lSi | grep -i " 2 [a-z]" <= -S trie sur la taille des fichiers pas sur l'inode
ls ne permet pas a priori de trier sur l'inode, mais lorsqu'on lui demande d'afficher l'inode de chaque fichier il l'affiche en premier champ.
Il suffit donc de rajouter un appel à sort dans le pipeline pour effectuer le tri, en effet sort détecte les blanc dans les chaine et n'effectue sont tri (par défaut) que sur le premier champ
/bin/ls -li /usr/bin | sort | grep -e '[rwx-]\+ \+2'
/bin/ls -li /usr/bin | grep -e '[rwx-]\+ \+2' | sort
Les deux écriture sont valides, la deuxième présente l'intérêt de n'effectuer le tri
qu'une fois l'ensemble des données restreints => plus rapide.
4.
cas 1: fichier contenant kill dans le nom:
/bin/ls -l /usr/bin | grep -e '[rwx-]\+ \+2' | sort | grep kill
ps: chez moi aucune réponse (debian/ubuntu)
cas 2: fichier contenant kill dans le contenu:
plus complexe, il faut générer une liste de nom de fichiers qui sera fournie à grep
grep kill `/bin/ls -l /usr/bin | grep -e '[rwx-]\+ \+2' | sort | awk '{print "/usr/bin/"$8}'`
ps: La j'ai sudo, sudoedit, perl et perl5.8.8 qui repondent
5. La il suffit effectivement de rajouter >> toto a la fin de la ligne précédente
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.