Linux Lexicon — Anatomy Of A Man Page
เผยแพร่แล้ว: 2016-11-01ไบต์สั้น: หน้าคู่มือซอฟต์แวร์และเอกสารประกอบอาจมีความหนาและยากพอสำหรับผู้เริ่มต้น โดยไม่ต้องมีข้อตกลงที่คลุมเครือซึ่งผูกติดกับวงเล็บและวงเล็บทุกประเภท เราจะพยายามลดความซับซ้อนของ 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) |
คำสั่งจำนวนมากไม่มีคู่มือในมากกว่าหนึ่งส่วน แต่สำหรับคำสั่งที่มี หรือสำหรับบางคำสั่งที่อาจตั้งชื่อไม่ชัดเจน คุณสามารถระบุส่วนได้ดังตัวอย่างด้านล่าง
คำสั่งไม่ใช่สิ่งเดียวที่มีคู่มือดังที่คุณเห็นจากส่วนต่างๆ ที่มีอยู่ การเรียกระบบ ไฟล์คอนฟิกูเรชัน และอุปกรณ์พิเศษอาจมีหน้าคนที่เกี่ยวข้องพอๆ กัน จำนวนข้อมูลในการติดตั้ง Linux ทั่วไปใน man page นั้นน่าทึ่งมาก และเช่นเดียวกันกับระบบปฏิบัติการโอเพ่นซอร์สที่เหมือน UNIX อื่น ๆ
หากคุณพบว่า man page ไม่เพียงพอและคุณยังไม่เข้าใจคำสั่ง ให้ตรวจสอบออนไลน์เสมอ เพราะมีหลายคนเสนอคำอธิบายโดยละเอียดเกี่ยวกับเครื่องมือบางอย่าง แต่การแจกแจงจำนวนมากมีหน้าคนของตัวเองสำหรับแพ็คเกจซอฟต์แวร์ที่แตกต่างกัน เมื่อคุณพบว่าคุณพอใจกับชิ้นส่วนของซอฟต์แวร์แล้ว แต่ยังรู้สึกว่าคู่มือนี้ขาดหายไป คุณสามารถมีส่วนร่วมได้เสมอโดยการเขียนของคุณเองและส่งไปยังโครงการที่เกี่ยวข้อง เอกสารมักจะเป็นส่วนที่ถูกละเลยมากที่สุดของโครงการซอฟต์แวร์ ดังนั้นแม้ว่าคุณจะเขียนโค้ดไม่ได้ คุณก็เขียนคู่มือ บทความ Wiki และบทช่วยสอนเพื่อช่วยเหลือผู้อื่นได้
ตอนนี้คุณรู้กายวิภาคของ man page แล้ว คุณไม่มีข้อแก้ตัวใดๆ นอกจาก RTFM (และนั่นคือการอ่านคู่มือ ฟรี สำหรับผู้ที่อายุต่ำกว่า 18 ปี) ;)
อ่านเพิ่มเติม: Linux Lexicon: ใช้คำสั่ง Watch เพื่อเรียกใช้คำสั่งทุกๆ X วินาที