Man pages สำหรับ Git Bash บน Windows 7


20

ฉันกำลังใช้ Git bash บน Windows 7 มันทำให้ฉันมีวิธีการใช้คำสั่งส่วนใหญ่ที่ฉันเคยใช้กับเชลล์ bash บนเครื่อง Ubuntu ของฉัน แต่คำสั่ง man และ info ไม่ทำงาน มีวิธีที่จะทำให้คำสั่งเอกสาร (เหลือเชื่อ) เหล่านี้ทำงานบน Gash bash shell บน windows ได้หรือไม่?

คำตอบ:


2

คุณสามารถใช้เอกสารออนไลน์

หน้า man Linux ออนไลน์ & GNU Info Pages


มีโปรแกรมใดบ้างที่จะเชื่อมต่อกับเว็บเพจเหล่านี้จากบรรทัดคำสั่งและแสดงผลลัพธ์ ดังนั้นฉันยังสามารถพิมพ์ข้อมูล grep บนเชลล์และรับผลลัพธ์ที่นั่นได้หรือไม่
Prasanth

1
@Prasanth บางทีคุณสามารถทำ <get> แล้ว grep มัน
Sathyajith Bhat

curl "http://man.he.net/?topic=<command_name>&section=all"หรือเขาสามารถทำเช่นนี้ แทนที่<command_name>ด้วยคำสั่งที่คุณกำลังมองหา
mr5

ไม่ตอบคำถามของ OP เขาต้องการให้คำสั่งเหล่านี้ทำงานในเชลล์
Pete Alvin

7

มันอาจจะเป็น overkill บิต แต่คุณสามารถดาวน์โหลดCygwinซึ่งจะรวมbash, และผู้อ่านข้อมูลเช่นmanpinfo

ตัวติดตั้ง cygwin จะให้คุณปรับแต่งการติดตั้งของคุณให้เป็นชุดย่อยของ cygwin ที่ค่อนข้างเล็ก


2
ไม่มากไปหน่อย ดูเหมือนว่าเป็นเรื่องธรรมดาที่บางคนจะต้องการประสบการณ์ Unixy บน Windows และติดตั้ง Git Bash โดยไม่ได้ตั้งใจคิดว่าเป็นวิธีการรับหนึ่ง Cygwin ในขณะเดียวกันให้หนึ่งอาจเป็นไปได้ในระดับสูงสุดหรือเกือบจะดังนั้น
Aaron Miller

6

คุณสามารถทำให้หน้าคู่มือทำงานบนสภาพแวดล้อมการทุบตีของ Git แต่อาจสะดวกกว่าที่จะพิจารณาทางเลือกอื่นที่ทำงานน้อยลง

ฉันยังไม่มีตัวแทนใน SuperUser มากดังนั้นฉันเสียใจที่บอกว่าฉันไม่สามารถให้ลิงก์ทั้งหมดที่ฉันต้องการได้ในการตอบกลับ ฉันโพสต์คำตอบของฉันใหม่ใน Tumblr

สรุป:

  • ทุบตี Git เป็นส่วนหนึ่งของโครงการ msysGit
  • msysGit เป็นส่วนหนึ่งของโครงการ MinGW และ MSYS
  • คุณจะต้องใช้ msysGit หรือ MinGW เพื่อติดตั้ง MinGW-get
  • คุณจะต้อง MinGW - รับเพื่อติดตั้ง Groff
  • คุณจะต้อง Groff เพื่อเรียกใช้สคริปต์เหล่านี้เพื่อให้คำสั่ง man จากภายในเปลือกหอย msys
  • ด้วยสคริปต์เหล่านั้นคุณสามารถอ่าน man pages ได้ คุณเพียงแค่ต้องดาวน์โหลดมันไปยังเส้นทางที่คุณระบุไว้ในสคริปต์

โชคดี.


2
MinGW-get install msys-manคุณสามารถติดตั้งคนที่มี ผู้ชายก็มีให้ในรูปแบบไบนารี Windows: sourceforge.net/projects/ezwinports/files (พบได้จากคำถามที่พบบ่อย: mingw.org/wiki/FAQ#toc10 ) หน้านั้นยังมี Groff อาจจะทำงานได้เร็วกว่าสคริปต์เหล่านั้น
Sam Hasler

@ SamHasler msys-man ยอดเยี่ยม ขอบคุณสำหรับเคล็ดลับฉันไม่ทราบว่าฉันพลาดได้อย่างไร
เดฟ

5

ฉันได้รวบรวมคำตอบอื่น ๆ เข้าด้วยกันเพื่อให้ได้manคำสั่งที่คุณสามารถใช้ได้เหมือนอย่างที่คุณต้องการ เพียงติดสิ่งต่อไปนี้ในของคุณ.bashrcแล้วsourceเปิดใหม่หรือเปิดเทอร์มินัลใหม่

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
}

นอกจากนี้ยังสนับสนุนการร้องขอส่วนผู้ชายโดยเฉพาะเช่นman 3 printfการเรียกระบบ

จุดอ่อน:แหล่งที่มา (man.he.net) ไม่ใช่ RESTful API อย่างแน่นอนและจะส่งคืน 200 แม้ว่าจะไม่พบสิ่งใดดังนั้นจึงยากที่จะให้ข้อความแสดงข้อผิดพลาดที่แม่นยำ แต่จะพิมพ์ว่า "ไม่มีอะไรเลย" ไม่ว่าปัญหาจะเกิดขึ้นก็ตาม สิ่งนี้สามารถปรับปรุงได้ นอกจากนี้หน้าผลลัพธ์มีเอนทิตี html เช่น&lt;แทน<ซึ่งทำให้สตริงการใช้งานบางอย่างน่าเกลียด


คำตอบที่ดีที่สุด ขอขอบคุณ! มันได้ผล.
Pete Alvin

2

นอกเหนือจากคำตอบของ Sathyaคุณสามารถทำสิ่งนี้ใน bash สำหรับ Windows:

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

เพียงแค่แทนที่<command_name>ด้วยคำสั่งที่คุณกำลังมองหา

ตัวอย่างเอาต์พุตสำหรับคำสั่งls:

<PRE> บทสรุป ls [ตัวเลือก] ... [ไฟล์] ...

DESCRIPTION แสดงรายการข้อมูลเกี่ยวกับไฟล์ (ไดเรกทอรีปัจจุบันเป็นค่าเริ่มต้น) เรียงลำดับรายการตามตัวอักษรหากไม่มี -cftuvSUX และ --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.

สถานะการออก: 0 ถ้าตกลง

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

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

ผู้เขียนเขียนโดย Richard M. Stallman และ David MacKenzie

การรายงานข้อบกพร่องรายงานรายงานข้อผิดพลาดไปยัง bug-coreutils@gnu.org หน้าแรกของ GNU coreutils: < http://www.gnu.org/software/coreutils/> ; ความช่วยเหลือทั่วไปโดยใช้ซอฟต์แวร์ GNU: < http://www.gnu.org/gethelp/> ; รายงานข้อผิดพลาดในการแปล ls เป็น < http://translationproject.org/team/> ;

ลิขสิทธิ์ (C) 2011 มูลนิธิซอฟต์แวร์เสรี, Inc. ใบอนุญาต GPLv3 +: GNU GPL รุ่น 3 หรือใหม่กว่า < http://gnu.org/licenses/gpl.html> ; นี่เป็นซอฟต์แวร์ฟรี: คุณสามารถเปลี่ยนแปลงและแจกจ่ายต่อได้ ไม่มีการรับประกันตามขอบเขตที่กฎหมายอนุญาต

ดูเอกสารทั้งหมดสำหรับ ls นั้นได้รับการดูแลเป็นคู่มือ Texinfo หากมีการติดตั้งโปรแกรมข้อมูลและ ls ไว้อย่างถูกต้องที่ไซต์ของคุณคำสั่ง

          info coreutils 'ls invocation'

   should give you access to the complete manual.

coreutils ของ GNU 8.12.197-032bb กันยายน 2554
<STRONG> <A HREF="/man1/LS"> LS (1) </A> </STR> </PRE>


1

คำตอบจากนี้คำถามที่อาจจะเป็นประโยชน์:

ให้ข้อมูลกับคุณสำหรับคำสั่งในหน้าต่างทุบตี

อ้างอิงคำสั่ง Git ด่วน

git [command] -help

เปิดข้อมูลออนไลน์สำหรับคำสั่งในเบราว์เซอร์ของคุณ

คำสั่ง Git หน้าคู่มือ

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

ในอนาคตคาดว่าคุณจะอ้างอิงและอ้างถึงข้อมูลที่เกี่ยวข้องเมื่อคุณมีลิงก์ คุณควรเรียนรู้วิธีจัดรูปแบบคำตอบของคุณอย่างเหมาะสม
Ramhound

สิ่งนี้ดูเหมือนจะใช้สำหรับคำสั่ง Git เท่านั้น สิ่งเหล่านี้ไม่จำเป็นต้องเหมือนกับของที่ไม่ใช่ git ตัวอย่างเช่นgit grepไม่สนับสนุน-Rตัวเลือก git-scm.com/docs/git#_git_commands
Lorem Ipsum

0

หากคนอื่นพยายามmanทำงานกับ Windows และใช้Msys2นี่คือสิ่งที่ฉันพบ:

ผมได้อย่างใกล้ชิดโดยใช้คำตอบข้างต้นที่กล่าวว่าการติดตั้งgroff(สามารถใช้ได้ผ่านทาง Pacman) แล้วใช้สคริปต์ที่นี่groff -Tascii -mandoc -P-cซึ่งมีที่เป็นแกนหลักของการเรียกร้องให้

แต่ฉันไม่สามารถทำให้มันทำงานบนหน้าคนของฉัน (พบใน/usr/share/man) ถ้าฉันไม่บีบอัดไฟล์ gz ก่อน !

นี่ไม่ใช่วิธีการแก้ปัญหาที่ยอมรับได้ดังนั้นฉันจึงตรวจสอบเพิ่มเติมและพบว่าทำงานได้

pacman -Ss -man

มีสามแพ็คเกจ (ปัจจุบัน) ที่มีส่วนนำหน้าเป็น "man-" ( ดูได้ที่นี่ )

ฉันลองอันที่เรียกว่าman-dbแล้วก็ใช้งานได้และตอนนี้ฉันสามารถวิ่งmanตามปกติที่คาดไว้


วันนี้ฉันสามารถเรียกใช้pacman -S manและติดตั้งเงินได้ตามที่คาดหวัง
Toby

0

เพิ่มไปยังส่วนท้ายของ .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"
}

เพิ่มไปยังส่วนท้ายของ .bash_profile

C:\Users\<Username>\.bash_profile

# Read .bashrc
source ~/.bashrc

รีสตาร์ทเครื่อง

man findfindจะกลับมาหน้าคู่มือสำหรับ


นี่คือรุ่นสำหรับคำตอบสั้น ๆ จริง ๆ :

function man-short() {
    $1 --help
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.