Nicht-sudo-Alternative zu / usr / local / bin für allgemeine Skripte

15

Ich bin es gewohnt, gängige Skripte /usr/local/bineinzufügen, damit ich sie mit dem Terminal von überall ausführen kann.

Zum Beispiel erstelle ich ein Shell-Skript mit dem Namen 1, mache es ausführbar chmod +x 1und füge es ein /usr/local/bin. Innerhalb des Skripts tippe ich #!/bin/shin die erste Zeile und dann meine Befehle. Von da an ist es sehr bequem zu bedienen und kann schnell durch Tippen ausgeführt werden

1Enter

auf dem Terminal aus einem beliebigen Ordner.

Mein Problem ist, dass ich derzeit an einem Computer arbeite, auf dem das nicht möglich ist, sudound ich kann auch nicht damit rechnen, dass ich es bekomme, sodass ich mein Skript nicht einfügen kann /usr/local/bin.

Welche Möglichkeiten habe ich? Gibt es einen anderen Pfad mit der gleichen Funktion "von überall ausführen", auf den ich zugreifen kann sudo, oder einen anderen Weg, um etwas Äquivalentes zu erreichen?

Die akzeptierte Antwort auf diesen Beitrag lautet

Verwenden Sie für benutzerbezogene Skripts bin / in Ihrem Ausgangsverzeichnis.

Was ich versucht habe, aber es gibt keinen binOrdner in meinem Ausgangsverzeichnis, und als ich einen erstellte, konnte ich das Skript immer noch nicht von irgendwo anders ausführen.

Ich arbeite mit Ubuntu 12.04 LTS.

user985366
quelle
2
Verwenden Sie nicht 1 oder ähnliches als Skriptnamen. Versuchen Sie, etwas in Ihrer Shell zu berechnen: zB expr 1 + 1 (und wenn Sie es nicht tun, wird es irgendwann ein Skript tun)
frlan
1
@frlan: Wie würde expr 1 + 1sich das Vorhandensein eines Skripts namens auswirken 1?
Psmears
Richtig ... keine Beeinflussung exproder Schlagarithmetik $(( 1 + 1 )).
Campa

Antworten:

19

Welche Möglichkeiten habe ich? Gibt es einen anderen Pfad mit der gleichen Funktion "von überall ausführen", auf den ich ohne sudo zugreifen kann, oder einen anderen Weg, um etwas Äquivalentes zu erreichen?

Wie es geht?

Erstellen Sie ein Verzeichnis in Ihrem Zuhause, in dem sich Ihre Skripte befinden, die normalerweise binals Konvention bezeichnet werden.

mkdir ~/bin

Verschieben Sie nun Ihre Skripte in den Papierkorb

mv somescript ~/bin

Nun, wie macht man es von überall her ?!

Sie müssen das binzum PFAD hinzufügen

öffne dein .bashrc

gedit .bashrc

und füge diese Zeile hinzu:

export PATH=$PATH:/home/username/bin

Vergessen Sie nicht, durch usernameIhren Benutzernamen zu ersetzen

Speichern und beenden Sie den bashrc

source .bashrc

und jetzt geht es dir gut, du kannst dein script so ausführen, wie du es immer getan hast! Sie müssen jedoch feststellen, dass dies nur für Ihren Benutzer gilt.

Hinweis: Es ist besser, Ihre Skripte anders als 1, 2 umzubenennen, da Sie möglicherweise Probleme mit diesen Namen haben


AKTUALISIEREN:

Sie können genauso einfach das Ablageverzeichnis in Ihrem Zuhause erstellen, source ~/.profileanstatt ~/.bashrc. Da das Hinzufügen von ~ / bin zu Ihrem PATH bereits in aufgeführt ist.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
Maythux
quelle
Ich verwende, export PATH=$PATH:$HOME/bindamit ich den gleichen bashrc für andere Konten mit unterschiedlichen Benutzernamen verwenden kann.
Anthony G - Gerechtigkeit für Monica
1
Nur zu erwähnen ~/bin ist in $PATHUbuntu standardmäßig. Einfach ausführen source ~/.profileoder abmelden / anmelden, nachdem Sie das Verzeichnis erstellt haben.
Jacob Vlijm
@JacobVlijm In welcher Version? !!! Ich benutze 12.04, 14.04, 15.04 und keiner von ihnen hat ~ / bin in PATH
Maythux
In allen verwende ich es immer , in vielen meiner (akzeptierten) Antworten auch, habe nie einen Kommentar dazu bekommen, arbeite sie zu Hause auch auf fünf Systemen, aber, wie gesagt, nach dem Laufen source ~/.profile. Siehe (zB) hier: askubuntu.com/a/247422/72216
Jacob Vlijm
1
Er sagte Quelle ~/.profile, er sagte nie Quelle ~/.bashrc. :) Außerdem sollten Umgebungsvariablen in der Regel berücksichtigt werden .profileund nicht, .bashrcda sie nur einmal eingerichtet werden müssen. (Nichts davon soll sagen, dass Ihre Antwort nicht gut ist,
wohlgemerkt
4

Zusätzlich zu /ubuntu//a/643030/218015 können Sie möglicherweise auch einen Alias ​​in Ihrer .bashrc-Datei für kleine, häufig verwendete Aufgaben definieren. Z.B

alias ll='ls -l'
alias ls='ls --color=auto'

erzeugt einen "Befehl" ll, der ls -l ausführt und ls wird nach dem Definieren des Alias ​​gefärbt. https://wiki.ubuntuusers.de/alias enthält einige weitere Beispiele und eine Anleitung zum Einrichten.

frlan
quelle