วิธีข้ามไปยังการตั้งค่าสถานะเฉพาะใน manpage Unix ได้อย่างไร


23

เมื่ออ่าน manpage ของ Unix ในเทอร์มินัลฉันจะข้ามไปยังคำอธิบายของการตั้งค่าเฉพาะได้อย่างไร

ยกตัวอย่างเช่นฉันต้องการทราบความหมายของธง-o mountฉันวิ่งman mountและต้องการข้ามไปยังสถานที่ที่-oอธิบายไว้ ขณะนี้ฉันค้นหา/-oแต่ตัวเลือกนั้นถูกกล่าวถึงในหลายสถานที่ก่อนส่วนที่อธิบายจริง ๆ ดังนั้นฉันต้องกระโดดไปรอบ ๆ

ขอบคุณ

คำตอบ:


27

สิ่งที่ฉันทำคือใส่ช่องว่างสองสามหน้าหน้าธงดังนี้:

/     -o

นั่นไม่น่าเชื่อถือ 100% แต่คุณกระโดดผ่านห่วงน้อยกว่ามาก "/^ +-o"หากคุณต้องการประสบความสำเร็จแม้อัตราที่ดีกว่าลอง ที่จะพบบรรทัดที่ขึ้นต้นด้วยช่องว่างและตามด้วย -o ฉันไม่ต้องการพิมพ์สตริงแปลก ๆ บ่อยนัก


11

ฉันได้กำหนดฟังก์ชั่นนี้ในของฉัน .bashrc

function manswitch () { man $1 | less -p "^ +$2"; }

ซึ่งคุณสามารถใช้ดังนี้

manswitch grep -r

ฉันได้รับจากcommandlinefuนี้

หมายเหตุ: อาร์กิวเมนต์ของ-pสวิตช์lessคือ regexp บอกให้น้อยกว่าในการค้นหาบรรทัดที่ขึ้นต้นด้วย ( ^) หนึ่งช่องว่างหรือมากกว่านั้น ( +) ตามด้วยสวิตช์ (ARG ที่สองเป็นต้น$2) ดังนั้นจึงมีข้อดีของการทำงานกับการจัดรูปแบบที่แตกต่างกัน


5

นอกจากนี้คุณสามารถเปิด man page ในตำแหน่งเฉพาะจาก command line ด้วย

man -P 'less -p "     -o"' mount

โหวตให้เป็นไปได้ แต่มันค่อนข้างจะพิมพ์ได้มากกว่าการค้นหาจากภายในมนุษย์ ขอบคุณ แต่!
dotancohen

ที่มีประโยชน์สวยที่จะส่งคนไปยังสถานที่ที่แน่นอนในหน้าคน :)
วิ่ง

ใช่ฉันแค่คิดว่าถ้าฉันต้องเปิดหน้าคนในสคริปต์ด้วยเหตุผลบางอย่างมันจะมีประโยชน์เช่นกัน ขอขอบคุณ!
dotancohen

3

@ piccobello คำตอบนั้นยอดเยี่ยม แต่มันก็กินสีในหน้าคนของฉัน แทนการไพพ์ถึงless(เนื่องจากโดยปกติmanแล้วจะใช้เป็นlessค่าเริ่มต้น) ฉันแค่ส่งlessคำสั่งที่แก้ไขไปที่man:

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

สิ่งนี้จะรักษาฟังก์ชั่น @piccobello ที่มีอยู่ในฟังก์ชั่นของเขา แต่คงไว้ซึ่งสี


1

โซลูชันอื่น ๆ ค่อนข้างดี แต่โปรดจำไว้ว่า man pages เป็นเพียงข้อมูลและคุณสามารถทำอะไรกับพวกเขาใน Linux ได้อย่างง่ายดาย

ผู้ชายบางคำสั่ง> file.txt

แปลงหน้าเป็นไฟล์ข้อความธรรมดาที่คุณสามารถจัดการได้ ฉันเก็บสำเนาคู่มือทุบตีไว้เป็นข้อความในไดเรกทอรี bin ของฉันดังนั้นฉันสามารถโหลดลงในตัวแก้ไขข้อความของฉันเพื่อค้นหาสิ่งต่าง ๆ และคัดลอกและวางในขณะที่ฉันกำลังแก้ไขสคริปต์

หรือคุณสามารถแปะไว้ในฟิลเตอร์เช่น

ผู้ชายคำสั่ง | grep -A lines-after "บางรูปแบบ"

แม้ว่ามันจะไม่ได้ผลสำหรับคุณในเทอร์มินัล แต่ฉัน (ด้วยความช่วยเหลือจากเพื่อน) เขียนสคริปต์ที่คว้าหน้าคนและแสดงไว้ในเว็บเบราว์เซอร์เพื่อให้ฉันสามารถใช้คุณลักษณะการนำทาง / การค้นหาที่ดีกว่า น้อยกว่า มันขึ้นอยู่กับ KDE เล็กน้อย แต่ง่ายต่อการปรับเปลี่ยน

http://dl.dropbox.com/u/54584985/kman


3
คุณอาจต้องการลองใช้งานman://ใน Konqueror KDE มี manpage KIOSLAVE!
dotancohen

@dotancohen - ยอดเยี่ยม ไม่รู้เรื่องนั้น
Joe

@dotancohen - ฉันลองใช้งานใน dolphin แล้วมันก็ใช้งานได้ แต่จะแสดง man pages เป็นไดเร็กตอรี่และไฟล์และเรียกใช้เบราว์เซอร์เริ่มต้นของคุณเมื่อคุณคลิกที่ไฟล์ ฉันไม่เข้าใจส่วนของ KIOSLAVE ฉันลอง man: // kioslave และมันก็เหมือนกับ man: //
Joe

@dancancohen - ไม่เป็นไร - ฉันค้นหา kioslaves บนวิกิพีเดีย en.wikipedia.org/wiki/KIO
Joe

ใช่ KDE มีทุกอย่างเกี่ยวกับ สนุก!
dotancohen

1

ฉันเขียนเครื่องมือที่ใช้แค่นี้เรียกว่าแฟล็กแมน ยังอยู่ในการพัฒนา แต่สามารถใช้งานได้แล้ว ตัวอย่างเช่น:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.