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 [2023/03/05 15:18]
jkonczak
so:intro [2024/02/20 12:53] (aktualna)
jkonczak [Dopasowywanie nazw plików]
Linia 58: Linia 58:
   * Apple w swoich systemach (np. MacOS) dostarcza zmodyfikowane narzędzia z BSD [[https://​opensource.apple.com/​releases/​|[1]]] [[https://​github.com/​apple-oss-distributions/​file_cmds|[2]]] [[https://​github.com/​apple-oss-distributions/​text_cmds|[3]]]   * Apple w swoich systemach (np. MacOS) dostarcza zmodyfikowane narzędzia z BSD [[https://​opensource.apple.com/​releases/​|[1]]] [[https://​github.com/​apple-oss-distributions/​file_cmds|[2]]] [[https://​github.com/​apple-oss-distributions/​text_cmds|[3]]]
   * Minimalistyczne i wbudowane systemy często używają [[https://​www.busybox.net/​downloads/​BusyBox.html|BusyBox]]a   * Minimalistyczne i wbudowane systemy często używają [[https://​www.busybox.net/​downloads/​BusyBox.html|BusyBox]]a
-  * Android używa [[https://​www.landley.net/​toybox/​|toybox]]a [[https://​cs.android.com/​android/​platform/​superproject/​+/​master:​external/​toybox/​toys/​posix/​|[4]]]+  * Android używa [[https://​www.landley.net/​toybox/​|toybox]]a [[https://​cs.android.com/​android/​platform/​superproject/main/+/main:​external/​toybox/​toys/​posix/​|[4]]]
   * Dłuższa lista alternatywnych zestawów jest np. tutaj: [[https://​wiki.archlinux.org/​title/​core_utilities]]   * Dłuższa lista alternatywnych zestawów jest np. tutaj: [[https://​wiki.archlinux.org/​title/​core_utilities]]
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 77: Linia 77:
   * 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://​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]] / [[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]]
  
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 101: Linia 101:
 W tej chwili wszystkie istotne systemy operacyjne (włącznie z Windows) mają domyślnie zainstalowaną komendę ''​ssh''​. W tej chwili wszystkie istotne systemy operacyjne (włącznie z Windows) mają domyślnie zainstalowaną komendę ''​ssh''​.
  
-<​html>​<​small>​</​html>​ +<​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.
  
-<html></small></html>+Przy uwierzytelnianiu hasłem, klient musi wysłać do serwera swoje hasło. 
 +\\ 
 +Krytyczne dla bezpieczeństwa jest sprawdzenie przez klienta że faktycznie 
 +komunikuje się z docelowym serwerem, a nie z podszywającym się pod niego 
 +serwerem który, odpowiednio spreparowany,​ pozwoli wykraść hasło 
 +([[https://​docs.ssh-mitm.at/​user_guide/​authentication.html#id2|gotowe narzędzie]]) 
 +i/lub przechwycić sesję. 
 +\\ 
 +Do sprawdzania tożsamości serwera używa się [[https://​pl.wikipedia.org/​wiki/​Kryptografia_klucza_publicznego|kryptografii asymetrycznej]]:​ 
 +serwer ma swój (tajny) klucz prywatny i na początku każdego połączenia wysyła 
 +klientowi klucz publiczny, a klient weryfikuje czy klucz wysłany przez serwer 
 +odpowiadający posiadanemu kluczowi prywatnemu. 
 +\\ 
 +Dlatego klient SSH przy pierwszym połączeniu do każdego serwera prosi 
 +użytkownika o sprawdzenie klucza, następnie dopisuje go do bazy kluczy 
 +(w OpenSSH trzymanej w pliku ''​~/​.ssh/​known_hosts''​) 
 +i sprawdza przy każdym kolejnym połączeniu. 
 +</small>
  
 ~~Zadanie.#​~~ Uruchom emulator terminala. Wykonaj komendy ''​date''​ i ''​echo $SHELL''​. ​ ~~Zadanie.#​~~ Uruchom emulator terminala. Wykonaj komendy ''​date''​ i ''​echo $SHELL''​. ​
Linia 259: Linia 275:
  
 <​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.1678025888.txt.gz · ostatnio zmienione: 2023/03/05 15:18 przez jkonczak