Pages de manuel pour Git Bash sur Windows 7

14

J'utilise Git bash sous Windows 7. Cela me permet d'utiliser la plupart des commandes que j'avais l'habitude d'utiliser sur le shell bash de ma machine Ubuntu. Mais les commandes man et info ne fonctionnent pas. Existe-t-il un moyen de faire fonctionner ces (incroyables) commandes de documentation sur le shell Git bash sous Windows?

Prasanth
la source

Réponses:

2

Vous pouvez utiliser la documentation en ligne.

Pages de manuel Linux en ligne et pages d'informations GNU

Sathyajith Bhat
la source
Existe-t-il des programmes qui se connectent à ces pages Web à partir de la ligne de commande et affichent le résultat? afin que je puisse toujours taper info grep sur le shell et obtenir les résultats ici?
Prasanth
1
@Prasanth peut-être que vous pouvez faire un wget <URL> & alors le grep.
Sathyajith Bhat
ou il pourrait le faire curl "http://man.he.net/?topic=<command_name>&section=all". remplacez le <command_name>par la commande que vous recherchez
mr5
7

Il peut être un peu exagéré, mais vous pouvez télécharger Cygwin qui comprendrait bash, manet information des lecteurs comme pinfo.

Le programme d’installation de cygwin vous permettrait de personnaliser votre installation pour qu’elle soit un assez petit sous-ensemble de cygwin.

Rich Homolka
la source
1
Pas exagéré le moins du monde; Il semble assez courant que quelqu'un souhaite une expérience Unixy sous Windows et installe Git Bash en pensant à tort que c'est le moyen de l'obtenir. Cygwin, quant à lui, en fournit un, probablement dans la mesure du possible ou presque.
Aaron Miller
6

Vous pouvez obtenir des pages de manuel sur l'environnement bash de Git, mais il est probablement plus pratique de considérer d'autres alternatives moins fastidieuses.

De plus, je n'ai pas beaucoup de représentants sur SuperUser, alors je suis triste de dire que je ne peux pas vraiment vous donner tous les liens dont j'ai besoin dans la réponse. J'ai republié ma réponse sur Tumblr.

En résumé:

  • Git's bash fait partie du projet msysGit.
  • msysGit est un fork du projet MinGW et MSYS
  • Vous aurez besoin de msysGit ou de MinGW pour installer MinGW-get.
  • Vous aurez besoin de MinGW-get pour installer Groff
  • Vous aurez besoin de Groff pour exécuter ces scripts pour vous donner une commande man à partir du shell msys bash
  • Avec ces scripts en place, vous pouvez lire les pages de manuel. Vous aurez juste besoin de les télécharger dans le chemin que vous avez indiqué dans les scripts.

Bonne chance.

Dave
la source
2
Vous pouvez installer man avec MinGW-get install msys-man. Man est également disponible sous forme de fichier binaire Windows: sourceforge.net/projects/ezwinports/files (trouvé via la FAQ: mingw.org/wiki/FAQ#toc10 ). Cette page a aussi groff. Soit serait probablement courir plus vite que ces scripts.
Sam Hasler
@ SamHasler msys-man est génial. Merci pour le tuyau, je ne sais pas comment j'ai raté ça.
Dave
3

J'ai cousu ensemble certaines des autres réponses pour obtenir une mancommande que vous pouvez utiliser comme vous le feriez en natif. Il suffit de coller ce qui suit dans votre .bashrc, et soit de sourcele ré-ouvrir, soit de rouvrir votre terminal.

function man {
    local section=all
    if [[ "$1" =~ ^[0-9]+$ ]]; then section="$1"; shift; fi
    local doc="$(curl -v --silent --data-urlencode topic="$@" --data-urlencode section="$section" http://man.he.net/ 2>&1)"
    local ok=$?
    local pre="$(printf '%s' "$doc" | sed -ne "/<PRE>/,/<\/PRE>/ { /<PRE>/ { n; b; }; p }")"
    [[ $ok -eq 0 && -n "$pre" ]] && printf '%s' "$pre" | less || printf 'Got nothing.\n' >&2
    return $ok
}

Il prend également en charge la demande de sections man particulières, par exemple man 3 printfpour l'appel système.

Points faibles: La source (man.he.net) n'est pas exactement une API RESTful et renvoie 200 même lorsque rien n'est trouvé. Il est donc difficile de donner des messages d'erreur précis. Au lieu de cela, cela affiche simplement «rien obtenu», peu importe le problème. Cela peut probablement être amélioré. En outre, la page résultante contient des entités html, telles que, à la &lt;place de <, ce qui rend certaines chaînes d'utilisation vilaines.

Pianosaure
la source
2

En plus de la réponse de Sathya , vous pouvez également le faire dans bash pour Windows:

curl -v --silent "http://man.he.net/?topic=<command_name>&section=all" 2>&1 | sed -n "/<PRE>/,/<\/PRE>/p"

Il suffit de remplacer le <command_name>avec la commande que vous recherchez.

Exemple de résultat pour la commande ls:

<PRE> SYNOPSIS ls [OPTION] ... [FILE] ...

DESCRIPTION Liste des informations sur les fichiers (le répertoire actuel par défaut). Triez les entrées par ordre alphabétique si ni -cftuvSUX ni --sort n’ont été spécifiés.

   Mandatory  arguments  to  long  options are mandatory for short options
   too.

   -a, --all
          do not ignore entries starting with .

   -A, --almost-all
          do not list implied . and ..

   --author
          with -l, print the author of each file

   -b, --escape
          print C-style escapes for nongraphic characters

   --block-size=SIZE
          scale   sizes   by   SIZE   before   printing    them.     E.g.,
          `--block-size=M'  prints sizes in units of 1,048,576 bytes.  See
          SIZE format below.

   -B, --ignore-backups
          do not list implied entries ending with ~

   -c     with -lt: sort by, and show, ctime (time of last modification of
          file  status  information)  with -l: show ctime and sort by name
          otherwise: sort by ctime, newest first

   -C     list entries by columns

   --color[=WHEN]
          colorize the output.   WHEN  defaults  to  `always'  or  can  be
          `never' or `auto'.  More info below

   -d, --directory
          list  directory entries instead of contents, and do not derefer-
          ence symbolic links

   -D, --dired
          generate output designed for Emacs' dired mode

   -f     do not sort, enable -aU, disable -ls --color

   -F, --classify
          append indicator (one of */=&gt;@|) to entries

   --group-directories-first
          group directories before files.

          augment  with  a  --sort option, but any use of --sort=none (-U)
          disables grouping

   -G, --no-group
          in a long listing, don't print group names

   -h, --human-readable
          with -l, print sizes in human readable format (e.g., 1K 234M 2G)

   --si   likewise, but use powers of 1000 not 1024

   -H, --dereference-command-line
          follow symbolic links listed on the command line

   --dereference-command-line-symlink-to-dir
          follow each command line symbolic link that points to  a  direc-
          tory

   --hide=PATTERN
          do  not  list implied entries matching shell PATTERN (overridden
          by -a or -A)

   --indicator-style=WORD
          append indicator with style WORD to entry names: none (default),
          slash (-p), file-type (--file-type), classify (-F)

   -i, --inode
          print the index number of each file

   -I, --ignore=PATTERN
          do not list implied entries matching shell PATTERN

   -k     like --block-size=1K

   -l     use a long listing format

   -L, --dereference
          when showing file information for a symbolic link, show informa-
          tion for the file the link references rather than for  the  link
          itself

   -m     fill width with a comma separated list of entries

   -n, --numeric-uid-gid
          like -l, but list numeric user and group IDs

   -N, --literal
          print  raw entry names (don't treat e.g. control characters spe-
          cially)

   -o     like -l, but do not list group information
          enclose entry names in double quotes

   --quoting-style=WORD
          use  quoting style WORD for entry names: literal, locale, shell,
          shell-always, c, escape

   -r, --reverse
          reverse order while sorting

   -R, --recursive
          list subdirectories recursively

   -s, --size
          print the allocated size of each file, in blocks

   -S     sort by file size

   --sort=WORD
          sort by WORD instead of name: none -U, extension  -X,  size  -S,
          time -t, version -v

   --time=WORD
          with  -l,  show time as WORD instead of modification time: atime
          -u, access -u, use -u, ctime -c, or  status  -c;  use  specified
          time as sort key if --sort=time

   --time-style=STYLE
          with  -l, show times using style STYLE: full-iso, long-iso, iso,
          locale, +FORMAT.  FORMAT is interpreted like `date';  if  FORMAT
          is  FORMAT1&lt;newline&gt;FORMAT2, FORMAT1 applies to non-recent files
          and FORMAT2 to recent files; if STYLE is prefixed with `posix-',
          STYLE takes effect only outside the POSIX locale

   -t     sort by modification time, newest first

   -T, --tabsize=COLS
          assume tab stops at each COLS instead of 8

   -u     with  -lt:  sort  by, and show, access time with -l: show access
          time and sort by name otherwise: sort by access time

   -U     do not sort; list entries in directory order

   -v     natural sort of (version) numbers within text

   -w, --width=COLS
          assume screen width instead of current value

   -x     list entries by lines instead of by columns

   -X     sort alphabetically by entry extension

   -Z, --context
          print any SELinux security context of each file

   Using color to distinguish file types is disabled both by  default  and
   with  --color=never.  With --color=auto, ls emits color codes only when
   standard output is connected to a terminal.  The LS_COLORS  environment
   variable can change the settings.  Use the dircolors command to set it.

Etat de sortie: 0 si OK,

   1      if minor problems (e.g., cannot access subdirectory),

   2      if serious trouble (e.g., cannot access command-line argument).

AUTEUR Écrit par Richard M. Stallman et David MacKenzie.

RAPPORTER LES BOGUES Signaler les bogues à [email protected] Page d'accueil de GNU coreutils: < http://www.gnu.org/software/coreutils/> ; Aide générale sur les logiciels GNU: < http://www.gnu.org/gethelp/> ; Signalez les erreurs de traduction de ls à < http://translationproject.org/team/> ;

DROIT D' AUTEUR Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3 +: GNU GPL version 3 ou version ultérieure < http://gnu.org/licenses/gpl.html> ;. C'est un logiciel libre: vous êtes libre de le changer et de le redistribuer. Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.

VOIR AUSSI La documentation complète de ls est disponible dans un manuel Texinfo. Si les programmes info et ls sont correctement installés sur votre site, la commande

          info coreutils 'ls invocation'

   should give you access to the complete manual.

GNU coreutils 8.12.197-032bb Septembre 2011
<STRONG> <A HREF="/man1/LS"> LS (1) </A> </ STRONG> </ PRE>

mr5
la source
1

La réponse , à partir de cette question , pourrait être utile:

Vous donne des informations pour la commande directement dans la fenêtre bash.

Commande Git Référence Rapide

git [command] -help

Ouvre les informations en ligne pour la commande dans votre navigateur.

Commande Git Manual Pages

git help [command]
git [command] --help
Justin
la source
À l'avenir, vous devrez citer et citer les informations pertinentes lorsque vous fournissez un lien. Vous devriez également apprendre à formater correctement vos réponses.
Ramhound
Cela semble être uniquement pour les commandes Git. Ce ne sont pas nécessairement les mêmes que leurs homologues non-git. Par exemple, git grepne supporte pas l' -Roption. git-scm.com/docs/git#_git_commands
Lorem Ipsum
0

Si quelqu'un d'autre essaie de mantravailler sur Windows et utilise Msys2 , voici ce que j'ai trouvé:

Je suis très proche en utilisant la réponse ci-dessus qui dit d'installer groff(disponible via pacman) et ensuite d'utiliser le script ici , qui a pour noyau l'appel groff -Tascii -mandoc -P-c.

Mais je ne pouvais pas le faire fonctionner sur mes pages de manuel (trouvé dans /usr/share/man) à moins que je décompresse d'abord les fichiers gz !

Ce n’était pas une solution acceptable. J’ai donc cherché plus loin et j’ai découvert qu’en exécutant

pacman -Ss -man

qu'il y a trois paquets (actuellement) qui ont le préfixe "man-". (les voir ici ).

J'ai essayé celui qui s'appelle man-db , ça marche, et maintenant j'ai la capacité de courir mannormalement.

TT--
la source
Aujourd'hui, je peux simplement exécuter pacman -S manet installer le produit comme prévu
Toby