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

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

Ich bin es gewohnt, allgemeine Skripte einzufügen, /usr/local/bindamit ich sie von überall mit dem Terminal ausführen kann.

Ich erstelle beispielsweise ein Shell-Skript mit dem Namen 1, mache es mit ausführbar chmod +x 1und füge es in ein /usr/local/bin. Innerhalb des Skripts tippe ich #!/bin/shdie erste Zeile und dann meine Befehle. Von da an ist es sehr bequem zu verwenden und schnell auszuführen, indem man eingibt

1Enter

auf dem Terminal, aus jedem beliebigen Ordner heraus.

Mein Problem besteht darin, dass ich derzeit an einem Computer arbeite, auf dem ich dies nicht tun kann sudound ich auch nicht damit rechnen kann, es zu bekommen. Daher kann ich mein Skript nicht einfügen /usr/local/bin.

Welche Möglichkeiten habe ich? Gibt es einen anderen Pfad mit der gleichen Funktion „Von überall ausführen“, auf den ich ohne zugreifen kann sudo, oder eine andere Möglichkeit, etwas Gleichwertiges zu erreichen?

Die akzeptierte Antwort aufdieser Beitragsagt

Verwenden Sie für Skripts mit Benutzerbereich bin/ in Ihrem Home-Verzeichnis.

Das habe ich versucht, aber in meinem Home-Verzeichnis gibt es keinen binOrdner, und als ich einen erstellt habe, konnte ich das Skript trotzdem von keinem anderen Ort aus ausführen.

Ich verwende Ubuntu 12.04 LTS.

Antwort1

Welche Optionen habe ich? Gibt es einen anderen Pfad mit derselben Funktion „Von überall ausführen“, auf den ich ohne sudo zugreifen kann, oder eine andere Möglichkeit, etwas Gleichwertiges zu erreichen?

Wie es geht?

Erstellen Sie in Ihrem Home-Verzeichnis ein Verzeichnis, in dem Sie Ihre Skripts speichern, die normalerweise der binKonvention entsprechend benannt sind.

mkdir ~/bin

Verschieben Sie nun Ihre Skripte in den Papierkorb

mv somescript ~/bin

Wie kann man es nun von überall aus tunen?!

Sie müssen das binzum PATH hinzufügen

öffne dein.bashrc

gedit .bashrc

und fügen Sie diese Zeile hinzu:

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

Vergessen Sie nicht, usernamedurch Ihren Benutzernamen zu ersetzen

Speichern und beenden Sie die Datei bashrc.

source .bashrc

und jetzt ist alles in Ordnung, Sie können Ihr Skript wie gewohnt ausführen! Sie müssen jedoch beachten, dass dies nur mit Ihrem Benutzer zusammenhängt.

Hinweis: Es ist besser, Ihre Skripte in andere Namen als 1,2 umzubenennen, da es bei diesen Namen zu Problemen kommen kann.


AKTUALISIEREN:

Sie können dasselbe tun, erstellen Sie einfach das Bin-Verzeichnis in Ihrem Home-Verzeichnis source ~/.profileanstelle von ~/.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

Antwort2

Zusätzlich zuhttps://askubuntu.com/a/643030/218015Sie können auch einen Alias ​​in Ihrer .bashrc für kleine, häufig verwendete Aufgaben definieren. Beispiel:

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

erstellt Ihnen einen „Befehl“ ll, der ls -l ausführt, und ls wird nach der Definition des Alias ​​eingefärbt.https://wiki.ubuntuusers.de/aliasenthält einige weitere Beispiele und eine Anleitung zur Einrichtung.

Antwort3

Versuchen ~/.local/bin/.

(Ich gebe zu, dass diese Antwort nichts Neues hinzufügt, aber es gibt eine kurze Antwort auf diese Frage, für die es nicht erforderlich sein sollte, alles andere zu lesen.)

Antwort4

Es sollte wirklich einen Bin pro Benutzer geben, da dies in Mehrbenutzerumgebungen, in denen Benutzern Root-Rechte verweigert werden, um die Sicherheit aller zu erhöhen, wirklich hilfreich wäre. Verwenden Sie Folgendes in einem Bash-Skript, um es automatisch zu erstellen.

if [ ! -d "$HOME/.local/bin" ] ; then
  mkdir -p "$HOME/.local/bin"
  printf '\nexport "PATH=$PATH:'"$HOME"/.local/bin'"' >> "$HOME/.bashrc"
  # Change the PATH right now:
  PATH="$PATH:$HOME/.local/bin"
fi

verwandte Informationen