Ich habe alle diese Skripte in ~ / bin, was auch ein svn ist, das für alle Skripte arbeitet, die ich häufig auf mehreren Computern verwende. Es enthält auch Teile meiner zsh-Konfiguration wie Aliase und Umgebungsvariablen.
Am besten organisieren Sie sh / bash / python / etc. Skripte
Wie organisieren Sie die sh / bash / python-Skripts, die Sie auf Ihrem System sammeln und schreiben?
12 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Kommt auf den Zweck des Skripts an. Ich baue meine in der Regel zwischen zwei Orten auf. Entweder ~ / Werkzeuge für ernsthafte Dinge, die ich regelmäßig wiedereins nutze, oder ~ / Spielplatz / [Name der Funktion, mit der ich spiele].
Ich habe ein ~ Code-Verzeichnis mit einem Unterverzeichnis für jede Sprache, die ich verwende, und in meinem .bashrc habe ich eine Anweisung, jeden von ihnen in meinen $ PATH zu schreiben. Zum Beispiel:
dsm@localhost:~ $ cat .bashrc ... export PATH="$( find /home/dsm/code -mindepth 1 -maxdepth 1 -type d -print\ | perl -ne 'chomp; print"$:";' )$" ; ... dsm@localhost:~ $
Wie alle anderen hier, gehe ich mit den ~/bin
meisten Skripten und lasse projektspezifische Dinge unter ~/projects/whatever
.
Was ich mache ist folgendes:
Habe / home / mein name / Skripte /
Ich habe alle meine Skripte dort abgelegt (klassifiziert in Verzeichnisse nach ihrer Funktion / ihrem Projekt). Das Beste daran ist, dass die gesamte / home / mein-Name / Scripts / versioniert ist (mit SVN). Auf diese Weise kann ich meine Änderungen ändern und trotzdem zurückschauen.
Damit alle Apps dies erkennen können, können Sie versuchen, den Pfad zu / etc / profile (für bash) hinzuzufügen.
in / etc / profile, letzte Zeile, hinzufügen
export PATH=$:/home/myname/Scripts/
Ich behalte mein gesamtes Entwicklungsmaterial unter user \ dev, das mit meinem Dropbox-Ordner verknüpft ist, um alles zu sichern. (ok, ich habe gelogen, das meiste grafische Zeug ist dev\..\graphics
drin, um die Dropbox-Nutzung für Dinge zu reduzieren, die nicht so oft gesichert werden müssen.)
Skripte bleiben in dev, und wenn ich sie oft benutze, werde ich ihnen etwas vorschreiben, anstatt alles auf meinem Weg zu haben. ("Alias" bezieht sich hier auf "doskey", das ich mit einem Python-Skript automatisiert habe, das ich als Alias "alias").
Momentan speichere ich alles in einem Ordner in meinem Home-Verzeichnis ~ / sh. Ich habe es in .bashrc (und .zshrc zum PATH hinzugefügt, da ich beide benutze.)
Der Fehler ist, dass Anwendungen, die nicht von einem Terminal wie dem X-Server gestartet werden, den geänderten Wert von PATH nicht übernehmen. Ich bin dann gezwungen, "sh /" vor dem Dateinamen zu setzen, wenn ich diese Skripts über die grafische Benutzeroberfläche starte.
Die meisten Skripts, die ich schreibe, sind spezifisch für ein bestimmtes Projekt, daher lasse ich sie einfach im Verzeichnis für dieses Projekt. Sie müssen sie keinem PFAD hinzufügen, und Sie können sich leicht daran erinnern, wozu sie bestimmt sind.
Für globale Skripte hingegen klingt ein ~ / sh-Verzeichnis wie ein Gewinner.
Unter Windows können Sie systemweite Umgebungsvariablen entweder für alle Benutzer oder für einen bestimmten Benutzer festlegen.
Das bedeutet, dass beim Starten eines Programms die von Ihnen festgelegten Umgebungsvariablen bekannt sind. Natürlich können Sie auch die Umgebungsvariablen eines anderen Prozesses wie CMD festlegen. In diesem Fall kennen nur die Programme, die von diesem Prozess gestartet werden, diese Variablen.
Ich kenne keine Möglichkeit unter Linux, systemweite Umgebungsvariablen für bestimmte Benutzer festzulegen, aber es gibt eine Möglichkeit, systemweite Umgebungsvariablen für alle Benutzer festzulegen.
Sie können den gewünschten Wert in diese Datei schreiben: / etc / environment
Die in dieser Datei festgelegten Werte werden von allen Programmen für alle Benutzer erkannt.
Sie können 'man pam_env' ausführen, um weitere Informationen über den Dämon zu erhalten, der diese Datei tatsächlich verarbeitet.
Ich hoffe es hilft,
Jonathan Orlev
Ich behalte alle meine häufig verwendeten Skripts in ~ / scripts und habe mein / etc / profile so konfiguriert, dass dieser Ordner für alle Benutzer in meinem Pfad enthalten ist.
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$" else PATH="/usr/local/bin:/usr/bin:/bin:$" fi PATH="$:~/scripts"
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4