Linux-Befehlszuordnung für lange pfadabhängige Befehle

Linux-Befehlszuordnung für lange pfadabhängige Befehle

Es tut mir leid, wenn diese Frage schon einmal anders gestellt wurde. Ich habe bei Google und StackOverFlow (SOF) gründlich gesucht, aber die Suchbegriffe, die ich ausprobiert habe, haben nicht die gewünschte Antwort geliefert.

Das Problem ist: Ich habe Python virtualenv lokal installiert (also in "~/.local/"), weil ich keinen Sudo-Zugriff auf meinen Schulrechner habe. Das virtualenv befindet sich jetzt in "~/Download/modules/virtualenv-1.9.1/" und wenn ich versuche, es zu verwenden, muss ich immer etwas wie Folgendes eingeben:

$ python ~/Download/modules/virtualenv-1.9.1/virtualenv.py --distribute venv

Ich würde gerne so etwas machen wie

$ virtualenv --distribute venv

Ich weiß, dass ich „Alias“ in „~/.cshrc“ (oder dem entsprechenden Bash-Code) hinzufügen kann, aber ich frage mich, ob es dafür eine andere Möglichkeit gibt, als weitere Aliase hinzuzufügen. Ich bitte aufrichtig um Entschuldigung, falls dies eine wiederholte (und naive/Anfänger-)Frage ist. Wie ich bereits erwähnt habe, ist es mir nicht gelungen, die richtigen Suchbegriffe zu finden, um die Lösung bei Google/SOF zu finden. Vielen Dank für Ihre Hilfe.

Antwort1

Natürlich können Sie eine lokale Variable festlegen. Probieren Sie Folgendes aus:

export MY_CUSTOM_VAR=/Users/YOURUSERNAMEHERE/Download/modules/virtualenv-1.9.1

Anschließend sollten Sie in der Lage sein, $MY_CUSTOM_VARanstelle dieses Verzeichnisses in jedem beliebigen Befehl Folgendes zu verwenden.

Antwort2

Ich würde wahrscheinlich ein Skript einfügen~/bin/venv

#/bin/sh
exec python \
    ~/Download/modules/virtualenv-1.9.1/virtualenv.py \
    --distribute venv \
    "$@"

(machen Sie die Datei mit ausführbar chmod u+x ~/bin/venv).

Vergessen Sie nicht, ~/binIhre einzugeben $PATH.

verwandte Informationen