bash Funktion soll man(1) ersetzen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
hikaru
Moderator
Beiträge: 13588
Registriert: 09.04.2008 12:48:59

Re: bash Funktion soll man(1) ersetzen

Beitrag von hikaru » 23.02.2016 13:16:47

smutbert hat geschrieben:Alternativ zu yelp habe ich auch versucht die Manpage mit dem Browser anzeigen zu lassen, so in der Art

Code: Alles auswählen

$ man --html=x-www-browser 1 cp
aber daraufhin zeigt mir mein Browser nur
Error opening file: No such file or directory
und er hat recht - es sieht so aus als würde man die html-Datei zwar erstellen, aber sie gleich wieder löschen, noch bevor sie der Browser überhaupt laden kann.
Das ist einem kurzen Test zufolge vermutlich das selbe Problem wie hier. [1]
Lösung: Debiangroff installieren!

[1] viewtopic.php?f=29&t=158089

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: bash Funktion soll man(1) ersetzen

Beitrag von smutbert » 23.02.2016 13:27:09

groff ist installiert. Das Problem ist, dass der Browser bereits läuft und »man --html=…« sozusagen nur einen "Fernbedienungsbefehl" absetzt, der sofort fertig ist, woraufhin »man« denkt: „Aha, der Browser hat sich beendet, dann entsorge ich brav die eben erst erstellten html-Dateien.“

Benutzeravatar
hikaru
Moderator
Beiträge: 13588
Registriert: 09.04.2008 12:48:59

Re: bash Funktion soll man(1) ersetzen

Beitrag von hikaru » 23.02.2016 13:49:20

Bist du dir sicher, dass Debiangroff installiert ist? /usr/bin/groff kommt aus Debiangroff-base, was allein aber nicht ausreicht.

Ich sitze hier vor meinem Jessie-Netbook mit einem aus einer Minimalinstallation hervorgegangenen Xfce und der Browser (Iceweasel) lief bereits.
Wenn ich ohne Debiangroff dein Kommando absetze bekomme ich diese Ausgabe:

Code: Alles auswählen

$ man --html=x-www-browser 1 cp
man: Befehl mit Exit-Status 3 beendet: /usr/lib/man-db/zsoelim | /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE | preconv -e UTF-8 | tbl | groff -mandoc -Thtml
Installiere ich Debiangroff nach und wiederhole das Ganze, dann kommt nach einer Gedenksekunde der Browser mit der Manpage zu cp in einem neuen Tab nach oben, während die Fehlermeldung im Terminal ausbleibt.

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: bash Funktion soll man(1) ersetzen

Beitrag von heisenberg » 23.02.2016 13:50:15

Hi,

Code: Alles auswählen

man --html=x-www-browser 1 cp
tut bei mir wunderbar(Jessie) mit Browser Iceweasel, Firefox oder Google Chrome. Bei laufendem oder auch nicht laufendem Browser. groff musste ich noch installieren.



Grüße,
h.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: bash Funktion soll man(1) ersetzen

Beitrag von smutbert » 23.02.2016 14:42:31

Aha, mit anderen Browsern funktioniert es also.

@hikaru
Ich bin mir so sicher, wie man sich nur sein kann:

Code: Alles auswählen

$ dpkg -l 'groff*'
…
ii  groff               1.22.2-8       amd64          GNU troff text-formatting system
ii  groff-base          1.22.2-8       amd64          GNU troff text-formatting system (base syst
…
$ update-alternatives --display x-www-browser
x-www-browser - automatischer Modus
  Link verweist zur Zeit auf /usr/bin/epiphany-browser
/usr/bin/epiphany-browser - Priorität 85
  Slave x-www-browser.1.gz: /usr/share/man/man1/epiphany-browser.1.gz
/usr/bin/midori - Priorität 50
  Slave x-www-browser.1.gz: /usr/share/man/man1/midori.1.gz
Gegenwärtig »beste« Version ist »/usr/bin/epiphany-browser«.
Es funktioniert, wenn der Browser noch nicht läuft, also zB mit einem Browser, den ich nicht gerade verwende

Code: Alles auswählen

$ man --html=midori 1 cp
ich könnte epiphany einfach vorher killen, aber das will ich nicht, weil ich gerade an diesem Beitrag schreibe :wink: Mit einem Wrapper-Skript um den Browser herum (statt x-www-browser) funktioniert es auch:

Code: Alles auswählen

#!/bin/bash

epiphany $1
sleep 3s


vielen Dank jedenfalls, aber dieses Mal habe ich eigentlich gar nicht eure Hilfe gesucht sondern wollte nur mein weiterentwickeltes Skript posten. Also damit es vielleicht nicht ganz untergeht, das in dem Post meine ich:
http://debianforum.de/forum/viewtopic.p ... 5#p1080144

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: bash Funktion soll man(1) ersetzen

Beitrag von uname » 23.02.2016 15:34:41

Nicht das es wichtig wäre. Aber vielleicht sieht das Manual mit "man" ja in einem alternativen Terminal weit besser aus, so dass du Yelp oder einen Browser gar nicht brauchst. Ich nutze z.B. gerne Debianterminator (selbst mit Debianopenbox). Ich würde nie auf die Idee kommen das Manuel über Yelp oder einen Browser umzubiegen. Aber ich nutze auch nie Aliases.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: bash Funktion soll man(1) ersetzen

Beitrag von smutbert » 23.02.2016 16:03:56

Der Threadtitel stimmt inzwischen nicht mehr ganz. Es ist ein Skript, das ich unter »/usr/local/bin/m« gespeichert habe und ich finde es insofern praktisch als ich aus dem Terminalfenster heraus (jetzt sogar als root) einfach ein Hilfefenster aufmachen kann, das mir die Kommandozeile nicht blockiert wie es »man« machen würde.

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: bash Funktion soll man(1) ersetzen

Beitrag von uname » 23.02.2016 16:18:48

... einfach ein Hilfefenster aufmachen kann, das mir die Kommandozeile nicht blockiert wie es »man« machen würde.
Dafür nutzt man eigentlich Terminalmultiplexer wie Debianscreen oder Debiantmux. Warum das Terminal überhaupt verlassen.

Screen:

Code: Alles auswählen

Ctrl+a S	split terminal horizontally into regions	Ctrl+a c to create new window there
Ctrl+a |	split terminal vertically into regions	Requires screen >= 4.1
Quelle: http://www.pixelbeat.org/lkdb/screen.html

Und wenn das zu viel Mühe ist. Debianterminator kann z.B. auch mehrere Tabs sogar nebeneinander ohne komplizierte Befehle.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: bash Funktion soll man(1) ersetzen

Beitrag von smutbert » 23.02.2016 16:48:45

terminator habe ich eh auch lange verwendet, aber an die Nutzung dieser Tabs, die neben- und untereinander angezeigt werden, konnte ich mich nie gewöhnen und dasselbe gilt für screen, das verwende ich nur selten. Im Gnome-Terminal, das ich momentan meist verwende, könnte man auch mit <Alt>+<1, 2, …> zwischen den Tabs wechseln, aber irgendwie gefällt es mir mit yelp ganz gut

Ist es denn sooo schlimm das Terminal zu verlassen :wink:
ohne grafische Programme komme ich ohnehin nicht aus.

Sehr angenehm finde ich übrigens auch, dass durch den Aufruf von zB »m rsync« die rsync-Manpage im bereits vorhandenen yelp-Fenster dargestellt wird und nicht ein neues aufgemacht wird. Ich habe mir übrigens auch ein Skript geschrieben, das ich mit der Tastenkombination <Ctrl>+<Space> aufrufe und das mir das Terminalfenster in den Vordergrund holt bzw. wenn keines existiert, mir eines aufmacht — damit wechsle ich von yelp oder vom Browser recht schnell und bequem zurück zum Terminal.

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: bash Funktion soll man(1) ersetzen

Beitrag von uname » 24.02.2016 20:30:59

Alles klar. Bei Linux kann und darf sich jeder seine Anwendungen beliebig zurechtlegen. Soll hier im Forum teilweise auch nur mal ein Vorschlag sein. Ich lese z.B. mittlerweile kaum Manuals. Ich suche gleich Lösungsideen im Internet und bau die dann einfach um.

Antworten