Linux Lexicon — Anatomy Of A Man Page

เผยแพร่แล้ว: 2016-11-01

linuxlexiconlinuxtthemancommand-manpage ไบต์สั้น: หน้าคู่มือซอฟต์แวร์และเอกสารประกอบอาจมีความหนาและยากพอสำหรับผู้เริ่มต้น โดยไม่ต้องมีข้อตกลงที่คลุมเครือซึ่งผูกติดกับวงเล็บและวงเล็บทุกประเภท เราจะพยายามลดความซับซ้อนของ man page ของ Linux และทำให้เข้าใจง่ายขึ้น

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

ชื่อ
อย่างแรกคือส่วนหัวของชื่อและที่เกี่ยวกับผลรวม ส่วนนี้ประกอบด้วยชื่อของยูทิลิตี้ ตลอดจนคำอธิบายสั้น ๆ

เรื่องย่อ
มีระดับความสามารถในการอ่านที่แตกต่างกันจาก man page ถึง man page แต่มีสิ่งหนึ่งที่แน่นอน ส่วนที่ยากที่สุดมักจะถอดรหัสเรื่องย่อที่มีขนดก มีข้อตกลงหลายประการสำหรับการระบุข้อมูลที่จำเป็นสำหรับคำสั่งใดๆ แบบแผนเหล่านี้ประกอบด้วยวงเล็บและวงเล็บต่างๆ รวมทั้งรูปแบบอื่นๆ ของสัญกรณ์ ธรรมเนียมปฏิบัติที่แตกต่างกันทั้งหมดเหล่านี้อาจสร้างความสับสนอย่างมากสำหรับผู้เริ่มต้น และทำให้ผู้ที่มีประสบการณ์แต่ไม่เชี่ยวชาญในศิลปะคู่มือยังคงรู้สึกกังวล ด้านล่างนี้ เราจะแบ่งคำที่พูดไม่ชัดออกเป็นกฎที่เข้าใจง่าย

กล้าหาญ พิมพ์ตรงตามที่แสดง
ตัวเอียง หรือ ขีดเส้นใต้ แทนที่ด้วยอาร์กิวเมนต์ที่เหมาะสม
[-abcxyz] แฟล็กทั้งหมดภายในวงเล็บเหลี่ยมเป็นทางเลือก
-a | -b ไม่สามารถใช้ตัวเลือกที่คั่นด้วยท่อร่วมกันได้
<บังคับ> อาร์กิวเมนต์บังคับ มักพบในคำอธิบายตัวเลือก
{ใช่ไม่ใช่} ตัวเลือกที่จำกัด เฉพาะตัวเลือกที่ระบุเท่านั้นที่จะใช้งานได้
อาร์กิวเมนต์ที่ตามด้วยจุดไข่ปลาสามารถทำซ้ำได้

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

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ ARG …]

คำสั่ง tar มีตัวเลือกมากมาย เราเห็นชื่อคำสั่ง tar เป็นตัวหนา เพราะควรพิมพ์ตามที่แสดง จากนั้นเราเห็นเหล็กจัดฟันเปิดด้วยตัวเลือกแบบแยกท่อ แสดงว่าเราจำกัดอยู่แค่ตัวเลือกนั้นและต้องเลือกเพียงอันเดียว ถัดไปคือแฟล็กทางเลือก เราสามารถใช้ตัวเลขใดก็ได้ แม้ว่าอาจใช้ไม่ได้ทั้งหมด การอ่านเพิ่มเติมในหน้า man page จะชี้ให้เห็นถึงความขัดแย้งของตัวเลือกที่อาจเกิดขึ้น และสุดท้าย เรามีอาร์กิวเมนต์ที่ทำซ้ำได้ ในกรณีของ tar this สำหรับไฟล์ที่คุณกำลังใช้งาน

su [ตัวเลือก] [-] [ ผู้ใช้ [ อาร์กิวเมนต์ …]]

อีกครั้งที่เราเห็น su ตัวหนาเพราะเป็นชื่อของคำสั่ง อย่างที่สอง เราเห็นว่าไม่มีการระบุแฟล็กจริง ๆ มีเพียงแฟล็กที่เป็นทางเลือกเท่านั้น ประการที่สาม มีการระบุแฟล็กเดียว แต่ก็เป็นทางเลือกเช่นกัน สุดท้าย เราเห็นอาร์กิวเมนต์ทางเลือกที่สามารถทำซ้ำได้ภายในอาร์กิวเมนต์ทางเลือก ตอนนี้ สิ่งที่เคยดูลึกลับมาก ๆ ก็สมเหตุสมผลมากขึ้น

whois [{-h|–host } HOST ] [{-p|–port} PORT ] [-abBcdGHKlLmMrRx] [-g SOURCE:FIRST-LAST ] [-i ATTR [, ATTR ]…] [-s แหล่ง ที่มา [, แหล่ง ที่มา ]…] [-T TYPE [, TYPE ]…] [–verbose] OBJECT

นี่เป็นสิ่งที่หนาแน่นเป็นพิเศษ คัดลอกลงในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบและเพิ่มช่องว่างเพิ่มเติมในนั้นหากจะช่วยให้คุณอ่านได้ หลังจากสแกนสิ่งนี้แล้ว คุณควรเริ่มเห็นรูปแบบสองสามแบบ ส่วนโฮสต์และพอร์ตใช้การจัดรูปแบบเดียวกันสำหรับตัวเลือกแบบสั้นและแบบยาว ตามด้วยอาร์กิวเมนต์สำหรับตัวเลือกนั้น ในขณะที่ทั้งคู่เป็นตัวเลือก จากนั้นเราจะเห็นสตริงของแฟล็กทางเลือก บิตถัดไปเกี่ยวกับแหล่งที่มาตั้งแต่แรกจนถึงสุดท้ายคือไวยากรณ์ที่ whois คาดหวังซึ่งจะอธิบายในภายหลังใน man page ตอนนี้เราเห็นแฟล็กทางเลือกสามตัวที่ใช้อาร์กิวเมนต์เดียวหรืออาร์กิวเมนต์ซ้ำแบบเลือกได้ นี่คือประเภทของการทบต้นของอนุสัญญาที่อาจเข้าใจได้ยากในตอนแรก สุดท้ายมีตัวเลือก verbose และอ็อบเจ็กต์ (โฮสต์/โดเมน)

และนั่นคือวิธีการอ่านเรื่องย่อของหน้าคน มีอนุสัญญาอื่นๆ สองสามข้อ แต่ก็คลุมเครือเกินกว่าจะกล่าวถึงในบทความนี้

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

ตัวเลือก
จำแฟล็กเหล่านั้นและอาร์กิวเมนต์ต่างๆ ที่อาจเป็นทางเลือกหรือบังคับได้หรือไม่ นี่คือที่ที่พวกเขาอธิบายทั้งหมด มักจะมีข้อมูลที่ดีในที่นี้ และบ่อยครั้งที่คุณจะพบแบบแผน <argument> ซึ่งระบุว่าแฟล็กที่กำหนดต้องการอาร์กิวเมนต์ที่สอดคล้องกัน บางครั้งคุณจะพบว่าตัวเลือกต่างๆ จะอยู่ในส่วนคำอธิบาย เนื่องจากไม่มีกฎตายตัวที่นิยามหน้าคน เฉพาะแบบแผน และความตั้งใจที่จะปฏิบัติตามมาตรฐาน

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

นอกจากนี้ คุณจะพบส่วนต่างๆ สำหรับผู้แต่ง ข้อมูลลิขสิทธิ์ การรายงานจุดบกพร่อง และดู (โดยบังเอิญ) เป็นประจำ

นอกเหนือจากนี้ ยังมี ส่วน ที่กำหนดไว้อย่างเป็นทางการของหน้าคนตามที่กำหนดไว้ด้านล่าง

1 โปรแกรมปฏิบัติการหรือคำสั่งเชลล์
2 การเรียกระบบ (ฟังก์ชันที่เคอร์เนลให้มา)
3 การเรียกไลบรารี (ฟังก์ชันภายในไลบรารีโปรแกรม)
4 ไฟล์พิเศษ (มักพบใน /dev)
5 รูปแบบไฟล์และข้อตกลง เช่น /etc/passwd
6 เกม
7 เบ็ดเตล็ด (รวมถึงแพ็คเกจมาโครและข้อตกลง) เช่น man(7) groff(7)
8 คำสั่งการดูแลระบบ (โดยปกติสำหรับรูทเท่านั้น)
9 รูทีนของเคอร์เนล (ปกติจะไม่พบบน Linux)

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

ผู้ชาย 5 หัวข้อ

คำสั่งไม่ใช่สิ่งเดียวที่มีคู่มือดังที่คุณเห็นจากส่วนต่างๆ ที่มีอยู่ การเรียกระบบ ไฟล์คอนฟิกูเรชัน และอุปกรณ์พิเศษอาจมีหน้าคนที่เกี่ยวข้องพอๆ กัน จำนวนข้อมูลในการติดตั้ง Linux ทั่วไปใน man page นั้นน่าทึ่งมาก และเช่นเดียวกันกับระบบปฏิบัติการโอเพ่นซอร์สที่เหมือน UNIX อื่น ๆ

หากคุณพบว่า man page ไม่เพียงพอและคุณยังไม่เข้าใจคำสั่ง ให้ตรวจสอบออนไลน์เสมอ เพราะมีหลายคนเสนอคำอธิบายโดยละเอียดเกี่ยวกับเครื่องมือบางอย่าง แต่การแจกแจงจำนวนมากมีหน้าคนของตัวเองสำหรับแพ็คเกจซอฟต์แวร์ที่แตกต่างกัน เมื่อคุณพบว่าคุณพอใจกับชิ้นส่วนของซอฟต์แวร์แล้ว แต่ยังรู้สึกว่าคู่มือนี้ขาดหายไป คุณสามารถมีส่วนร่วมได้เสมอโดยการเขียนของคุณเองและส่งไปยังโครงการที่เกี่ยวข้อง เอกสารมักจะเป็นส่วนที่ถูกละเลยมากที่สุดของโครงการซอฟต์แวร์ ดังนั้นแม้ว่าคุณจะเขียนโค้ดไม่ได้ คุณก็เขียนคู่มือ บทความ Wiki และบทช่วยสอนเพื่อช่วยเหลือผู้อื่นได้

ตอนนี้คุณรู้กายวิภาคของ man page แล้ว คุณไม่มีข้อแก้ตัวใดๆ นอกจาก RTFM (และนั่นคือการอ่านคู่มือ ฟรี สำหรับผู้ที่อายุต่ำกว่า 18 ปี) ;)

อ่านเพิ่มเติม: Linux Lexicon: ใช้คำสั่ง Watch เพื่อเรียกใช้คำสั่งทุกๆ X วินาที