Autor Thema: Fragen zur Bash  (Gelesen 476 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 670
  • Dankeschön: 107 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.4.45-1-MANJARO OpenRC
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Fragen zur Bash
« Antwort #15 am: 10. Februar 2017, 14:45:30 »
Hallo Norman,
Wenn ich das Panel-Script im Terminal ausführe, dann kommen folgende Fehler:

mkfifo: der FIFO ' ' kann nicht erzeugt werden: Datei oder Verzeichnis nicht gefunden
Ich hab nichts an den Dateien verändert. Hat jemand ne Idee, woran es liegen könnte
Die Variable PANEL_FIFO ist nicht belegt, das heisst, sie hat keinen Wert.
Bei bspwm kann dieser Wert/Name beim Start übergeben werden:
bspwm -s PANEL_FIFObzw. offenbar auch in einer Konfigurationsdatei stehen. Wenn es z.B. eine Konfigurationsdatei bspwm.conf gibt, die in /etc liegt, kann man auch mit folgendem Befehl starten:
bspwm -c /etc/bspwm.confhttps://github.com/windelicato/bspwm
Noch mehr zur Konfiguration steht auch in der Seite zu bspwm
https://wiki.archlinux.org/index.php/Bspwm
die Du aber eigentlich schon kennst.
Ich nehme an, daß sich in dem git-Repo auch so eine Konfigurationsdatei rumtreibt, die Du dann ins Verzeichnis ~/.config/bspwm/ kopieren könntest.

Viele Grüße gosia
Folgende Mitglieder bedankten sich: Norman

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #16 am: 10. Februar 2017, 18:51:13 »
Ich nehme an, daß sich in dem git-Repo auch so eine Konfigurationsdatei rumtreibt, die Du dann ins Verzeichnis ~/.config/bspwm/ kopieren könntest.

Ne, leider ist da keine solche Datei. Aber ich habs auch ehrlich gesagt schon aufgegeben, mir würde es schon reichen, Lemonbar überhaupt mal zum laufen zu kriegen, aber irgendwie klappt es nicht. Ich hab mich am offiziellen Repository orientiert, da ist auch eine Profile-Datei, diese habe ich so übernommen. Der Inhalt der Datei ist:

PANEL_FIFO=/tmp/panel-fifo
PANEL_HEIGHT=24
PANEL_FONT="-*-fixed-*-*-*-*-10-*-*-*-*-*-*-*"
PANEL_WM_NAME=bspwm_panel
export PANEL_FIFO PANEL_HEIGHT PANEL_FONT PANEL_WM_NAME

Wie man sieht ist ganz oben PANEL_FIFO deklariert, dann habe ich in meiner .xinitrc-Datei folgendes reingeschrieben:

export PATH=$PATH:/home/username/.config/bspwm/panel &
Laut Wiki braucht man diese Zeile, damit bspwm weiß, wo sich die ganzen Scripte für das Panel befinden. Dann noch die bspwmrc editiert und ganz unten Panel & angefügt, alle Sample-Dateien in den entsprechenden Path eingefügt, aber es klappt einfach nicht, das Panel läd einfach nicht beim Start. Und wenn ich echo $Panel_FIFO eingebe, wird nichts ausgegeben, obwohl eigentlich tmp/panel-fifo zurückgegeben werden müsste, denn die ist ja in der Profile-Datei so deklariert. Das sind jetzt auch alles nur die Samples, die auch beim installieren von bspwm in /usr/share/doc/bspwm/examples eingefügt werden, also quasi die Samples für eine absolute Minimalkonfiguration und trotzdem klappt es nicht. Keine Ahnung, was ich falsch mache.
« Letzte Änderung: 10. Februar 2017, 18:52:59 von Norman »

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 670
  • Dankeschön: 107 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.4.45-1-MANJARO OpenRC
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Fragen zur Bash
« Antwort #17 am: 10. Februar 2017, 19:07:50 »
Hallo Norman,
export PATH=$PATH:/home/username/.config/bspwm/panel &
Laut Wiki braucht man diese Zeile, damit bspwm weiß, wo sich die ganzen Scripte für das Panel befinden.
Der PATH ist für die ausführbaren Dateien, also hier für die Skripte, zuständig, nicht für die Konfigurationsdateien. Den Ort der Konfigurationsdatei kannst Du bei bspwm wie gesagt mit der Option -c mitgeben
bspwm -c ~/.config/bspwm/panelwenn die Konfigurationsdatei tatsächlich panel heisst und auch dort liegt.
Übrigens ist auch das &-Zeichen in deiner Path-Angabe falsch. Das hat da nichts zu suchen.

Viele Grüße gosia

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #18 am: 10. Februar 2017, 19:18:36 »
Übrigens ist auch das &-Zeichen in deiner Path-Angabe falsch. Das hat da nichts zu suchen.

Ich hab diese Zeile in meine .xinitrc-Datei geschrieben und da danach noch paar andere Befehle kommen braucht man doch das &-Zeichen, oder darf man die Path-Angabe nicht in diese Datei schreiben?

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 670
  • Dankeschön: 107 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.4.45-1-MANJARO OpenRC
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Fragen zur Bash
« Antwort #19 am: 10. Februar 2017, 20:50:15 »
Hallo Norman,
da danach noch paar andere Befehle kommen braucht man doch das &-Zeichen, oder darf man die Path-Angabe nicht in diese Datei schreiben?
Du darfst die Path-Angabe schon in die .xinitrc schreiben, aber das & macht nur bei Befehlen Sinn. Das bewirkt doch nur, daß der Befehl, das Skript in den Hintergrund "geschoben" wird.
http://www.oreilly.de/german/freebooks/rlinux3ger/ch0412.html

Viele Grüße gosia
Folgende Mitglieder bedankten sich: Norman

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #20 am: 10. Februar 2017, 21:47:09 »
Hallo Norman,Du darfst die Path-Angabe schon in die .xinitrc schreiben, aber das & macht nur bei Befehlen Sinn. Das bewirkt doch nur, daß der Befehl, das Skript in den Hintergrund "geschoben" wird.

Vielen Dank für den Tipp, das wusste ich noch nicht. Ich dachte bisher, dass allem was vor dem WM kommt ein & nachgestellt werden müsse, da sonst die .xinitrc nicht komplett abgearbeitet würde.

Bin mal der Anleitung in diesem Video gefolgt,

https://www.youtube.com/watch?v=ZbXQUOwcH08

hatte Lemonbar auch sichtbar, allerdings verursacht es wohl auf die im Video beschriebene Art beim mir einen Pipe-Fehler (derjenige hat diesen FIFO-String und den PATH direkt in die .bashrc geschrieben), was bei mir zumindest zu etwas merkwürdigem Verhalten geführt hat.
Ich hab noch ein anderes Video entdeckt, dort wird zwar nicht lemonbar sondern dzen2 verwendet, allerdings bleibt das Grundprinzip wohl mehr oder weniger gleich. Ich versuch jetzt nochmal damit und vielleicht klappts ja.

https://www.youtube.com/watch?v=P9FU_F5g6hA

Grüße
Norman

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #21 am: 10. Februar 2017, 23:14:44 »
So, habs nach endlosem rumprobieren endlich geschafft. In /etc/profile habe ich

PANEL_FIFO=/tmp/panel-fifo
eingetragen und die .xinitrc nochmal angepasst, sodass der PATH stimmt. Das Panel erscheint, doch ich bekomme immer eine Fehlermeldung, wenn ich den WM beende:

/home/user/.config/bspwm/panel_bar: Zeile 88: printf: schreibfehler: Datenübergabe unterbrochen (broken pipe)
Zeile 88 in der panel_bar-Datei lautet:

printf "%s\n" "%{l}${wm}%{c}${title}%{r}${sys}"
Wenn ich diese Zeile lösche, dann verschwindet zwar der Fehler, allerdings wird dann nur eine leere Leiste angezeigt, wenn ich den X-Server erneut starte. Was kann man denn da machen, damit es ohne Fehlermeldungen läuft? Die Scripte sind die gleichen, die auch im offiziellen Repo von bspwm drin sind und die auch im Verzeichnis /usr/share/doc/bspwm/examples/panel nach der Installation vorhanden sind.

https://github.com/baskerville/bspwm/tree/master/examples/panel

Grüße
Norman



Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 670
  • Dankeschön: 107 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.4.45-1-MANJARO OpenRC
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Fragen zur Bash
« Antwort #22 am: 11. Februar 2017, 00:03:47 »
Hallo Norman,
Ich gestehe, daß ich nicht mehr 100% durchblicke, was Du wo eingetragen bzw. geändert hast, aber wahrscheinlich ist es eine schlechte Idee, die Variable in /etc/profile einzutragen.
Sieh dir mal dieses Beispiel von eugen-b an
https://forum.manjaro.org/t/limepanel-config/5811
Antwort #6 wenn ich recht gezählt habe.

Viele Grüße gosia

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #23 am: 11. Februar 2017, 00:24:48 »
@gosia:
Jo, anscheinend kann man die Variable in mehrere Dateien schreiben. Ich versuche morgen einfach mal eine .conf-Datei dafür händisch anzulegen und die dann in meinem Home-Ordner zu speichern. Das Panel funzt ja jetzt soweit, ich hatte halt nur den PATH falsch gesetzt. Jetzt muss ich nur noch rausfinden, was es mit diesem Pipe-Fehler auf sich hat, aber vielleicht nehme ich einfach eine Panel_Bar-Datei aus einem anderen Repo und hoffe, dass der Fehler verschwindet.

Grüße
Norman

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 670
  • Dankeschön: 107 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.4.45-1-MANJARO OpenRC
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Fragen zur Bash
« Antwort #24 am: 11. Februar 2017, 12:28:08 »
Hallo Norman,
Jetzt muss ich nur noch rausfinden, was es mit diesem Pipe-Fehler auf sich hat
Das lässt sich mit einer einzigen Programmzeile
printf "%s\n" "%{l}${wm}%{c}${title}%{r}${sys}"
schlecht beurteilen. Aber ich denke schon, daß es mit der FiFo zu tun hat. Eine FiFo ist ja eine Pipe, nur eben eine, die einen Namen hat.
http://man7.org/linux/man-pages/man7/fifo.7.html
Und noch andere Pipes wird es wohl in dem Skript nicht geben.

Viele Grüße gosia
Folgende Mitglieder bedankten sich: Norman

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #25 am: 11. Februar 2017, 16:19:11 »
Ich hab nochmal ne andere Frage zur .xinitrc.

In /etc/X11/xinit/xinitrc befindet sich ja eine Standardvorlage:

#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then







    xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then







    xrdb -merge "$userresources"

fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Mir gehts da um den Block, der unter # start some nice programs steht. Kann ich alles unter dem Kommentar löschen oder ist dieses Konstrukt irgendwie wichtig bzw. was macht es? Sollte ich es drin lassen?

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

Die darauf folgenden Zeilen sind unwichtig, die starten ja nur ein paar Fenster mit vorgegebener Größe.

Grüße
Norman

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 670
  • Dankeschön: 107 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.4.45-1-MANJARO OpenRC
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Fragen zur Bash
« Antwort #26 am: 11. Februar 2017, 16:56:23 »
Hallo Norman,
Mir gehts da um den Block, der unter # start some nice programs steht. Kann ich alles unter dem Kommentar löschen oder ist dieses Konstrukt irgendwie wichtig bzw. was macht es? Sollte ich es drin lassen?
Erstmal zur Frage, was der Block macht. Ich haue da mal ein paar Kommentare rein, was die Befehle machen:
if [ -d /etc/X11/xinit/xinitrc.d ] ; then # Wenn ein Directory mit dem Namen /etc/X11/xinit/xinitrc.d existiert
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do    # dann führe jedes Skript in dem Verzeichnis aus, dessen Name mit .sh endet
  [ -x "$f" ] && . "$f"                                 # und das als ausführbar (x) gekennzeichnet ist.
 done
 unset f
fi
Naja, und nun sieh selbst nach, was in dem Verzeichnis rumliegt:
ls -l /etc/X11/xinit/xinitrc.d/?*.shund beurteile, ob Du "some nice programs" entbehren kannst ;)
Aber meine Empfehlung: Lass das Zeug drin, die Befehle stehen nicht umsonst so da. Im Prinzip kannst Du ja in Linux verändern, was Du möchtest, aber Du solltest wissen, was und warum Du das tun willst.
Warum willst Du überhaupt diesen Block löschen?

Viele Grüße gosia

PS. Ich glaube, wir hatten schon mal die Diskussion, auf welche Weise Du bash lernst. Bleibt natürlich dir überlassen und jeder lernt anders. Aber ich habe wiederholt den Eindruck, daß Du dich zu sehr in den Höhen aufhältst und die Basics etwas vernachlässigst.
Ist nicht böse gemeint, aber was z.B.  if [ -d /etc/X11/xinit/xinitrc.d ] oder for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do bedeutet, solltest Du dir langsam aneignen.

Offline Norman

  • Neuling
  • *
  • Beiträge: 19
  • Skill: Durchschnitt
Re: Fragen zur Bash
« Antwort #27 am: 11. Februar 2017, 17:53:13 »
Aber ich habe wiederholt den Eindruck, daß Du dich zu sehr in den Höhen aufhältst und die Basics etwas vernachlässigst.

Dein Eindruck ist auch vollkommen korrekt. :) Aber ich verspreche, mich zu bessern.

LG
Norman