คำตอบ:
ให้ความสนใจกับตัวเลขส่วน: 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 info
M-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
หากคุณกำลังมองหาข้อมูลเกี่ยวกับการbash
builtin (เช่น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
มีเคล็ดลับการค้นหาและการนำทาง