(gelöst) drucken/druckdialog per kommandozeile
(gelöst) drucken/druckdialog per kommandozeile
eben erstelle ich mit nano ein textdokument und stelle fest, dass ich nun einen anderen editor öffnen müßte um dies auszudrucken. Daher nun die frage: wie komme ich auf der kommandozeile am schnellsten zu einem druckdialog und/oder zum direkten druck einer textdatei?
Zuletzt geändert von michaa7 am 16.04.2010 10:01:59, insgesamt 1-mal geändert.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: drucken/druckdialog per kommandozeile
Code: Alles auswählen
1. Schritt
Herausfinden welcher Drucker im System verfügbar ist:
lpstat -p
2. Schritt drucken
cat $DATEI | lpr -P $DRUCKERNAME
e.g.
cat courierimapsubscribed | lpr -P kyocera
Re: drucken/druckdialog per kommandozeile
Evtl. `lp' (System V Drucksystem) statt `lpr' (BSD Drucksystem) verwenden. Bei mir läuft Cups und ich drucke mit `lp' von der Kommandozeile aus.
Use ed once in a while!
Re: drucken/druckdialog per kommandozeile
Danke euch beiden.
Vom prinzip hier funktioniert das wie beschrieben, bei "lp" mit etwas anderer syntax ( cat $DATEI | lpr -d $DRUCKERNAME ).
Leider habe ich weder unter "man lpr" noch unter "man lp" eine möglichkeit gefunden, den text beim drucken umbrechen zu lassen. Geht das doch irgendwie oder prinzipbedingt nicht?
Und auch wenn's nicht mehr wirklich dazugehört: wie erzwinge ich einen automatischen zeilenumbruch mit "nano" (meinem präferierten editor)? Muß ich das immer manuell machen (bei hineinkopiertem text)?
BTW: hat vllt jemand ein kleines script, das mich nach der zu druckenden datei fragt (bei einmaliger definition des einzigen druckers im script) und loslegt?
Vom prinzip hier funktioniert das wie beschrieben, bei "lp" mit etwas anderer syntax ( cat $DATEI | lpr -d $DRUCKERNAME ).
Leider habe ich weder unter "man lpr" noch unter "man lp" eine möglichkeit gefunden, den text beim drucken umbrechen zu lassen. Geht das doch irgendwie oder prinzipbedingt nicht?
Und auch wenn's nicht mehr wirklich dazugehört: wie erzwinge ich einen automatischen zeilenumbruch mit "nano" (meinem präferierten editor)? Muß ich das immer manuell machen (bei hineinkopiertem text)?
BTW: hat vllt jemand ein kleines script, das mich nach der zu druckenden datei fragt (bei einmaliger definition des einzigen druckers im script) und loslegt?
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: drucken/druckdialog per kommandozeile
Das ist nicht die Aufgabe von lp/lpr und deshalb auch nicht darin enthalten. Dafür sind `fold' oder `fmt' zuständing. Schau in deren Manpages nach.michaa7 hat geschrieben: Leider habe ich weder unter "man lpr" noch unter "man lp" eine möglichkeit gefunden, den text beim drucken umbrechen zu lassen. Geht das doch irgendwie oder prinzipbedingt nicht?
Code: Alles auswählen
fold foo | lp
Du kannst auch irgendwie den Standarddrucker setzen, dann brauchst du ihn nicht immer angeben und kannst somit lp/lpr direkt verwenden. Ich weiß nur nicht auswenig wie.BTW: hat vllt jemand ein kleines script, das mich nach der zu druckenden datei fragt (bei einmaliger definition des einzigen druckers im script) und loslegt?
Ansonsten ein Script in der Art:
Code: Alles auswählen
#!/bin/sh
lp -d foobar "$@"
Use ed once in a while!
Re: drucken/druckdialog per kommandozeile
Oder im vim einfach gqq drückenMeillo hat geschrieben:Das ist nicht die Aufgabe von lp/lpr und deshalb auch nicht darin enthalten. Dafür sind `fold' oder `fmt' zuständing. Schau in deren Manpages nach.michaa7 hat geschrieben: Leider habe ich weder unter "man lpr" noch unter "man lp" eine möglichkeit gefunden, den text beim drucken umbrechen zu lassen. Geht das doch irgendwie oder prinzipbedingt nicht?Code: Alles auswählen
fold foo | lp
den default drucker anlegen mit: lpadmin -d "Kyocera_FS-C5030N_de_duplex"Meillo hat geschrieben:Du kannst auch irgendwie den Standarddrucker setzen, dann brauchst du ihn nicht immer angeben und kannst somit lp/lpr direkt verwenden. Ich weiß nur nicht auswenig wie.BTW: hat vllt jemand ein kleines script, das mich nach der zu druckenden datei fragt (bei einmaliger definition des einzigen druckers im script) und loslegt?
Überprüfen mittels lpstat -d
verfügbare Drucker anzeigen über lpstat -a oder lpstat -p
oder mit cups-printer-manager setzen.
Oder einfach eine ~/.cups/lpoptions erzeugen mit folgendem Inhalt:
Default Kyocera_FS-C5030N_de_duplex
und systemweit als Vorgabe wird der Drucker in der /etc/cups/lpoptions eingetragen
Ich würde das auch eher als alias in der ~/.bashrc definieren alias drucken="lp -d foobar "$1"Meillo hat geschrieben: Ansonsten ein Script in der Art:Scripte die fragen sind schlechter Stil in Unix.Code: Alles auswählen
#!/bin/sh lp -d foobar "$@"
Re: drucken/druckdialog per kommandozeile
nun, wenn ich da noch "fold" benötige, wie sieht dann das script/alias aus? Der drucker ist bereits systemweit gesetzt und dies ist mit " lpstat -d" auch überprüft. Ich wollte also zuerst nach einer datei gefragt werden (egal ob von einem script oder dem alias) welches dann den text umbricht und druckt ( fold --width=72 <diesen text> | lp $? )
@ thorsten
Ich schließe aliasse immer mit einfachen anführungszeichen ein. Ob und wie die variable eingeschlossen werden muß ist mir nicht klar. Bei deinem alias komme ich mit den anführungszeichen nicht zurecht, das sind entweder zu viele oder zu wenige. Und wie wird die variable übergeben? Werde ich gefragt oder muß ich die mit dem alias zusammen angeben, also "drucken foo"?
@ thorsten
Ich schließe aliasse immer mit einfachen anführungszeichen ein. Ob und wie die variable eingeschlossen werden muß ist mir nicht klar. Bei deinem alias komme ich mit den anführungszeichen nicht zurecht, das sind entweder zu viele oder zu wenige. Und wie wird die variable übergeben? Werde ich gefragt oder muß ich die mit dem alias zusammen angeben, also "drucken foo"?
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: drucken/druckdialog per kommandozeile
anstelle des zweiten Anführungszeichen hätte es ein Backslash sein sollen - sorry.
Ich hatte zwar $1 geschrieben, aber das würde nicht mit Dateien mit Leer oder Sonderzeichen funktionieren. Also ist Meillos Tipp mit dem $@ natürlich wesentlich sauberer. Dann schliessen wir noch $@ in Anführungszeichen ein, die wir mittels backslash escapen und du bist fertig:
Überprüfe das mit alias drucken.
Du rufst dann zum Drucken nur drucken DateiName auf. Klar könntest du mit
dialog noch ein 'echtes' Dialogfenster mit Dateiauswahl drumherumbauen, aber soweit bist du augenscheinlich noch nicht. Und schneller ist das in der Bedienung auch nicht.
Code: Alles auswählen
alias drucken="lp \$1"
Code: Alles auswählen
alias drucken="lp \"\$@\""
Du rufst dann zum Drucken nur drucken DateiName auf. Klar könntest du mit
![Debian](/pics/debianpackage.png)
Re: drucken/druckdialog per kommandozeile
Ich hab grade nochmal deinen letzten Post gelesen. Auf das fold bin ich heute früh gar nicht eingegangen.
Schreib das in deine ~/.bashrc - dann geht das auch mit fold zusammen
Schreib das in deine ~/.bashrc - dann geht das auch mit fold zusammen
Code: Alles auswählen
function drucken() {
fold --width=72 "$@" |
lp -d kyocera-duplex
}
Re: drucken/druckdialog per kommandozeile
danke, funktioniert so wunderbar.
Den drucker mußte ich nicht mehr definieren, da er systemweit definiert ist, so konnte ich also "-d <mein drucker>" weglassen.
Den drucker mußte ich nicht mehr definieren, da er systemweit definiert ist, so konnte ich also "-d <mein drucker>" weglassen.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)