(gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
(gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
Ich baste gerade an eine Nutzerscript, s2pdf.sh (scan2pdf), es ist wohl noch fehlerhaft, aber eines nach dem anderen:
A)
Wo speichere ich sinnvollerweise Nutzerscripte?
Ich habe dafür ~/bin/ auserkoren. Einwände?
B)
Dieser Pfad ist nicht in meinem $PATH. In meinem Nutzer /home gibt es keine .profile Datei. Ich nehme an das ich als Nutzer PATH von irgendeinem Systemsetting erbe. Wie mache ich das am geschicktesten, so dass ich ein Nutzerscript ohne Pfad starten kann?
Danke vorab.
A)
Wo speichere ich sinnvollerweise Nutzerscripte?
Ich habe dafür ~/bin/ auserkoren. Einwände?
B)
Dieser Pfad ist nicht in meinem $PATH. In meinem Nutzer /home gibt es keine .profile Datei. Ich nehme an das ich als Nutzer PATH von irgendeinem Systemsetting erbe. Wie mache ich das am geschicktesten, so dass ich ein Nutzerscript ohne Pfad starten kann?
Danke vorab.
Zuletzt geändert von michaa7 am 21.08.2024 16:47:17, 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: Nutzer $PATH, Anpassung für Nutzerscripte
Wenn es Skripte sind, die nur ein Nutzer ausführen können soll, bietet sich ~/bin an. Wenn aber alle Nutzer, die sich auf dem System einloggen können, die Skripte ausführen können sollen, wäre /usr/local/bin eine Alternative.
Wirklich?Dieser Pfad ist nicht in meinem $PATH.
Hast du das mit
Code: Alles auswählen
echo $PATH
Normalerweise wird PATH automatisch um $HOME/bin ergänzt. Zumindest wenn man Nutzerkonnten mit adduser anlegt. Dann nämlich werden die Vorlagen für .profile und .bashrc aus /etc/skel kopiert. Du kannst diese Dateien natürlich auch nachträglich von /etc/skel in dein $HOME kopieren.
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Für solche Sachen eignet sich /usr/local/bin (für eigene Scripte, die alle lokalen User nutzen sollen), $HOME/bin und $HOME/.local/bin.
Code: Alles auswählen
ich@lumpi:~$ grep PATH /etc/profile
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
Code: Alles auswählen
ich@lumpi:~$ grep -A 2 PATH .profile
# 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
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Nicht immer, das Verzeichnis muss existieren.MSfree hat geschrieben:21.08.2024 14:59:17Normalerweise wird PATH automatisch um $HOME/bin ergänzt.
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Ja.MSfree hat geschrieben:21.08.2024 14:59:17...
Hast du das mitgeprüft?Code: Alles auswählen
echo $PATH
...
Code: Alles auswählen
~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Wie kurz und schmerzlos?
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: Nutzer $PATH, Anpassung für Nutzerscripte
*Jetzt* (naja, schon seit längerem) existiert /home/<ich>/bin/ . Ich werde aus deinem code nicht schlau, obwohl ich verstehe dass der den userpfad wohl um um den gewünschten neuen ergänzt. Mir ist jedoch nicht klar was ich ausführen oder irgendwohin kopieren muss.HumiNi hat geschrieben:21.08.2024 15:07:27Für solche Sachen eignet sich /usr/local/bin (für eigene Scripte, die alle lokalen User nutzen sollen), $HOME/bin und $HOME/.local/bin.
Code: Alles auswählen
ich@lumpi:~$ grep PATH /etc/profile PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
Code: Alles auswählen
ich@lumpi:~$ grep -A 2 PATH .profile # 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
Eine klitzekleine größtmögliche Hilfestellung wäre .... hilfreich
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: Nutzer $PATH, Anpassung für Nutzerscripte
Kopier dir einfach die Vorlagedatei aus /etc/skel in dein Home:
Code: Alles auswählen
cp /etc/skel/.profile $HOME
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Dies ist nicht mein Code, sondern ein Ausschnitt von /etc/profile und .profile, wie sie automatisch bei der Debian-Installation angelegt werden. Normalerweise ist da gar nichts zu tun.michaa7 hat geschrieben:21.08.2024 15:28:03*Jetzt* (naja, schon seit längerem) existiert /home/<ich>/bin/ . Ich werde aus deinem code nicht schlau, obwohl ich verstehe dass der den userpfad wohl um um den gewünschten neuen ergänzt. Mir ist jedoch nicht klar was ich ausführen oder irgendwohin kopieren muss.
Wenn du keine .profile hast, wurde dein Useraccount wohl nicht mit Standardmitteln angelegt.
Das Muster der .profile sollte als /etc/skel/.profile vorliegen. Kannst du kopieren und die Rechte setzen (auf 644).
Siehe auch die Hinweise von MSfree.
EDIT: Da war ich wieder zu langsam.
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Hab ich gemacht. Und mich neu angemeldet!
Dennoch, "~/bin/s2pdf.sh test.pdf" funktioniert, "s2pdf.sh test.pdf" funktionier *nicht*: Befehl nicht gefunden.
?
Dennoch, "~/bin/s2pdf.sh test.pdf" funktioniert, "s2pdf.sh test.pdf" funktionier *nicht*: Befehl nicht gefunden.
?
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: Nutzer $PATH, Anpassung für Nutzerscripte
Mach folgendes und zeige den Output:
Ergänzung: Die .profile wird nur in einer login-Shell ausgeführt, also nicht, wenn du über eine grafische Oberfläche ein Terminal öffnest.
Code: Alles auswählen
cd
echo $PATH
ls -l .profile
ls -l bin
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.
Re: Nutzer $PATH, Anpassung für Nutzerscripte
HumiNi hat geschrieben:21.08.2024 16:08:11Mach folgendes und zeige den Output:Code: Alles auswählen
cd echo $PATH ls -l .profile ls -l bin
Code: Alles auswählen
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Code: Alles auswählen
$ ls -l .profile
-rwxr-xr-x 1 mh fuse 807 21. Aug 15:58 .profile
Code: Alles auswählen
$ ls -l bin
insgesamt 79928
-rw-r--r-- 1 mh mh 17743 12. Jan 2021 accomp.ods
-rwxr-xr-x 1 mh mh 1563 11. Jan 2021 accomp.sh
-rw-r--r-- 1 mh fuse 89 16. Apr 2017 cl.txt
-rwxrwxr-x 1 mh mh 426 30. Mär 00:28 detect_sh.bin
-rw-r--r-- 1 mh mh 2896 15. Jan 2021 dialogrc
-rwxr-xr-x 1 mh fuse 199 4. Okt 2014 diff-cp
drwxr-xr-x 11 mh mh 4096 13. Feb 2021 ff
-rw-r--r-- 1 mh mh 72668 23. Aug 2018 gksu_2.0.2-9+b1_amd64.deb
-rwxr-xr-x 1 mh mh 494 4. Jan 2021 hg-blink.sh
-rw-r--r-- 1 mh mh 98964 23. Aug 2018 libgksu2-0_2.0.13_pre1-9+b2_amd64.deb
-rwxr-xr-x 1 mh fuse 121 14. Aug 2012 mnom-p.sh
drwxr-xr-x 10 mh fuse 4096 29. Okt 2012 Opera_Mobile_Emulator_12.1_Linux
-rwxrwxr-x 1 mh mh 432 21. Aug 15:53 s2pdf.sh
-rwxr-xr-- 1 mh mh 2349 15. Jan 2021 schleife.sh
drwxr-xr-x 2 mh mh 4096 4. Mär 2023 scripte
-rw-r--r-- 1 mh mh 80888290 17. Mär 2020 skypeforlinux-64.deb
-rw-r--r-- 1 mh fuse 101416 4. Aug 2018 sysvinit_2.88dsf-59.7_amd64.deb
-rwxr--r-- 1 mh mh 86 12. Jan 2021 test.sh
-rw-r--r-- 1 mh mh 19970 31. Okt 2019 tkusr_0.82_all.deb
-rw-r--r-- 1 mh mh 317 22. Mär 2020 tkusr.txt
-rwxrwxr-x 1 mh mh 1518 30. Mär 12:53 xz_detect.sh
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: Nutzer $PATH, Anpassung für Nutzerscripte
Du bist nicht in einer login-shell. Schieb dein Script nach /usr/local/bin.
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Ok, das ist es. Habe es getestet. In einer login-Shell funktioniert das. Nur ist das ja ein Umstand. Meine scripte will ich natürlich in einem Terminal wie xterm ect. ausführen. Gibt es ne Lösung ohne vollständigen Pfad?HumiNi hat geschrieben:21.08.2024 16:08:11Mach folgendes und zeige den Output:Ergänzung: Die .profile wird nur in einer login-Shell ausgeführt, also nicht, wenn du über eine grafische Oberfläche ein Terminal öffnest.Code: Alles auswählen
cd echo $PATH ls -l .profile ls -l bin
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: Nutzer $PATH, Anpassung für Nutzerscripte
Alternativ dies in die ~/.bash_aliases:
... und danach ein Terminal neu öffnen
Code: Alles auswählen
export PATH="$HOME/bin:$PATH"
-
- Beiträge: 2136
- Registriert: 12.07.2020 11:21:17
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Vielleicht eher in die ~/.bashrc
Re: Nutzer $PATH, Anpassung für Nutzerscripte
Ok, kopiert nach /usr/local/bin funktioniert das Script auch im xterm. Das wäre das letzte woraum ich alleine gekommen wäre. Danke, besonders für diesen Hinweis. Damit ist auch klar wohin zukünftige scripte kommen.
Ich gehe davon aus dass es aus Sicherheitsgründen notwendig ist dass nur root nach /usr/local/bin schreiben darf?
Danke an euch beide!
Ich gehe davon aus dass es aus Sicherheitsgründen notwendig ist dass nur root nach /usr/local/bin schreiben darf?
Danke an euch beide!
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: Nutzer $PATH, Anpassung für Nutzerscripte
Grundsätzlich gefiele mir auch diese Lösung. Nur, wenn normalerweise nur root nach /usr/local/bin schreiben darf, ist das dann nciht eine Sicherheitslücke dies so zu umgehen (ich durchblicke die unterscheidlichen Gegebenheiten nicht wirklich!)?4A4B hat geschrieben:21.08.2024 16:32:17Alternativ dies in die ~/.bash_aliases:
... und danach ein Terminal neu öffnenCode: Alles auswählen
export PATH="$HOME/bin:$PATH"
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: Nutzer $PATH, Anpassung für Nutzerscripte
Ja, die dort gespeicherten Scripte können ja von allen Nutzern eines Systems verwendet werden. Eigene Scripte kann ein Nutzer deswegen in ~/bin unterbringen.michaa7 hat geschrieben:Ich gehe davon aus dass es aus Sicherheitsgründen notwendig ist dass nur root nach /usr/local/bin schreiben darf?
@dasebastian
Ja stimmt, .bashrc ist hier eher angebracht (.bash_aliases sollte aber auch funktionieren, da sie standardmäßig inkludiert wird)
Re: (gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
Ok, die Ergänzung in der .bashrc funktioniert. Danke an alle!
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: (gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
Das ist sozusagen schlecht, Bash-unspezifisches Zeug in Bash-spezifischen Konfigurationsdateien unterzubringen. Verwendest du mal eine andere Shell - und sei es auch nur zu Testzwecken - dann funktioniert dieses Zeug einfach nicht mehr!
Schau', dass du grundsätzlich eine Login-Shell aufmachst und schreibe dieses Shell-unabhängige Zeug nach ~/.profile oder schreibe zumindest dieses ganze Shell-unabhängige Zeug in eine eigene Datei und lade sie dann entsprechend in allen Shell-Konfigurationsdateien.
-
- Beiträge: 2136
- Registriert: 12.07.2020 11:21:17
Re: (gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
Die ~/.bashrc ist aber schon ein sehr gängiger Weg für Normaloendbenutzer, tobo.
Es gibt ja eine Menge "bash-unspezifisches" Zeug, dass trotzdem dort untergebracht wird, wie zB. Parameter einzelner Programme uÄ.
Es gibt ja eine Menge "bash-unspezifisches" Zeug, dass trotzdem dort untergebracht wird, wie zB. Parameter einzelner Programme uÄ.
Re: (gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
Ich denke ich verstehe deinen Einwand. Aber bitte habe Verständnis, dass ich das nun so lasse wie es ist. Ich bin bash Laie und werde es bleiben. Ich bin um jede Funktion froh die ich hier noch lernen kann und happy über jedes script welches ich mir mit der Hilfe anderer zusammenbastle. Dass ich je auf eine andere shell umsteige ist so wahrscheinlich wie dass mir der Himmel auf den Kopf fällt.
Du hast bestimmt recht, aber für mich muß das praktikabel bleiben. Eine Login-shell ist ... nur umständlich ... für meinen Gebrauch. Ich danke dir für deinen Hinweis!
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)
-
- Beiträge: 2136
- Registriert: 12.07.2020 11:21:17
Re: (gelöst) Nutzer $PATH, Anpassung für Nutzerscripte
Tobo, magst du vielleicht die von dir favorisierte Herangehensweise in Bash-Konfiguration weitergeben, wir könnten 2 Unterpunkte machen, einmal Bash-spezifisch einmal Bash-unspezifisch.tobo hat geschrieben:21.08.2024 17:18:47Das ist sozusagen schlecht, Bash-unspezifisches Zeug in Bash-spezifischen Konfigurationsdateien unterzubringen. Verwendest du mal eine andere Shell - und sei es auch nur zu Testzwecken - dann funktioniert dieses Zeug einfach nicht mehr!
Bei Fragen auch gerne PIN.