Ich habe ein paar sehr einfache Bash-Skripte, die ich für Dinge zusammengestellt habe, die ich regelmäßig mache. Eine davon ist das Ausführen von Duplicity, um meine Sicherungsaufgaben auszuführen. Nichts Kluges, nur ein Haufen von wenn ... dann Aussagen wirklich. Da dies als sudo ausgeführt werden muss, ist es empfehlenswert, mein Skript in / usr / bin (oder an einem anderen Ort in PATH) abzulegen, das in root.root und in chmod in 700 angegeben ist.
15
git
Sie diese Option, um Ihre Skripte einer Versionskontrolle zu unterziehen, lokale Kopien der Git-Repos an einer beliebigen Stelle zu platzieren~
und die Skripte dann mit Symlinks zu verknüpfen~/bin
.git
wiegithub
in den Wolken?/usr/local/bin
. Ansonsten würde ich sagen einfach reinstecken~/bin
. Ihre eigenen Skripte in beiden Verzeichnissen sollten beim Upgrade sicher sein.~/bin
der beste Ort für die meisten Skripte ist, da Sie sie nicht sosudo
bearbeiten müssen, wie Sie es tun, wenn sie in gespeichert sind/usr/local/bin
.Antworten:
Ich speichere meine eigenen Skripte in
/opt/scripts
.Wenn Ihr Skript von jedem Systembenutzer ausgeführt werden soll, können Sie eine symbolische Verknüpfung zu erstellen
/usr/bin
.Wenn nur root das Skript ausführen soll, können Sie eine symbolische Verknüpfung zu erstellen
/usr/sbin
.Befehl zum Hinzufügen eines symbolischen Links in
/usr/bin/
:Sie können das Skript ausführen, da
/usr/bin/
es sich standardmäßig in Ihrem PATH befindet .quelle
/usr/bin
als Ziel für Benutzer / lokales Shell-Skript zu verwenden, dass es/usr/local/bin
(oder/opt/bin
) gemäß Dateisystem-Hierarchie-Standard - Debian-Wiki ist , um Konflikte zu vermeiden (in den meisten Fällen möchten Sie, dass die von Ubuntu bereitgestellten Skripte Vorrang haben)./usr/local/bin
überschrieben/usr/bin
, wie später im Pfad erläutert wird. Dies ist mit Absicht so, da das System keine Dateien dort ablegt. Sie können also Dateien dort ablegen, die die vom System bereitgestellten überschreiben MÜSSEN.Wenn kein anderer Benutzer als Sie diese Skripte verwendet:
Dann können Sie sie behalten
/home/$USER/bin
. Erstellen Sie denbin
Ordner, wenn er nicht vorhanden ist, und verschieben Sie die Dateien dorthin. Der Ordner bin in Ihrem Zuhause wird automatisch zur Umgebungsvariablen PATH hinzugefügt. Der Code befindet sich in.profile
:Siehe Wie füge ich / home / username / bin zu $ PATH hinzu?
Oder in einigen Systemen kann es sein, in
.bashrc
:Danke Elder Geek
Wenn dieses Skript von anderen Benutzern verwendet werden soll:
Dann sind entweder
/usr/local/bin
oder/opt/bin
gute Möglichkeiten. Siehe Gibt es einen Standardspeicherort für benutzerdefinierte Linux-Skripts?Hoffe das hilft
quelle
Ich habe ein Verzeichnis, in dem ich meine lokalen Tools oder Dinge, die ich auf verschiedenen Computern bereitstelle, schnell sammle
/usr/local/apollo
. Es gibt abzweigt dieses Verzeichnis fürflags
,bin
undlogs
.Für die Anwendungen, die ich außerhalb der Standard-
apt-get
Repositorys herunterlade und installiere, werden/opt/
ein Verzeichnis mit dem Namen der Anwendung sowie ein weiteres Unterverzeichnis für die jeweilige Version der Anwendung erstellt. Auf diese Weise wird meine kompilierte Version einer Anwendung mit der verteilten Version in Konflikt stehenvlc
odereclipse
nicht.Ich benutze
/opt
es so, wie es im Grunde genommen offiziell entworfen wurde.By the way die Verzeichnisse
/usr/local/bin
,/usr/local/apollo
und/opt
überlebt eine neue Betriebssystemversion Installation überschreiben.quelle
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Mir gefällt, dass/usr/local/bin
es auf dem Weg bereits eine Sache weniger gibt, an die man sich erinnern muss. Ich mag deine Methode, die/opt/program/version
ich für Kernel-Sachen verwenden kann, die ich wie EnhanceIO bekomme und kompiliere, wo sie Dinge zwischen Kernel-Versionen ändern. Ist/apollo
eine Mondlandung ein persönlicher Favorit oder hat sie Ubuntu-Bedeutung?/usr/local/bin
undusr/local/sbin
, dass letzteres bei Upgrades zerstört wird?/usr/local
Verzeichnisse, fügt aber nichts in eines von ihnen ein. Diese Verzeichnisse werden vom Benutzer ausgefüllt. Bei vielen Quellprogrammen außerhalb der Repositorys kann der Benutzer auswählen, wohin die Installation erfolgen soll. Die Standardeinstellungen in den Konfigurationsdateien sind/usr/local/bin
. Aufgrund der Häufigkeit, mit der diese Verzeichnisse verwendet werden, sind sie standardmäßig im Pfad des Benutzers enthalten. Standardmäßig prüft das System,~/bin
ob es existiert, und fügt es dem Pfad hinzu.~/bin
während der Installation oder bei jedem Start? Was ist der Unterschied zwischensbin
undbin
? Sie scheinen nebeneinander zu existieren. Es muss Quasi-Regeln geben, die Sie je nach Programmtyp auswählen, oder?~/bin
Pfad ... wird während der Installation nicht hinzugefügt. Das System überprüft es bei jedem Login und fügt es dem $ PATH hinzu, falls es beim Login existiert. Schauen Sie sich die letzten beiden Zeilen Ihrer~/.profile
Einstellungen an.