Forum général.cherche-logiciel aide commande linux

Posté par  .
Étiquettes :
0
8
jan.
2007
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  . Évalué à -1.

    desoler je me suis tromper de section
    • [^] # aide commande du per noel

      Posté par  . Évalué à 5.

      cer pas grave personne naller te répondr...

      dis donc en BTS on ne fait pas ses devoirs tout seul?
      • [^] # Re: aide commande du per noel

        Posté par  . Évalué à 2.

        > dis donc en BTS on ne fait pas ses devoirs tout seul?

        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  . Évalué à 5.

      Et dans l ordre en plus:

      man find
      man xargs
      man grep
      http://howtos.linux.com/guides/abs-guide/io-redirection.shtm(...)

      @++

      Cyril
    • [^] # Re: aide commande linux

      Posté par  . Évalué à 2.

      Un petit effort d'orthographe ?

      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  (site web personnel) . Évalué à 3.

    Allez, c'est vraiment parce que j'ai pas pu résister...

    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  (site web personnel) . Évalué à 1.

    Exo 6:

    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.