[Erledigt] Config Verzeichnis für Bash?

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

[Erledigt] Config Verzeichnis für Bash?

Beitrag von buhtz » 14.08.2022 10:41:33

Von Debianfish kenne ich ein Config-Verzeichnis wie ~/.config/fish/conf.d/ in dem ich mein Zeug organisieren kann.

Für die Bash finde ich so was nicht.
Aktuell nutze .bash_aliases als Datei, aber muss nun einige Dinge separieren.

Lange Erklärung:
Aktuell nutze ich primär Bash, aber teste auch Fish.
Meine ~/.bash_aliases ist eigentlich ein symlink auf eine dotfiles-Verzeichnis, dass ich über mehrere Maschinen teile.

Zum Einen sind dort die Aliases drin. Daher verlinke ich diese per Symlink einfach in das fish-config Verzeichnis als ~/.config/fish/conf.d/bash_aliases.fish.

Zum Anderen ist da aber auch die config für powerline mit drin.

Code: Alles auswählen

if tty | grep -q '/dev/pts'; then
    powerline-daemon -q
    POWERLINE_BASH_CONTINUATION=1
    POWERLINE_BASH_SELECT=1
    . /usr/share/powerline/bindings/bash/powerline.sh
fi
Die funktioniert aber nur mit Bash. Für Fish konfiguriert man powerline anders.

Deswegen möchte ich das gerne in zwei Dateien trennen.
Zuletzt geändert von buhtz am 17.08.2022 09:27:27, insgesamt 1-mal geändert.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

DeletedUserReAsG

Re: Config Verzeichnis für Bash?

Beitrag von DeletedUserReAsG » 14.08.2022 11:03:22

Du könntest beispielsweise in der ~/.bashrc weitere Dateien einlesen, die du dann etwa in ~/.config/bash ablegst.

buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Config Verzeichnis für Bash?

Beitrag von buhtz » 14.08.2022 12:40:29

niemand hat geschrieben: ↑ zum Beitrag ↑
14.08.2022 11:03:22
Du könntest beispielsweise in der ~/.bashrc weitere Dateien einlesen, die du dann etwa in ~/.config/bash ablegst.
Dann müsste ich aber die ~/.bashrc auf jeder Maschine editieren und immer daran denken. Genau das möchte ich vermeiden.

Allerdings die bashrc selbst nur per symlink zu nutzen und für alle Maschinen die Selbe (nicht nur Gleiche) zu nehmen, ist a.G. diverser Versionsunterschiede der OSes nicht ratsam.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

DeletedUserReAsG

Re: Config Verzeichnis für Bash?

Beitrag von DeletedUserReAsG » 14.08.2022 12:58:28

Du kannst dir natürlich auch die Bash patchen und neu bauen, so dass sie ihre Config von sich aus unter ~/.config/ sucht. Sehr viele andere Möglichkeiten wirst du da vermutlich nicht haben.

Benutzeravatar
oln
Beiträge: 487
Registriert: 05.01.2021 09:41:24

Re: Config Verzeichnis für Bash?

Beitrag von oln » 16.08.2022 14:56:24

Moin,
ich denke das gehört in die ~/.bash_profile.
Denn--> ~/.bash_profile: User-specific environment and startup programs
Gruß Ole
AbuseIPDB

Benutzeravatar
Livingston
Beiträge: 1422
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Config Verzeichnis für Bash?

Beitrag von Livingston » 16.08.2022 15:58:40

~/.bash_profile bedient die Login-shell, ~/.bashrc die interaktiven Nicht-Login-shells. In den meisten Fällen ist es sinnig die letztere in die erstere z.B. mit

Code: Alles auswählen

. .bashrc
oder

Code: Alles auswählen

source .bashrc
einzubinden.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Config Verzeichnis für Bash?

Beitrag von buhtz » 16.08.2022 21:50:08

Livingston hat geschrieben: ↑ zum Beitrag ↑
16.08.2022 15:58:40
~/.bash_profile bedient die Login-shell, ~/.bashrc die interaktiven Nicht-Login-shells.
Mit der Unterscheidung dieser vier Shell-Varianten konnte ich mich nie anfreunden.
Die Notwendigkeit dafür habe ich noch weniger begriffen.
Die technische Erklärung der Varianten kann ich verstehen, aber wie gesagt, deren tieferen Sinn nicht nachvollziehen.

Am Ende als Nutzer, nutze ich nämlich eine shell im Terminal-Emulator, eine per SSH und eine per tmux. Das muss alles gleich laufen und ich will nicht für jede eine andere config einbinden müssen.

Halten wir einfach fest, es gibt keinen komfortablen Weg und ich mache die fish Config gleich unabhängig von der bash.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
TRex
Moderator
Beiträge: 8068
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Config Verzeichnis für Bash?

Beitrag von TRex » 16.08.2022 22:37:05

buhtz hat geschrieben: ↑ zum Beitrag ↑
16.08.2022 21:50:08
Das muss alles gleich laufen
... für dich. Andere haben lustiges Zeug für ihre interaktiven shells und wollen das nicht ausführen, wenn sie "ssh kiste ./tool" ausführen oder ähnliches. git kann man so auch kaputt machen, wenn man es über ssh verwendet.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Config Verzeichnis für Bash?

Beitrag von Meillo » 16.08.2022 23:24:52

buhtz hat geschrieben: ↑ zum Beitrag ↑
14.08.2022 10:41:33
Lange Erklärung:
Aktuell nutze ich primär Bash, aber teste auch Fish.
Meine ~/.bash_aliases ist eigentlich ein symlink auf eine dotfiles-Verzeichnis, dass ich über mehrere Maschinen teile.

Zum Einen sind dort die Aliases drin. Daher verlinke ich diese per Symlink einfach in das fish-config Verzeichnis als ~/.config/fish/conf.d/bash_aliases.fish.

Zum Anderen ist da aber auch die config für powerline mit drin.

Code: Alles auswählen

if tty | grep -q '/dev/pts'; then
    powerline-daemon -q
    POWERLINE_BASH_CONTINUATION=1
    POWERLINE_BASH_SELECT=1
    . /usr/share/powerline/bindings/bash/powerline.sh
fi
Die funktioniert aber nur mit Bash. Für Fish konfiguriert man powerline anders.

Deswegen möchte ich das gerne in zwei Dateien trennen.
Wenn dein bisheriges Setup funktioniert und du nur abhaengig von der Shell (bash oder fish) die eine oder andere Datei includen willst, dann kannst du das doch ganz einfach an der Stelle tun. Include-Files fuer die Shell enthalten ja auch nur Shell-Code. Du kannst dort also ein if einbauchen und pruefen, ob du dich in der Bash oder in Fish befindest und dann die passende Datei includen.

Oder verstehe ich das Problem nicht richtig?
Use ed once in a while!

buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Config Verzeichnis für Bash?

Beitrag von buhtz » 17.08.2022 09:27:14

Meillo hat geschrieben: ↑ zum Beitrag ↑
16.08.2022 23:24:52
Oder verstehe ich das Problem nicht richtig?
Doch. Aber mit ifs wollte ich jetzt nicht anfangen und das Bash-bashing-Faß möchte ich jetzt nicht öffnen; auch weil ich damit hier auf verlorenen Posten wäre. ;)

Am Ende ist es so, dass fish und bash eh kaum kompatibel sind. Schon das setzen von Aliases unterscheidet sich; d.h. schon die Syntax zwingt zur Trennung. Oder ich verlagere meine Shell config in ein Python script, dass je nach dem von welcher Shell es aufgerufen wird, die passende Syntax on-the-fly generiert. :D Man muss nicht alles machen, was geht, ne.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Antworten