![Nicht-sudo-Alternative zu /usr/local/bin für allgemeine Skripte](https://rvso.com/image/1127626/Nicht-sudo-Alternative%20zu%20%2Fusr%2Flocal%2Fbin%20f%C3%BCr%20allgemeine%20Skripte.png)
Ich bin es gewohnt, allgemeine Skripte einzufügen, /usr/local/bin
damit 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 1
und füge es in ein /usr/local/bin
. Innerhalb des Skripts tippe ich #!/bin/sh
die erste Zeile und dann meine Befehle. Von da an ist es sehr bequem zu verwenden und schnell auszuführen, indem man eingibt
1
Enter
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 sudo
und 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 bin
Ordner, 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 bin
Konvention 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 bin
zum PATH hinzufügen
öffne dein.bashrc
gedit .bashrc
und fügen Sie diese Zeile hinzu:
export PATH=$PATH:/home/username/bin
Vergessen Sie nicht, username
durch 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 ~/.profile
anstelle 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