Pagine man per Git Bash su Windows 7


19

Sto usando Git bash su Windows 7. Mi fornisce un modo per usare la maggior parte dei comandi che ho usato per usare la shell bash sulla mia macchina Ubuntu. Ma i comandi man e info non funzionano. C'è un modo per far funzionare questi (incredibili) comandi di documentazione sulla shell bash di Git su Windows?

Risposte:


2

È possibile utilizzare la documentazione online.

Pagine man di Linux online e pagine di informazioni GNU


ci sono programmi che si collegheranno a queste pagine Web dalla riga di comando e visualizzeranno il risultato? così posso ancora digitare informazioni grep sulla shell e ottenere i risultati lì?
Prasanth,

1
@Prasanth forse puoi fare una scommessa <URL> e poi grep.
Sathyajith Bhat

o potrebbe farlo curl "http://man.he.net/?topic=<command_name>&section=all". sostituisci <command_name>con il comando che stai cercando
mr5

7

Può essere un po 'eccessivo, ma si potrebbe scaricare Cygwin che includerebbe bash, mane lettori informazioni come pinfo.

Il programma di installazione di Cygwin ti consente di personalizzare l'installazione in modo che diventi un sottoinsieme piuttosto piccolo di Cygwin.


2
Non eccessivo in alcun modo; sembra abbastanza comune che qualcuno voglia un'esperienza Unixy su Windows e installi Git Bash pensando erroneamente che sia il modo di ottenerne uno. Cygwin, nel frattempo, ne fornisce effettivamente uno, probabilmente nella massima misura possibile o quasi.
Aaron Miller,

6

È possibile ottenere le pagine man di lavoro su ambiente bash di Git, ma è probabilmente più conveniente per prendere in considerazione altre alternative che prendono meno lavoro.

Inoltre, non ho molti rappresentanti su SuperUser, quindi sono triste a dire che non posso davvero fornire tutti i collegamenti che mi servono nella risposta. Ho ripubblicato la mia risposta su Tumblr.

In sintesi:

  • Git's bash fa parte del progetto msysGit.
  • msysGit è un fork del progetto MinGW e MSYS
  • Per installare MinGW-get avrai bisogno di msysGit o MinGW
  • Avrai bisogno di MinGW-get per installare Groff
  • Avrai bisogno di Groff per eseguire questi script per darti un comando man dalla shell bash di msys
  • Con quegli script in atto, puoi leggere le pagine man. Dovrai solo scaricarli nel percorso che hai indicato negli script.

In bocca al lupo.


2
Puoi installare man con MinGW-get install msys-man. Man è disponibile anche come binario di Windows: sourceforge.net/projects/ezwinports/files (disponibile tramite le FAQ: mingw.org/wiki/FAQ#toc10 ). Anche quella pagina ha groff. O probabilmente verrebbero eseguiti più velocemente di quegli script.
Sam Hasler,

@SamHasler msys-man è fantastico. Grazie per la punta, non so come mi sia perso.
Dave,

4

Ho raccolto alcune delle altre risposte per ottenere un mancomando che puoi usare come faresti in modo nativo. Basta inserire quanto segue nel tuo .bashrc, o in sourceesso, o riaprire il terminale.

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
}

Supporta anche la richiesta di sezioni man particolari, ad esempio man 3 printfper la chiamata di sistema.

Punti di debolezza: la fonte (man.he.net) non è esattamente un'API RESTful e restituisce 200 anche quando non viene trovato nulla, quindi è difficile dare messaggi di errore accurati. Invece, questo stampa semplicemente "Non ho niente", qualunque sia il problema. Questo può probabilmente essere migliorato. Inoltre, la pagina risultante contiene entità html, come &lt;invece di <, che rende brutte alcune stringhe di utilizzo.


2

Inoltre risposta di Sathya , puoi farlo anche in bash per Windows:

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

Sostituisci semplicemente <command_name>con il comando che stai cercando.

Esempio di output per il comando ls:

<PRE> SINOSSI ls [OPZIONE] ... [FILE] ...

DESCRIZIONE Elenca le informazioni sui FILE (la directory corrente per impostazione predefinita). Ordinare le voci in ordine alfabetico se non è specificato nessuno di -cftuvSUX né --sort.

   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.

Stato uscita: 0 se OK,

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

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

AUTORE Scritto da Richard M. Stallman e David MacKenzie.

Segnalazione di bug Segnala ls bug a bug-coreutils@gnu.org home page GNU coreutils: < http://www.gnu.org/software/coreutils/> ; Aiuto generale usando il software GNU: < http://www.gnu.org/gethelp/> ; Segnala i bug di traduzione a < http://translationproject.org/team/> ;

COPYRIGHT Copyright (C) 2011 Free Software Foundation, Inc. Licenza GPLv3 +: GNU GPL versione 3 o successiva < http://gnu.org/licenses/gpl.html> ;. Questo è un software gratuito: sei libero di modificarlo e ridistribuirlo. Non esiste alcuna GARANZIA, nella misura consentita dalla legge.

VEDERE ANCHE La documentazione completa per ls è gestita come un manuale Texinfo. Se i programmi info e ls sono installati correttamente sul tuo sito, il comando

          info coreutils 'ls invocation'

   should give you access to the complete manual.

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


1

La risposta , da questa domanda , potrebbe essere utile:

Fornisce informazioni per il comando direttamente nella finestra di bash.

Riferimento rapido del comando Git

git [command] -help

Apre le informazioni online per il comando nel browser.

Pagine di manuale del comando Git

git help [command]
git [command] --help

In futuro ci si aspetta che citi e citi le informazioni pertinenti quando fornisci un link. Dovresti anche imparare a formattare correttamente le tue risposte.
Ramhound,

Questo sembra essere solo per i comandi Git. Questi non sono necessariamente gli stessi delle loro controparti non git. Ad esempio git grep, non supporta l' -Ropzione. git-scm.com/docs/git#_git_commands
Lorem Ipsum

0

Se qualcun altro sta cercando di mettersi manal lavoro su Windows e sta usando Msys2 , ecco cosa ho trovato:

Mi sono avvicinato molto usando la risposta sopra che dice di installare groff(disponibile via pacman) e quindi usare lo script qui , che ha al centro la chiamata a groff -Tascii -mandoc -P-c.

Ma non riuscivo a farlo funzionare sulle mie pagine man (trovate in /usr/share/man) se non decomprimevo prima i file gz !

Questa non era una soluzione accettabile, quindi ho guardato oltre e l'ho scoperto correndo

pacman -Ss -man

che ci sono tre pacchetti (attualmente) che hanno il prefisso "man-". ( vederli qui ).

Ho provato quello chiamato man-db , funziona, e ora ho la capacità di correre mannel modo normale previsto.


Oggi sono in grado di eseguire pacman -S mane installare semplicemente i proventi come previsto
Toby,

0

Aggiungilo alla fine di .bashrc

C:\Users\<Username>\.bashrc

function man() {
    VAR1="http://man.he.net/?topic="
    VAR2=$1
    VAR3="&section=all"
    VAR4="$VAR1$VAR2$VAR3"
    curl -v --silent "$VAR4" 2>&1 | sed -n "/<PRE>/,/<\/PRE>/p"
}

Aggiungilo alla fine di .bash_profile

C:\Users\<Username>\.bash_profile

# Read .bashrc
source ~/.bashrc

Riavvia terminale.

man findrestituirà le pagine di manuale per find.


Ecco una versione per una risposta davvero breve:

function man-short() {
    $1 --help
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.