Cetak dari baris perintah

28

Bagaimana saya bisa mencetak output baris perintah langsung ke printer.

Saya menggunakan server ubuntu 12.04 dan saya harus menyalin file ke direktori bersama dan kemudian mengunduhnya dari distribusi ubuntu desktop untuk mencetaknya.

Bantuan apa pun dihargai

kamil
sumber
Anda tidak mengatakan apakah Anda akan mencetak teks biasa atau PDF. Beberapa sistem hanya mendukung teks biasa, jadi ini perlu dicakup.
alexis
Saya tidak tahu mengapa mereka menurunkan jawaban saya, coba saja.
nux
@nux +1 Semua jawaban bagus, terima kasih semua
kamil
@alexis Saya jelas: Saya ingin mencetak keluaran konsol. Misalnya ls output langsung ke printer
kamil
Ups, memang Anda mengatakannya dan saya melewatkannya, maaf!
alexis

Jawaban:

35

Terutama ada dua perintah default:

lpr dan lp

man lpr memberikan output:

lpr mengirimkan file untuk dicetak. File yang diberi nama pada baris perintah dikirim ke printer yang bernama (atau tujuan default jika tidak ada tujuan yang ditentukan). Jika tidak ada file yang terdaftar pada baris perintah, lpr membaca file cetak dari input standar.

man lp memberikan output:

lp mengirimkan file untuk dicetak atau mengubah pekerjaan yang tertunda. Gunakan nama file "-" untuk memaksa pencetakan dari input standar.

sangat mudah menggunakan perintah:

lp /path-to-file-to-print

Atau

lpr /path-to-file-to-print
Maythux
sumber
15

Anda dapat gunakan lp

Sebagai contoh:

man firefox | lp -d printername

Ini akan mencetak halaman manual dari firefox ke printer yang ditentukan

Noosrep
sumber
1
Terima kasih, saya juga perlu menggunakan o fit-to-pageuntuk menjaga teks di halaman sedikit lebih baik. man bash | lp -o media=letter -o portrait -o fit-to-page -, -pada akhirnya memastikan input standar dibaca.
Elijah Lynn
1
Jika printer Anda default, Anda tidak perlu -dparameter. Pada Ubuntu dengan Unity, printer default diatur dengan mengklik tombol Search lalu ketik "print" dan itu akan membawa Anda ke tempat yang tepat di mana default dapat diatur. Juga, lpdalam contoh mengatakan Anda telah berada di sekitar Unix selama beberapa waktu. lprbekerja sama di Ubuntu.
SDsolar
4

Jika Anda menginstalnya, sepasang opsi lain yang perlu Anda ketahui adalah

dan

Ini berguna untuk memberikan halaman bernomor dengan heading dan nomor baris opsional. Anda juga dapat menggunakannya untuk mencetak gaya buklet (mis. Dua halaman di setiap sisi lembar)

Saya menggunakan ini dengan printer yang mampu Postscript tapi saya percaya bahwa sistem cetak Ubuntu dapat meraster PS untuk semua printer yang didukung.

RedGrittyBrick
sumber
ini ide yang bagus
kamil
Tentu ketukan coding postscript secara langsung.
SDsolar
3

Anda mungkin ingin mencari tahu bagaimana printer diakses pertama - lpstatakan memberi Anda informasi itu. Jika Anda membandingkan hasilnya di kedua sistem, Anda mungkin dapat mengetahui apakah printer tersebut telah dikonfigurasi pada keduanya. lpstat -p -ddaftar semua printer dengan statusnya dan memberitahu yang mana yang telah ditetapkan sebagai printer standar.

Anda bisa mengirimkan output ke perintah lpatau lpr. Anda mungkin ingin memasukkan filter untuk pencetakan cantik atau pagination. Ada ringkasan alat yang bagus di manual debian "Menyoroti dan memformat data teks biasa" , tapi saya biasanya hanya menggunakan seduntuk menyorot petunjuk dan hal-hal lain sebelum mengirim semuanya melaluia2ps

Tatjana Heuser
sumber
2

Untuk mencetak file .txt yang sedang digunakan:

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

Contoh:

ls -l | lpr -P printername -p 1 
nux
sumber
1

Pertanyaannya adalah tentang bagaimana cara mencetak dari baris perintah pada server , dan sepertinya Anda belum memiliki printer yang ditentukan pada sistem itu. Saya tidak memiliki sistem untuk memeriksa sehingga berikut ini adalah perkiraan, tetapi mereka harus memberi Anda ide umum:

  1. Pastikan sistem CUPS diinstal dan dijalankan. Ini memberikan daemon yang akan menangani pekerjaan cetak Anda.
  2. Setelah ini selesai, Anda perlu mengatur satu atau lebih printer jaringan untuk dicetak. Cara yang biasa untuk menginstal printer adalah dengan utilitas Printer Admin , tetapi Anda jelas tidak diatur untuk menjalankan program GUI dari server Anda - hanya akses commandline via ssh. Karena Anda sudah memiliki sistem desktop Ubuntu di jaringan yang sama, saya akan mencoba menyalin isi direktori /etc/cupsdari kotak desktop ke server. Seharusnya berisi semua definisi dan driver printer yang Anda butuhkan. Periksa file untuk setiap penyesuaian yang diperlukan (jika set-up Anda menyebutkan ID pengguna atau kata sandi yang berbeda antara kedua sistem), restart cupsd, dan jika Anda beruntung Anda akan dapat menggunakannya lpruntuk mencetak dari commandline.

PS. Dalam keadaan darurat, Anda dapat menginstal cukup utilitas X untuk menjalankan utilitas Print Admin GUI melalui koneksi X jarak jauh ke kotak Ubuntu desktop Anda (masuk dengan ssh -X), dan tentukan printer yang Anda butuhkan. Tapi semoga ini tidak perlu.

alexis
sumber
1

Anda bisa menggunakan lpperintah.

Untuk mencetak output dari suatu perintah ke printer default (gunakan lpstat -duntuk melihat apa itu printer default):

echo "test" | lp

Untuk mencetak ke printer tertentu (gunakan lpstat -p | awk '{print $2}'untuk membuat daftar nama printer yang tersedia):

echo "test" | lp -d printername

Untuk mencetak file, bukan output perintah:

lp /path/to/file
waldyrious
sumber