Narzędzia użytkownika

Narzędzia witryny


so:intro

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
so:intro [2024/02/20 11:55]
jkonczak [Jak dostać się do shella]
so:intro [2025/04/07 19:59] (aktualna)
jkonczak
Linia 24: Linia 24:
 <​html><​small></​html>​ <​html><​small></​html>​
  
-GNU/Linux+Linux, dystrybucja Linuksa, ​GNU/Linux
   * [[https://​www.gnu.org/​gnu/​gnu.html|GNU]] to zbiór wolnego oprogramowania,​ które łącznie tworzy system operacyjny uzupełniony o szeroki wybór oprogramowania użytkowego [[https://​www.gnu.org/​manual/​blurbs.html]]   * [[https://​www.gnu.org/​gnu/​gnu.html|GNU]] to zbiór wolnego oprogramowania,​ które łącznie tworzy system operacyjny uzupełniony o szeroki wybór oprogramowania użytkowego [[https://​www.gnu.org/​manual/​blurbs.html]]
   * jądro GNU, [[https://​www.gnu.org/​software/​hurd/​|Hurd]],​ nie jest jeszcze na zadowalającym poziomie (od 30 lat…)   * jądro GNU, [[https://​www.gnu.org/​software/​hurd/​|Hurd]],​ nie jest jeszcze na zadowalającym poziomie (od 30 lat…)
   * więc oprogramowanie GNU jest zwykle uruchamiane na kernelu Linux   * więc oprogramowanie GNU jest zwykle uruchamiane na kernelu Linux
   * większość dystrybucji Linuksa zawiera dużą ilość oprogramowania nie będącego częścią GNU (i niekoniecznie będącego wolnym bądź otwartym oprogramowaniem)   * większość dystrybucji Linuksa zawiera dużą ilość oprogramowania nie będącego częścią GNU (i niekoniecznie będącego wolnym bądź otwartym oprogramowaniem)
 +  * kilka dystrybucji Linuksa jest w większości oparte na wolnym i/lub otwartoźródłowym oprogramowaniu spoza projektu GNU i dostępnym na licencjach niezwiązanych z GNU
  
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 62: Linia 63:
 <​html></​small></​html>​ <​html></​small></​html>​
  
-POSIX standaryzuje zarówno [[https://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​V3_chap02.html|powłokę]] +POSIX standaryzuje zarówno [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​utilities/​V3_chap02.html|powłokę]] 
-jak i kluczowe [[https://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​contents.html|narzędzia]].+jak i kluczowe [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​utilities/​contents.html|narzędzia]].
  
 ==== Jak dostać się do shella ==== ==== Jak dostać się do shella ====
Linia 77: Linia 78:
   * programy dołączane do środowisk graficznych Linuksa: [[https://​docs.xfce.org/​apps/​terminal/​start|xfce4-terminal]],​ [[https://​en.wikipedia.org/​wiki/​GNOME_Terminal|GNOME Terminal]], [[https://​konsole.kde.org/​|konsole]]   * programy dołączane do środowisk graficznych Linuksa: [[https://​docs.xfce.org/​apps/​terminal/​start|xfce4-terminal]],​ [[https://​en.wikipedia.org/​wiki/​GNOME_Terminal|GNOME Terminal]], [[https://​konsole.kde.org/​|konsole]]
   * MacOS domyślne używa aplikacji [[https://​en.wikipedia.org/​wiki/​Terminal_(macOS)|Terminal]]   * MacOS domyślne używa aplikacji [[https://​en.wikipedia.org/​wiki/​Terminal_(macOS)|Terminal]]
-  * popularne są też wyjeżdżające z góry terminale przywoływane/​chowane prostym skrótem klawiszowym:​\\ [[https://​apps.kde.org/​yakuake/​|yakuake]] / [[http://​guake-project.org/​|guake]](([[https://​web.archive.org/​web/​20230709030453/​http://guake-project.org/|Kopia strony domowej projektu z archive.org]],​ [[https://github.com/Guake/guake/|github]])) / [[https://​github.com/​lanoxx/​tilda|tilda]]+  * popularne są też wyjeżdżające z góry terminale przywoływane/​chowane prostym skrótem klawiszowym:​\\ [[https://​apps.kde.org/​yakuake/​|yakuake]] / [[https://​guake.github.io/|guake]] / [[https://​github.com/​lanoxx/​tilda|tilda]]
  
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 102: Linia 103:
  
 <​small>​ <​small>​
 +
 SSH (Secure SHell) szyfruje cały ruch. Poprzednik SSH – telnet – wszystko, włącznie z hasłami, wysłał czystym tekstem. SSH (Secure SHell) szyfruje cały ruch. Poprzednik SSH – telnet – wszystko, włącznie z hasłami, wysłał czystym tekstem.
  
Linia 121: Linia 123:
 (w OpenSSH trzymanej w pliku ''​~/​.ssh/​known_hosts''​) (w OpenSSH trzymanej w pliku ''​~/​.ssh/​known_hosts''​)
 i sprawdza przy każdym kolejnym połączeniu. i sprawdza przy każdym kolejnym połączeniu.
 +
 </​small>​ </​small>​
  
Linia 131: Linia 134:
 ~~Zadanie.#​~~ Używając SSH i swojego konta zaloguj się na ''​polluks.cs.put.poznan.pl''​. ~~Zadanie.#​~~ Używając SSH i swojego konta zaloguj się na ''​polluks.cs.put.poznan.pl''​.
  
 +=== Jak zakończyć pracę z powłoką ===
 +
 +Komenda ''​exit''​ kończy pracę bieżącej powłoki. \\
 +Podobnie działa zasygnalizowanie końca pliku (wciśnięcie //​Ctrl//​+//​d//​) w pustej linii.
 ===== Korzystanie z pomocy ===== ===== Korzystanie z pomocy =====
  
Linia 184: Linia 191:
 Opcje są zwykle zdefiniowane w krótkiej formie ''​-o''​ gdzie ''​o''​ to pojedynczy znak bądź długiej ''​--opcja''​ gdzie ''​opcja''​ to nazwa opcji. Opcje są zwykle zdefiniowane w krótkiej formie ''​-o''​ gdzie ''​o''​ to pojedynczy znak bądź długiej ''​--opcja''​ gdzie ''​opcja''​ to nazwa opcji.
 \\ \\
-<​html><​small></​html>​Nieliczne programy używają tylko długich opcji poprzedzonych pojedynczym ''​-''​ (np. ''​find'',​ ''​convert'',​ ''​ffmpeg''​).<​html></​small></​html>​+<​html><​small></​html>​Nieliczne programy używają tylko długich opcji poprzedzonych pojedynczym ''​-''​ (np. ''​find'',​ ''​magick'',​ ''​ffmpeg''​).<​html></​small></​html>​
 \\ \\
 Krótkie opcje można łączyć w następujący sposób: ''​ls -color''​ jest równoważne ''​ls -c -o -l -o -r''​ (i różne od ''​ls --color''​) Krótkie opcje można łączyć w następujący sposób: ''​ls -color''​ jest równoważne ''​ls -c -o -l -o -r''​ (i różne od ''​ls --color''​)
Linia 228: Linia 235:
 ==== Wyświetlanie zawartości katalogu ==== ==== Wyświetlanie zawartości katalogu ====
  
-Plecenie ​''​**ls [//​katalog//​]**''​ wyświetla listę plików w katalogu ''​katalog''​. \\ Bez podania argumentów ''​ls''​ wyświetli bieżący katalog.+Polecenie ​''​**ls [//​katalog//​]**''​ wyświetla listę plików w katalogu ''​katalog''​. \\ Bez podania argumentów ''​ls''​ wyświetli bieżący katalog.
 \\ \\
-Domyślnie ''​ls''​ nie wyświetla ukrytych plików. Przełącznik **''​-a''​** ​i ''​--all''​ zmieniają ​to zachowanie.+Domyślnie ''​ls''​ nie wyświetla ukrytych plików. Przełącznik **''​-a''​** ​zmienia ​to zachowanie.
 \\ \\
-Przełącznik **''​-l''​** ​/ ''​--list'' ​wyświetla szczegółową listę plików zawierającą m. inn. dla każdego pliku jego właściciela,​ rozmiar i datę modyfikacji.+Przełącznik **''​-l''​** wyświetla szczegółową listę plików zawierającą m. inn. dla każdego pliku jego właściciela,​ rozmiar i datę modyfikacji.
  
 ~~Zadanie.#​~~ Wyświetl pliki w ''/​usr/​share/​zoneinfo/''​ i ''​../​../​../​../​../​bin''​. ​ ~~Zadanie.#​~~ Wyświetl pliki w ''/​usr/​share/​zoneinfo/''​ i ''​../​../​../​../​../​bin''​. ​
Linia 275: Linia 282:
  
 <​html></​small></​html>​ <​html></​small></​html>​
 +
 +==== Wildcard, regex, … ====
 +<​small>​
 +
 +W informatyce wykorzystuje się wyrażenia opisujące oczekiwany wynik, do których
 +następnie mogą być dopasowane dane.
 +\\
 +Przykładowo //linie, które zaczynają się od słowa, po których następuje znak
 +równości//​ można zwykle zapisać wyrażeniem regularnym ''​^\w+=''​.
 +\\
 +(Takiego wyrażenia można użyć zarówno do wybrania pasujących linii z pliku jak
 +i sprawdzenia czy podana linia pasuje.)
 +
 +Istnieje wiele pomysłów jak mają wyglądać i działać takie wyrażenia.
 +
 +W powłoce najczęściej wykorzystuje się
 +//​[[https://​pl.wikipedia.org/​wiki/​Wieloznacznik|wildcard]]//​y
 +i [[https://​en.wikipedia.org/​wiki/​Regular_expression|wyrażenia regularne]]. \\
 +
 +Składnia i implementacja zarówno wildcardów jak i wyrażeń regularnych różni się
 +między aplikacjami / językami programowania.
 +\\
 +W powłoce używa się składni opisanej m. inn. w podręczniku systemowym:
 +''​[[https://​man7.org/​linux/​man-pages/​man7/​glob.7.html|man 7 glob]]'',​
 +''​[[https://​man7.org/​linux/​man-pages/​man7/​regex.7.html|man 7 regex]]''​
 +
 +</​small>​
  
 ==== Dopasowywanie nazw plików ==== ==== Dopasowywanie nazw plików ====
  
-Przetwarzając tekst wpisany przez użytkownika powłoka próbuje zastąpić każde słowo zawierające znaki **''​*''​**,​ **''?''​** lub wyrażenia w kwadratowych nawiasach **''​[…]''​**. Każde słowo zawierający takie znaki jest nazywane [[https://​en.wikipedia.org/​wiki/​Glob_(programming)|glob]]em.+Przetwarzając tekst wpisany przez użytkownika powłoka próbuje zastąpić ​nazwami pasujących plików ​każde słowo zawierające znaki **''​*''​**,​ **''?''​** lub wyrażenia w kwadratowych nawiasach **''​[…]''​**. Każde słowo zawierający takie znaki jest nazywane [[https://​en.wikipedia.org/​wiki/​Glob_(programming)|glob]]em.
  
-''​*''​ rozwija się do dowolnego tekstu ​''?''​ rozwija się do dowolnego znaku''​[ace]''​ rozwija się do ''​a'',​ ''​c'',​ lub ''​e''​, natomiast ​''​[f-h]''​ do ''​f'',​ ''​g'',​ lub ''​h''​.+''​*''​ rozwija się do dowolnego tekstu ​\\ 
 +''?''​ rozwija się do dowolnego znaku \\ 
 +''​[ace]''​ rozwija się do ''​a'',​ ''​c'',​ lub ''​e'' ​\\ 
 +''​[f-h]''​ do ''​f'',​ ''​g'',​ lub ''​h''​
  
 Jeżeli istnieje co najmniej jeden plik pasujący do globa, to powłoka zastępuje glob wszystkimi pasującymi nazwami plików. Jeżeli żaden plik nie pasuje, to glob pozostaje niezmieniony. Jeżeli istnieje co najmniej jeden plik pasujący do globa, to powłoka zastępuje glob wszystkimi pasującymi nazwami plików. Jeżeli żaden plik nie pasuje, to glob pozostaje niezmieniony.
so/intro.1708426508.txt.gz · ostatnio zmienione: 2024/02/20 11:55 przez jkonczak