[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.
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.
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.
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.
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.
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.
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
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 :
........
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
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.
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
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
Man&Help ne télécharge rien…
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.
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
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).
Bien sûr que je l'ai consulté cette page. (et même plusieurs fois).
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