Mam kilka bardzo prostych skryptów bash, które zebrałem razem dla rzeczy, które robię regularnie. Jednym z nich jest uruchomienie duplikatu w celu wykonania moich zadań tworzenia kopii zapasowych. Nic mądrego, po prostu kilka stwierdzeń, jeśli ... to naprawdę stwierdzenia. Ponieważ należy to uruchamiać jako sudo, czy najlepszą praktyką byłoby umieszczenie mojego skryptu w katalogu / usr / bin (lub innej lokalizacji w zmiennej PATH), chown na root.root i chmod na 700?
15
git
do kontroli wersji swoich skryptów, umieszczaj lokalne kopie repozytoriów git w dowolnym miejscu~
, a następnie łącz je symbolicznie~/bin
.git
jak wgithub
chmurach?/usr/local/bin
. W przeciwnym razie powiedziałbym, że po prostu je włóż~/bin
. Twoje skrypty w obu katalogach powinny być bezpieczne podczas aktualizacji.~/bin
to najlepsze miejsce dla większości skryptów, ponieważ nie trzebasudo
ich edytować tak, jak w przypadku, gdy są one przechowywane/usr/local/bin
.Odpowiedzi:
Zapisuję własne skrypty
/opt/scripts
.Jeśli skrypt powinien być wykonywany przez każdego użytkownika systemu, możesz utworzyć symboliczne łącze do
/usr/bin
.Jeśli tylko root powinien wykonać skrypt, możesz utworzyć dowiązanie symboliczne do
/usr/sbin
.Polecenie dodania dowiązania symbolicznego w
/usr/bin/
:Możesz wykonać skrypt, ponieważ domyślnie
/usr/bin/
jest on w ŚCIEŻCE .źródło
/usr/bin
jako celu dla skryptu powłoki użytkownika / lokalnego - aby był/usr/local/bin
(lub/opt/bin
) zgodnie ze standardem hierarchii systemów plików - Debian Wiki, aby uniknąć konfliktów (przez większość czasu chcesz, aby dostarczone przez Ubuntu skryty miały pierwszeństwo)./usr/local/bin
zastępuje/usr/bin
, co pojawia się później na ścieżce. Jest to celowe, ponieważ system nie umieszcza tam plików, więc można tam umieszczać pliki, które POWINNY zastąpić pliki dostarczone przez system.Jeśli żaden inny użytkownik oprócz Ciebie nie używa tych skryptów:
Następnie możesz je zatrzymać
/home/$USER/bin
. Utwórzbin
folder, jeśli go nie ma, i przenieś tam pliki. Folder bin w twoim domu zostanie automatycznie dodany do zmiennej środowiskowej PATH. Kod znajduje się w.profile
:Zobacz Jak dodać / home / nazwa użytkownika / bin do $ PATH?
Lub w niektórych systemach może to być
.bashrc
:Dzięki, Starszy Geek
Jeśli te skrypty mają być używane przez innych użytkowników:
Zatem albo
/usr/local/bin
albo/opt/bin
są dobre opcje. Zobacz Czy istnieje standardowe miejsce do umieszczania niestandardowych skryptów systemu Linux?Mam nadzieję że to pomoże
źródło
Mam katalog, którego używam do szybkiego zbierania lokalnych narzędzi lub rzeczy, które wdrażam na różnych komputerach
/usr/local/apollo
. Istnieje odgałęzia ten katalogflags
,bin
alogs
.W przypadku aplikacji, które pobieram i instaluję poza domyślnymi
apt-get
repozytoriami, umieszcza się je w/opt/
katalogu pod nazwą aplikacji, z jeszcze jednym podkatalogiem dla konkretnej wersji aplikacji. W ten sposób moja skompilowana wersja aplikacji jakvlc
lubeclipse
nie będzie w konflikcie z wersją rozproszoną.Moje użycie
/opt
polega na tym, że jest to właściwie oficjalnie zaprojektowane.Nawiasem mówiąc katalogi
/usr/local/bin
,/usr/local/apollo
, i/opt
przeżywa świeża wersja OS instalacja nadpisywania.źródło
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Podoba mi się fakt, że/usr/local/bin
już na ścieżce jest jedna rzecz do zapamiętania. Podoba mi się twoja metoda,/opt/program/version
której mogę używać do rzeczy jądra, które otrzymuję i kompiluję jak EnhanceIO, gdzie zmieniają rzeczy między wersjami jądra. Czy/apollo
lądowanie na Księżycu jest ulubioną rzeczą, czy ma znaczenie Ubuntu?/usr/local/bin
ausr/local/sbin
tym, że ten ostatni zostaje ostrzelany podczas aktualizacji?/usr/local
katalogi, ale nie umieszcza niczego w żadnym z nich. Te katalogi są wypełniane przez użytkownika. Wiele programów źródłowych poza repozytoriami daje użytkownikowi możliwość wyboru, dokąd ma iść instalacja. Domyślne pliki konfiguracyjne to/usr/local/bin
. Ze względu na to, jak często używa się tych katalogów, domyślnie są one uwzględnione w ścieżce użytkownika. Domyślnie system sprawdza~/bin
i dodaje go do ścieżki, jeśli istnieje.~/bin
podczas instalacji lub przy każdym uruchomieniu? Jaka jest różnica międzysbin
ibin
? Wydaje się, że współistnieją, muszą istnieć quasi-reguły, które wybierasz na podstawie typu programu, prawda?~/bin
ścieżce ... nie jest dodawany podczas instalacji. System sprawdza go przy każdym logowaniu i dodaje go do zmiennej $ PATH, jeśli istnieje podczas logowania. Spójrz na dwa ostatnie wiersze~/.profile
ustawień.