ฉันกำลังใช้ Git bash บน Windows 7 มันทำให้ฉันมีวิธีการใช้คำสั่งส่วนใหญ่ที่ฉันเคยใช้กับเชลล์ bash บนเครื่อง Ubuntu ของฉัน แต่คำสั่ง man และ info ไม่ทำงาน มีวิธีที่จะทำให้คำสั่งเอกสาร (เหลือเชื่อ) เหล่านี้ทำงานบน Gash bash shell บน windows ได้หรือไม่?
ฉันกำลังใช้ Git bash บน Windows 7 มันทำให้ฉันมีวิธีการใช้คำสั่งส่วนใหญ่ที่ฉันเคยใช้กับเชลล์ bash บนเครื่อง Ubuntu ของฉัน แต่คำสั่ง man และ info ไม่ทำงาน มีวิธีที่จะทำให้คำสั่งเอกสาร (เหลือเชื่อ) เหล่านี้ทำงานบน Gash bash shell บน windows ได้หรือไม่?
คำตอบ:
คุณสามารถใช้เอกสารออนไลน์
curl "http://man.he.net/?topic=<command_name>§ion=all"
หรือเขาสามารถทำเช่นนี้ แทนที่<command_name>
ด้วยคำสั่งที่คุณกำลังมองหา
มันอาจจะเป็น overkill บิต แต่คุณสามารถดาวน์โหลดCygwinซึ่งจะรวมbash
, และผู้อ่านข้อมูลเช่นman
pinfo
ตัวติดตั้ง cygwin จะให้คุณปรับแต่งการติดตั้งของคุณให้เป็นชุดย่อยของ cygwin ที่ค่อนข้างเล็ก
คุณสามารถทำให้หน้าคู่มือทำงานบนสภาพแวดล้อมการทุบตีของ Git แต่อาจสะดวกกว่าที่จะพิจารณาทางเลือกอื่นที่ทำงานน้อยลง
ฉันยังไม่มีตัวแทนใน SuperUser มากดังนั้นฉันเสียใจที่บอกว่าฉันไม่สามารถให้ลิงก์ทั้งหมดที่ฉันต้องการได้ในการตอบกลับ ฉันโพสต์คำตอบของฉันใหม่ใน Tumblr
สรุป:
โชคดี.
MinGW-get install msys-man
คุณสามารถติดตั้งคนที่มี ผู้ชายก็มีให้ในรูปแบบไบนารี Windows: sourceforge.net/projects/ezwinports/files (พบได้จากคำถามที่พบบ่อย: mingw.org/wiki/FAQ#toc10 ) หน้านั้นยังมี Groff อาจจะทำงานได้เร็วกว่าสคริปต์เหล่านั้น
ฉันได้รวบรวมคำตอบอื่น ๆ เข้าด้วยกันเพื่อให้ได้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 เช่น<
แทน<
ซึ่งทำให้สตริงการใช้งานบางอย่างน่าเกลียด
นอกเหนือจากคำตอบของ Sathyaคุณสามารถทำสิ่งนี้ใน bash สำหรับ Windows:
curl -v --silent "http://man.he.net/?topic=<command_name>§ion=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 */=>@|) 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<newline>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>
คำตอบจากนี้คำถามที่อาจจะเป็นประโยชน์:
ให้ข้อมูลกับคุณสำหรับคำสั่งในหน้าต่างทุบตี
อ้างอิงคำสั่ง Git ด่วน
git [command] -help
เปิดข้อมูลออนไลน์สำหรับคำสั่งในเบราว์เซอร์ของคุณ
คำสั่ง Git หน้าคู่มือ
git help [command] git [command] --help
git grep
ไม่สนับสนุน-R
ตัวเลือก git-scm.com/docs/git#_git_commands
หากคนอื่นพยายามman
ทำงานกับ Windows และใช้Msys2นี่คือสิ่งที่ฉันพบ:
ผมได้อย่างใกล้ชิดโดยใช้คำตอบข้างต้นที่กล่าวว่าการติดตั้งgroff
(สามารถใช้ได้ผ่านทาง Pacman) แล้วใช้สคริปต์ที่นี่groff -Tascii -mandoc -P-c
ซึ่งมีที่เป็นแกนหลักของการเรียกร้องให้
แต่ฉันไม่สามารถทำให้มันทำงานบนหน้าคนของฉัน (พบใน/usr/share/man
) ถ้าฉันไม่บีบอัดไฟล์ gz ก่อน !
นี่ไม่ใช่วิธีการแก้ปัญหาที่ยอมรับได้ดังนั้นฉันจึงตรวจสอบเพิ่มเติมและพบว่าทำงานได้
pacman -Ss -man
มีสามแพ็คเกจ (ปัจจุบัน) ที่มีส่วนนำหน้าเป็น "man-" ( ดูได้ที่นี่ )
ฉันลองอันที่เรียกว่าman-dbแล้วก็ใช้งานได้และตอนนี้ฉันสามารถวิ่งman
ตามปกติที่คาดไว้
pacman -S man
และติดตั้งเงินได้ตามที่คาดหวัง
เพิ่มไปยังส่วนท้ายของ .bashrc
C:\Users\<Username>\.bashrc
function man() {
VAR1="http://man.he.net/?topic="
VAR2=$1
VAR3="§ion=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 find
find
จะกลับมาหน้าคู่มือสำหรับ
นี่คือรุ่นสำหรับคำตอบสั้น ๆ จริง ๆ :
function man-short() {
$1 --help
}