1 Systemy operacyjne laboratorium



Podobne dokumenty
1 Przygotował: mgr inż. Maciej Lasota

Technologie Informacyjne - Linux 2

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

Wstęp do Informatyki dla bioinformatyków

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Pracownia Komputerowa wykład III

Bash - wprowadzenie. Bash - wprowadzenie 1/39

- wszystkie elementy - wszystkie elementy

Proces instalacji systemu operacyjnego Linux Red Hat 7.3 (1)

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Przekierowanie wejścia wyjścia:

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Podstawy użytkowania Linux a

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Powłoka (shell) Powłoka ksh

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Materiały wprowadzające. dr inż. Arkadiusz Chrobot

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Trochę o plikach wsadowych (Windows)

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Pracownia komputerowa. Dariusz wardecki, wyk II

Ćwiczenie nr 14: System Linux

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 25 ARCHITEKTURA SYSTEMU LINUX. Opracował Sławomir Zieliński

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Pracownia Komputerowa wyk ad III

Aplikacje WWW - laboratorium

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Wstęp do systemu Linux

Pracownia Komputerowa wykład III

Wykaz zmian w programie Win Admin Replikator

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Materiały wprowadzające. dr inż. Arkadiusz Chrobot

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Szybki start instalacji SUSE Linux Enterprise Server 11

Wstęp do systemów wielozadaniowych laboratorium 14 Środowisko i aliasy

Instrukcja instalacji oprogramowania dla środowiska Linux

Szybki start instalacji SUSE Linux Enterprise Desktop 11

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Szybki start instalacji SUSE Linux Enterprise Server 11 SP1

trainxx tramxx

Programowanie w języku Python. Grażyna Koba

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

System operacyjny Linux

Tomasz Greszata - Koszalin

BASH - WPROWADZENIE Bioinformatyka 4

Zakład Systemów Rozproszonych

Technologie informacyjne lab. 4

Systemy operacyjne Programowanie w języku powłoki sh

WPROWADZENIE. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]

Usługi sieciowe systemu Linux

Środowisko programisty Zestaw 7

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Technologie Informacyjne - Linux 3

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Aplikacje WWW - laboratorium

KURIER BY CTI. Instrukcja do programu DATA Informatycznej Zygmunt Wilder w Gliwicach WERSJA mgr Katarzyna Wilder DLA DPD

INSTRUKCJA INSTALACJI I PIERWSZEGO URUCHOMIENIA APLIKACJI Rodzajowa Ewidencja Wydatków plus Zamówienia i Umowy

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Lab3 - Zastosowania protokołów przesyłania plików

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Instalacja krok po kroku /instalacja programu, serwera bazy danych/

Wstęp do informatyki Shell podstawy

Lab 9 Podstawy Programowania

Interpreter poleceń oraz zmienne środowiskowe

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

Instrukcja korzystania z systemu poczty NetMail (wersja skrócona)

Praca w środowisku Cygwin. Przygotował Mateusz Dudek

System kontroli dostępu ACCO NET Instrukcja instalacji

4. Podstawowa konfiguracja

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.

Windows XP Wiersz polecenia

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

Wykaz zmian w programie Win Admin Replikator

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Sage Migrator Migracja do wersji Sage Kadry i Płace

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Instrukcja instalacji oprogramowania dla środowiska MacOS

Projektowani Systemów Inf.

Systemy operacyjne- tematy do opracowania

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Temat: EasyAccess 2.0 Data: 10 Października 2014 Prowadzący: Maciej Sakowicz

SoftVig Systemy Informatyczne Sp. z o.o. Szczecin , ul. Cyfrowa 4

Powłoka interpreter poleceń systemu UNIX

Transkrypt:

1 1 Systemy operacyjne laboratorium 1.1 Sprawy organizacyjne Wykonanie większości zadań wymaga dostępu w trybie zwykłego użytkownika do serwera uniksowego/linuksowego. Najprościej jest uruchomic program Cygwin (XWIN) i po pojawieniu się okna ze znakiem zachęty użyć komendy ssh -X user@serwer, gdzie serwerem może być któryś z serwerów kont studenckich (ferm, nobel, tor lub uran). Niektóre zadania mogą wymagać posiadania uprawnień superużytkownika (administratora), czyli dostępu do konta root. Takie możliwości stwarzają maszyny wirtualne. Na potrzeby zajęć zostało utworzonych 16 wirtualnych maszyn linuksowych (CentOS 5.3), które pracują w wydzielonej sieci 10.0.0.0/8 realizowanej na osobnym przełączniku wirtualnym virbr0. Maszyny mają adresy od 10.1.i.1 do 10.1.16.1 i są NAT-ne (wyjście porzez bramę 10.0.0.254). Dostęp do nich jest możliwy z serwerów studenckich poprzez 1. połączenie via SSH na maszynę labul4b na port 4022+100*i. Np. połączenie na maszyne 10.1.5.1 realizowane jest przez komendę ssh -p 4522 root@labul4b.fizyka.umk.pl Hasło: centos 2. połączenie via VNC na maszynę labul4b na port 16000+i 10+2. Np. połączenie na maszynę 10.1.5.1 realizowane jest przez komendę vncviewer labul4b:16052. Żeby to było możliwe trzeba najpierw zarejestrować się na maszynie używając ssh i uruchomić na niej serwer vnc przy pomocy komendy /root/bin/vnc.sh start. Uwaga! Przy połączeniu realizowanym z komputerów w pracowni (sieć 158.75.100.0/24) należy łączyć się na serwer labul100b, a nie labul4b. Zadania (kolejne ich wersje) należy przechowywać w repozytorium svn (/misc/staff/svn/so10). Oto kilka niezbędnych komend do pracy z repozytorium SVN. Przypadek A. Należy zalogować się na któryś z serwerów: # Pobieranie aktualnej wersji repozytorium dla użytkownika nazwisko svn checkout file:///misc/staff/svn/so10/nazwisko # W bieżącym katalogu pojawia się podkatalog nazwisko.

2 # Jeśli w tym katalogu zostanie utworzony plik plik, to można go # umieścić w repozytorium wykonując komendy svn add plik svn commit -m"dodanie pliku plik" # Usunięcie pliku wymaga analogicznych komend svn del plik svn commit -m"usuwanie pliku plik" Przypadek B. Jesteśmy zalogowani na komputerze mającym połączenie ssh z serwerem ameryk.fizyka.umk.pl: # Pobranie zawartości repozytorium svn checkout svn+ssh://user@ameryk.fizyka.umk.pl/misc/staff/svn/so10/nazwisko Praca na kopii repozytorium odbywa się tak samo jak w przypadku bezpośredniej pracy na serwerze wydziałowym. Zaliczenie na podstawie terminowo oddawanych, samodzielnie wykonanych zadań, aktywności na zajęciach, zaliczonych sprawdzianów i kolokwium. Bez usprawiedliwienia nie można opuścić więcej niż 4h zajęć!

3 1.2 Forma zadań-skryptów Rozwiązanie każdego z zadań wymaga napisania skryptu lub skryptów w języku bash. Opis języka bash mozna znaleźć na stronach podręcznika systemowego (man bash) lub w wielu artykułach i książkach dostępnych w Internecie, np. Mendel Cooper, Advanced Bash-Scripting Guide. An in-depth exploration of the art of shell scripting, http://tldp.org/ldp/abs/html/index.html. Z tej książki zaczerpnięto szereg przykładów wykorzystanych w poniższych zadaniach. The shell is a command interpreter. More than just the insulating layer between the operating system kernel and the user, it s also a fairly powerful programming language. A shell program, called a script, is an easy-to-use tool for building applications by gluing together system calls, tools, utilities, and compiled binaries. Virtually the entire repertoire of UNIX commands, utilities, and tools is available for invocation by a shell script. If that were not enough, internal shell commands, such as testing and loop constructs, lend additional power and flexibility to scripts. Shell scripts are especially well suited for administrative system tasks and other routine repetitive tasks not requiring the bells and whistles of a full-blown tightly structured programming language. 1. Skrypty muszą być napisane w bashu i mieć atrybuty wykonywalności (jeśli stosowane są polskie znaki, to trzeba stosować kodowanie utf8). 2. Skrypty muszą mieć nazwy podane w zadaniu. Jeśli skrypt korzysta z innych plików, to powinny one mieć nazwy powiązane z nazwą skryptu, a rozszerzenie powinno informować o charakterze pliku. 3. Skrypty wywołane z opcję -h muszą zwracać stosowną informację o swoim działaniu w formacie właściwym dla stron podręcznika systemowego (w sekcji AUTOR imię, nazwisko oraz adres pocztowy <user@fizyka.umk.pl>). Załączony opis musi informować o przeznaczeniu skryptu oraz o znaczeniu jego ew. opcji. Opis musi być zrozumiały nie tylko dla autora! Tekst opisu musi być formatowany w taki sposób, aby mieścił się w typowym oknie, czyli wiersze powinny składać się z 65-75 znaków. Do zmiany formatu można użyć komendy fmt (fmt -c file), a aktualny rozmiar okna określić dzięki komendzie stty (stty size). Należy zadbać o poprawność językową opisu. Można to zrobić korzystając z odpowiednich funkcji emacsa lub bezpośrednio wywołując program aspell (aspell --lang=pl_pl -c file lub aspell --lang=en_en -c file). 1 1 Parametr lang można pominąć, jeśli zmienna środowiskowa LANG ma właściwą wartość.

4 4. Skrypt wywołany bez podania argumentów powinien działać, gdyż powinny one przyjmować odpowiednie wartości domyślne. Skrypt musi działać bez ingerencji użytkownika, co oznacza, że skrypt nie generuje żadnych pytań o wartości argumentów i opcji (oczywiście z wyjątkiem sytuacji, kiedy tego będzie wymagała specyfikacja zadania). Skrypt nie powinien również wypisywać zbędnych komunikatów w rodzaju Parametr prawidłowy. Komunikaty mogą być potrzebne, jeśli parametr lub ew. jego wartość jest niepoprawa. 5. Jeśli istnieje taka możliwość, to skrypty muszą dostarczać danych pozwalających sprawdzić poprawność ich działania. 6. Przy tworzeniu kilkuwierszowych opisów lepiej stosować cat << EOF... EOF niż wielokrotnie echo -e. Powtarzające się fragmenty kodu powinny być zamieniane na wywołania odpowiednich funkcji. Zamiast posługiwać się w skrypcie jawną nazwą skryptu lepiej jest użyć zmiennej $0 (basename $0.sh). Wielokrotnie użycie jakiejś nazwy powinno być zastąpione przez użycie zmiennej o odpowiedniej wartości.

5 2 Zadania 1. Napisz skrypt system.sh, który wypisuje nazwę hosta (w nawiasie jego adres IP oraz pełną nazwę), nazwę dystrybucji i numer wydania, architekturę systemu, rodzaj i wersję używanego systemu operacyjnego, model procesora, liczbę procesorów, dostępną pamieć RAM oraz pamięć wymiany (w KB oraz GB), czas od ostatniego uruchomienia, liczba połączonych (zalogowanych) użytkowników. Komendy systemowe: cat, gawk, free, grep, head, hostname, uname, uptime, who Pliki: /etc/issue, /proc/cpuinfo, /proc/meminfo 2. Napisz skrypt ac-1.sh, który wypisuje użytkownika z największym czasem połączenia (logowania) i czas tego połączenia. Komendy systemowe: ac, basename, gawk, head, sort, tail Komendy basha: echo 3. Napisz skrypt ac-2.sh, który wypisuje (domyślnie) 10-u użytkowników o najdłuższym czasie połączenia. Opcja -n pozwala zmienić liczbę wypisywanych użytkowników. Identyfikatory użytkowników zapisywane są w tablicy acusers, a odpowiadające im czasy połączenia acctime. Komendy systemowe: ac, basename, gawk, head, sed, sort, tail Komendy basha: echo, let, read, while 4. Napisz skrypt skrypt ac5u3d.sh, który wypisuje (domyślnie) pięciu użytkowników z największym czasem logowania (opcja -n pozwala zmienić tę wartość). Zmodyfikuj ten skrypt tak, żeby wyznaczał także (domyślnie) trzy dni, w których całkowity czas połączenia był najdłuższy (opcja -d pozwala zmienić liczbę wyświetlanych dni). Obsługę opcji skrypt wykonuje samodzielnie. Komendy systemowe: ac, basename, gawk, head, sort, tail Komendy basha: echo, if, let, shift 5. Napisz skrypt selfpres-1.sh, który w kolejnych wierszach wypisuje: swoją nazwę, liczbę argumentów, wszystkie argumenty (parametry pozycyjne). Jeśli skrypt jest wywołany bez podania co najmniej 3 argumentów, to pojawia się stosowny komunikat (wartość 3 jest określona przez odpowiednią zmienną). Wypisz wartości argumentów stosując instrukcje iteracyjne while, until, for. Komendy systemowe: basename

6 Komendy basha: echo, for, if, shift, until, while 6. Napisz skrypt selfpres-2.sh, który przyjmuje dokładnie 3 argumenty. Jeśli skrypt jest uruchamiany bez żadnego argumentu, z jednym lub dwoma argumentami, to kończy się wypisując odpowiedni komunikat i zwracając odpowiednio status powrotu (kod błędu) 3, 2 lub 1. Komendy systemowe: basename Komendy basha: echo, for, if, shift, until, while 7. Napisz skrypt selfpres-3.sh, który do poprawnego działania potrzebuje trzech argumentów. Jeśli któregoś z argumentów brakuje, to nadawane im są domyślne wartości. Jakie wartości przyjmuje argument, który został zadany jako, np. selfpres-3.sh 1. Patrz http://devmanual.gentoo.org/tools-reference/bash/index.html. Komendy systemowe: basename Komendy basha: echo 8. Napisz skrypt ucase1.sh/lcase1.sh, który zamienia nazwy wszystkich plików w bieżącym katalogu na nazwy pisane dużymi/małymi literami. Co się dzieje, jeśli skrypt zostanie wykonany dwa lub więcej razy? Komendy systemowe: mv Komendy basha: for 9. Napisz skrypt ucase2.sh/lcase2.sh, który zamienia nazwy podanych plików na nazwy pisane dużymi/małymi literami. Domyślnie konwertowane są nazwy plików z bieżącego katalogu. Komendy systemowe: mv Komendy basha: for, if 10. Napisz skrypt listusers.sh, który służy do tworzenia listy użytkowników systemu. Plik z użytkownikami ma format pliku /etc/passwd. Jeśli skrypt zostanie wywołany, bez podania nazwy pliku, to domyślnie używany jest plik /etc/passwd. Domyślnie skrypt wypisuje uporządkowaną wg nazwisk listę użytkowników z wierszami postaci: nazwisko imię1 imię2 (nazwakonta). Jeśli zostanie podana opcja -u, to otrzymujemy listę użytkowników uporządkowaną wg nazw kont postaci: nazwakonta nazwisko imię1 imię2. Jeśli zostanie podana opcja -s, to do oddzielnych plików zapisywani są użytkownicy, którzy mają jedno bądź dwa imiona (nazwy plików to, odpowiednio, snusers.pid oraz mnusers.pid, gdzie PID jest numerem procesu).

7 Opcja -d powoduje usunięcie plików postaci snusers.* oraz mnusers.*. Komendy systemowe: gawk Komendy basha: if, read, while 11. Napisz skrypt modpasswd.sh, który służy do modyfikacji pliku, którego nazwa podana jest jako pierwszy argument. Plik ten ma format pliku /etc/passwd. Zmodyfikowany plik zapisywany jest pod nazwą kończącą się na.mod. Opcja -u powoduje zapisanie nazwisk użytkowników wyłącznie dużymi literami (należy pominąć konta systemowe). Opcja -l powoduje przywrócenie tradycyjnego zapisu, w którym tylko pierwsza litera nazwiska jest duża. Użycie opcji -s powoduje utworzenie pliku, w którym konta systemowe są uporządkowane rosnąco wg identyfikatora konta (uid), a konta zwykłych użytkowników są oddzielnie uporządkowane alfabetycznie wg nazw kont. Komendy systemowe: cat, gawk, grep, rm, sort, tr Komendy basha: if, read, while,