unrar
Transkrypt
unrar
ASU – laboratorium/miniprojekt 'użytkownicy'. Zapoznanie ze sposobem tworzenia kont i konfiguracją środowiska pracy użytkowników. Zadanie wspólne dla wszystkich uczestników kursu (8 pkt) Napisać skrypt do zakładania, kasowania i modyfikowania użytkowników, który będzie także konfigurował ich środowisko pracy. Powinna istnieć możliwość: • zakładania użytkownika z wyborem przy tym wolnego uid; • opcjonalnie – wybór uid ze sprawdzeniem, czy jakiś istniejący użytkownik nie ma już takiego; • generowania losowego hasła; • kopiowania standardowych plików kropkowych z zadanego katalogu do katalogu domowego; • zapisywanie danych użytkownika (login, uid, hasło) do jakiegoś pliku do odczytu tylko dla roota; • modyfikacji grup, do których należy użytkownik oraz innych danych dotyczących użytkownika (np. login shell); • kasowania kont użytkowników. Skrypt powinien umożliwiać tworzenie kont i modyfikowanie danych o kontach (w tym usuwanie) od razu dla całych grup użytkowników. Należy zaproponować format zapisu danych nt. konta dla poszczególnych użytkowników. Interfejs użytkownika powinien wspomagać wszystkie operacje na grupach kont. Uwaga! Przy tworzeniu interfejsu należy skorzystać z perlowego modułu Tk. Zadania indywidualne (7 pkt) Informacje ogólne: • indywidualny numer projektu = ostatnia cyfra z numeru indeksu • skrócony opis działania (używania) po podaniu parametru --help • PEŁNE sprawdzenie poprawności parametrów, istnienia plików wejściowych itp. • wynik na standardowe wyjście lub do pliku (w zależności od parametru: np. -f nazwa_pliku lub -f -) Projekt 0 Napisać skrypt rozpoznający (patrz polecenie 'file') pliki graficzne i filmowe, a następnie generujący dla każdego z nich miniaturkę mieszczącą się w podanym w parametrach wejściowych prostokącie. Zdjęcie (film) ma mieć zachowane proporcje boków. Nazwa miniaturki musi zawierać przyrostek _small tuż przed rozszerzeniem pliku. Użyć pakietu imagemagic oraz ffmpeg. Jako parametr można podać także katalog, wtedy zostaną przekonwertowane wszystkie pliki w katalogu lub (w zależności od przełącznika) w całym drzewie podkatalogów. Projekt 1 Zapisywanie całego katalogu, grupy katalogów oraz kopiowanie dysku CD na nowa płytę. Użyć standardowych narzędzi systemu do odczytania płyty (dd) i nagrania (cdrecord/wodim, mkisofs/genisoimage) itp. Wprowadzić możliwość trybu interaktywnego (pytanie użytkownika o parametry itp.). Projekt 2 Wypisać drzewo katalogów (bez plików) zaczynając od korzenia podanego jako parametr wejściowy. Drzewo ma być narysowane przy użyciu grafiki tekstowej. Projekt 3 Napisać skrypt, który korzystając z wyszukiwarki Google wyszukuje strony WWW i dokumenty pdf zawierające frazy określone przez użytkownika w pliku tekstowym (jedna linia pliku tekstowego – jedna fraza). Fraza może składać się z jednego lub kilku słów. Skrypt realizuje wyszukanie sekwencyjnie dla wszystkich kombinacji fraz bez powtórzeń (wszystkich 1-, 2-, …, n-elementowych podzbiorów zbioru fraz). Użytkownik może określić jakie domeny zostaną przeszukane. Dla każdej kombinacji fraz są zapisywane pliki html i pdf z największą częstością wystąpienia wg Google. Pliki są konwertowane do postaci tekstowej z wykorzystaniem html2text oraz pdftotext, na podstawie której są wyznaczane częstości wystąpień kombinacji fraz w tekście. Skrypt generuje raport wynikowy, w którym każda linia jest w formacie: kombinacja fraz, liczba wystąpień, typ dokumentu (html/pdf), domena, nazwa dokumentu. Kolumny raportu są kolejno posortowane. Projekt 4 Konwersja pliku tekstowego do html. Format pliku tekstowego: • paragrafy oddzielone pustą linią • obrazy w pliku źródłowym zapisane w postaci [nazwa_pliku.jpg], czyli nazwa pliku otoczona nawiasami kwadratowymi. Obrazy, które mają zostać wyświetlone są zapisane w katalogu 'images'. • tekst pochylony otoczony w pliku źródłowym znakami [spacja]_ i _[spacja]. Projekt 5 Liczenie średniego odchylenia bezwzględnego od średniej (mean absolute deviation). Dane (liczby rzeczywiste w formacie część_całkowita.część_ułamkowa) zapisane w pliku tekstowym – jedna liczba w linii. Projekt 6 Rozpakowywanie plików dowolnych plików odpowiednim narzędziem, gzip, tar, unrar itp. Informacja o rodzaju kompresji odczytana z wyniku polecenia 'file'. Zależnie od podanych parametrów ma umożliwiać rozpakowanie pojedynczego pliku, kilku podanych plików, plików z listy zawartej w innym pliku tekstowym lub wszystkich plików w podanym katalogu i jego podkatalogach. Projekt 7 Odwracalne usuwanie plików. Nazwy plików przekazane w linii poleceń nie są usuwane ale kompresowane (jeśli nie są już skompresowane polecenie 'file' dla sprawdzenia) i przesuwane do katalogu ~/.trash_bin. Skrypt ma także sprawdzać czy katalog ~/.trash_bin zawiera pliki starsze niż 48 godzin i usuwać je. Skrypt powinien umożliwiać usuwanie całych drzew katalogów. Projekt 8 Napisać skrypt grający w kółko i krzyżyk. Skrypt najpierw pyta, kto ma pierwszy ruch, ew. wykonuje go, potem cyklicznie wypisuje tablicę i pyta użytkownika o kolejne posunięcie. o | x | ------------| x | -----------| o | Twój ruch (wiersz, kolumna)? Projekt 9 Przekonwertować tekst podany jako argument do alfabetu Morse'a w ten sposób, że pod każdą sekwencją kropek i kresek pojawia się odpowiednia litera. Np.: $morse.sh tekst ... _._. ._. .. .__. t e k s t Warunkiem zaliczenia projektu jest zaliczenie zadania wspólnego i zadania indywidualnego. Oddanie obydwu skryptów na zajęciach 26 kwietnia 2012.