[Gelöst] Scripte in $HOME/.local/bin lassen sich nicht finden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
fatada
Beiträge: 19
Registriert: 29.08.2020 21:25:39

[Gelöst] Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von fatada » 19.06.2021 11:46:37

Hallo,

ich möchte gerne meine Scripte in $HOME/.local/bin "lagern"

in man bash steht dazu:

Code: Alles auswählen

After  reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one  that exists  and  is  readable.
da ich weder ~/.bash_profile, noch ~/.bash_login sollte es ja über mein ~/.profile funktionieren.
das sieht so aus:

Code: Alles auswählen

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi
trotzdem lassen sich meine scripte nicht über das Terminal noch rofi finden obwohl ich sie mit chmod -x ausführbar gemacht habe und unter ~/.local/bin abgelegt habe. Sie lassen sich aber finden, wenn ich sie im Systemverzeichnis /bin ablege.
Sieht jemand meinen Fehler?
Zuletzt geändert von fatada am 21.06.2021 11:15:41, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von DeletedUserReAsG » 19.06.2021 11:56:17

Hast du dich anschließend neu eingeloggt? Ansonsten gibt dir echo $PATH den aktuellen Inhalt der Variable aus.

Ich hatte, als ich noch Debianbash genutzt habe, die Pfade immer in ~/.bashrc

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von JTH » 19.06.2021 12:09:32

fatada hat geschrieben: ↑ zum Beitrag ↑
19.06.2021 11:46:37
[…] obwohl ich sie mit chmod -x ausführbar gemacht habe […]
Falls das nicht nur ein Tippfehler ist, manchmal ist die Problemursache ja eine Kleinigkeit: Es muss

Code: Alles auswählen

chmod +x
sein, mit einem Plus. -x entfernt die Ausführberechtigung.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
fatada
Beiträge: 19
Registriert: 29.08.2020 21:25:39

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von fatada » 19.06.2021 17:39:51

JTH hat geschrieben: ↑ zum Beitrag ↑
19.06.2021 12:09:32
:lol: ja, war nur ein Tippfehler
niemand hat geschrieben: ↑ zum Beitrag ↑
19.06.2021 11:56:17
Hast du dich anschließend neu eingeloggt? Ansonsten gibt dir echo $PATH den aktuellen Inhalt der Variable aus.
ja mehrmals aus- und eingeloggt, bzw. herunter- und hochgefahren

die Ausgabe von echo $PATH ist bei mir

Code: Alles auswählen

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Ich hatte, als ich noch Debianbash genutzt habe, die Pfade immer in ~/.bashrc
habe auch schon öfter gelesen dass das gehen soll. Nur für den Fall, dass ich irgendwann mal eine andere Shell nutze, dachte ich, dass die Lösung mit .profile eleganter ist, zumal in der Datei bei debian standardmäßig $HOME/.local/bin als PATH angegeben ist

DeletedUserReAsG

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von DeletedUserReAsG » 19.06.2021 19:13:48

Also wird gar kein Pfad aus deiner .profile übernommen.

Die Verzeichnisse existieren? $HOME ist nicht leer? $PATH hat den richtigen Inhalt, wenn du die .profile manuell einliest (via source)?

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

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von Livingston » 19.06.2021 20:57:32

.profile wird in der Regel nur bei einem "echten" Login auf tty1..tty6 ausgeführt oder z.B. über ssh, nicht aber, wenn Du Dich graphisch anmeldest.
Am einfachsten ist es, den Pfad in .bashrc zu definieren, um ihn in jeder interaktiven shell nutzen zu können.
Für Scripte (also nicht-interaktive shells) solltest Du immer den Pfad dort an Ort und Stelle definieren oder gleich mit absoluten Pfaden arbeiten.
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

Benutzeravatar
fatada
Beiträge: 19
Registriert: 29.08.2020 21:25:39

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von fatada » 19.06.2021 22:36:32

Livingston hat geschrieben: ↑ zum Beitrag ↑
19.06.2021 20:57:32
.profile wird in der Regel nur bei einem "echten" Login auf tty1..tty6 ausgeführt oder z.B. über ssh, nicht aber, wenn Du Dich graphisch anmeldest.
Am einfachsten ist es, den Pfad in .bashrc zu definieren, um ihn in jeder interaktiven shell nutzen zu können.
Für Scripte (also nicht-interaktive shells) solltest Du immer den Pfad dort an Ort und Stelle definieren oder gleich mit absoluten Pfaden arbeiten.
Ok, ich wusste nicht dass es da einen Unterschied gibt. Habe mich jetzt über ein tty via startx Befehl angemeldet und es funktioniert! :D
Vielen Dank!
Ich wollte sowieso meinen Displaymanager (lightdm) deinstallieren, sobald ich mich für einen Windowmanager entschieden habe. Oder gibt es auch im tty eine komfortable Möglichkeit zwischen verschiedenen Windowmanagern/Desktopenvironments zu wählen? Vielleicht reicht auch ein einfaches script. Ich schau mal, vielen Dank auf jeden Fall.

DeletedUserReAsG

Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von DeletedUserReAsG » 19.06.2021 22:45:53

fatada hat geschrieben: ↑ zum Beitrag ↑
19.06.2021 22:36:32
Oder gibt es auch im tty eine komfortable Möglichkeit zwischen verschiedenen Windowmanagern/Desktopenvironments zu wählen?
Du kannst angeben, welches Environment oder welchen WM du gestartet haben möchtest. Manche bringen auch ein Startscript mit: ich starte z.B. mein Xfce4 in der Regel nach dem Einloggen mit startxfce4.

Benutzeravatar
fatada
Beiträge: 19
Registriert: 29.08.2020 21:25:39

[Gelöst] Re: Scripte in $HOME/.local/bin lassen sich nicht finden

Beitrag von fatada » 21.06.2021 11:14:09

vielen Dank!
für alle die das auch interessiert, eine Liste von Startscripts für Desktopumgebungen/Windowmanager lässt sich im Manjaro Wiki finden:
https://wiki.manjaro.org/index.php?titl ... nitrc_File

und eine Möglichkeit wie man mittels startx/xinit zwischen verschiedenen Desktopumgebungen/Windowmanager wechseln kann, befindet sich im Arch Wiki:
https://wiki.archlinux.org/title/Xinit# ... w_managers
in dem Beispiel auf Arch Wiki ist XFCE als default und lässt sich mittels einfachen startx starten. Wie man alle anderen Desktopumgebungen/Windowmanager starten kann, steht eigentlich sehr gut beschrieben im Wiki.

Antworten