Co powinienem zrobić, jeśli chcę móc uruchomić dany program niezależnie od mojego bieżącego katalogu? Czy powinienem utworzyć symboliczne łącze do programu w /bin
folderze?
command-line
aneuryzm
źródło
źródło
~/bin/
folder osobisty , dodać TO do swojej ścieżki i utworzyć dowiązania symboliczne w tym folderze do wszystkiego, co chcesz, aby było wykonywalne z dowolnego miejsca.Odpowiedzi:
Jeśli wpiszesz tylko
export PATH=$PATH:</path/to/file>
w wierszu polecenia, będzie to trwało tylko przez czas trwania sesji.Jeśli chcesz to zmienić na stałe, dodaj
export PATH=$PATH:</path/to/file>
do pliku ~ / .bashrc (tylko na końcu jest w porządku).źródło
Krótka odpowiedź brzmi: aby uruchomić program, bez względu na katalog, musisz mieć katalog programu na ścieżce wyszukiwania. Problem można rozwiązać, umieszczając program w folderze, który już znajduje się na tej ścieżce lub dodając nowy folder do ścieżki - albo zadziała. Najlepsza odpowiedź zależy od:
Czy ten program to pobrany program, który sam skompilowałeś ze źródła?
Prawdopodobnie będzie już miał mechanizm instalacyjny. W folderze, który skompilowałeś program, jako root, uruchom polecenie „make install”
Czy ten program to pobrany program, który chcesz udostępnić jako część standardowych programów na komputerze?
Sensowne jest umieszczenie tego rodzaju aplikacji w standardowym folderze. dość powszechne jest używanie katalogów takich jak / usr / local / bin dla takich programów. Aby to zrobić, musisz mieć dostęp do konta root.
Jest to program, który napisałeś dla siebie i / lub nie masz żadnych specjalnych uprawnień na komputerze.
Utworzenie folderu w katalogu domowym o nazwie „bin” i umieszczenie w nim programu. Konieczne może być zmodyfikowanie skryptu logowania, aby dodać pełną ścieżkę do tego folderu (np. / Usr / home / jeremy / bin)
Chociaż możesz po prostu dodać jego bieżący katalog do ścieżki wyszukiwania, będziesz musiał to robić z każdym nowym programem - i to więcej pracy w dłuższej perspektywie.
źródło
Umieszczenie łącza do pliku w
/bin
katalogu nie jest najlepszym rozwiązaniem z wielu powodów./bin
Katalog ma być zarezerwowane dla programów, które są wymagane do uruchomienia systemu (takie rzeczychmod
,mkdir
itp).Możesz faktycznie umieścić (zainstalować) plik wykonywalny w,
/usr/bin/
a nawet/usr/local/bin/
. Oczywiście w tym momencie ręcznie zainstalowałeś program; Twoja dystrybucja nie będzie śledzić tego, co robi z pozostałymi programami - będziesz musiał ręcznie zaktualizować, jeśli to konieczne, i ręcznie usunąć, jeśli chcesz, aby zniknął. Musisz także wiedzieć, od jakich pakietów to zależy (wygląda na to, że już korzystasz z programu, więc to załatwione, ale ogólnie ...).O ile nie konfiguruję programu, którego oczekuję od innych użytkowników, zwykle nie robię tego: tworzę katalog bin tylko dla siebie w katalogu domowym i edytuję profil powłoki, aby dodać go
~/bin/
doPATH
zmiennej środowiskowej. Łatwiej jest mi śledzić programy, które zainstalowałem w ten sposób, ponieważ są one oddzielone od reszty systemu.źródło
Jeśli chcesz uruchomić polecenie
foo
w katalogu, w którym aktualnie znajduje się powłoka, zasadniczo masz dwie opcje:Wpisz
./foo
w wierszu poleceń powłoki.Dodaj
.
katalog (.
to nazwa „bieżącego katalogu”) doPATH
zmiennej środowiskowej; jak to zrobisz, zależy od używanej powłoki:dla powłok typu Bourne'a (bash, zsh, ksh itp.) piszesz ( więcej informacji na tej stronie ):
dla powłok typu csh (tcsh, csh) piszesz ( więcej informacji na tej stronie ):
Zauważ, że 2. stanowi zagrożenie bezpieczeństwa w systemach z wieloma użytkownikami: wyobraź sobie, że
cd
katalogujesz,/tmp
a złośliwy użytkownik utworzył tam plik binarny złośliwego oprogramowanials
.źródło
Bałaganowanie
PATH
pozwala omyłkowo uruchomić złośliwe programy. Standardowo jest instalowanie „lokalnych” rzeczy pod/usr/local
(patrz FHS , który kodyfikuje użycie Uniksa: nieco przestarzałe, ale daje uzasadnienie).,/usr/local/bin
Zwykle jestPATH
dla wszystkich użytkowników.Moje „zainstalowane lokalnie” programy są
$HOME/bin
włączone, ustawione w standardowym tańcu przez./configure --prefix=$HOME ...
, w połączeniu z kilkoma aliasami (bash), aby wybrać np. Samoukompilowanego gita nad systemem pierwszym (te, które nie kolidują, znajdują sięPATH
na samym końcu).źródło