IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

[man] Afficher une "section"


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club Avatar de novae84
    Homme Profil pro
    Etudiant.
    Inscrit en
    Juin 2022
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Etudiant.

    Informations forums :
    Inscription : Juin 2022
    Messages : 37
    Points : 29
    Points
    29
    Par défaut [man] Afficher une "section"
    Bonjour à tous,

    Quand j'utilise la commande man, je suis souvent amené à faire défiler et à lire (souvent en diagonale) une bonne partie de la doc jusqu'à trouver l'option qui m'intéresse.

    Actuellement, je sais juste utiliser la commande grep de manière très basique en complément de man, ce qui généralement ne m'affiche qu'une seule ligne.


    Ce que j'essaie de faire est d'afficher tout le(s) paragraphe(s) relatif à une option (en incluant les éventuels sauts de ligne).

    Je ne sais pas trop si je suis clair, du coup voici un exemple de ce que j'aimerais afficher.

    Page de manuel: nmapOption qui m'intéresse: --tracerouteNom : man nmap.png
Affichages : 145
Taille : 297,0 Ko

    J'ai quelques pistes notamment avec awk mais je me demande si il n'y a pas de solution plus intuitive.

    Je vous remercie pour votre aide !

    Belle journée à tous,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Robotique
    Inscrit en
    Août 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Robotique

    Informations forums :
    Inscription : Août 2007
    Messages : 630
    Points : 1 287
    Points
    1 287
    Par défaut
    Bonjour,

    Je lance la commande man nmap puis :

    Pour trouver l'occurence suivante la touche n.
    En prime ça marche un peu partout ^^"

    hth,

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    man -P 'less -p "^ +--traceroute"' nmap
    Et appuyer sur "n" pour continuer la recherche si ce n'est pas l'endroit que tu cherches.
    "N" pour aller en arrière.
    "q" pour sortir.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Farpaitement !

    Je dirais même plus:

    • Pour rechercher toutes les occurrences d'un "terme" dans le man d'une "commande":

      • man -P"less +/<terme>" <commande>
      • ex:
      • pour chercher tous les "traceroute" dans le man de "nmap":
      • man -P"less +/traceroute" nmap

    • Pour rechercher une section dans le man d'une commande
      • man -P "less -p '^ +<section>'" <commande>
      • ex:
      • pour chercher la section qui décrit l'argument "--traceroute" dans le man de "nmap":
      • man -P 'less -p "^ +--traceroute"' nmap
      • ex:
      • pour chercher la section qui décrit le concept "p'Pathname Expansion" dans le man de "bash":
      • man -P"less -p'^ +Pathname Expansion'" bash


    Rq1: La commande man -P"less -p'^ +-p'" less permet de comprendre le sens de l'option "-p" de "less":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           -ppattern or --pattern=pattern
                  The -p option on the command line is equivalent to specifying +/pattern;
                  that is, it tells less to start at the first occurrence of pattern in the file.
    La même commande pourrait donc s'écrire man -P "less +/^\ +-p" less. L'intérêt du "-p" de "less" est qu'on n'est pas obligé de quoter les caractères spéciaux, comme les espaces, au prix d'un petit jonglage entre les simples et doubles quotes !

    Rq2: le "+" n'a pas le même sens dans les 2 cas!

    Dans less +/<terme>, il indique à "less" d'ajouter l'exécution de la directive /<terme> (où "/" veut dire "chercher la prochaine occurrence de ce qui suit").

    Alors que, dans less -p '^ +<section>', il fait partie de la regexp qui indique de chercher un début de ligne: "^", suivi d'une espace: " ", présente en un nombre quelconque strictement supérieur à 1: "+", suivie des caractères de la section à chercher.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Moi je fais man la_commande puis dans le man je me balade avec les flèches (haut, bas) ce qui fait défiler ou remonter.
    Et si je cherche un truc particulier, je fais comme avec "vi" => /le_truc (à taper dans le man ouvert) et ensuite je tape "n" ou "N" pour aller au truc suivant ou précédent (commandes là encore issues de l'éditeur "vi").

    A mon avis tu débutes donc tu te sens saturé d'infos mais avec l'expérience ça ira de plus en plus vite pour manipuler le man.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau membre du Club Avatar de novae84
    Homme Profil pro
    Etudiant.
    Inscrit en
    Juin 2022
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Etudiant.

    Informations forums :
    Inscription : Juin 2022
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Merci à tous pour vos réponses toutes plus détaillées les unes que les autres ! : )

    C'est vraiment appréciable de voir comment chacun procède, cela me permets d'avoir une meilleure vision d'ensemble des différentes méthodes possibles.

    Merci encore, c'est vraiment top et cela m'a bien aidé pour avoir des réponses sur d'autres sujets, et cela grâce aux pages de man, plutôt qu'avec Google.


    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Moi je fais man la_commande puis dans le man je me balade avec les flèches (haut, bas) ce qui fait défiler ou remonter.
    Et si je cherche un truc particulier, je fais comme avec "vi" => /le_truc (à taper dans le man ouvert) et ensuite je tape "n" ou "N" pour aller au truc suivant ou précédent (commandes là encore issues de l'éditeur "vi").

    A mon avis tu débutes donc tu te sens saturé d'infos mais avec l'expérience ça ira de plus en plus vite pour manipuler le man.
    Haha, oui tout à fait, je te confirme que c'est un peu le cas, mais rien d'insurmontable !
    J'utilise Linux depuis des années, mais jusque ici en tant que particulier, donc je n'avais jamais creusé certaines choses tant que j'arrivais à mes fins.

    Aujourd'hui j'aimerais me spécialiser un peu plus, donc il y'a beaucoup de question à priori élémentaires et que j'avais laissé dans un coin de ma tête qui ressurgissent.

    Notamment concernant l’utilisation de "vi", que tu évoques.

    J'entends souvent les gens parler de vi/vim/emacs. Pour ma part j'utilise "nano" depuis quasiment toujours car il m'est apparu plus intuitif -pour un débutant-.

    Du coup je me demandais si cela valait le coup, en 2022, d'apprendre à utiliser un de ces éditeurs, en complément de nano ?

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par novae84 Voir le message
    J'entends souvent les gens parler de vi/vim/emacs.
    Oui, ce sont les éditeurs "ancestraux" d'Unix. "vi" est basé sur "ed" (un éditeur ligne à ligne). Et toute commande ":" dans "vi" fait en fait appel à une commande de "ed" (:w par exemple fait appel à la commande "w" de "ed").
    "vim" a été son successeur, donc avec des trucs en plus comme par exemple possibilité de revenir en arrière dans l'édition, chose que "vi" ne fait que sur un niveau. Par exemple dans "vi", la commande "u" annule la dernière action mais taper "u" puis un autre "u" remet la dernière action puisque le second "u" annule le premier (qui est devenu alors la dernière action). vim a mis un peu d'intelligence dans ce merdier. Et ensuite des forks pour environnement de bureau ont vu le jour avec par exemple "gvim".
    Et "emacs" est son concurrent le plus célèbre à tel point qu'il est née une guerre pleine d'humour entre les "pro-vi" et "pro-emacs". Quelques citations issues de cette guerre
    • Vi a 2 modes "faire des beeps" et "tout casser" (en référence au fait que quand on se plante de commande dans "vi" on a un "beep" sonore qui retentit)
    • Emacs est un très bon système d'exploitation auquel il ne manque qu'un bon éditeur de texte.


    Citation Envoyé par novae84 Voir le message
    Pour ma part j'utilise "nano" depuis quasiment toujours car il m'est apparu plus intuitif -pour un débutant-.
    C'est la meilleure des raisons.

    Citation Envoyé par novae84 Voir le message
    Du coup je me demandais si cela valait le coup, en 2022, d'apprendre à utiliser un de ces éditeurs, en complément de nano ?
    Absolument pas. Tu vas galérer, pester, et tu mettras un milliard d'années pour acquérir une connaissance qui peut-être sera supérieure sur un point à nano mais ce point précis tu n'en auras besoin qu'une fois toutes les années bissextiles. Exemple avec "vi" on peut permuter deux mots dans tout son texte, quels que soient les mots. Il connait les regex, on peut alors lui dire "cherche un mot ayant telle allure, mémorise-le, cherches-en tel autre, mémorise le, puis réécrit les mots mis en mémoire mais en permutant les mémoires" => ça permute alors les mots.
    Exemple: convertir toutes les années à 2 chiffres "XX" en "20XX" => :1,$s/\([0-9]\{2\}\)/20\1/g => se lit "du début à la fin, substitue tout chiffre répété deux fois que tu mets en mémoire (donc mémoire 1 par défaut) par 20 suivi de la mémoire 1 et fais ça de façon globale". Je suis certain que nano ne sait pas faire ça. Mais combien de fois par siècle a-t-on besoin de faire cela...?
    Aucun éditeur n'est meilleur qu'un autre, il n'y a que des éditeurs auxquels on est habitués et qui ne nous plaisent que pour cette raison. J'aime beaucoup "vi" (enfin ses versions récentes fenêtrées) mais un jour j'ai vu arriver "vi pour windows", j'ai téléchargé, regardé et finalement laissé tomber car dans windows je me sentais pas à l'aise face à notepad++.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Nouveau membre du Club Avatar de novae84
    Homme Profil pro
    Etudiant.
    Inscrit en
    Juin 2022
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Etudiant.

    Informations forums :
    Inscription : Juin 2022
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Effectivement, étant donné l'utilisation que j'en fais (édition de texte basique), ce serait un peu lourd.

    J'avais bien commencé à apprendre l'utilisation de Vim, par curiosité, mais au bout de deux heures passées à noter les raccourcis clavier sur des post-it, j'ai abandonné.

    Pour la blague, je dirais que ceux qui utilisent Vim depuis 15 ans sont juste des gens qui n'ont pas encore trouvé comment quitter le programme. (pas taper! )

    Merci pour tes explications en tout cas !

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par novae84 Voir le message
    J'avais bien commencé à apprendre l'utilisation de Vim, par curiosité, mais au bout de deux heures passées à noter les raccourcis clavier sur des post-it, j'ai abandonné.
    Je ne veux pas relancer la guerre vim/emacs, mais il me semble que les dernières versions d'emacs ne nécessitent plus de connaître les raccourcis clavier, car les commandes standard sont, comment dire... standard (souris, flèches pour se déplacer, scrollbars, cut/copy/paste, etc.) et les autres commandes sont accessibles depuis les menus, comme dans n'importe quel éditeur "moderne". Et il me semble que c'est aussi le cas pour vim.

    De plus, une commande accessible par menu a son raccourci clavier visible dans le menu, ce qui permet, à force de le voir, de l'apprendre, si nécessaire.

    Pour la blague, je dirais que ceux qui utilisent Vim depuis 15 ans sont juste des gens qui n'ont pas encore trouvé comment quitter le programme. (pas taper! )
    MDR

  10. #10
    Nouveau membre du Club Avatar de novae84
    Homme Profil pro
    Etudiant.
    Inscrit en
    Juin 2022
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Etudiant.

    Informations forums :
    Inscription : Juin 2022
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Je ne veux pas relancer la guerre vim/emacs, mais il me semble que les dernières versions d'emacs ne nécessitent plus de connaître les raccourcis clavier, car les commandes standard sont, comment dire... standard (souris, flèches pour se déplacer, scrollbars, cut/copy/paste, etc.) et les autres commandes sont accessibles depuis les menus, comme dans n'importe quel éditeur "moderne". Et il me semble que c'est aussi le cas pour vim.
    Merci de ton retour, à vrai dire je l'ignorais.

    De mémoire, je n'ai été "bloqué" qu'une seule fois à cause de ma méconnaissance de ce type d'éditeur.
    (J'avais commencé à paramétrer une distribution Linux ultra minimaliste, mais n'avais pas inclus "nano" dans le bazar.)

    Mais je garde l'info dans un coin de la tête au cas ou, peut-être qu'un jour je serais amené à réessayer.

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Je ne veux pas relancer la guerre vim/emacs
    ... dit-il tout en la relançant...

    Citation Envoyé par jack-ft Voir le message
    , mais il me semble que les dernières versions d'emacs ne nécessitent plus de connaître les raccourcis clavier, car les commandes standard sont, comment dire... standard (souris, flèches pour se déplacer, scrollbars, cut/copy/paste, etc.)
    C'est quoi les commandes "standard" de cut/copy/paste ? ctrl-x/ctrl-c/ctrl-v ???
    Je te recommande cet article et en particulier le paragraphe #4 (qui parle de "vi", horrible à prendre en main c'est vrai, mais une fois qu'on l'a en main c'est un régal) et le paragraphe #5a qui justement montre la différence entre "copier/coller" via les commandes dites "standard" (qui en réalité ne le sont absolument pas, ce ne sont que des commandes "connues") et "copier/coller" sous vi.

    Citation Envoyé par jack-ft Voir le message
    et les autres commandes sont accessibles depuis les menus, comme dans n'importe quel éditeur "moderne". Et il me semble que c'est aussi le cas pour vim.
    Le gvim (vim pour gnome) a en effet des menus permettant de travailler sans passer par les raccourcis. Mais je ne m'en sers pas
    Comme Chuck Norris, je peux utiliser "vi" pour tuer quelqu'un de 257 manières différentes (et parfois je m'en sers pour écrire un code)

    Citation Envoyé par jack-ft Voir le message
    MDR
    Oui, c'était bien dit. C'est vrai que quand on entre sous "vi" et qu'on ne connait pas, on ne peut pas en sortir
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    bonjour
    Citation Envoyé par novae84 Voir le message
    je sais juste utiliser la commande grep de manière très basique en complément de man, ce qui généralement ne m'affiche qu'une seule ligne.
    Pour info (pas une recette pour man).
    La commande grep peut très bien afficher plusieurs lignes
    grep -B1 -A5 'truc'
    Va afficher 1 ligne Before et 5 lignes After

    -------

    A l'opposé de Vi, on peut trouver des man en ligne, parfois plus simple à consulter que dans un terminal
    $moi= ( !== ) ? : ;

  13. #13
    Nouveau membre du Club Avatar de novae84
    Homme Profil pro
    Etudiant.
    Inscrit en
    Juin 2022
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Etudiant.

    Informations forums :
    Inscription : Juin 2022
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par papajoker Voir le message
    bonjour
    La commande grep peut très bien afficher plusieurs lignes

    Va afficher 1 ligne Before et 5 lignes After
    Ohhh... Celle-là je l'ajoute tout de suite mes notes ! Merci !

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/10/2019, 10h05
  2. [MySQL] mysql : affiche données dans une section membre
    Par endelium dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/03/2010, 14h02
  3. Afficher une page de man au bon format
    Par Kitty-hime dans le forum Linux
    Réponses: 5
    Dernier message: 23/03/2009, 18h26
  4. [CR8] Afficher ou masquer une section détail
    Par vvm54 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 05/10/2005, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo