Next revision | Previous revision |
courses:unix:lab_processes [2021/03/23 15:32] – created - external edit 127.0.0.1 | courses:unix:lab_processes [2025/03/20 09:42] (current) – mzk |
---|
==== Przygotuj się do laboratorium ==== | ==== Przygotuj się do laboratorium ==== |
| |
* ''man textutils'' (jeżeli nie jest dostępne w systemie, spróbuj [[http://manpages.ubuntu.com/manpages/precise/pl/man1/textutils.1.html|tutaj]]) | * ''man textutils'' (jeżeli nie jest dostępne w systemie, spróbuj [[https://manpages.ubuntu.com/manpages/trusty/man3/textutil.3tcl.html|tutaj]]) |
* interesują nas: **head/tail**, **cat/tac**, **wc**, **cut**, **sort**, **tr**, **uniq**, **seq**, **xargs**, **expr** | * interesują nas: **head/tail**, **cat/tac**, **wc**, **cut**, **sort**, **tr**, **uniq**, **seq**, **xargs**, **expr** |
* ''man grep'' i/lub [[https://linux.fandom.com/pl/wiki/Grep|grep w Linux Wiki]] | * ''man grep'' i/lub [[https://linux.fandom.com/pl/wiki/Grep|grep w Linux Wiki]] |
* Interesują nas: **head/tail**, **cat/tac**, **wc**, **cut**, **sort**, **tr**, **uniq**, **seq**, **xargs**, **expr** | * Interesują nas: **head/tail**, **cat/tac**, **wc**, **cut**, **sort**, **tr**, **uniq**, **seq**, **xargs**, **expr** |
* Ważny jest też: **sed** (na tym etapie jest dla zaawansowanych; przejdziemy do niego na dalszych zajęciach) | * Ważny jest też: **sed** (na tym etapie jest dla zaawansowanych; przejdziemy do niego na dalszych zajęciach) |
* Każde polecenie ma swojego manuala. Warto też przejrzeć: ''man textutils'' (większość w.w. poleceń była kiedyś w pakiecie //GNU textutils//; jeżeli ten manual nie jest dostępny w systemie, spróbuj [[http://manpages.ubuntu.com/manpages/precise/pl/man1/textutils.1.html|tutaj]]) | * Każde polecenie ma swojego manuala. Warto też przejrzeć: ''man textutils'' (większość w.w. poleceń była kiedyś w pakiecie //GNU textutils//; jeżeli ten manual nie jest dostępny w systemie, spróbuj [[https://manpages.ubuntu.com/manpages/trusty/man3/textutil.3tcl.html|tutaj]]) |
* **grep** służy do wyszukiwania zadanych wyrażeniami regularnymi wzorców w tekście: <code bash>grep napis [plik]</code> Przydatne opcje: | * **grep** służy do wyszukiwania zadanych wyrażeniami regularnymi wzorców w tekście: <code bash>grep napis [plik]</code> Przydatne opcje: |
* ''-i'' ignoruje wielkość znaków | * ''-i'' ignoruje wielkość znaków |
=== VI. Zadanie dodatkowe === | === VI. Zadanie dodatkowe === |
| |
Używając wyłącznie poleceń **grep, cut, tr, head, tail**, na podstawie strony [[https://www.nbp.pl/kursy/kursya.html]] stworzyć filtr generujący tekstową tabelę kursów walut. \\ | Używając wyłącznie poleceń **grep, cut, tr, head, tail**, na podstawie strony [[https://nbp.pl/statystyka-i-sprawozdawczosc/kursy/tabela-a/]] stworzyć filtr generujący tekstową tabelę kursów walut. \\ |
Przykładowy wynik końcowy może wyglądać następująco: | Przykładowy wynik końcowy może wyglądać następująco: |
<code> | <code> |
SDR (MFW) 1 XDR 5,5207 | SDR (MFW) 1 XDR 5,5207 |
</code> | </code> |
Konstrukcję filtru rozpoczyna pobranie zawartości strony, co można zrealizować np. poleceniem: | |
<code bash> | Uwaga! Od 2023 roku strona NBP została przebudowana i aktualnie zawiera zabezpieczenia przeciw pobieraniu zawartości przez boty. Nie ma prostego shellowego sposobu aby pobrać jej zawartość (nie zadziała ani ''curl'' ani ''ncat'' ani inne narzędzia shellowe). Dlatego stronę należy otworzyć w przeglądarce, zapisać jej kod HTML na dysku a następnie rozpocząć filtr od ''cat tabela-a.html'' |
echo -e 'GET /home.aspx?f=/kursy/kursya.html HTTP/1.1\r\nHost: www.nbp.pl\r\n\r\n' | ncat --ssl www.nbp.pl 443 | |
</code> | |