Podstawy obsługi systemów UNIX/Linux
Transkrypt
Podstawy obsługi systemów UNIX/Linux
Podstawy Informatyki (semestr I) laboratorium 2 Podstawy obsługi systemów UNIX/Linux WaŜne cechy charakterystyczne 1. Unix/Linux rozróŜnia wielkie i małe litery. 2. ‘.’ oznacza katalog bieŜący, ’..’ oznacza katalog nadrzędny, ’/’ oznacza katalog główny, „cd /” przejście do katalogu głównego ’~’ oznacza katalog domowy, cd ~ ’~/praca’ oznacza plik ‘praca’ w domowym katalogu zalogowanego uŜytkownika ’~user/praca’ oznacza plik ‘praca’ w domowym katalogu uŜytkownika ‘user’ ’/home/std/praca’ ścieŜka bezwzględna ’std/praca’ ścieŜka względna 3. Opcje poleceń moŜna łączyć, zamiast ‘ls -l -a’ moŜna zapisać ‘ls -la’. 4. Nazwa pliku rozpoczynająca się od kropki (np. ‘.plik’) oznacza, Ŝe plik ten jest ukryty. Uzyskiwanie pomocy man nazwa_polecenia - Wyświetla szczegółowy opis (ang. manual) polecenia. Po wyświetlanej stronie moŜna się przemieszczać za pomocą strzałek i klawiszy Enter, Space=PageDown, PageUp. Wyjście z podręcznika następuje po naciśnięciu „q”. info nazwa_polecenia, pinfo nazwa_polecenia – Są to polecenia alternatywne do man. nazwa_polecenia -h lub --help – Jedną z opcji kaŜdego polecenia jest opcja --help, umoŜliwiająca wyświetlanie pomocy kontekstowej. whatis nazwa_polecenia – Polecenie dostarcza krótkiej informacji na temat polecenia, na podstawie własnej bazy nazw poleceń. Whatis przeszukuje bazę uwzględniając nazwę polecenia, która musi być identyczna z podanym tekstem. apropos nazwa_polecenia – jak wyŜej z róŜnicą taką, Ŝe przeszukiwane są takŜe opisy poleceń. Podstawowe polecenia cd – Zmiana bieŜącego katalogu. Po zalogowaniu do systemu, katalogiem bieŜącym jest katalog domowy uŜytkownika. pwd – Wypisuje pełną nazwę bieŜącego katalogu. ls – Wyświetla listę plików w katalogu, jak równieŜ informacje o pliku. „ls -l” powoduje wyświetlenie szczegółowych informacji o plikach. echo tekst – Wyświetlanie komunikatu na ekranie. Tworzenie katalogów mkdir nazwa_katalogu – Utworzenie katalogu. Tworzenie plików touch nazwa_pliku – Polecenie słuŜy do tworzenia pustego pliku (za pomocą tego polecenia moŜna równieŜ zmienić datę istniejącego pliku – pod warunkiem posiadania odpowiednich uprawnień) >nazwa_pliku – Tworzenie nowego pliku za pomocą przekierowania wyjścia (pusty strumień przekierowujemy do pliku) cat > nazwa_pliku linia tekstu druga linia tekstu ^D - Za pomocą polecenia cat i strumieni moŜemy utworzyć nowy plik i od razu wypełnić do danymi. Koniec wpisywania danych następuje po wciśnięciu Ctrl+D. Usuwanie rm nazwa_pliku – Usunięcie pliku. Podstawy Informatyki (semestr I) laboratorium 2 rm -r katalog – Usunięcie katalogu i całej jego zawartości. rmdir katalog – Usunięcie pustego katalogu. Kopiowanie, przenoszenie cp plik_zrodlowy plik_docelowy – Kopiowanie plików, np. „cp /home/guest/* . ” skopiuje wszystkie pliki z katalogu domowego uŜytkownika guest do katalogu bieŜącego (.) mv plik_zrodlowy plik_docelowy – Zmiana nazwy/przeniesienie plików, np. „mv ~/doc/plik1 ~/doc/out.txt” zmieni nazwę pliku „mv ~/doc/plik1 out.txt” nastąpi przeniesienie pliku (ze zmienioną nazwą) do katalogu bieŜącego Wyświetlanie zawartości pliku cat nazwa_pliku – Wyświetlanie pliku na ekranie (zalecane dla małych plików). cat nazwa_pliku nazwa_pliku2 – Wyświetlenie dwóch plików na ekranie. more nazwa_pliku – Wyświetlanie pliku z moŜliwością nawigacji za pomocą spacji (w dół) i ‘b’ (w górę). Wyjście następuje po wciśnięciu ‘q’ lub wyświetleniu całej zawartości. less nazwa_pliku – Wyświetla plik i umoŜliwia nawigację za pomocą strzałek, nie kończy pracy po osiągnięciu końca pliku. head -n 5 nazwa_pliku - Wyświetla pierwsze linie pliku (tu: 5 pierwszych linii). tail -n 3 nazwa_pliku – Wyświetla ostatnie linie pliku (tu: 3 ostatnie linie). wc nazwa_pliku – Zlicza i wyświetla ilość linii, słów i bajtów w pliku (word count). find – Wyszukiwanie plików po nazwie, po dacie utworzenia, itd. cmp, diff – Porównywanie dwóch plików. Znaki uogólniające Aby jednym zapisem objąć więcej plików zastosowań naleŜy znaki specjalne. Do znaków specjalnych zaliczyć moŜna *, ?, [, ]. Znaki te wykorzystywać moŜna w przypadku niektórych poleceń których argumentami są nazwy katalogów lub plików, np. cp, rm. * - Gwiazdka zastępuje dowolny ciąg znaków (w tym ciąg pusty) z wyjątkiem plików, których nazwa rozpoczyna się od kropki. „*”. ? - Zastępuje dokładnie jeden znak w nazwie pliku, podobnie jak wyŜej nie zastępuje kropki w roli pierwszego znaku w nazwie. [A,B,C] lub [ABC] - W nazwie ma wystąpić któraś z wymienionych liter. [a-z] - Oznacza dowolną małą literę. [a-zA-Z0-9] - Oznacza jeden znak alfanumeryczny. {kot,pies} - W nazwie ma wystąpić któryś z podanych ciągów literowych. Przykład: [123]*{txt,doc} oznacza wszystkie pliki, których nazwa zaczyna się od cyfr 1, 2 lub 3 i kończy się na txt lub doc. Prawa dostępu KaŜdy plik i katalog posiada 10 bitów protekcji (wyświetlane przy okazji poleceni ls-l), gdzie: - Bit 1 umoŜliwia identyfikację rodzaju pliku („d” – katalog, „-” – plik, „l” – link do pliku, itd...), - bity 2-4 opisują uprawnienia dla właściciela pliku, - bity 5-7 opisują uprawnienia dla grupy do której naleŜy właściciel, - bity 8-10 odpowiadają prawom dla wszystkich pozostałych uŜytkowników. Prawo odczytu (r) – umoŜliwia odczytanie zawartości pliku (w przypadku katalogu z takim prawem umoŜliwia odczytanie listy plików znajdujących się w tym katalogu). Prawo zapisu (w) – pozwala na modyfikacje pliku. Dla katalogów oznacza moŜliwość tworzenia nowych i usuwania istniejących plików w tym katalogu. Podstawy Informatyki (semestr I) laboratorium 2 Prawo wykonywania (x) – pozwala na uruchomienie pliku wykonywalnego, a w przypadku katalogu oznacza prawo dostępu do plików wewnątrz katalogu. Przykład: -rwxrw----- Oznacza pełne prawa dla właściciela pliku, odczyt i zapis/modyfikację dla grupy właściciela pliku, pozostali uŜytkownicy nie posiadają Ŝadnych praw do tego pliku. Administrowanie uprawnieniami Prawa dostępu moŜe modyfikować właściciel pliku lub administrator! Polecenie chmod umoŜliwia zmianę praw dostępu do pliku bądź katalogu. chmod podmiot operator prawa nazwa_pliku (pola podmiot, operator i prawa nie powinny być rozdzielane spacją) podmiot: ‘u’ właściciel pliku, ‘g’ grupa właściciela, ‘o’ pozostali uŜytkownicy, ‘a’ wszyscy operator: ‘+’ dodanie praw, ‘-‘ odebranie praw, ‘=’ przypisanie praw prawa: ‘r’, ’w’, ’x’ Przykłady: chmod g+x plik – nadanie grupie prawa do wykonywania (bez zmiany innych praw) chmod ug=rwx,o=x plik – nadanie grupie i właścicielowi praw rwx, a innym uŜytkownikom tylko x Wszystkie prawa moŜna zapisać równieŜ w sposób numeryczny. KaŜde prawo na swoją wagę liczbową. Sumując poszczególne wagi otrzyma się sumaryczne prawo dostępu. Wagi: r=4, w=2, x=1. Prawa w postaci liczbowej podaje się jako liczbę trzycyfrową. Pierwsza oznacza prawa dla właściciela, druga dla grupy, trzecia dla pozostałych. Zatem rwxrw---- moŜna zapisać jako 760. Wówczas nadanie takich praw dla pliku moŜna wykonać wywołując polecenie chmod 760 plik . chown – UmoŜliwia zmianę właściciela pliku. chgrp – UmoŜliwia zmianę grupy, do której naleŜy plik. Dowiązania ln źródło nazwa – Utworzenie dowiązania o nazwie „nazwa” do pliku/katalogu „źródło” Dowiązania dzielimy na twarde (hard link) i miękkie, zwane teŜ symbolicznymi (soft/symbolic). Link twardy to nadanie innej nazwy istniejącemu plikowi. KaŜdy fizyczny plik posiada specjalne pole, przechowujące ilość twardych linków do danego pliku. Aby usunąć plik naleŜy usunąć wszystkie twarde dowiązania. Podczas operacji usuwania twardego linku system operacyjny najpierw sprawdza wartość wspomnianego pola. Jeśli wartość ta większa jest od jedności, wówczas zmniejszana jest o 1 a z katalogu usuwany jest wpis linku twardego. Jeśli natomiast wartość ta równa jest jeden, wówczas dopiero usuwany jest fizyczny plik na dysku oraz odpowiadający mu wpis w katalogu. Twarde linki stosować moŜna wyłącznie w obrębie jednego systemu plików. Link symboliczny jest specjalnym typem pliku, który "wskazuje" na inny - oryginalny plik poprzez jego nazwę (podobny do skrótu i Windows’ach). W odróŜnieniu od linków twardych, link symboliczny nie modyfikuje licznika dowiązań do pliku. Co więcej, link miękki moŜna utworzyć nie tylko do pliku, lecz równieŜ do katalogu (co w przypadku linków twardych było niemoŜliwe) jak równieŜ do nieistniejącego obiektu. Link symboliczny tworzy się w sposób analogiczny do twardego, dodając do polecenia ln opcję -s: ln -s źródło nazwa Podstawy Informatyki (semestr I) laboratorium 2 Uzyskiwanie informacji o uŜytkownikach who – Wyświetla listę zalogowanych uŜytkowników. last – Wyświetla datę i czas ostatniego logowania uŜytkowników. w, finger – Pozostałe polecenia o podobnym działaniu. Potokowanie strumienia danych Zastosowanie znaku ‘|’ pozwala na łączenie wyjścia jednego polecenia z wejściem innego. Takie rozwiązanie pozwala np. na wygenerowanie zestawu danych za pomocą pierwszego polecenia, a następnie przetworzenie go przy uŜyciu kolejnego, np. ls –al | more –p Przekierowanie strumienia danych do pliku - Znak ‘<’ umoŜliwia pobranie z pliku danych i przetworzenia ich przez polecenie, np. more < plik - Znak ‘>’ umoŜliwia przekierowanie strumienia danych do pliku; jeŜeli plik istnieje, to jego zawartość zostaje usunięta. - Znak ‘>>’ jak wyŜej, z róŜnicą, Ŝe jeśli plik istnieje dane są dopisywane na koniec. Procesowi przypisane są trzy strumienie danych: - standardowe wejście, domyślnie jest to klawiatura i powłoka identyfikuje je jako plik 0 - standardowe wyjście, domyślnie jest to ekran i powłoka identyfikuje je jako plik 1 - standardowe wyjście błędów, domyślnie jest to ekran i powłoka identyfikuje je jako plik 2. ls -y 1>plik1.txt 2>plik2.txt do plik1.txt trafi rezultat polecenia, a do plik2.txt ewentualne błędy Procesy Unix/Linux jest wielozadaniowym systemem operacyjnym. Oznacza to, Ŝe korzystając z systemu mamy wraŜenie, Ŝe wiele programów działa jednocześnie. Działający w danej chwili program nazywany jest procesem. KaŜdemu procesowi przypisany jest jednoznaczny numer zwany identyfikatorem procesu, lub PID. Proces moŜe być wykonywany jako pierwszoplanowy (wówczas zajmuje on standardowe wejście i wyjście, czyli monitor i klawiaturę) lub jako proces tła (wówczas „nie widać” jego działania a procesem pierwszoplanowym jest inny proces). Na ogół proces uruchamiany jest z prawami uŜytkownika, który proces uruchomił. Rozpocząć wykonywanie procesu moŜemy na przykład poprzez wydanie dowolnej komendy. jobs – Wyświetla procesy uśpione i procesy uruchomione w tle. ps – Wyświetla wszystkie procesy (łącznie z pierwszoplanowymi), w zaleŜności od uŜytych opcji wyświetla róŜne informacje o procesach. kill – SłuŜy do „zabijania” procesów. Jako zwykły uŜytkownik moŜna zabić tylko te procesy, które samemu się uruchomiło (root moŜe zabić kaŜdy proces). Ctrl+Z – Skrót słuŜy do uśpienia procesu pierwszoplanowego. System zawiesza jego wykonywanie pozostawiając go w pamięci. bg, fg – Polecenia słuŜą do wznawiania uśpionych procesów. fg wznawia wykonywanie jako procesu pierwszoplanowego, bg jako procesu tła. Polecenie bez parametru odnosi się do procesu oznaczonego przez ‘+’ (polecenie jobs). JeŜeli chcemy wznowić wykonywanie innego procesu, jako parametr podajemy numer zadania poprzedzony znakiem ‘%’. & - Umieszczenie tego znaku na końcu polecenia uruchamia proces od razu w tle. Np. ls –R & Podstawy Informatyki (semestr I) laboratorium 2 Zadania do wykonania Zadanie 1 • • Zaloguj się do systemu i wyświetl bieŜącą datę, sprawdź moŜliwości formatowania daty i czasu. Wyświetl listę zalogowanych uŜytkowników i szczegółowe informacje o jednym z nich. Zadanie 2 Utwórz w katalogu domowym katalog lab2, a w nim source i target. W katalogu source utworzyć 17 pustych plików: plik0 ... plik9 oraz abc ... ghi. • Znaleźć (uŜywając jednokrotnego polecenia find) pliki plik3 ... plik8. • Skopiować (jednym poleceniem) wszystkie pliki z katalogu source do katalogu target, w których nazwie występuje jedna z liter ‘b’,’h’ lub ‘i’. Zadanie 3 Utworzyć w katalogu lab2 dwa pliki p1.txt i p2.txt z dowolnym tekstem. Zmień prawa dostępu w ten sposób, aby tylko właściciel miał prawo do zapisu i odczytu pliku p1.txt. Plik p2.txt powinien być moŜliwy do odczytania przez wszystkich, natomiast właściciel powinien mieć takŜe prawo do zapisu danych w pliku. Zadanie 4 • • Utworzyć dowiązanie twarde do pliku p1.txt o nazwie d1.txt. Sprawdź zawartość obu plików i ich rozmiar. Zmień zawartość pliku p1.txt (lub d1.txt) i ponownie wyświetl zawartość obu plików (najlepiej jednym poleceniem). Usuń plik p1.txt i sprawdź co wskazuje teraz dowiązanie d1.txt. Utwórz dowiązanie symboliczne s2.txt do pliku p2.txt i postępuj analogicznie jak w punkcie poprzednim. ZADANIA DODATKOWE Zadanie 5 • • • • • • Uruchom trzykrotnie polecenie cat w taki sposób, by umoŜliwiało tworzenie nowego pliku (dla kolejnych wywołań mają to być pliki o nazwach a1.txt, a2.txt, a3.txt). Po kaŜdym uruchomieniu polecenia uśpij je za pomocą odpowiedniej sekwencji. Uruchomić polecenie ls bezpośrednio jako proces tła. Wyświetlić wszystkie uśpione procesy tła (poleceniem jobs). Przenieść jeden proces „cat” do postaci pierwszoplanowego i dokończyć tworzenie nowego pliku a?.txt. Wykorzystać polecenie PS do wyświetlenia procesów uruchomionych przez uŜytkownika. Za pomocą polecenia kill zabić procesy „ls” i 2x „cat”. Zadanie 6 Wylistować wszystkie pliki z wszystkich katalogów systemu. Lista plików powinna być zapisana do pliku lista.txt, a ewentualne błędy do err.txt. Proces ten uruchomić bezpośrednio w tle i zaraz potem wykonać kilkakrotnie polecenie jobs. Zaobserwować wynik polecenia jobs.