[ANN] : Man&Help

Le
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.

  • Partager ce contenu :
Vos réponses Page 4 / 5
Trier par : date / pertinence
josephb
Le #26390653
Gilbert OLIVIER
Je ne sais plus à quoi on est limité avec la version gratuite mais en
fonction de ce que l'on recherche ça peut suffir.



Tu avais sérieusement piqué ma curiosité, mais le minimum requis est
10.8 et même en trafiquant le .plist je n'ai pas réussi à lancer
l'appli, incompatibilité de 2 frameworks. Tant pis.

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



Ah, si c'est ça, veux-tu faire pour moi juste un petit test, à savoir
demander le man de la commande alias, et voir ce qu'il retourne :
la page de "help" telle que l'affiche mon applet ou la page générique de
tous les builtins BSD ?
Je ne peux pas imaginer qu'ils soient passés à côté, mais je voudrais en
être sûr.

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).


Oui, ce qu'il faut pour garder sa doc sosu la main quand on est dans un
projet, car les recheches peuvent parfois partir dans tous les sens.

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.



Sans avoir essayé et de ma modeste expérience je confirme que c'est le
genre d'outil avec lequel j'aimerais travailler.


--
J. B.
gilbert.olivier
Le #26390666
Joseph-B
Ah, si c'est ça, veux-tu faire pour moi juste un petit test, à savoir
demander le man de la commande alias, et voir ce qu'il retourne :
la page de "help" telle que l'affiche mon applet ou la page générique de
tous les builtins BSD ?
Je ne peux pas imaginer qu'ils soient passés à côté, mais je voudrais en
être sûr.




Sans problème, voilà la copie de ce qu'affiche Dash:

BUILTIN(1) BSD General Commands Manual
BUILTIN(1)
NAME

builtin, !, %, ., :, @, {, }, alias, alloc, bg, bind, bindkey,
break,
breaksw, builtins, case, cd, chdir, command, complete, continue,
default,
dirs, do, done, echo, echotc, elif, else, end, endif, endsw, esac,
eval,
exec, exit, export, false, fc, fg, filetest, fi, for, foreach,
getopts,
glob, goto, hash, hashstat, history, hup, if, jobid, jobs, kill,
limit,
local, log, login, logout, ls-F, nice, nohup, notify, onintr, popd,
printenv, pushd, pwd, read, readonly, rehash, repeat, return,
sched, set,
setenv, settc, setty, setvar, shift, source, stop, suspend, switch,
telltc, test, then, time, times, trap, true, type, ulimit, umask,
unalias, uncomplete, unhash, unlimit, unset, unsetenv, until, wait,
where, which, while -- shell built-in commands

SYNOPSIS

builtin [-options] [args ...]

DESCRIPTION

Shell builtin commands are commands that can be executed within the
run-
ning shell's process. Note that, in the case of csh(1) builtin
commands,
the command is executed in a subshell if it occurs as any component
of a
pipeline except the last.

If a command specified to the shell contains a slash ``/'', the
shell
will not execute a builtin command, even if the last component of
the
specified command matches the name of a builtin command. Thus,
while
specifying ``echo'' causes a builtin command to be executed under
shells
that support the echo builtin command, specifying ``/bin/echo'' or
``./echo'' does not.

While some builtin commands may exist in more than one shell, their
oper-
ation may be different under each shell which supports them. Below
is a
table which lists shell builtin commands, the standard shells that
sup-
port them and whether they exist as standalone utilities.

Only builtin commands for the csh(1) and sh(1) shells are listed
here.
Consult a shell's manual page for details on the operation of its
builtin
commands. Beware that the sh(1) manual page, at least, calls some
of
these commands ``built-in commands'' and some of them ``reserved
words''.
Users of other shells may need to consult an info(1) page or other
sources of documentation.

Commands marked ``No**'' under External do exist externally, but
are
implemented as scripts using a builtin command of the same name.

Command External csh(1) sh(1)
! No No Yes
% No Yes No
. No No Yes
: No Yes Yes
@ No Yes Yes
{ No No Yes
} No No Yes
alias No** Yes Yes
alloc No Yes No
bg No** Yes Yes
bind No No Yes
bindkey No Yes No
break No Yes Yes
breaksw No Yes No
builtin No No Yes
builtins No Yes No
case No Yes Yes
cd No** Yes Yes
chdir No Yes Yes
command No** No Yes
complete No Yes No
continue No Yes Yes
default No Yes No
dirs No Yes No
do No No Yes
done No No Yes
echo Yes Yes Yes
echotc No Yes No
elif No No Yes
else No Yes Yes
end No Yes No
endif No Yes No
endsw No Yes No
esac No No Yes
eval No Yes Yes
exec No Yes Yes
exit No Yes Yes
export No No Yes
false Yes No Yes
fc No** No Yes
fg No** Yes Yes
filetest No Yes No
fi No No Yes
for No No Yes
foreach No Yes No
getopts No** No Yes
glob No Yes No
goto No Yes No
hash No No Yes
hashstat No Yes No
history No Yes No
hup No Yes No
if No Yes Yes
jobid No No Yes
jobs No** Yes Yes
kill Yes Yes No
limit No Yes No
local No No Yes
log No Yes No
login Yes Yes No
logout No Yes No
ls-F No Yes No
nice Yes Yes No
nohup Yes Yes No
notify No Yes No
onintr No Yes No
popd No Yes No
printenv Yes Yes No
pushd No Yes No
pwd Yes No Yes
read No** No Yes
readonly No No Yes
rehash No Yes No
repeat No Yes No
return No No Yes
sched No Yes No
set No Yes Yes
setenv No Yes No
settc No Yes No
setty No Yes No
setvar No No Yes
shift No Yes Yes
source No Yes No
stop No Yes No
suspend No Yes No
switch No Yes No
telltc No Yes No
test Yes No Yes
then No No Yes
time Yes Yes No
times No No Yes
trap No No Yes
true Yes No Yes
type No No Yes
ulimit No No Yes
umask No** Yes Yes
unalias No** Yes Yes
uncomplete No Yes No
unhash No Yes No
unlimit No Yes No
unset No Yes Yes
unsetenv No Yes No
until No No Yes
wait No** Yes Yes
where No Yes No
which Yes Yes No
while No Yes Yes

SEE ALSO

csh(1), echo(1), false(1), info(1), kill(1), login(1), nice(1),
nohup(1),
printenv(1), pwd(1), sh(1), test(1), time(1), true(1), which(1)

HISTORY

The builtin manual page first appeared in FreeBSD 3.4.

AUTHORS

This manual page was written by Sheldon Hearn

BSD February 23, 2005
BSD

--
Gilbert
michel.vauquois
Le #26390671
Gilbert OLIVIER
> Ah, si c'est ça, veux-tu faire pour moi juste un petit test, à savoir
> demander le man de la commande alias, et voir ce qu'il retourne :
> la page de "help" telle que l'affiche mon applet ou la page générique de
> tous les builtins BSD ?
> Je ne peux pas imaginer qu'ils soient passés à côté, mais je voudrais en
> être sûr.


Sans problème, voilà la copie de ce qu'affiche Dash:

BUILTIN(1) BSD General Commands Manual



C'est donc la page générique qui est affichée.
--
Michel Vauquois
Que Dieu vous garde... Moi j'ai pas le temps (RD)
MàJ 2015 : Matière à voir :
J.P
Le #26390678
In article (M.V.) wrote:

Gilbert OLIVIER

........
> Sans problème, voilà la copie de ce qu'affiche Dash:
>
> BUILTIN(1) BSD General Commands Manual

C'est donc la page générique qui est affichée.



A propos de ces outils, comme pour tous les outils, tout dépend de ce
qu'on veut en faire et pour quoi on va les utiliser.
Le tout est de trouver celui qui convient.

--
Jean-Pierre
josephb
Le #26390677
Gilbert OLIVIER
Sans problème, voilà la copie de ce qu'affiche Dash:

BUILTIN(1) BSD General Commands Manual
BUILTIN(1)
NAME



Merci pour le test.
Donc même Dash passe à côté des pages d'aide "help" des commandes
builtin.
Plus que cette (petite) carence à charge contre Dash qui se veut
ubiquitaire, ce qui m'interroge c'est pourquoi cette attitude désinvolte
(je n'ose dire méprisante) d'Apple pour les outils Unix sur lesquels
s'appuie son OS.
En 15 ans ils auraient pu arranger ces pages de man manquantes plutôt
que péréniser ce maquillage, question d'élégance vis à vis

1) des communautés qui ont développé les versions libres de Mach et
FreeBSD desquels Apple tire son OS commercial.

2) des utilisateurs.

C'était ma minute /redresseur de torts/

--
J. B.
g4fleurot
Le #26390705
Gilbert OLIVIER
que je trouve très bien: "Dash"



Merci Gilbert pour nous avoir indiqué ce logiciel :

C'est vraiment une merveille ; il demande une longue étude pour
appréhender son fonctionnement, mais la centralisation de toute la doc
concernant tous les processus qui font fonctionner l'internet est
vraiment un "must have" :-)

--
Gérard FLEUROT
g4fleurot
Le #26390704
Joseph-B
En 15 ans ils auraient pu arranger ces pages de man manquantes plutôt
que péréniser ce maquillage, question d'élégance vis à vis

1) des communautés qui ont développé les versions libres de Mach et
FreeBSD desquels Apple tire son OS commercial.

2) des utilisateurs.

C'était ma minute /redresseur de torts/



Là, je patine, je ne comprend pas.
Si, dans un terminal , j'entre man alias, j'obtiens :
BUILTIN(1) BSD General Commands Manual
[snip]
BSD February 23, 2005

Nouvelle page, j'entre help alias, j'obtiens :
alias: alias [-p] [name[=value] ... ]
`alias' with no arguments or with the -p option prints the list
of aliases in the form alias NAME=VALUE on standard output.
Otherwise, an alias is defined for each NAME whose VALUE is given.
A trailing space in VALUE causes the next word to be checked for
alias substitution when the alias is expanded. Alias returns
true unless a NAME is given for which no alias has been defined.
cad à dire le même texte que celui généré par Man&Help sans les ajouts
générés par le script :
•  ALIAS: Apple BSD's builtin HELP page 
La commande "ALIAS" est une commande BSD "Builtin"
dont la page "help" d'OS X n'est pas formatée.

Consulter aussi la page Web :
http://ss64.com/osx/alias.html

Depuis hier, je farfouille dans Dash pour comprendre comment ça marche :
Je trouve que c'est une merveille que de pouvoir centraliser toute la
doc internet dans un même logiciel.(Apple script, HTML, CSS, JavaScript,
SQLite, PHP, Man Pages, etc.)
Mais je n'ai pas trouvé de Docset pout Help.
Si Help est déjà sur l'ordi, pourquoi le télécharger de nouveau ?
Il doit bien y avoir un moyen de l'afficher. Je cherche mais ne trouve
pas...


--
Gérard FLEUROT
josephb
Le #26390708
Fleuger
Si Help est déjà sur l'ordi, pourquoi le télécharger de nouveau ?



Man&Help ne télécharge rien…

Il doit bien y avoir un moyen de l'afficher. Je cherche mais ne trouve
pas...


Tu n'as pas compris que c'est précisément ce que fait mon modeste
applet ?
Man&Help ne télécharge rien : il va afficher la doc "help" (présente sur
le Mac) de /alias/ juste comme si tu en demandais le "man",
sans avoir à entrer encore des commandes dans le Terminal.
Ce que ne sait pas faire Dash et c'est quand même un peu ballot.

Et avant que ce post soit ouvert, honnêtement tu aurais fait la démarche
de /help alias/ ou /help set/ quand tu reçois juste une page de man
générique à la demande /man set/ ?

J'ai juste ajouté à la présentation lacunaire du help un titre et une
introduction à pourquoi cette page "bizarre" par rapport à un man
classique.
J'ai aussi ajouté le lien (actif* je te ferai remarquer) vers la page
équivalente de ss64.com à la page que Man&Help affiche, c'est pour
donner, si besoin, un peu plus d'infos par une autre source sur cette
commande buitin.

* les gens sont tellement paresseux qu'ils ne cherchent pas à regarder
si le lien est actif en passant la souris dessus : il leur faut un
signalement par couleur et soulignage pour qu'ils le "devinent",
mais moi aussi je suis paresseux alors je n'ai pas eu envie de me payer
en plus le codage de la mise en forme (de l'url affichée) qui est quand
même relativement compliquée à réaliser /dans ce contexte/, quoique non
irréalisable.
Et je rappelle que ce bidule n'était même pas censé sortir
de chez moi ;-)

--
J. B.
gilbert.olivier
Le #26390710
Fleuger
Gilbert OLIVIER
> que je trouve très bien: "Dash"

Merci Gilbert pour nous avoir indiqué ce logiciel :

C'est vraiment une merveille ; il demande une longue étude pour
appréhender son fonctionnement, mais la centralisation de toute la doc
concernant tous les processus qui font fonctionner l'internet est
vraiment un "must have" :-)



Oui, c'est un outil très puissant, avec de très nombreuses possibilités
qu'il faut découvrir. Je suis loin d'en avoir fait le tour.

Le plus dur au début est parfois de découvrir ce que l'on est capable de
lui faire faire ;-))

--
Gilbert
g4fleurot
Le #26390719
Joseph-B
Et avant que ce post soit ouvert, honnêtement tu aurais fait la démarche
de /help alias/ ou /help set/ quand tu reçois juste une page de man
générique à la demande /man set/ ?



Là, tu as tout à fait raison et encore un grand merci de parfaire ma
culture en alimentant ma curiosité.
Tu sais, je me fais l'impression d'être un petit garçon qui écoute une
conversation entre grands et qui essaie de comprendre. (J'ai plus appris
comme ça qu'avec l'enseignement qu'on me prodiguait à l'école).

J'ai juste ajouté à la présentation lacunaire du help un titre et une
introduction à pourquoi cette page "bizarre" par rapport à un man
classique.
J'ai aussi ajouté le lien (actif* je te ferai remarquer) vers la page
équivalente de ss64.com à la page que Man&Help affiche, c'est pour
donner, si besoin, un peu plus d'infos par une autre source sur cette
commande buitin.



Bien sûr que je l'ai consulté cette page. (et même plusieurs fois).

Et je rappelle que ce bidule n'était même pas censé sortir
de chez moi ;-)



Tu me donnes l'impression d'avoir des regrets : encore une fois, merci
encore de l'avoir proposé.

Mais la nature humaine est ainsi faite : quoi qu'on fasse, il y a
toujours des réactions dans tous les azimuths.
Alors, qu'est-ce qui est mieux ? Ne rien faire, où faire ce qu'on pense
être bien en rationalisant les réactions négatives pour neutraliser leur
impact ?

--
Gérard FLEUROT
Poster une réponse
Anonyme