ฉันจะทำให้ gui เป็นมิตรมากขึ้นได้อย่างไร


20

เมื่อฉันพิมพ์man bashมันจะแสดงข้อมูลในสถานีของตัวเอง

ฉันจะบอก " man" เพื่อเปิดข้อมูลใน gedit แทนได้อย่างไร? เป็นไปได้ไหม

คำตอบ:


31

ใช้ฟังก์ชั่นนี้ใน. bashrc:

man () { yelp "man:$@"; }

แหล่ง


2
ขอบคุณ! นี่เป็นสิ่งที่ดีกว่า gedit ด้วย (ไม่รู้เรื่องร้องเอ๋ง)
Zabba

3
หรือเพียงแค่ใช้yelp man:bashแน่นอนถ้าคุณอยู่บนเดสก์ท็อปของคนอื่น
JanC

2
และหากคุณต้องการ manpage ที่ไม่ได้อยู่ในส่วนเริ่มต้นให้ใช้สิ่งที่ต้องการyelp "man:init(5)"แทนman 5 init(สิ่งนี้ไม่สามารถใช้ได้กับฟังก์ชันทุบตีของzengrรุ่นปัจจุบัน)
JanC

นั่นเป็นสิ่งที่ดีมาก แต่ถึงกระนั้นฉันยังต้องการวิธีการจัดทำดัชนีหรือเรียกดู man pages ตามหัวข้อหรือสารบัญ มีอะไรแบบนั้นที่ใช้พูดได้แค่อูบุนตูหรือแม้แต่เดเบียนกับ X?
จะ

3

เพียงป้อนข้อมูลต่อไปนี้ในเทอร์มินัล:

man bash >/tmp/t;gedit /tmp/t

geditที่จะสร้างแฟ้มชั่วคราวด้วยเนื้อหาของหน้าคนและเปิดมันด้วย


คำสั่งทางเลือกที่หลีกเลี่ยงการสร้างไฟล์ชั่วคราวโดยใช้ประโยชน์จากคุณสมบัติ Bash:gedit <(man bash)
Lekensteyn

1
@Lekensteyn: geditไม่เปิดการ<()ทดแทนกระบวนการและไม่ได้เปิดอินพุตแบบpiped (ทดสอบใน 2.30.3 และ 3.4.1)
Peter.O

@ Peter.OI เพิ่งตรวจสอบและคุณเป็นจริง มันไม่ทำงานสำหรับkateทั้ง nanoสามารถเปิดเป็นแบบอ่านอย่างเดียวได้
Lekensteyn

man bash | gedit -หลีกเลี่ยงไฟล์ tmp
มุมมองรูปไข่

2

ดีกว่ายังมีรูปแบบคนใน HTML และเปิดใน firefox

#!/bin/bash
# open a man page in firefox

# loop through all parameters in order
for i
do
    # if the manpage was found, spawn it in a browser window
    man -f "$i" > /dev/null && coproc man --html=firefox "$i"
done

ยอดเยี่ยมฉันรักมัน +1 .. ตอนนี้มันเป็นฟังก์ชั่นในฉัน~/bashrc...fman () { until [[ -z $1 ]] ;do man -f "$1" 2>/dev/null && coproc man --html=firefox "$1"; shift; done; }
Peter.O

1

หากคุณไม่ต้องการที่จะใช้เปลือก: Alt + F2 yelp man:bashตีและป้อน นอกจากนี้ยังมีประวัติคำสั่งและคุณสามารถเลือก manpage ด้วยการแทนที่man:bashmanpage ที่คุณต้องการ


1

เช่นเดียวกับการเปิดหน้าคนในgedit(เช่นคำตอบอื่น ๆ ได้แสดงให้เห็น) คุณยังสามารถทำในรูปแบบ pdf หน้าคน (ตามที่ระบุไว้เป็นครั้งแรกในบทความนี้ ) evinceแล้วแสดงไว้ใน (คุณต้องการps2pdfและevinceติดตั้ง) ไฟล์ pdf ถูกสร้างขึ้นในไดเรกทอรีการทำงานปัจจุบันของคุณและจะถูกเก็บไว้หลังจากevinceถูกปิด

เพียงแก้ไขคำสั่งด้านล่างตามหน้า man ที่คุณต้องการและเปลี่ยนชื่อไฟล์มิฉะนั้นไฟล์ PDF ที่ได้จะถูกเขียนทับ นี่คือตัวอย่างสำหรับdpkg:

man -t dpkg | ps2pdf - dpkg.pdf && evince dpkg.pdf

อย่างไรก็ตามมันอาจมีประโยชน์มากกว่าในการสร้างฟังก์ชั่น คุณสามารถเพิ่มฟังก์ชั่นต่อไปนี้เพื่อ.bashrcหรือ.bash_aliases(สมมติว่าคุณมีevinceและps2pdfติดตั้ง; หลังอยู่ในghostscriptแพ็คเกจ):

mikman() { man -t "$1" | ps2pdf - "$1".pdf && setsid evince "$1".pdf; }

หลังจากเพิ่มฟังก์ชั่นคุณต้องเรียกใช้. .bashrc(หรือ. .bash_aliases) เพื่อส่งไฟล์การกำหนดค่าของคุณหรือรีสตาร์ทเครื่องเพื่อให้มีผล

เรียกใช้ฟังก์ชันด้วยชื่อของโปรแกรมใด ๆ ที่มี manpage เช่นmikman dpkgและจะดำเนินการคำสั่งและเรียกใช้ manpage เป็น pdf การเปิดตัว manpage เป็น pdf ในโปรแกรมอ่าน pdf ของคุณจะให้ gui ที่มีประโยชน์มากซึ่งเครื่องมือค้นหาและสิ่งที่คล้ายกันนี้สามารถใช้งานได้


0

ในแต่ละกรณีคุณสามารถ:

man mount > mount.txt

ไฟล์. txt จะอยู่ในไดเรกทอรีปัจจุบันของคุณ

man mount > mount.txt && gedit mount.txt

จะเปิดไฟล์ใน gedit


0

คุณสามารถเรียกดู man page แบบออนไลน์ได้ที่http://manpages.ubuntu.com/หรือติดตั้งแพ็คเกจ dwwwและเรียกดูเอกสารทั้งหมดแบบออฟไลน์ ( http://localhost/dwww) ดูคำอธิบายของแพ็คเกจ dwwwและ / หรืออ่านman dwwwหลังการติดตั้ง

คุณอาจสนใจในการเรียกดูเนื้อหาแพ็คเกจ - ติดตั้งแพ็คเกจdpkg-wwwและทำเช่นเดียวกัน: ดูคำอธิบายของแพ็คเกจ dpkg-wwwและ / หรืออ่านman dpkg-wwwหลังการติดตั้ง เริ่มต้นหรือดูdpkg-wwwhttp://localhost/cgi-bin/dpkg


-1

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

man bash >> ~/man && gedit ~/man && rm ~/man

หวังว่าจะช่วย :)


ปัญหาเกี่ยวกับสิ่งนี้คือการgeditแยกตัวออกจากเทอร์มินัลด้วยรหัสการออกจาก0ดังนั้นrmขั้นตอนจะดำเนินการทันที นี่เป็นสาเหตุ~/manที่จะถูกลบก่อนที่geditจะโหลดแม้ ...
Peter.O
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.