บางครั้งคุณรู้สึกไม่สบายใจคุณต้องการที่จะ 'man up' - ฉันจะเพิ่มรายการคู่มือนี้ใน Unix ได้อย่างไร?


44
Cris-Mac-Book-2:src cris$ man up
No manual entry for up

ฉันจะแก้ไขสถานการณ์นี้ได้อย่างไร

ฉันต้องการเพิ่มรายการคู่มือ 'ผู้คิดค้น' สำหรับคำสั่งที่ไม่มีอยู่จริงupเพื่อให้ฉันสามารถพิมพ์man upเมื่อต้องการ ข้อเสนอแนะของสิ่งที่จะรวมคือการเพิ่มคำแนะนำการเพิ่มด้วยตนเองยินดีต้อนรับ

นอกจากนี้ในกรณีที่เวิร์กสเตชันของฉันเคยได้รับผู้ใช้เพศหญิงฉันจะต้องแน่ใจว่าlnผู้หญิง:

Cris-Mac-Book-2:src cris$ sudo link /usr/bin/man /usr/bin/woman
Cris-Mac-Book-2:src cris$ woman
What manual page do you want?
Cris-Mac-Book-2:src cris$ 

แม้ว่าฉันควรจะเปลี่ยนสิ่งนั้นเป็นWhich womanual page do you want?- จะเกี่ยวข้องกับการคอมไพล์ใหม่หรือมีแพตช์หรือไม่?


4
น่าสนใจเกินกว่าจะผ่านไป
ลุคแคนาดา

3
นอกจากนี้คุณควร symlink เพื่อที่ว่าถ้าคุณเคยพบว่าตัวเองอยู่ในสถานการณ์ที่ล่อแหลมที่คุณสามารถlawyer lawyer up
Justin Justin

5
ใช่ฉลาด! และถึงแม้ว่าฉันจะพยายามnice lawyer upก็ยังต้องการใช้ทรัพยากรระบบทั้งหมด
Cris Stringfellow

1
และมันเป็นคำถามที่น่าสนใจ!
ลุคชาวแคนาดา

คำตอบ:


31

นี่เป็นคำแนะนำที่ดีสำหรับการเพิ่มหน้าคู่มือใหม่:

HowTo: Linux / UNIX สร้าง Manpage

ในระยะสั้น manpage เป็นเพียงไฟล์ข้อความที่มีข้อมูลการจัดรูปแบบเพิ่มเติมสำหรับ troff

มันมักจะอยู่ในรูปแบบ

.\" Manpage for up.
.\" Contact cheer_up@havesomechocolate.com to correct errors or typos.
.TH man 8 "06 May 2010" "1.0" "name man page"
.SH NAME
up \- into a higher position or level
.SH SYNOPSIS
up [anything you like]
.SH DESCRIPTION
up is a pretty good place to be
.SH OPTIONS
up does not take any options, though you can choose the speed of your acent 
.SH SEE ALSO
yes(1), time cat (2) cal 3() 
.SH BUGS
No known bugs. Gravity is not a bug, "Its a feature"
.SH AUTHOR
Chris Stringfellow (cheer_up@havesomechocolate.com)

บันทึกสิ่งนี้เป็น up

จากนั้นคุณสามารถดู manpage ด้วยman ./upจากไดเรกทอรีเดียวกัน

หน้าคนมักจะอยู่ภายใต้/usr/local/man/man8/และ gzipped

คุณสามารถคัดลอก manpage ของคุณcp up /usr/local/man/man8/up.1แล้ว gzip ด้วยgzip /usr/local/man/man8/name.1

จากนั้นคุณสามารถทดสอบโดยใช้ man up - ซึ่งควรแสดงผลลัพธ์แบบนี้


4
นอกจากนี้หากการเขียนมาร์กอัป * roff ไม่ใช่ถ้วยชาของคุณคุณสามารถเขียนหน้าในPODและใช้pod2manเพื่อแปลงเป็นหน้าคน
Ilmari Karonen

8

แม้ว่าฉันควรจะเปลี่ยนสิ่งนั้นเป็นWhich womanual page do you want?- จะเกี่ยวข้องกับการคอมไพล์ใหม่หรือมีแพตช์หรือไม่?

การคอมไพล์ใหม่ให้ผลลัพธ์ที่ดีที่สุด แต่ควรทำในระหว่างนี้:

#!/bin/bash

ARG=${1/woman/man}

man $ARG > /dev/null 2>&1

if [ $? -eq 0 ]; then
    man $ARG 2> /dev/null \
        | sed \
            -e 's/\(m[ae]n\)/wo\1/g' \
            -e 's/\(M[AE]N\)/WO\1/g' \
            -e 's/M\([ae]n\)/Wom\1/g' \
            -e 's/    //' \
            -e 's/\([^ ]\)  /\1 /g' \
        | less
else
    man $ARG 2>&1 | sed -e 's/\(m[ae]n\)/wo\1/'
fi

บันทึกเป็น/usr/sbin/womanตั้งค่าสิทธิ์ดำเนินการและเริ่มการทดสอบ:

woman
woman down
woman woman

2
อย่างไรก็ตามฉันตรวจพบข้อผิดพลาดในผู้หญิงคนใหม่ของฉัน เธอพูดต่อไปNo wo0ual entry for down- ฉันพูดผิดอะไร
Cris Stringfellow

woman sedเพียงกล่าว\1ผ่าน\9สำหรับs/regexp/replacewoment/ดังนั้น\0อาจจะไม่สามารถใช้ได้ในทุกรสชาติและรุ่นของ sed ฉันแก้ไขคำตอบของฉันแล้ว
Dennis

2
ฉันจะตรวจสอบให้แน่ใจในwoman sedครั้งต่อไป - พวกเขามักจะถูกต้อง! ;) BTW มันใช้งานได้แล้ว No womanual entry for sexคลาสสิก Sed womanpage เป็นชุดหูฟังคลาสสิค:A single comwomand may be specified as the first arguwoment to sed.
Cris Stringfellow
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.