Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
so:intro [2024/02/20 12:05] jkonczak [Dopasowywanie nazw plików] |
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 ==== |