Udostępnij za pośrednictwem


Część 1.2 — Podstawowe operacje w systemie Linux

Dotyczy: .NET w systemie Linux

Cel tej części

Ta część szkolenia koncentruje się na katalogach specjalnych systemu Linux, sposobie uruchamiania poleceń jako superużytkownik (root) oraz sposobie instalowania i odinstalowywania aplikacji przy użyciu menedżerów pakietów.

Instalowanie i usuwanie pakietów przy użyciu menedżerów pakietów wymaga uprawnień głównych. Dlatego musisz najpierw zrozumieć, jak uruchamiać polecenia jako superużytkownik.

Katalogi specjalne systemu Linux

Na potrzeby tego szkolenia nie trzeba szczegółowo poznać sposobu zarządzania systemem Linux. Jednak podsumowanie niektórych katalogów specjalnych byłoby przydatne, ponieważ będziesz ich używać w pozostałej części szkolenia.

Katalog Opis
/ Katalog główny (folder najwyższego poziomu).
/Bin Zawiera pliki binarne użytkownika, pliki wykonywalne.
/sbin Zawiera pliki binarne użytkownika, pliki wykonywalne.
/itd Zawiera pliki konfiguracji dla systemu lokalnego i aplikacji. Na przykład utworzysz niektóre pliki konfiguracji w katalogu /etc/system , aby umożliwić automatyczne uruchamianie aplikacji ASP.NET Core przez system.
/home Zawiera katalog główny każdego użytkownika. Na przykład /home/<username>.
/Tmp Katalog tymczasowy do przechowywania plików tymczasowych tworzonych przez system i aplikacje.
/Usr Przechowuje pliki udostępnione, w tym pliki wykonywalne, biblioteki i dokumenty. Na przykład środowisko uruchomieniowe platformy .NET i zestawy SDK są instalowane w katalogu /usr/share/dotnet/ .
/Var Przechowuje pliki danych zmiennych. Na przykład platforma Apache przechowuje zawartość głównej witryny internetowej w katalogu /var/www/html oraz pliki dziennika w katalogu /var/log/apache2/ . Chociaż nie jest to konieczne, opublikujesz aplikacje internetowe w tym katalogu.

Uwaga 16.

W systemie Linux jest rozróżniana wielkość liter. W związku z tym /home i /Home są różne katalogi, a nazwa pliku i nazwa pliku są różnymi plikami.

Po pierwszym nawiązaniu połączenia z maszyną wirtualną z systemem Linux rozpoczniesz pracę w katalogu głównym. Ten katalog będzie / home/<username>.

Skrót do katalogu głównego to ~ (tylda). Możesz użyć polecenia cd ~ w dowolnym momencie, aby wrócić do katalogu macierzystego.

Przejrzyj i wypróbuj następujące polecenia (pokazane na poniższym zrzucie ekranu):

  • pwd (drukuj katalog roboczy): Drukuje bieżący katalog i katalog /etc/systemd .
  • echo: drukuje wartość katalogu ~ (root).
  • cd ~: zwraca cię do katalogu głównego.

Zrzut ekranu przedstawiający polecenie hasła.

W tym przykładzie nie ma listy zawartości katalogu. Jednak w dalszej części tego szkolenia omówiono pracę z plikami i folderami. Niektóre z tych zadań będą wymagać uprawnień administratora. W następnej sekcji wyjaśniono, jak podnieść poziom uprawnień do stanu administratora.

Uruchamianie poleceń jako superużytkownik

Superużytkownik jest najbardziej uprzywilejowanym kontem użytkownika. Ma dostęp główny (nieograniczony) do wszystkich plików i folderów oraz pełną kontrolę nad działaniem komputera. Administrator systemu używa tego konta do konserwacji systemu.

W systemach przypominających system UNIX konwencjonalna nazwa superużytkownika to "root". Użytkownik główny może wykonywać zadania, które w przeciwnym razie są ograniczone dla użytkowników standardowych, w tym następujących:

  • Zmienianie katalogów systemowych
  • Zmienianie uprawnień użytkownika
  • Zmiana własności pliku
  • Zadania związane z systemem, takie jak ponowne uruchomienia
  • Instalacja niektórych aplikacji

Istnieje kilka sposobów uruchamiania poleceń jako użytkownik konta głównego. Jednym z nich jest użycie sudo su polecenia . W tym poleceniu sudo skrót to superuser do, a su jest skrótem "switch user". Możesz również użyć su polecenia , aby przełączać się między użytkownikami standardowymi.

Ważne

Po zostaniu użytkownikiem konta głównego wszystko, co robisz w kontekście głównym. Dlatego należy ostrożnie działać, ponieważ konto główne ma dostęp do całego systemu.

Aby zademonstrować problem z uprawnieniami, utwórz plik tekstowy w specjalnym folderze o nazwie /etc.

Folder /etc/ to miejsce, w którym znajdują się pliki konfiguracji systemu. Ten folder chroni jego zawartość przed zmianą przez użytkownika standardowego.

Uruchom następujące polecenie:

echo hello world > /etc/helloworld.txt

Polecenie echo zapisuje cały tekst, który następuje po nim w danych wyjściowych. Nawias kątowy (>) informuje system o wysłaniu danych wyjściowych do pliku /etc/helloworld.txt zamiast konsoli. To zachowanie jest podobne do sposobu działania systemu Windows.

Uwaga 16.

W systemie Linux jest rozróżniana wielkość liter: Helloworld.txt, helloworld.txt i helloworld. Txt to różne pliki.

Nie musisz podawać rozszerzenia nazwy pliku. Sama nazwa "helloworld" jest całkowicie prawidłowa. (Rozszerzenie "txt" jest używane tylko jako przykład).

Po uruchomieniu tego polecenia zostanie wyświetlony komunikat o błędzie odmowy uprawnień.

Zrzut ekranu przedstawiający komunikat o odmowie uprawnień.

Operacja kończy się niepowodzeniem, ponieważ folder /etc jest folderem specjalnym, którego użytkownik standardowy nie może zmienić. Sprawdź użytkownika, uruchamiając id polecenie .

Zrzut ekranu polecenia I D.

Aby zostać użytkownikiem konta głównego, uruchom sudo su polecenie .

Zrzut ekranu polecenia sudo su.

Zwróć uwagę na dwie rzeczy: Gdy stajesz się elementem głównym, znak dolara ($) staje się znakiem funta (#). Ponadto nazwa użytkownika zostanie zmieniona na root. Jeśli ponownie uruchomisz to samo id polecenie, zobaczysz, że identyfikator użytkownika i grupy katalogu głównego to 0.

Zrzut ekranu przedstawiający polecenie główne.

Ważne

Teraz masz podwyższony poziom uprawnień do roli "superużytkownika" w sesji, masz pełny dostęp do systemu. Pamiętaj, że jest to potencjalnie niebezpieczna sytuacja i należy zachować ostrożność podczas kontynuowania.

Teraz uruchom to samo polecenie jeszcze raz:

echo hello world > /etc/helloworld.txt

Tym razem nie zostanie wyświetlony żaden komunikat o błędzie. Aby sprawdzić, czy plik został utworzony, uruchom następujące polecenie:

ll /etc/hello*

Polecenie ll wyświetla listę plików i podfolderów, które znajdują się w określonym folderze. W tym przykładzie wartość parametru /etc/hello* ogranicza dane wyjściowe polecenia do plików lub folderów, których nazwa zaczyna się od hello.

Zrzut ekranu przedstawiający polecenie hello.

Dane wyjściowe pokazują, że plik został utworzony. Co zrobić, jeśli chcemy zbadać zawartość pliku? Polecenie cat pomaga tutaj. Aby wyświetlić zawartość, uruchom polecenie cat /etc/helloworld.txt.

Zrzut ekranu przedstawiający polecenie cat.

Polecenie cat odczytuje pliki sekwencyjnie i zapisuje zawartość w standardowych danych wyjściowych. W związku z tym zapisuje ciąg "hello world" w konsoli programu .

Aby zapobiec błędom, które mogłyby spowodować uszkodzenie systemu podczas podniesienia poziomu do stanu głównego, dobrym rozwiązaniem jest wyjście z sesji głównej i powrót do standardowej sesji użytkownika, aby uniknąć niektórych niebezpiecznych operacji. Aby to zrobić, uruchom exit. Widać, że znak funta powraca do znaku dolara, a nazwa użytkownika jest wyświetlana jako użytkownik standardowy.

Zrzut ekranu przedstawiający polecenie zakończenia.

Aby uzyskać dodatkową praktykę, uruchom te same ll polecenia i cat w kontekście użytkownika standardowego. Zobaczysz, że nie można utworzyć pliku w folderze /etc/ , ale możesz wyświetlić plik i odczytać jego zawartość.

Uruchamianie poleceń przy użyciu prefiksu "sudo"

Zamiast zostać użytkownikiem konta głównego w sesji, możesz uruchamiać polecenia jako katalog główny przy użyciu sudo <command> formatu . Takie podejście jest bezpieczniejsze, ponieważ uruchomi podane polecenie tylko jako superużytkownik.

Jeśli na przykład uruchomisz polecenie restart , gdy stan superużytkownika nie zostanie podwyższony, wynik będzie następujący.

Zrzut ekranu przedstawiający polecenie ponownego uruchamiania.

Aby zamiast tego uruchomić to polecenie jako superużytkownik, możesz zmienić kontekst sesji na główny (uruchamiając polecenie sudo su) lub dodać sudo prefiks w następujący sposób:

sudo reboot

Teraz operacja ponownego uruchamiania jest uruchamiana zgodnie z oczekiwaniami maszyny wirtualnej.

Zrzut ekranu przedstawiający polecenie ponownego uruchamiania.

Menedżery pakietów

Menedżerowie pakietów są używane do instalowania, uaktualniania i usuwania aplikacji w systemie Linux. Istnieje kilka różnych menedżerów pakietów, takich jak DPKG (Debian Package Management System), RPM (Red Hat Menedżer pakietów) i Zypper dla menedżerów pakietów SUSE są niskie. W związku z tym zarządzanie oprogramowaniem bezpośrednio przy użyciu menedżera pakietów może być trudne. Na szczęście istnieją otoki dla tych narzędzi, które ułatwiają instalowanie i odinstalowywanie oprogramowania. Na przykład yum jest otoką rpm (Red Hat Menedżer pakietów), a APT jest otoką wokół DPKG (Debian Package Management System).

W tym samouczku założono, że korzystasz z systemu zarządzania pakietami ubuntu. Ten system pochodzi z tego samego systemu, który jest używany przez dystrybucję Debian GNU/Linux. W związku z tym możemy użyć narzędzia APT do zainstalowania oprogramowania.

W zależności od wybranego systemu Linux może być konieczne użycie innych narzędzi. Na przykład możesz użyć narzędzia yum do zainstalowania lub odinstalowania oprogramowania, jeśli używasz oprogramowania Red Hat.

Uaktualnianie bazy danych menedżera pakietów

Apt działa w bazie danych dostępnych pakietów. Zalecamy zaktualizowanie menedżerów pakietów, a następnie uaktualnienie pakietów po nowej instalacji.

Aby zaktualizować bazę danych pakietów w systemie Ubuntu, uruchom polecenie sudo apt update. Zwróć uwagę, że sudo prefiks jest wprowadzany przed poleceniem apt . W ten sposób uruchomisz apt polecenie jako użytkownik główny bez zmiany kontekstu sesji na użytkownika głównego.

Zrzut ekranu przedstawiający polecenie sudo apt update.

Polecenie aktualizacji nie uaktualnia żadnego z zainstalowanych pakietów oprogramowania. Zamiast tego aktualizuje bazę danych pakietu. Rzeczywiste uaktualnienie odbywa się za pomocą sudo apt upgrade polecenia .

Zrzut ekranu przedstawiający polecenie sudo apt upgrade.

Po wpisaniu Y , a następnie naciśnięciu Enter pakiety zostaną uaktualnione.

Zrzut ekranu przedstawiający postęp uaktualniania pakietów.

Wyszukiwanie pakietów przy użyciu menedżerów pakietów

Poniższy przykład użycia menedżerów pakietów do wyszukiwania pakietów pokazuje instalację i odinstalowywanie serwera internetowego Apache 2.

Zacznij od wyszukania na serwerze "apache web server" przy użyciu apt search polecenia . Narzędzie APT wykonuje wyszukiwanie pełnotekstowe i wyświetla wyniki. Serwer HTTP Apache zainstalujesz przy użyciu nazwy apache2pakietu .

Zrzut ekranu przedstawiający polecenie apt search.

Uwaga 16.

Użycie polecenia . Prefiks sudo nie jest dodawany, ponieważ nie musisz być użytkownikiem głównym do wyszukiwania w pakietach.

Zamiast wykonywać polecenie APT search, możesz wyszukać w przeglądarce internetowej w temacie "how to install Apache on Ubuntu", aby znaleźć nazwę pakietu i polecenie APT. W tym przykładzie należy znaleźć ten oficjalny dokument z systemem Ubuntu, który jasno wyjaśnia, jak zainstalować w Apache 2 systemie Ubuntu.

Pokaż szczegóły pakietu

Aby sprawdzić, czy masz prawidłowy pakiet, uruchom polecenie apt show , aby wyświetlić szczegóły pakietu, jak pokazano na poniższym zrzucie ekranu. Ponownie zwróć uwagę, że sudo prefiks nie jest tutaj konieczny.

Zrzut ekranu przedstawiający polecenie apt show.

Wyświetlanie listy zainstalowanych pakietów i filtrowanie listy przy użyciu języka grep

Po ustaleniu, że znaleziony pakiet jest odpowiedni, należy upewnić się, że nie jest jeszcze zainstalowany na serwerze docelowym.

W tym celu użyj apt list --installed polecenia , aby wyświetlić listę zainstalowanych aplikacji na maszynie wirtualnej. Możesz również dodać polecenie grep , aby filtrować wyniki, aby wyświetlić tylko aplikacje, które zawierają apache2.

Uwaga 16.

Polecenie grep wyszukuje dany termin w pliku. Jest to bardzo zaawansowane narzędzie, ponieważ udostępnia kilka opcji, takich jak wyszukiwanie przy użyciu wyrażenia regularnego lub ciągu, odwracanie wyników wyszukiwania, ignorowanie poufności wielkości liter, wyszukiwanie przy użyciu wielu terminów wyszukiwania i obsługa wyszukiwania cyklicznego.

Po uruchomieniu apt list --installed | grep apache2polecenia powinien zostać wyświetlony komunikat, że pakiet nie jest zainstalowany na maszynie wirtualnej.

Zrzut ekranu przedstawiający polecenie apt list.

Instalowanie pakietu

Po ustaleniu, że został znaleziony żądany pakiet i że nie został jeszcze zainstalowany, możesz kontynuować instalację. Uruchom następujące polecenie:

sudo apt install apache2

Uwaga 16.

Tym razem wykonujemy prefiks polecenia za pomocą polecenia sudo , ponieważ to polecenie zmienia system. W związku z tym musi to być konto główne, aby działało poprawnie. Menedżer pakietów jest wystarczająco uprzejmy, aby wyświetlić monit o to, czy naprawdę chcesz naprawdę zainstalować aplikację.

Zrzut ekranu przedstawiający polecenie sudo.

Wpisz Y (tak) i naciśnij Enter, aby zainstalować .Apache2 Menedżer pakietów wyświetli pasek postępu wskazujący stan instalacji.

Zrzut ekranu przedstawiający stan instalacji.

Jeśli ponownie uruchomisz to samo apt list --installed | grep apache2 polecenie, zobaczysz, że pakiet Apache 2 jest zainstalowany razem z innymi pakietami powiązanymi z platformą Apache2, które są instalowane automatycznie.

Zrzut ekranu przedstawiający polecenie grep listy apt.

Mimo że zainstalowano platformę Apache 2, w rzeczywistości musisz użyć serwera Nginx. W związku z tym nie potrzebujesz już platformy Apache i możesz usunąć ten pakiet z maszyny wirtualnej.

Usuwanie pakietów

Instalowanie pakietu (w tym przypadku Apache 2) jest odwracalne. Możesz usunąć pakiet, jeśli okaże się, że nie jest on potrzebny. Dostępne są dwie opcje polecenia umożliwiające usunięcie pakietów:

  • apt remove: to polecenie usuwa pliki binarne, ale nie plik konfiguracji. Jest to przydatne, jeśli zamierzasz ponownie zainstalować pakiet i chcesz zachować tę samą konfigurację.

  • apt purge: to polecenie usuwa pliki binarne i plik konfiguracji.

Usuń pakiet przy użyciu polecenia apt remove jako użytkownik główny, aby wyświetlić wynik. W tym celu uruchom polecenie sudo apt remove apache2. Po wyświetleniu monitu o potwierdzenie usunięcia wpisz Y, a następnie naciśnij Enter.

Zrzut ekranu przedstawiający polecenie sudo apt remove apache2.

Dane wyjściowe polecenia informują o następujących informacjach:

  • Apt wykrył, że istnieją pakiety, które zostały automatycznie zainstalowane i nie będą już wymagane.
  • Apt usunął apache2 tylko pakiet i zaleca uruchomienie polecenia sudo apt autoremove w celu usunięcia skojarzonych pakietów.

Ponownie wyświetl listę zainstalowanych pakietów. Zobaczysz, że apache2 pakiet zostanie usunięty, ale automatycznie zainstalowane pakiety, które zostały dostarczone z nim, pozostaną zainstalowane.

Zrzut ekranu przedstawiający zainstalowane pakiety.

Postępuj zgodnie z zaleceniem, aby ponownie uruchomić sudo apt autoremove polecenie , aby usunąć pakiety pozostawione.

Zrzut ekranu przedstawiający polecenie sudo apt autoremove.

Wyświetl listę zainstalowanych pakietów jeszcze raz. Teraz nie powinny być zainstalowane żadne pakiety związane z platformą Apache2.

Zrzut ekranu przedstawiający brak pakietów związanych z platformą Apache2.

Ta procedura nie jest zakończona. Należy pamiętać, że różnica między elementami apt remove i apt purge określa, czy plik konfiguracji został usunięty. W tym ćwiczeniu nie usunięto go. Więc gdzie jest?

Znalezienie pliku nie obejmuje menedżerów pakietów. Zamiast tego uruchomisz standardowe wyszukiwanie plików w systemie Linux. Istnieje kilka sposobów, aby to zrobić. Jednym z najpopularniejszych poleceń wyszukiwania jest find. Jednak to polecenie jest również mylące do użycia, więc nie omówimy go tutaj. Zamiast tego użyjemy polecenia whereis.

Uwaga 16.

System Linux jest bardzo dobrze udokumentowany. Prawie każde polecenie ma dostępną przydatną stronę pomocy. Użyj poleceń man and info, aby wyświetlić strony Pomocy w systemie Linux. Aby na przykład samodzielnie dowiedzieć się więcej na temat find polecenia, uruchom polecenie man find lub info find.

Zgodnie ze stroną Pomoc dla whereismetody definicja wygląda następująco:

whereis lokalizuje pliki binarne, źródłowe i ręczne dla określonych nazw poleceń.

Jeśli uruchomisz polecenie whereis apache2, należy znaleźć instalację /etc/apache2 .

Zrzut ekranu przedstawiający miejsce polecenia apache2.

Pamiętaj, że katalog /etc/ jest miejscem, w którym znajdują się pliki konfiguracji systemu. Aby dowiedzieć się, czy "apache2" jest plikiem lub folderem, uruchom polecenie ll /etc/apache2. Jak widać, jest to folder i zawiera pliki konfiguracji apache2.

Zrzut ekranu przedstawiający polecenie ll itp. apache2.

Te pliki i foldery powinny apache2 być zawarte, ponieważ użyto apt remove polecenia, które nie usuwa plików konfiguracji.

W ostatnim kroku uruchom apt purge polecenie , aby zobaczyć jego efekt. Można uruchomić przeczyszczenie, aby wyczyścić folder instalacyjny nawet po usunięciu pakietu. Poniższy zrzut ekranu przedstawia, że whereis nic nie znalazło. Dzieje się tak, ponieważ purge polecenie usunęło pliki konfiguracji wraz z plikami binarnymi.

Zrzut ekranu przedstawiający polecenie apt purge.

Następne kroki

Część 1.3 — instalowanie platformy .NET w systemie Linux

Zastrzeżenie dotyczące innych firm

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.