.sh skript ablegen

novski

Carola
Registriert
02.09.09
Beiträge
114
Ich habe ein xy.sh skript das ich ausführen kann wenn ich mit dem terminal in den ordner navigiere in dem es liegt und es als xy.sh aufrufe. Nun kann ich es auch einfach in meinen user ordner legen und habe es dann gleich beim öffnen des terminals mit xy.sh zugänglich aber ich frage mich ob das der richtige umgang ist oder ob terminal skripts irrgendwo sonnst im system abgelegt werden können wo terminal sie auch direkt findet...
gibts das?
 

Chrysaor1024

Alkmene
Registriert
15.12.16
Beiträge
31
Warum sollte ich Skripte im bin-Ordner ablegen, wenn sie doch keine "binaries" sind?
 

ottomane

Golden Noble
Registriert
24.08.12
Beiträge
16.375
Alles falsch ;)

Ich lege ein Skripte-Verzeichnis unter meinem Userordner an und speichere das Skript dort ab. Dann erzeuge ich einen symbolischen Link auf das Skript unter /usr/local/bin

So findest du deine eigenen Dinge immer wieder und kannst sie zentral warten. Und sie sind ohne Änderung an der PATH-Variablen immer aufrufbar. Wenn man mal in /usr/local/bin reinguckt, stelt man fest, dass das der Weg ist, den auch andere beschreiten.
 

Chrysaor1024

Alkmene
Registriert
15.12.16
Beiträge
31
Und was passiert mit einem zweiten Nutzer, der dein Script ausführen will, aber der Symlink verweist auf ein Verzeichnis, das für Ihn nicht lesbar ist, da es dein Userverzeichnis ist? Hättest du das Userverzeichnis weg gelassen, würde ich dir recht geben :)!
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.541
Warum sollte ich Skripte im bin-Ordner ablegen, wenn sie doch keine "binaries" sind?

Auch wenn in den bin-Ordnern historisch gesehen vor über 40 Jahren nur Programme im Binärcode waren, so wird dies heute als Oberbegriff für alle ausführbaren Programme gesehen, egal ob sie in Maschinencode oder als Skript formuliert sind. Viele Bestandteile des Betriebssystems sind in Wirklichkeit Skripte, z.B. /usr/bin/wait.

Gemäß Filesystem Hierarchy Standard ist /usr/local/bin der korrekte Ordner für ausführbare Benutzerprogramme, die der lokalen Systeminstallation hinzugefügt wurden.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Und eine weitere Anmerkung:
Im Benutzerordner sind Skripte schlecht aufgehoben.
Zum einen legt man ausführbaren Code prinzipiell nur dort ab, wo ordinäre Benutzer keine Schreibrechte besitzen - aus grundsätzlichen Sicherheitsbedenken.
Zum anderen können die Inhalte der Benutzerordner schon mal auf entfernten Servern liegen - auf Netzfreigaben, auf denen gerne jegiche Programmausführung durch die mount-Option "noexec" unterdrückt wird. Dann läuft da gar nix.
Schlechter Stil, sowas.
 
  • Like
Reaktionen: Wuchtbrumme

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.415
genau. Solche Locations haben schon ihren Sinn, sind gewachsen aber auch relativ gut dokumentiert. Unixoid halt, sauber.

Aber unabhängig davon mag ich noch eine Anekdote über Zertifikate erzählen.
Ich hatte früher auf dem OS X Server die Zertifikate für https usw. irgendwo abgelegt. Mit jedem OS Update waren die Zertifikate weg und ich habe mich gewundert. Sie gehören nach /etc/certificates und OS X hat das wohl enforced. Man tut also gut daran, keine "Unordnung" aufzubauen, ohne zu wissen, wie das alles zusammenhängt.
 
  • Like
Reaktionen: doc_holleday

ottomane

Golden Noble
Registriert
24.08.12
Beiträge
16.375
Im Benutzerordner sind Skripte schlecht aufgehoben.

Das verstehe ich, finde es aber unübersichtlich. Und wir wissen nicht, um welches Skript es sich handelt. Ich könnte mir durchaus Skripte vorstellen, die ausschließlich für einen bestimmten User gedacht sind und andere User nichts angehen. Dann gehören sie m.E. schon ins User-Verzeichnis (natürlich dann aber ohne Symlink).

EDIT: Auf einem wirklichen Mehrbenutzersystem würde ich, wenn ich Admin wäre, rotieren, wenn alle User ihre Aufräum-, Backup- oder Entwicklungsskripts unter /user/local/bin ablegen würden. Nein, bei genauerer Betrachtung fühlt sich das nicht gut an.
 
Zuletzt bearbeitet: