พิมพ์จากบรรทัดคำสั่ง


28

ฉันจะพิมพ์เอาต์พุตบรรทัดคำสั่งโดยตรงไปยังเครื่องพิมพ์ได้อย่างไร

ฉันใช้เซิร์ฟเวอร์อูบุนตู 12.04 และฉันต้องคัดลอกไฟล์ไปยังไดเรกทอรีที่ใช้ร่วมกันแล้วดาวน์โหลดจากการเผยแพร่ Ubuntu บนเดสก์ท็อปเพื่อพิมพ์

ความช่วยเหลือใด ๆ ที่ชื่นชม


คุณไม่ได้พูดว่าจะพิมพ์ข้อความธรรมดาหรือ PDF ระบบบางระบบรองรับเฉพาะข้อความธรรมดานอกกรอบดังนั้นจึงจำเป็นต้องครอบคลุม
alexis

ฉันไม่รู้ว่าทำไมพวกเขาลงคะแนนคำตอบของฉันแค่ลองดู
nux

@nux 1 คำตอบทั้งหมดอยู่ขอบคุณที่ดีที่คุณทั้งหมด
kamil

@alexis ฉันชัดเจน: ฉันต้องการพิมพ์เอาต์พุตคอนโซล ตัวอย่างเช่น ls เอาต์พุตโดยตรงไปยังเครื่องพิมพ์
kamil

โอ๊ะคุณพูดแล้วและฉันก็พลาดไปขอโทษด้วย!
alexis

คำตอบ:


35

ส่วนใหญ่มีสองคำสั่งเริ่มต้น:

lpr และ lp

man lpr ให้ผลลัพธ์:

LPR ส่งไฟล์สำหรับการพิมพ์ ไฟล์ที่มีชื่อในบรรทัดคำสั่งจะถูกส่งไปยังเครื่องพิมพ์ที่ระบุชื่อ (หรือปลายทางเริ่มต้นหากไม่มีการระบุปลายทาง) หากไม่มีไฟล์อยู่ในบรรทัดคำสั่ง lpr จะอ่านไฟล์พิมพ์จากอินพุตมาตรฐาน

man lp ให้ผลลัพธ์:

lp ส่งไฟล์เพื่อพิมพ์หรือแก้ไขงานที่ค้างอยู่ ใช้ชื่อไฟล์ของ "-" เพื่อบังคับให้พิมพ์จากอินพุตมาตรฐาน

ใช้คำสั่งง่าย ๆ :

lp /path-to-file-to-print

หรือ

lpr /path-to-file-to-print

15

คุณสามารถใช้ได้ lp

ตัวอย่างเช่น:

man firefox | lp -d printername

นี่จะพิมพ์ man page จาก firefox ไปยังเครื่องพิมพ์ที่ระบุ


1
ขอบคุณฉันต้องใช้o fit-to-pageเพื่อทำให้ข้อความบนหน้าเว็บดีขึ้นอีกเล็กน้อย man bash | lp -o media=letter -o portrait -o fit-to-page -ที่-ในตอนท้ายเพื่อให้แน่ใจว่าเข้ามาตรฐานจะอ่าน
Elijah Lynn

1
หากเครื่องพิมพ์ของคุณเป็นค่าเริ่มต้นคุณไม่จำเป็นต้องใช้-dพารามิเตอร์ ใน Ubuntu ที่มี Unity เครื่องพิมพ์เริ่มต้นจะถูกตั้งค่าโดยคลิกที่ปุ่มค้นหาจากนั้นพิมพ์ "พิมพ์" และจะพาคุณไปยังสถานที่ที่เหมาะสมซึ่งสามารถตั้งค่าเริ่มต้นได้ นอกจากนี้lpในตัวอย่างบอกว่าคุณอยู่ในระบบปฏิบัติการ Unix มาระยะหนึ่งแล้ว lprทำงานเหมือนกันบน Ubuntu
SDsolar

4

หากคุณติดตั้งแล้วตัวเลือกอื่น ๆ ที่ควรรับรู้คือ

และ

สิ่งเหล่านี้มีประโยชน์สำหรับการจัดเตรียมหน้ากระดาษที่มีหมายเลขโดยมีส่วนหัวและหมายเลขบรรทัดเพิ่มเติม นอกจากนี้คุณยังสามารถใช้พิมพ์สไตล์หนังสือเล่มเล็ก (เช่นสองหน้าในแต่ละด้านของแผ่นงาน)

ฉันใช้สิ่งเหล่านี้กับเครื่องพิมพ์ที่มีคุณสมบัติ Postscript แต่ฉันเชื่อว่าระบบการพิมพ์ของ Ubuntu สามารถทำให้ PS เป็นแบบ rasterize สำหรับเครื่องพิมพ์ที่รองรับ


นี่เป็นความคิดที่ดี
kamil

แน่นอนว่าการเข้ารหัสรหัสไปรษณีย์โดยตรง
SDsolar

3

คุณอาจต้องการค้นหาวิธีการเข้าถึงเครื่องพิมพ์ก่อน - lpstatจะให้ข้อมูลนั้นแก่คุณ หากคุณเปรียบเทียบผลลัพธ์ในทั้งสองระบบคุณอาจบอกได้ว่าเครื่องพิมพ์ที่มีปัญหานั้นได้รับการกำหนดค่าในทั้งสองระบบหรือไม่ lpstat -p -dแสดงรายการเครื่องพิมพ์ทั้งหมดที่มีสถานะและแจ้งว่ามีการตั้งค่าเครื่องพิมพ์เครื่องใดเป็นเครื่องพิมพ์เริ่มต้น

คุณสามารถไพพ์เอาท์พุทของคุณไปยังlpหรือlprคำสั่งแล้ว คุณอาจต้องการแทรกตัวกรองสำหรับพิมพ์สวยหรือแบ่งหน้า มีเครื่องมือสรุปที่ดีในคู่มือ debian "การไฮไลต์และการจัดรูปแบบข้อมูลข้อความล้วน"แต่โดยปกติฉันจะใช้sedเพื่อไฮไลต์ข้อความแจ้งและสิ่งอื่น ๆ ก่อนส่งทุกอย่างผ่านa2ps


2

หากต้องการพิมพ์ไฟล์. txt ในการใช้งาน:

command | lpr -P printername -p ( periority from 1 to 100 )

ตัวอย่าง:

ls -l | lpr -P printername -p 1 

1

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

  1. ตรวจสอบให้แน่ใจว่าติดตั้งและใช้งานระบบ CUPS แล้ว จัดเตรียม daemons ที่จะจัดการงานพิมพ์ของคุณ
  2. คุณจะต้องตั้งค่าเครื่องพิมพ์เครือข่ายหนึ่งเครื่องหรือมากกว่าเพื่อพิมพ์ วิธีปกติในการติดตั้งเครื่องพิมพ์คือใช้ยูทิลิตี้การจัดการเครื่องพิมพ์แต่คุณไม่ได้ตั้งค่าให้รันโปรแกรม GUI ใด ๆ จากเซิร์ฟเวอร์ของคุณ - เพียงแค่สั่งการเข้าถึงผ่าน ssh เนื่องจากคุณมีระบบเดสก์ท็อป Ubuntu บนเครือข่ายเดียวกันฉันจึงลองคัดลอกเนื้อหาของไดเรกทอรี/etc/cupsจากกล่องเดสก์ท็อปไปยังเซิร์ฟเวอร์ ควรมีคำจำกัดความเครื่องพิมพ์และไดรเวอร์ที่คุณต้องการ ตรวจสอบไฟล์สำหรับการปรับเปลี่ยนที่จำเป็น (ในกรณีที่การตั้งค่าของคุณระบุ ID ผู้ใช้หรือรหัสผ่านที่แตกต่างกันระหว่างสองระบบ) ให้รีสตาร์ทcupsdและถ้าคุณโชคดีคุณจะสามารถlprพิมพ์จาก commandline ได้

PS คุณสามารถติดตั้งยูทิลิตี้X ให้เพียงพอเพื่อเรียกใช้ยูทิลิตี้Print Admin GUI ผ่านการเชื่อมต่อ X ระยะไกลไปยังกล่อง Ubuntu บนเดสก์ท็อปของคุณ (ลงชื่อเข้าใช้ด้วยssh -X) และกำหนดเครื่องพิมพ์ที่คุณต้องการ แต่หวังว่านี่จะไม่จำเป็น


1

คุณสามารถใช้lpคำสั่ง

หากต้องการพิมพ์ผลลัพธ์ของคำสั่งไปยังเครื่องพิมพ์เริ่มต้น (ใช้lpstat -dเพื่อดูว่าเครื่องพิมพ์เริ่มต้นคืออะไร):

echo "test" | lp

หากต้องการพิมพ์ไปยังเครื่องพิมพ์เฉพาะ (ใช้lpstat -p | awk '{print $2}'เพื่อแสดงรายการชื่อเครื่องพิมพ์ที่มี):

echo "test" | lp -d printername

หากต้องการพิมพ์ไฟล์แทนที่จะเป็นเอาต์พุตคำสั่ง:

lp /path/to/file
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.