Jeśli mam niestandardowy skrypt lub programy powłoki, które sam utworzyłem lub pobrałem z sieci, i chcę mieć możliwość wykonania tego z interfejsu CLI, czy istnieje standardowa lokalizacja, w której można to umieścić w strukturze katalogów Linux / Unix?
/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?
Zwykle umieszczam go w folderze ~ / bin i umieszczam w PATH, ale nie wygląda na czysty. Za każdym razem, gdy ściągam nowy program, muszę ponownie umieścić go w PATH.
man hier
.~/bin
to dobra lokalizacja dla twoich skryptów powłoki należących do użytkownika.Odpowiedzi:
/usr/local/bin
istnieje właśnie w tym celu, do instalacji w całym systemie. Do użytku prywatnego~/bin
jest de facto standardem.Jeśli chcesz zachować każdy plik binarny w swoim własnym podkatalogu, możesz to zrobić i dodać dowiązanie symboliczne do katalogu, który już znajduje się w twoim
PATH
. Na przykładcurl -o $HOME/downloads/fnord http://fnord.example.com/script.exe ln -s $HOME/downloads/fnord $HOME/bin/
pod warunkiem, że
$HOME/bin
jest w twoimPATH
. (Są takie narzędzia,stow
które robią to - i wiele więcej - za kulisami.)źródło
bin
jest dla wszystkich rodzajów plików wykonywalnych, skryptów lub odpowiednich plików binarnych. Jeśli chcesz, aby znajdowały się pod bezpośrednią kontrolą wersji, zbin
pewnością opcją jest poddanie całej kontroli wersji; choć częściej masz oddzielny projekt dla każdej lub przynajmniej każdej odrębnej grupy. Gdy wydasz nową wersję, zainstaluj ją we własnejbin
. Lub jeśli poważnie myślisz o karmieniu psów i / lub masz zbyt mało niespodzianek w swoim życiu, umieść link symboliczny do wersji rozwojowej w swoimbin
.Może się to nieznacznie różnić w zależności od smaku Uniksa. Zakładam tutaj Linuksa (chociaż może to dotyczyć OSX). Zgodnie z Filesystem Hierarchy Standard (FHS) (link uzyskany z grupy roboczej Linux Standard Base ):
/usr/local/bin
często domyślnie znajduje się na ścieżce.Zwróć uwagę, że powinieneś umieścić tylko plik wykonywalny lub łącze do niego
/usr/local/bin
, reszta może wymagać wprowadzenia/usr/local/lib
lub/usr/local/share
./opt
Drzewo może również być rozsądne:(Można zrobić swój własny link od
/opt/your-package/bin/executable
do/opt/bin
, i umieścić/opt/bin
naPATH
razie nie jest to już istnieje).źródło