คำตอบ:
ให้ความสนใจกับตัวเลขส่วน: printfสมมติว่าคุณต้องการความช่วยเหลือในการ มีอย่างน้อยสองในเชลล์และ C รุ่น bash ของ printf อยู่ในส่วนที่ 1 รุ่น C อยู่ในส่วนที่ 3 หรือ 3C หากคุณไม่ทราบว่าคุณต้องการที่จะพิมพ์man -a printfและหน้าคู่มือทั้งหมดจะปรากฏขึ้น
หากสิ่งที่คุณกำลังค้นหาคือรูปแบบของ printf ที่มีรหัส% ทั้งหมดและไม่ปรากฏในหน้า man ของ printf คุณสามารถข้ามไปยังหน้าคนที่เกี่ยวข้องที่ระบุไว้ในย่อหน้า SEE ALSO คุณอาจพบสิ่งที่ต้องการซึ่งแสดงให้เห็นคุณพิมพ์formats(5)man 5 formats
หากคุณรำคาญที่man printfให้คุณ printf (1) และสิ่งที่คุณต้องการคือ printf (3) คุณจะต้องเปลี่ยนลำดับของไดเรกทอรีที่สแกนในMANPATHตัวแปรสภาพแวดล้อมและใส่ค่าสำหรับภาษา C ก่อนคำสั่งเชลล์ สิ่งนี้อาจเกิดขึ้นได้เช่นกันเมื่อหน้า man Fortran หรือ TCL / Tk ถูกแสดงรายการไว้ก่อนหน้า C
หากคุณไม่ทราบว่าจะเริ่มพิมพ์หรือman intro man -s <section> introสิ่งนี้จะให้ข้อมูลสรุปของคำสั่งของส่วนที่ร้องขอ
มีการกำหนดส่วนต่างๆไว้อย่างดี:
สุดท้าย แต่ไม่ท้ายสุด: ข้อมูลที่ส่งมาในหน้าคนนั้นไม่ซ้ำซ้อนดังนั้นโปรดอ่านอย่างละเอียดตั้งแต่ต้นจนจบเพื่อเพิ่มโอกาสในการค้นหาสิ่งที่คุณต้องการ
man manเพื่อดูคำอธิบายแบบเต็มของส่วนต่างๆ
strstr())และฉันไม่มีอินเทอร์เน็ตอยู่รอบตัวฉัน
man -k substringหรือapropos substringจะช่วยให้คุณ
พิมพ์ slash /จากนั้นพิมพ์สตริงที่ต้องการค้นหา จากนั้นกดnเพื่อไปยังรายการถัดไป
ค้นหา Man -k
นี่จะให้รายการของหน้าคู่มือทั้งหมดที่เกี่ยวข้องกับ 'ค้นหา'
man -k search -s 3 ยังกล่าวถึงในsuperuser.com/a/677969/599957
ดังที่ @Steven D บอกไว้อย่าลืมinfoหน้าเว็บ
นอกจากนี้ไม่ต้องกลัวinfoหน้า ฉันรู้จักผู้คนมากมายที่ไม่ได้ใช้หน้าข้อมูลเพราะระบบนำทางในตัว ทางออกที่ฉันชอบคือการวางหน้าข้อมูลผ่านless:
info gpg |less
ด้วยวิธีนี้ฉันสามารถนำทางinfoเพจโดยใช้เพจเจอร์ที่ฉันชอบ infoหน้าในขณะนี้จะมีพฤติกรรมเช่นเดียวกับmanหน้า
aproposยูทิลิตี้เป็นประโยชน์อย่างจริงจังในการหา manpage เหมาะสม
man -k== aproposใช่ไหม
aproposคือสิ่งที่ฉันใช้ตลอดเวลาเมื่อค้นหาสิ่งที่ไม่มี man page สำหรับตัวเอง
lessเพจเจอร์เริ่มต้นสำหรับการอ่านหน้าคนเป็น มีเอกสารอยู่ในที่นี่less
โดยเฉพาะอย่างยิ่ง:
ctrl+space/ fซึ่งอาจมีประโยชน์ขึ้นอยู่กับนิ้วที่คุณต้องการใช้ในการนำทาง
ตรวจสอบสิ่งที่อยู่ในส่วน SEE ALSO เสมอ คำสั่งที่แสดงภายใต้ส่วนนี้ในinfoหน้าสามารถเลือกได้โดยวางเคอร์เซอร์บนคำสั่งที่ต้องการแล้วกดปุ่ม Enter บ่อยครั้งที่ฉันพบคำสั่งหรือฟังก์ชันที่มีประโยชน์อื่น ๆ
หากคุณสบายกว่าตัวแก้ไขมากกว่าเพจเจอร์เริ่มต้นคุณสามารถตั้งค่าMANPAGERในสภาพแวดล้อมของคุณ ตัวอย่างเช่นฉันมีบรรทัดนี้ใน~/.bashrc:
export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"
ฉันคิดว่าการใช้เพจเจอร์ส่วนใหญ่เป็นความคิดที่ดี วิทยุติดตามตัวนี้มีประสิทธิภาพมาก แต่คุณสมบัติหลักสำหรับฉัน - การแสดงหน้าสี คุณสมบัตินี้ปรับปรุงการรับรู้ของข้อความธรรมดาและลดการค้นหาข้อมูลที่ต้องการ
ดูภาพหน้าจอที่แนบมาข้อความดูดีมากใช่ไหม

mostจะใช้เพื่อดูหน้าคนได้อย่างไร
> ~/.bashrcเพราะมันจะเขียนทับสิ่งที่อยู่ในนั้นแล้ว ดีกว่าที่จะผนวก ( >>) หรือเพิ่มมะนาวด้วยตนเองในความคิดของฉัน
aptitude install most; export MANPAGER="most"; man manติดตั้งและลอง: หากต้องการทำให้ถาวร:echo 'export MANPAGER="most"' >> ~/.bashrc
ใน Linux manคุณสามารถทำได้man -K string(หมายเหตุตัวพิมพ์ใหญ่ K) เพื่อทำการค้นหาคำที่กำหนด
-K, --global-apropos
Search for text in all manual pages. This is a brute-force
search, and is likely to take some time; if you can, you should
specify a section to reduce the number of pages that need to be
searched. Search terms may be simple strings (the default), or
regular expressions if the --regex option is used.
มีประโยชน์มากเมื่อคุณไม่รู้ว่าจะค้นหาที่ไหน
อย่าเพิกเฉยinfoหน้า เครื่องมือ GNU จำนวนมากมีหน้าข้อมูลที่ครอบคลุมมากกว่าหน้าคน บ่อยครั้งที่ส่วนSEE ALSOจะพูดว่า "เอกสารฉบับเต็มสำหรับ foo นั้นได้รับการปรับปรุงให้เป็นคู่มือ Texinfo" นี่เป็นเรื่องจริงสำหรับทุกสิ่งในแพ็คเกจ GNU coreutils
นอกจากนี้ถ้าคุณเป็นผู้ใช้ emacs อย่าลืมคุณสามารถอ่านข้อมูลและคู่มือการใช้โดยไม่ต้องออกหน้าการแก้ไขของคุณ: และM-x infoM-x woman
สำหรับหน้ายาวที่ซับซ้อนมากขึ้นฉันพบว่ามันง่ายกว่าที่จะอ่านมันออกจากคอมพิวเตอร์ (แปลกฉันรู้) และดังนั้นฉันจึงมีฟังก์ชั่นเหล่านี้ใน .bashrc
# Print man pages
manp() { man -t "$@" | lpr -pPrinter; }
# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
xdg-open /tmp/manpdf_$1.pdf ;}
จากคำตอบของ Kristof หากคุณพิมพ์ (เช่น) man -k chmodคุณจะได้รับรายการสิ่งของที่น่าจะเป็นไปได้ สังเกตหมายเลขในวงเล็บหมายถึงส่วนที่จะค้นหาในหน้าคู่มือ:
บน UNIX คุณสามารถลอง:
man -s1 chmod มันจะแสดงหน้าคนสำหรับคำสั่ง chmod
man -s2 chmod มันจะแสดงหน้าคนสำหรับฟังก์ชั่น C lib chmod ()
บน Linux คุณควรเปลี่ยน-sสำหรับ-S
ดู man pages ในแอปพลิเคชั่นกราฟิกที่ใช้งานง่าย:
konqueror man:(command)
สำหรับสารบัญระดับบนสุด:
konqueror man:
คุณสมบัติ:
info:(command)ไงก็ตามมันก็ใช้ได้กับ บางโปรแกรมให้ข้อมูลมากขึ้นผ่านทาง "ข้อมูล" กว่าผ่านทาง "คน" และ Konqueror ให้มากอินเตอร์เฟซที่ดีกว่าสำหรับการเรียกดูหน้าข้อมูลเหล่านี้ หมายเหตุ: เพียงแค่ใช้info:แต่ยังใช้เพื่อรับสารบัญระดับสูงสุด
gmanแพคเกจที่กำหนดเว็บเซิร์ฟเวอร์ manpage ที่localhost / cgi-bin / คน / man2html
yelpเป็นแบบดรอปอินที่มีน้ำหนักเบากว่าkonqueror- แม้ว่าจะมีข้อบกพร่องที่จะไม่นำเสนอสารบัญหรือหน้าแก้ความกำกวมสำหรับชื่อที่ใช้ในหลายส่วน คุณต้องแยกความแตกต่างเหล่านี้อย่างชัดเจนโดยการผนวก.(section)- yelp man:open.2เช่น คุณยังสามารถใช้ <kbd> Ctrl-L </kbd> เพื่อเปิดแถบตำแหน่ง
Dayum ผู้คน! คำตอบที่ซับซ้อนคืออะไร! อะไรก็ตามที่เกิดขึ้นกับความเรียบง่ายเป็นกุญแจสำคัญสู่ความฉลาดและอะไรล่ะ? คีย์ vi / vim ส่วนใหญ่ของคุณจะทำงานได้ว่ายน้ำ:
/หรือ?- ค้นหาไปข้างหน้าหรือข้างหลัง (ตามที่ผู้ชายบางคนพูดถึงแล้ว) ในกรณีของอดีตตัวพิมพ์เล็ก n จะเลื่อนดูแมตช์ไปข้างหน้าตัวใหญ่ N จะไปด้านหลัง ตรงข้ามเป็นจริงสำหรับเครื่องหมายคำถามหลัง
การค้นหาที่ซับซ้อนมากขึ้นเล็กน้อยผ่านการแสดงผลปกติ ความแตกต่างระหว่างman(หรือless) และ VIM คือคุณต้องใช้อักขระ escape () เพื่อประกาศเมตาอักขระในนิพจน์ของคุณเมื่อใช้ตัวหลัง ข่าวดีก็คือว่าเมื่อคุณใช้อดีต ( manหรือless) - ไม่มาก ดังนั้นคุณสามารถนำสิ่งนี้ไปใช้เมื่อค้นหาตัวอย่างเช่นiptables/(iptables|rules)หน้าคนสำหรับคำหลายคำเช่นดังนั้น:
หากคุณไม่คุ้นเคยกับนิพจน์ทั่วไปนี่หมายถึง "ค้นหาคำที่มีiptablesหรือrules". หลังจากป้อนข้อมูลนี้และกดปุ่ม n ค้างไว้คุณจะเลื่อนดูผลลัพธ์การค้นหาสลับกับผลลัพธ์ที่ถูกไฮไลต์ให้คุณด้วยสีที่ต่างกัน (สองจริงฮ่าฮ่า) ถ้าคุณพยายามอ่านผ่านหน้าเว็บและ ต้องการเน้นคำศัพท์หรือแนวคิดเฉพาะ - คุณจะไม่พลาดสิ่งใด
และแน่นอนว่าสำหรับการนำทางที่รวดเร็วกว่าปกติงานของคุณviยังคงยืนอยู่ (ไม่ได้ตั้งใจเล่นสำนวน):
ggหรือG- เริ่มต้น / สิ้นสุดของเอกสาร (การแก้ไข! ในmanคุณสามารถใช้ปุ่มทั้งหมดที่กล่าวถึงด้านล่างโดยไม่ต้องใช้ Ctrl ที่มีไว้สำหรับviเท่านั้น)
Ctrl + u or d- เลื่อนขึ้นหรือลง;
Ctrl + b or f- สิ่งเดียวกันเพียงใน leaps ที่ใหญ่กว่า "หน้าย้อนกลับหรือไปข้างหน้า";
eหรือy- เลื่อนทีละบรรทัด แต่ฉันคิดว่าคนส่วนใหญ่ค่อนข้างจะใช้ปุ่มลูกศร อย่างไรก็ตามถ้าคุณต้องการที่จะอยู่ "1337" และ "ไม่เคยออกจากแถวบ้าน" (เช่นฉันทำฮ่า ๆ ) - มันเป็นวิธีที่จะไป
สิ่งที่ฉันพยายามจะพูดคือ UNIX มีการควบคุมโปรแกรมคีย์บอร์ดสองรสชาติหลักซึ่งทั้งสองส่วนของreadlineไลบรารี: vi และ emacs เพิ่มการสับของคุณในแบบใดแบบหนึ่ง (แต่โดยเฉพาะอย่างยิ่งในทั้งสอง) และมันจะทำให้ชีวิตของคุณซับซ้อนน้อยลงมาก โปรแกรม CLI ส่วนใหญ่ใน UNIX ใช้งานทั้งสองโปรแกรม BASHใช้การควบคุม emacs โดยเริ่มต้น แต่ก็สามารถกำหนดให้ "vi โหมด" set -o viโดยการพิมพ์ สามารถพูดได้เหมือนกันสำหรับการแสดงออกปกติ แต่นั่นจะเป็นวิธีนอกหัวข้อ ฉันอยากจะบอกว่าทั้งสองอย่างนี้เป็น "lingua franca" ของ UNIX
คล้ายกับ แต่แตกต่างจากคำตอบของ Rob Hoelz เล็กน้อย
เพิ่มสิ่งต่อไปนี้ในของคุณ~/.vimrc:
let $GROFF_NO_SGR=1
runtime ftplugin/man.vim
ตอนนี้vimmanเป็นโปรแกรมดู manpage ที่ยอดเยี่ยมและ:Manจากภายใน Vim (หรือกดปุ่มKคำหลัก) เป็นเบราว์เซอร์ manpage ที่ยอดเยี่ยม
พวกเราส่วนใหญ่ตั้งค่าตัวแปร PATH นี่จะแสดงวิธีทำให้พา ธ การค้นหาแบบแมน ๆ ตรงกับพา ธ การค้นหาคำสั่งของคุณ
export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:สมมติว่าคุณผนวกเส้นทางของคุณจะรวมส่วนบุคคลของคุณทำงานที่เฉพาะเจาะจงและสาธารณูปโภคในประเทศที่มีการติดตั้งเช่น ในฐานะที่เป็นผลข้างเคียงman fooจะไม่แสดง manpages ที่เก็บไว้ที่ ~ / man, / workgroup / man หรือ / opt / local / man
ในการแก้ไขปัญหานี้ฉันใช้manpathคำสั่งเพื่อกำหนดเส้นทางการค้นหาหน้าเว็บโดยอัตโนมัติ ตัวอย่างเช่นฉัน ~ / .bashrc มีดังต่อไปนี้ สิ่งนี้ใช้ได้กับฉันในระบบต่าง ๆ นับร้อยที่รันทุกอย่างจาก FreeBSD 4.x, ดาร์วินและ CentOS 5:
### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin
### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null
บางระบบ (เช่นเดียวกับแอปเปิ้ล Leopard) ตั้ง MANPATH โดยอัตโนมัติ แต่นั่นหมายความว่าระบบของคุณจะใช้ตัวแปร MANPATH manpathแทนการใช้ ดังนั้นระบบจะไม่สนใจหน้าเว็บสำหรับ 'MacPorts' (/ opt / local / man) ฉันต้องการควบคุมตัวเองดังนั้นฉันจึงไม่ได้กำหนด MANPATH:
unset MANPATH
manpath >/dev/null
หากคุณกำลังมองหาข้อมูลเกี่ยวกับการbashbuiltin (เช่นtime, disown, setหรือ[[) แทนหวดผ่านรายละเอียดของbashหน้าข้อมูลหรือman bashคุณสามารถป้อนhelp {builtin-keyword}และได้รับข้อมูลไวยากรณ์พื้นฐานได้อย่างรวดเร็ว
หากคุณรำคาญที่คน printf ให้คุณ printf (1) และสิ่งที่คุณต้องการคือ printf (3) คุณสามารถบอกคนที่คุณต้องการให้ printf จากส่วนที่ 3 โดยใส่ส่วนก่อน printf ดังนี้: man 3 printfโดยไม่ต้องเปลี่ยน ลำดับของไดเรกทอรีที่สแกนในตัวแปรสภาพแวดล้อม MANPATH และวางไว้สำหรับภาษา C ก่อนหน้าสำหรับคำสั่งเชลล์
grepฉันเพียงแค่ใช้ หากฉันสงสัยว่า-sตัวเลือกของreadคำสั่งทำอะไรฉันจะลองใช้คำสั่งเหล่านี้ตามลำดับจนกว่าฉันจะได้รับคำตอบ:
info read |grep \\-s
man read |grep \\-s
help read |grep \\-s
ในกรณีนี้มีเพียงinfoคำสั่งที่ให้คำตอบที่ชัดเจน คำตอบที่ยอดเยี่ยมนี้ให้รายละเอียดเกี่ยวกับระบบช่วยเหลือที่แตกต่างกัน
man -a printfเพียงเริ่มต้นที่man 1เครื่อง Linux Mint ของฉัน
whatis printfให้ข้อมูลที่เกี่ยวข้องกับฉัน
หากต้องการดูอย่างมีประสิทธิภาพสำหรับการสลับอักขระเดี่ยว-uคุณสามารถใช้:
/^ *-u($|\s)
ประหยัดเวลาได้มากถ้าตัวเลือกมากมายมี '-u' เป็นส่วนนำหน้า
/-u($|[,\s]) ในกรณีที่ตัวเลือกตัวละครกรอบด้วยเครื่องหมายจุลภาค แต่ถ้าคุณต้องการที่จะเห็นรายการทั้งหมดของตัวละครตัวเลือก 'U' (เช่น-u]ใน[--udp|-u]ของnetstatตนเอง) คุณจะต้องบางอย่างเช่นนี้ /-u($|[^a-z]) และถ้าviหรือvimจะใช้เป็นเพจเจอร์: /-u\($\|[^a-z]\)
(1) เรื่องคำสั่งที่ใช้สำหรับการค้นหาหน้าคน อย่างไรก็ตามการใช้งานส่วนใหญ่ของapropos (1)เพียงค้นหาในส่วน NAME ซึ่งมีข้อ จำกัด มาก
NetBSDมีการดำเนินการค้นหาข้อความแบบเต็มของ apropos (1) ซึ่งมีความสามารถในการค้นหาเนื้อหาที่สมบูรณ์ของหน้าคน นอกจากนี้ยังมีส่วนต่อประสานกับเว็บ: man-k.orgซึ่งคุณสามารถลองใช้ได้
หากคุณพบว่ามันยากที่จะอ่าน manpages เพราะข้อความสีขาวทั้งหมดคุณสามารถ colorize พวกเขา lessส่วนใหญ่หน้าคนเปิดด้วย สำหรับlessฉันใช้การตั้งค่าสีต่อไปนี้.bashrcจากที่นี่ :
man() {
LESS_TERMCAP_md=$'\e[01;31m' \red
LESS_TERMCAP_me=$'\e[0m' \
LESS_TERMCAP_se=$'\e[0m' \
LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
LESS_TERMCAP_ue=$'\e[0m' \
LESS_TERMCAP_us=$'\e[01;32m' \green
command man "$@"
}
นี่สำหรับ bash และ zsh สำหรับmost, fish, xtermและrxvtดูที่ลิงค์ด้านบน
สำหรับการอ่านเพิ่มเติม:
และสำหรับผู้ที่ต้องการอ่านหน้าคนและหน้าข้อมูลในหน้าจอสัมผัสคุณสามารถส่งคน / ข้อมูลไปยัง yad หรือ zenity และใช้ประโยชน์จาก gtk3 ทั้งหมดเช่นเลื่อนนิ้วพื้นเมือง ใช้งานได้ดีกับหน้าจอ refular และเมาส์:
man cat |yad --text-info
คุณสามารถใช้ zenity หรือคุณสามารถเพิ่มตัวเลือก yad เช่น:
man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &
เคล็ดลับ: โดยแสดง uri yoh สามารถคลิกที่ลิงค์ของเว็บภายในหน้าคนด้วยเมาส์ / นิ้ว
man --help/man -hและพี่น้องที่สมบูรณ์ยิ่งขึ้นman manมีเคล็ดลับการค้นหาและการนำทาง