OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

3.2. Orientacja w systemie plików‌‌


3.2.1. Ścieżka


Gdy chcesz, aby system wykonał polecenie, prawie nigdy nie musisz podawać pełnej ścieżki do tego polecenia. Na przykład wiemy, że ls polecenie znajduje się w /kosz katalog (sprawdź za pomocą który -a ls), ale nie musimy wpisywać polecenia /bin/ls aby komputer wyświetlał zawartość bieżącego katalogu.


Połączenia PATH dba o to zmienna środowiskowa. Ta zmienna wyświetla listę katalogów w systemie, w których można znaleźć pliki wykonywalne, dzięki czemu oszczędza użytkownikowi dużo wpisywania i zapamiętywania lokalizacji poleceń. Tak więc ścieżka naturalnie zawiera wiele katalogów zawierających kosz gdzieś w ich nazwach, jak pokazuje poniższy użytkownik. ten przegapić Polecenie służy do wyświetlania zawartości ("$") zmiennej PATH:


stary:> echo $ ŚCIEŻKA

/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin

stary:> echo $ ŚCIEŻKA

/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin

W tym przykładzie katalogi /opt/lokalny/bin, /usr/X11R6/bin, / usr / bin, / usr / sbin i

/kosz są następnie przeszukiwane pod kątem wymaganego programu. Gdy tylko zostanie znaleziony odpowiednik, wyszukiwanie jest zatrzymywane, nawet jeśli nie wszystkie katalogi w ścieżce zostały przeszukane. Może to prowadzić do dziwnych sytuacji. W pierwszym przykładzie poniżej użytkownik wie, że istnieje program o nazwie Wyślij SMS wysłać wiadomość SMS, a inny użytkownik w tym samym systemie może z niej skorzystać, ale ona nie. Różnica polega na konfiguracji PATH zmienna:


[jenny@blob jenny] $ Wyślij SMS bash: sendsms: nie znaleziono polecenia [jenny@blob jenny]$ echo $PATH

/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin [jenny@blob jenny]$ su - tony

Hasło: tony:~>który wysyła sms

sendsms to /usr/local/bin/sendsms


tony:~>echo $PATH

/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\

/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin

[jenny@blob jenny] $ Wyślij SMS bash: sendsms: nie znaleziono polecenia [jenny@blob jenny]$ echo $PATH

/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/home/jenny/bin [jenny@blob jenny]$ su - tony

Hasło: tony:~>który wysyła sms

sendsms to /usr/local/bin/sendsms


tony:~>echo $PATH

/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:\

/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin

Zwróć uwagę na użycie su (switch user), który pozwala na uruchomienie powłoki w środowisku innego użytkownika, pod warunkiem znajomości hasła użytkownika.


Odwrotny ukośnik oznacza kontynuację wiersza w następnym, bez Wchodzę oddzielanie jednej linii od drugiej.


W następnym przykładzie użytkownik chce zadzwonić na wc (liczba słów) polecenie, aby sprawdzić liczbę wierszy w pliku, ale nic się nie dzieje i musi przerwać akcję za pomocą Ctrl+C połączenie:


zworka:~> wc -l test


(Ctrl+C)

zworka:~> która toaleta

wc jest zahaszowane (/home/jumper/bin/wc)


zworka:~> echo $ ŚCIEŻKA

/home/skoczek/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin

zworka:~> wc -l test


(Ctrl+C)

zworka:~> która toaleta

wc jest zahaszowane (/home/jumper/bin/wc)


zworka:~> echo $ ŚCIEŻKA

/home/skoczek/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin

Użycie liczby który polecenie pokazuje nam, że ten użytkownik ma kosz-katalog w jego katalogu domowym, zawierający program o nazwie wc. Ponieważ program w jego katalogu domowym znajduje się jako pierwszy podczas wyszukiwania


ścieżki na wezwanie wc, ten "domowy" program jest wykonywany, z danymi wejściowymi, których prawdopodobnie nie rozumie, więc musimy go zatrzymać. Aby rozwiązać ten problem, jest kilka sposobów (zawsze jest kilka sposobów rozwiązania problemu w UNIX/Linux): jedną z odpowiedzi może być zmiana nazwy użytkownika wc lub użytkownik może podać pełną ścieżkę do żądanego polecenia, które można znaleźć za pomocą -a opcja do który dowództwo.


Jeśli użytkownik częściej korzysta z programów w innych katalogach, może zmienić swoją ścieżkę, aby zajrzeć do własnych katalogów jako ostatni:


zworka:~> eksport PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin:/home/skoczek/bin

zworka:~> eksport PATH=/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\

/usr/bin:/usr/sbin:/bin:/sbin:/home/skoczek/bin


obrazZmiany nie są trwałe!

Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: