OVH Cloud OVH Cloud

[ANN] : Man&Help

41 réponses
Avatar
josephb
Bonsoir à tous,

Je ne suis pas tombé tout jeune dans la marmite unixienne, j'utilise
parfois, et tant bien que mal, des scripts shell dans mes applications à
base d'AppleScript, mais ça reste marginal et je ne me sers du Terminal
que sporadiquement, la plupart du temps plutôt pour lire le man d'une
commande que je voudrais utiliser dans un "do shell script".

J'avais déjà remarqué depuis longtemps que lire un man dans le Terminal
n'était pas une sinécure, mais récemment ayant eu à travailler avec
"curl", j'ai vite renoncé au supplice d'essayer de naviguer dans les 28
pages de son man dans le Terminal : je suis allé le faire sur le site
des dev Apple.
Et puis j'ai incidemment découvert que certaines des commandes "builtin"
dont le Mac me refusait le man, affichant en place une page générique,
en réalité en avait une d'aide, enfin un "help", en texte brut, mais
c'est mieux que le rien d'avant.

Agacé par tout ça, je me suis fait un applet, en AppleScript pour
l'enrobage et l'interface minimaliste, qui utilise justement la
puissance d'une demi-douzaine de commandes shell pour récupérer et
mettre en pdf pour Aperçu le man d'une commande qu'on lui indique.
Si la commande est une builtin et a un "help" caché, ça le dénichera et
l'affichera aussi dans Aperçu.
Si ça vous intéresse, c'est dispo ici

<https://www.dropbox.com/s/01aa31cp74h3lbk/Man%26Help.zip?dl=0>

avec un un petit mode d'emploi, bien qu'il n'y ait rien d'autre à faire
que de rentrer le nom de la commande.
Testé et mis au point grâce à l'aide de quelques téméraires du forum, de
S.L. à El Capitan, écrit avec un Lion.

Sans doute un genre d'utilitaire qui sert rarement et dont on perd la
trace sur son Mac, alors, ne pas oublier LE truc pour le retrouver
instantanément :
Ctrl + barre d'espace ==> Taper / man& / dans la fenêtre Spotlight, et
hop l'applet s'ouvre prêt à répondre.

Enjoy :-)

--
J. B.

10 réponses

1 2 3 4 5
Avatar
g4fleurot
Joseph-B wrote:

si tu regardes leur prétendue page man respective, c'est
toujours la même : la page générique des builtins



Bon, je crois bien que ça non plus, ce n'est pas à ma portée.
J'ai encore du taf avant d'assimiler ça.
Désolé :-(

Bonne balade !



6500 pas en marche rapide. C'est bon pour la santé.


--
Gérard FLEUROT plus un
Avatar
J.P
In article <1mj31pn.pwqhph1979y6nN%,
(Fleuger) wrote:

J.P wrote:

> Merci, mais, pour ce que j'en fait, je reste avec les outils de JB qui
> me vont très bien sous SL dans sa version standard.

Je t'ai proposé ça pour satisfaire ta curiosité.
Je l'ai fait en une minute sur mon SL VirtualBox avant d'écrire le
message.



J'ai bien compris et merci encore, sincèrement.
Cependant, je m'efforce de garder mes OS et logiciels accompagnants les
plus standards possibles préférant des outils externes si nécessaire.

--
Jean-Pierre
Avatar
josephb
Fleuger wrote:

Bon, je crois bien que ça non plus, ce n'est pas à ma portée.
J'ai encore du taf avant d'assimiler ça.
Désolé :-(



Mais si tu peux, seulement tu n'as pas fait (et rassure-toi tu n'es pas
le seul) la "découverte" que j'ai faite et qui m'a incité à chercher
s'il n'y avait pas "autre chose" (fichier help) derrière cette façade de
"man passe-partout" pur bon nombre des commandes builtins de BSD.

Voilà l'expérience sans danger et révélatrice que je te propose :
va au dossier /usr/share/man/man1

Là, tu prends les fichiers
alias.1.gz
et
builtin.1.gz
et pour enfoncer le clou
builtins.1.gz

Dont tu fais une copie sur le bureau
tu les décompresses, et tu double-cliques dessus
tu compares et tu vas comprendre

Et si tu vas jusqu'en bas au § "See Also" tu verras que des 154 builtins
seulement 15 (csh à which) ont un "vrai" man à eux.
Pour le reste certains builtins ont un "help" (je ne les ai pas
recensés), les autres n'ont rien de spécifique(à ma connaissance).

Cette page générique suggère aussi qu'on peut faire
<info nomdelacommande> dans le Terminal pour avoir éventuellement une
aide
manque de bol
<info alias> ça affiche encore la page générique des builtins

et nul part il est fait mention de fichier "help" non plus que dans la
page man de la commande /man/, si bien que je ne sais même plus comment
j'en suis arrivé à mettre ce truc en œuvre !
J'ai dû être marabouté dans mon sommeil…

Allez, assez de question, reposons nous ;-)

--
J. B.
Avatar
J.P
Pour ceux qui n'auraient pas suivi, ou simplement les curieux de ce quoi
on cause ici, parmi des centaines de références, voire des milliers :

<http://www.commentcamarche.net/contents/1144-systemes-unix-le-shell>

«Introduction au shell
L'interpréteur de commandes est l'interface (JP rajoute: de base, le
plus élémentaire) entre l'utilisateur et le système d'exploitation, d'où
son nom anglais «shell», qui signifie «coquille». »

Pour ceux qui ont connu, c'est comme la ligne de commande sous DOS ou
Windows, on entre les commandes au clavier sous forme de suite de
caractères, parfois fort longues.

et pour varier:
<http://perso-etis.ensea.fr/andry/cours/L2/cours-shell2.pdf>

«Commandes internes (builtins)
Les commandes internes sont réaliséees de manière interne par le shell
lui-même .... Ces commandes ne possèdent pas d¹exécutables associés
puisqu¹elles sont codées en interne au shell.»

Dans OS X, quand on parle du Terminal, de la ligne de commande, parfois
de la CLI (command Line Interface) c'est là où on écrit les commandes
ex.: ls -l pour lister le contenu du répertoire courant
qui seront interprétées par le shell et exécutées:
- soit par des modules externes (petits programmes) dont description
et fonctionnalités sont dans les «man» (pour «manual» = manuel)
- soit par des modules internes (morceaux de code interne au shell,
les «builtin» : construits dedans, intégrés) dont, si j'ai bien compris,
description et fonctionnalités sont soit dans des «man» soit dans des
«help» (= aide)

D'où l'outil de JB: Man&Help auquel on donne un nom de commande et qui
se débrouille tout seul pour trouver, selon les cas, le «man» ou le
«help» qui correspond et l'afficher sous forme d'un PDF dans Aperçu..
--------------------
Ce qui précède est évidemment à corriger, étoffer, préciser par qui
sait, parce que le Unix shell et moi, nous n'avons que des relations
anciennes, très épisodiques et très distantes ...
--------------------
rem: l'utilisation du Terminal pour passer des commandes shell est le
meilleur moyen de détruire son environnement selon ce que le système
permet. Plus généralement, ce qui nous appartient, ce que nous avons
installé, créé est directement menacé.
Tout ce pour quoi l'"admin" (administrateur) a toutes les permissions
est directement menacé.
Ne parlons pas du "root" qui peut détruire encore plus, surtout le
système de protection (SIP dans El Capitan) a été désactivé.

Alors, attention !... le problème, qui peut être majeur quand on utilise
le Terminal, est toujours entre la chaise et la machine :-)

================================
In article <1mj3cmv.iqig5n1vw8huzN%,
(Joseph-B) wrote:

Fleuger wrote:

> Bon, je crois bien que ça non plus, ce n'est pas à ma portée.
> J'ai encore du taf avant d'assimiler ça.
> Désolé :-(

Mais si tu peux, seulement tu n'as pas fait (et rassure-toi tu n'es pas
le seul) la "découverte" que j'ai faite et qui m'a incité à chercher
s'il n'y avait pas "autre chose" (fichier help) derrière cette façade de
"man passe-partout" pur bon nombre des commandes builtins de BSD.

Voilà l'expérience sans danger et révélatrice que je te propose :
va au dossier /usr/share/man/man1

Là, tu prends les fichiers
alias.1.gz
et
builtin.1.gz
et pour enfoncer le clou
builtins.1.gz

Dont tu fais une copie sur le bureau
tu les décompresses, et tu double-cliques dessus
tu compares et tu vas comprendre

Et si tu vas jusqu'en bas au § "See Also" tu verras que des 154 builtins
seulement 15 (csh à which) ont un "vrai" man à eux.
Pour le reste certains builtins ont un "help" (je ne les ai pas
recensés), les autres n'ont rien de spécifique(à ma connaissance).

Cette page générique suggère aussi qu'on peut faire
<info nomdelacommande> dans le Terminal pour avoir éventuellement une
aide
manque de bol
<info alias> ça affiche encore la page générique des builtins

et nul part il est fait mention de fichier "help" non plus que dans la
page man de la commande /man/, si bien que je ne sais même plus comment
j'en suis arrivé à mettre ce truc en ¦uvre !
J'ai dû être marabouté dans mon sommeilŠ

Allez, assez de question, reposons nous ;-)



--
Jean-Pierre
Avatar
g4fleurot
J.P wrote:

Pour ceux qui n'auraient pas suivi, ou simplement les curieux de ce quoi
on cause ici, parmi des centaines de références, voire des milliers :



Et bée, dis donc, toi qui réclames des gurus, tu en es un aussi dans ton
genre. ;-)

Merci pour les liens.

--
Gérard FLEUROT plus un
Avatar
J.P
In article <1mj4941.tpibsc1k42ad8N%,
(Fleuger) wrote:

J.P wrote:

> Pour ceux qui n'auraient pas suivi, ou simplement les curieux de ce quoi
> on cause ici, parmi des centaines de références, voire des milliers :

Et bée, dis donc, toi qui réclames des gurus, tu en es un aussi dans ton
genre. ;-)


Non.
Lire et synthétiser, voire vulgariser, ce n'est pas guru du tout.
Entre écrire cela et utiliser efficacement, avec parfois même style et
élégance pour certains développeurs, il y a une grande, très très grande
distance ...
Merci pour les liens.


De nada.

--
Jean-Pierre
Avatar
josephb
Fleuger wrote:

Hélas, nos systèmes sont différents.
Ces fichiers n'existent pas sous El Capitan.



Pas grave. Tant pis si la démo tombe à l'eau, ça veut juste dire que les
fichiers de man ont été déplacés, mais ils existent toujours mieux
cachés sans doute, car mon script les retrouve* de SL à EL Cap, malgré
la distance importante entre ces OS pour en faire des pdf.

* Honnêtement, je ne sais pas comme il fait : c'est une commande Shell
qui s'en charge !

--
J. B.
Avatar
josephb
Gilbert OLIVIER wrote:

Juste pour information et sans vouloir bouder ton travail qui mérite
vraiment d'être décortiqué,



Merci pour ton appréciation, mais je suis parfaitement conscient que mon
bidule c'est du pipi de chat. Il suffit de faire une brève recherche sur
le net pour trouver des dizaines d'appllis pour ça, autrement mieux
foutues, avec une jolie interface, et sans comper tous les sites dédiés.
Cet utilitaire ne serait jamais sortie de chez moi si je ne m'étais
rendu compte que les /quelques/ utilitaires off-line que j'ai essayés
passaient tous à côté des pages de "help" pour les built-in qui en ont
une.
Mon applet répare cet oubli à peu de frais pour l'utilisateur
occasionnel du man, c'est pour ça que je me suis autorisé à le proposer.

il y a une solution toute faite qui permet
d'avoir accès à la documentation présente sur le mac ainsi qu'à de
nombeuses documentations téléchargeable (man, xCode, Swift, AppleScript,
PHP, MySQL, Python..)
que je trouve très bien: "Dash"



Eh bien merci pour l'info. Je ne connaissais pas, c'est vraiment un truc
de ouf, le must-have des amateurs très avertis ou professionnels de la
programmation tous azimuts.
Ça doit bien valoir ses 25$ quand on sait le temps que l'on peut passer
à éplucher les docs (et surtout ce qu'on pourrait en économiser si on
savait où et comment chercher).
Mais pour moi qui suis un scripteur du dimanche et adepte du
do-it-yourself, c'est trop ;-)
D'ailleurs, la question que je me pose est la suivante, si je suis dans
Xcode, dont la doc est hypertouffue et s'apparente parfois à une jungle
de rubriques malgré l'organisation bien pensée et l'aide des hyperliens,
Dash apporterait-il une autre organisation plus intuitive ou se
contente-t-il de mettre à disposition l'exsistant par Apple ?

--
J. B.
Avatar
josephb
Holothurie wrote:

OK, je n'ai pas tout lu



Pas de souci : les read-me sont justement faits pour ça ;-)
--
J. B.
Avatar
gilbert.olivier
Joseph-B wrote:

Gilbert OLIVIER wrote:

> Juste pour information et sans vouloir bouder ton travail qui mérite
> vraiment d'être décortiqué,

Merci pour ton appréciation, mais je suis parfaitement conscient que mon
bidule c'est du pipi de chat. Il suffit de faire une brève recherche sur
le net pour trouver des dizaines d'appllis pour ça, autrement mieux
foutues, avec une jolie interface, et sans comper tous les sites dédiés.
Cet utilitaire ne serait jamais sortie de chez moi si je ne m'étais
rendu compte que les /quelques/ utilitaires off-line que j'ai essayés
passaient tous à côté des pages de "help" pour les built-in qui en ont
une.
Mon applet répare cet oubli à peu de frais pour l'utilisateur
occasionnel du man, c'est pour ça que je me suis autorisé à le proposer.



Au delà de la "beauté graphique" du résultat, ce qui est très
interessant, c'est toutes les informations que l'on a pu glaner dans ce
fil suite à ton travail. Et puis c'est toujours très gratifiant de
réussir par soi même à résoudre un problème à partir du moment ou l'on
s'y est attaqué.


> il y a une solution toute faite qui permet
> d'avoir accès à la documentation présente sur le mac ainsi qu'à de
> nombeuses documentations téléchargeable (man, xCode, Swift, AppleScript,
> PHP, MySQL, Python..)
> que je trouve très bien: "Dash"

Eh bien merci pour l'info. Je ne connaissais pas, c'est vraiment un truc
de ouf, le must-have des amateurs très avertis ou professionnels de la
programmation tous azimuts.



Oui, on peut même créer ses propres doc selon diverses "approches":
<https://kapeli.com/docsets>

Ça doit bien valoir ses 25$ quand on sait le temps que l'on peut passer
à éplucher les docs (et surtout ce qu'on pourrait en économiser si on
savait où et comment chercher).
Mais pour moi qui suis un scripteur du dimanche et adepte du
do-it-yourself, c'est trop ;-)


Je ne sais plus à quoi on est limité avec la version gratuite mais en
fonction de ce que l'on recherche ça peut suffir.

D'ailleurs, la question que je me pose est la suivante, si je suis dans
Xcode, dont la doc est hypertouffue et s'apparente parfois à une jungle
de rubriques malgré l'organisation bien pensée et l'aide des hyperliens,
Dash apporterait-il une autre organisation plus intuitive ou se
contente-t-il de mettre à disposition l'exsistant par Apple ?



Il ne réécrit pas la doc donc n'a accès qu'à ce qu'a prévu Apple.

Cependant il a quelque mécanismes qui facilitent la vie dans certains
cas (on peut céer une liste de bookmark et aussi garder des "pages" dans
des onglets).

Le gros avantage que je lui trouve pour moi qui ne suis pas un gourou de
la programmation, mais plutôt un curieux, c'est qu'il centralise les
documentations. Toutes sous la main dans la même interface.





--
Gilbert
1 2 3 4 5