Dodałem ścieżkę katalogu do ścieżki systemowej ( $PATH
), uruchamiając,
export PATH=$PATH:/home/avinash/Desktop/raj
Teraz moja ścieżka wygląda tak,
$ echo $ PATH / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games : / home / avinash / Desktop / raj
Chcę usunąć /home/avinash/Desktop/raj
ze zmiennej ścieżki systemowej za pomocą polecenia ( podobnie jak polecenie eksportu podczas dodawania ścieżki ).
command-line
Avinash Raj
źródło
źródło
Odpowiedzi:
Uruchamianie
export PATH=$PATH:/...
nie obejmujePATH
całego systemu. To tylko zmienna powłoki. Uruchom nową powłokę i BOOM , już jej nie ma. Oczywiście, jeśli dodałeś go do~/.bashrc
(lub innego pliku ładowania systemu), musisz cofnąć tę zmianę, ale nie wygląda to na twój problem.Jeśli desperacko nie chcesz uruchamiać nowej powłoki, możesz ustawić ją, usuwając ją ręcznie:
źródło
W bieżącej powłoce (bieżącej sesji terminalu gnome) możesz to zrobić za pomocą:
Ogólnie:
Usuwa najkrótszy mecz
$substring
z tyłu z$string
.Sprawdź manipulację ciągiem, aby uzyskać więcej informacji.
źródło
Jeśli chcesz użyć go jako polecenia, oto mały skrypt:
Nazwij go
unexport
i dodaj do ŚCIEŻKI.Stosowanie:
unexport /usr/local/bin /bin /sbin
Ten skrypt faktycznie nie zmienia twojego
PATH
. Jeśli chcesz, aby skrypt to zrobił, powinieneś zmienić ostatni wiersz. Zastępcaecho "export PATH=$PATH"
doexport PATH=$PATH
źródło
Jeśli umieścisz
export
instrukcję w dowolnym pliku inicjującym powłokę~/.bashrc
, możesz użyć następujących poleceń w terminalu:Spowoduje to usunięcie folderu ze ścieżki.
Jeśli wyeksportowałeś ścieżkę z terminala
Folder będzie na ścieżce tak długo, jak długo będziesz w tej powłoce. Aby zastąpić ścieżkę, musisz przypisać nową ścieżkę. Jak już wspomniano oli w innej odpowiedzi.
Aby ustawić starą ścieżkę, możesz użyć następującego polecenia
Lub po prostu
To jest zamiana podciągów,
źródło
Jeden brudny hack to
tr
grep -v
ipaste
.to prawdopodobnie nie zadziała dobrze, jeśli jakiś katalog w PATH ma
:
lub nową linięjeśli okaże się to robi wiele, rozważ jej funkcji i zapisywanie w swoim profilu powłoki (np
.bashrc
,.zshrc
)źródło
export PATH=$PATH:/home/avinash/Desktop/raj
(Tutaj dodałeś plik do zmiennej ścieżki).echo $PATH
Jeśli wykonasz to polecenie, jest to wynik:
Jak usunąć go ze ścieżki? po prostu wykonaj
Jest to koncepcja zamiany łańcucha.
źródło
Wbudowane polecenie powłoki
export
Nie określa, czy zmienna jest ustawiona, lecz określa, czy zmienna i jej wartość są również ustawione w podprocesach.Zmiana zmiennej, eksportowanej lub nie, nie wpływa na proces nadrzędny ani wyżej, więc zmiana go w skrypcie nie ma żadnego efektu, chyba że skrypt jest uruchamiany z
source
.Funkcja powłoki:
odetnie ostatni składnik zmiennej PATH. Jego
export
status pozostaje niezmieniony.źródło
zadeklaruj -x ŚCIEŻKA = "/ pożądany / ścieżka / you_want", jeśli się nie mylę, że sama zaktualizuje to, czego chcesz i to całkowicie na twoje życzenie, co to będzie. [Upewnij się, że działasz jako root ORAZ jako pożądany użytkownik, na którego zmianę ma wpłynąć] Aby mieć pewność, uruchom ENV, aby upewnić się, że zmienna $ PATH została odpowiednio zmieniona. (Jest to użyteczne do zmiany dowolnego wyniku, który otrzymasz po uruchomieniu „/ usr / bin / env”. Chociaż nie wiem, czy jest on stały, czy nie. Pod tym względem wykonaj jak podano powyżej i zmień ~ / .bashrc dla przykleić się)
źródło