การเปิดไฟล์จากเทอร์มินัล


30

เมื่อเราต้องการเปิดแอปพลิเคชั่นหรือไฟล์จากเทอร์มินัลเราพิมพ์พูด

okular file.dvi

นี่เป็นการเปิดแอปพลิเคชัน แต่ยังแสดงสถานะของแอปพลิเคชันด้วย เราไม่สามารถปิดเครื่องได้เพราะมันฆ่ากระบวนการ ตัวอย่างเช่นหากคุณพยายามสร้างไฟล์ LaTeX คุณจะต้องใช้แท็บหนึ่งแท็บสำหรับเครื่องมือแก้ไขข้อความหนึ่งไฟล์สำหรับไฟล์ dvi และอื่น ๆ และถ้าคุณกำลังพยายามเปิดหน้าต่างทั้งหมดจากเทอร์มินัลคุณสามารถลืมมันได้ ฉันพยายามใช้เทอร์มินัลให้มากที่สุดและในขณะที่ฉันมี Yakuake มันก็ยังเป็นเรื่องลำบากใจที่มีแท็บมากมายและเห็นว่ามีแอปพลิเคชั่นใดบ้างที่ฉันฆ่าไปเรื่อย ๆ

ดังนั้นมีวิธีเปิดแอปพลิเคชั่น / ไฟล์จากเทอร์มินัลเพื่อไม่ให้สถานะแสดงและให้พรอมต์ทันทีเพื่อให้เราสามารถใช้มันเพื่อเปิดแอปพลิเคชันเพิ่มเติมได้หรือไม่


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

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

คำตอบ:


51
xdg-open file.dvi

xdg-openจะเปิดไฟล์ใด ๆ ด้วยแอปพลิเคชันเริ่มต้น เป็นโบนัสคุณสามารถปิดเทอร์มินัลโดยไม่ฆ่าแอปพลิเคชัน

เนื่องจากxdg-openชื่อค่อนข้างยาวฉันจึงใส่ชื่อแทนไว้ใน.bashrc:

alias open='xdg-open'

หวาน! นี่คือสิ่งที่ดีที่สุดดีกว่าที่ฉันเลือก! และคุณได้รับตรา 'Revival' :)
เฉพาะอย่างยิ่งเคล็ดลับ

ง่ายมาก!
Yugal Jindle

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

หากคุณเพิ่งย้ายจาก Mac กับลินุกซ์มันคุณอาจเป็นความคิดที่ดีที่จะทำ alias open="xdg-open"
เปโดร Luz

16
okular file.dvi &

เพียงแค่ผนวก&เพื่อให้คำสั่งของคุณทำงานเป็นกระบวนการแยกต่างหาก


ว้าว! ที่สมบูรณ์แบบ! ตลก ... ฉันค้นหา Google เพื่อ "เปิดจากเทอร์มินัลโดยไม่แสดงสถานะ" ไม่เคยคิดเลยว่ามันจะทำงานเหมือนกระบวนการที่แยกต่างหาก! น่าเสียดายที่มันบอกว่าฉันต้องรอ 8 นาทีดังนั้น ...
2012

14

okular file.dvi &> /dev/null &จะดีขึ้นเล็กน้อย ด้วยวิธีนี้โปรแกรมไม่ได้เขียนไปยังสถานี

หากคุณใช้เพียงแค่okular file.dvi &โปรแกรมจะยังคงรายงานสิ่งต่าง ๆ บนเทอร์มินัลบ่อยครั้งในช่วงกลางงานของคุณ


6

ด้วยการพูดevince file.pdf &ปิดเทอร์มินัลจะยังคงปิดกระบวนการเพื่อที่จะยังคงเป็นกระบวนการลูกของเทอร์มินัลและไม่มีความเป็นอิสระของมัน nohup evince file.pdf &จะอนุญาตให้คุณปิดเทอร์มินัลโดยไม่ต้องปิดโปรแกรมเนื่องจาก nohup หมายความว่าสัญญาณใด ๆ สำหรับกระบวนการที่จะปิด (hangup) จะถูกละเว้น นอกจากนี้คุณยังสามารถปฏิเสธกระบวนการในลักษณะที่คล้ายกันให้ดูการสนทนานี้ที่นี่


ขอบคุณฉันไม่รู้ ฉันใช้ Yakuake และฉันไม่เคยปิดดังนั้นจึงไม่มีปัญหา แต่มันก็มีประโยชน์เสมอที่จะรู้สิ่งต่าง ๆ
สะดุดตาเคล็ดลับ

ฉันเพิ่งแก้ไขโพสต์ของฉัน - เห็นความแตกต่าง - มันจะใช้งานได้ในตอนนี้

ขออภัย - ฉันลืมใส่ & ตอนท้าย :)
สะดุดตา

1
เมื่อฉันพยายามที่evince file.pdf &จะไม่ฆ่ากระบวนการเมื่อฉันออกจากขั้ว ...
notablytipsy

1
เมื่อคุณเริ่มกระบวนการลูกมันเป็นของกระบวนการหลัก ในกรณีนี้ evince เป็นกระบวนการลูกที่เป็นของเทอร์มินัล ดังนั้นเมื่อคุณปิดเครื่องเทอร์มินัลก็จะปิดกระบวนการลูก nohup แยกความเป็นเจ้าของนี้ดังนั้นจึงเป็นสิ่งที่ใช้ถ้าคุณต้องการปิดเทอร์มินัล อย่างไรก็ตามโดยค่าเริ่มต้น nohup จะสร้างไฟล์ nohup.out ในโฟลเดอร์หลักของคุณ หากคุณไม่ต้องการไฟล์ดังกล่าวให้ใช้การเปลี่ยนเส้นทางดังนี้:nohup evince file.pdf &>/dev/null &
Paddy Landau
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.