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.