Różnice

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

Odnośnik do tego porównania

pl:dydaktyka:unix:lab_skrypty_adv [2018/11/21 07:55]
kkluza [Ćwiczenie 2. Deszyfrator szyfru przestawieniowego]
pl:dydaktyka:unix:lab_skrypty_adv [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Pisanie skryptów Bash ====== 
- 
-===== DO PRZYGOTOWANIA ===== 
-Samodzielnie należy przed tym laboratorium przygotować:​ 
- 
-    * podstawy pracy z wybranym edytorem vi, Emacs, nano, pico 
-    * przypomnieć sobie artykuły pt.: {{:​pl:​dydaktyka:​unix:​gjn-sh.pdf|Podstawy programowania skryptów Sh}}, {{:​pl:​dydaktyka:​unix:​gjn-bash.pdf|GNU Bash więcej niż Sh}} 
-    * przypomnieć sobie pracę z ''​grep''​ i wyrażeniami regularnymi,​ np.: 
-      * http://​www.linux.net.pl/​~wkotwica/​doc/​grep/​grep_7.html 
-      * https://​www.cyberciti.biz/​faq/​grep-regular-expressions/​ 
- 
-Dodatkowo przeglądnąć (w celu ew. skorzystania w czasie zajęć): 
- 
-    * zapoznać się z //​[[http://​www.tldp.org/​guides.html#​abs|Advanced Bash-Scripting Guide]]// 
-    * przegląnąć artykuł (3 części) //Bash by example// [[http://​www.ibm.com/​developerworks/​linux/​library/​l-bash/​|część 1]], [[http://​www.ibm.com/​developerworks/​library/​l-bash2/​|Część 2]], [[http://​www.ibm.com/​developerworks/​library/​l-bash3/​|Część 3]] 
-    * ew. przeglądnąć [[http://​www.tldp.org/​HOWTO/​Bash-Prog-Intro-HOWTO.html|BASH Programming - Introduction]] 
- 
-===== Ćwiczenie 1. Słownik krzyżówkowy ===== 
- 
-Słownik do tego ćwiczenia znajduje się w pliku: ''/​tmp/​dictionaryen.txt''​. 
- 
-  - (1 pkt.) Proszę napisać skrypt, który dla słowa podanego jako argument, w którym dowolne znaki wstawiamy jako “.”, wyświetli znalezione dopasowania ze słownika.\\ np. dla: .''/​skrypt b.eb..''​ znalezionym dopasowaniem mogłoby być ''​bieber''​. 
-  - (1 pkt.) W przypadku, gdy nie podamy słowa, skrypt powinien wypisać komunikat “Nie podano słowa”. 
-  - (1 pkt.) W przypadku, gdy nie podamy słowa, skrypt powinien ponadto poprosić użytkownika o wprowadzenie słowa i pobrać od niego to słowo. 
-  - (1 pkt.) Skrypt powinien sprawdzać, czy pobrane słowo nie zawiera niedozwolonych znaków (innych niż litery i kropki) i wyświetlić komunikat "​Podano nieprawidłowe znaki"​. 
- 
- 
-===== Ćwiczenie 2. Deszyfrator szyfru przestawieniowego ===== 
- 
-Słownik do tego ćwiczenia znajduje się w pliku: ''/​tmp/​slownikpl.txt''​.\\ 
- 
-  - (1 pkt.) Napisz skrypt, który odszyfruje wiadomość zaszyfrowaną ROT13: ''​ wrqan m plse cvah gb fvrqrz''​ 
-  - (1 pkt.) Napisz skrypt, który odszyfruje poniższą wiadomość zaszyfrowaną analogicznym szyfrem przestawieniowym,​ ale z inną liczbą przesunięcia. Skrypt powinien wyświetlić rezultaty wszystkich możliwych przesunięć. Nie należy przejmować się polskimi znakami (one nie są zaszyfrowane). 
-  - (1 pkt.) Skrypt powinien sprawdzić, czy słowa z rozszyfrowanej wiadomości występują w słowniku ''/​tmp/​slownikpl.txt''​ \\ i dla każdej potencjalnego rezultatu wypisać: ''"​Znaleziono w słowniku X / Y"'',​ \\ gdzie X to liczba słów z wiadomości występujących w słowniku, a Y liczba wszystkich słów rozszyfrowanej wiadomości. 
-  - (1 pkt.) Skrypt powinien odgadnąć klucz (liczbę przesunięcia) automatycznie,​ przyjmując że np. wiadomość rozszyfrowano,​ jeśli dopasowano ponad 30% słów ze słownikiem. 
- 
-  unjwbxej heyjwd hdkwd unsz yfpnj xfrj f ptqjosj yt uwejxzsnęhnj qnyjw b yjo bnfitrtśhn 
- 
- 
-===== Ćwiczenie 3. Kreator krzyżówek ===== 
- 
-Słownik do tego ćwiczenia znajduje się w pliku: ''/​tmp/​krzyzowkowe.txt''​.\\ 
- 
-  * (1 pkt.) Proszę napisać skrypt, który wylosuje dowolne hasło ze słownika. ​ 
-  * (1 pkt.) Skrypt powinien losować hasło tak długo, aż znajdzie hasło nie krótsze niż 8 liter, przy czym losowanie hasła powinno odbywać się w osobnej funkcji. 
-  * (1 pkt.) Dla ustalonego hasła skrypt następnie losuje hasła dodatkowe zaczynające się od każdej z liter hasła głównego.\\ ​ 
-Przykład: dla hasła głównego "​kawa",​ program może wylosować hasła dodatkowe: 
- 
-  |k|orniszon 
-  |a|rtefakt 
-  |w|oda 
-  |a|zymut 
- 
-  * (1 pkt.) Skrypt po podaniu opcji ''​-‐print''​ lub ''​-p''​ wypisuje pustą krzyżówkę (ascii art jak poniżej) oraz opisy do haseł, a ''​-‐solved''​ lub ''​-s''​ wypisuje krzyżówkę wypełnioną. 
-  ____________ 
-  |_|_|_|_|_|_|_|_|_| 
-  |_|_|_|_|_|_|_|_| 
-  |_|_|_|_|_ _  
-  |_|_|_|_|_|_| 
- 
- 
-===== Ćwiczenie 4. Lista mailingowa ===== 
- 
-Napisz skrypt ''​grupamailingowa''​ rozsyłający e-maile do wszystkich zapisanych członków grupy (proszę przetestować działanie skryptu na serwerze student). Skrypt powinien obsługiwać następujące opcje: 
-  - (1 pkt.) Bez opcji skrypt pyta o temat i treść maila, a następnie używając polecenia ''​mail''​ rozsyła e-maile do wszystkich odbiorców podanych w pliku ''​listaodbiorcow''​. 
-  - (1 pkt.) Dla opcji ''​-a''​ / ''​-‐add''​ -- dodaje podany jako argument adres e-mail do pliku ''​listaodbiorcow''​. 
-  - (1 pkt.) Dla opcji ''​-r''​ / ''​-‐remove''​ -- usuwa podany jako argument adres e-mail z pliku ''​listaodbiorcow''​. 
-  - (1 pkt.) W przypadku opcji ''​-a''​ / ''​-‐add''​ sprawdza czy podany adres e-mail jest prawidłowo skonstruowanym adresem e-mail (wyrażenie regularne) oraz sprawdza, czy podany adres nie znajduje się już na liście. 
- 
- 
- 
- 
  
pl/dydaktyka/unix/lab_skrypty_adv.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0