Wykład 0
Transkrypt
Wykład 0
Spis treści Spis treści 1 Poszukiwanie pomocy 2 Powłoka bash i konsola tekstowa 2.1 Uruchamianie programów, skrypty . . . . . . . 2.2 Przekierowanie wejścia i wyjścia, potoki i listy 2.3 Polecenia złożone . . . . . . . . . . . . . . . . 2.4 Instrukcje warunkowe, p˛etle, funkcje . . . . . . 2.5 Podstawienia . . . . . . . . . . . . . . . . . . 1 . . . . . 2 3 4 5 6 7 3 System plików 3.1 Ścieżki, specjalne katalogi, symbole wieloznaczne . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 System uprawnień . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Struktura katalogów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 9 4 Podstawowe komendy 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Poszukiwanie pomocy Poszukiwanie pomocy • Opcja --help lub -h — krótka ściaga ˛ na temat dost˛epnych opcji i składni polecenia • Polecenie man (manual - podr˛ecznik) Wywołanie: man polecenie • Polecenie info — rozbudowane podr˛eczniki • Google (!) Klawisze używane w programie man spacja stron˛e niżej PgUP, PgDown strona do góry/w dół g przewija na poczatek ˛ G przewija na koniec / wyszukiwanie n nast˛epne wystapienie ˛ (w kierunku końca) N poprzednie wystapienie ˛ (w kierunku poczatku) ˛ q wyjście Wi˛ecej informacji można znaleźć w podr˛ecznikach man man oraz man less 1 . 1 Program . . . . . man korzysta z usług programu dzielacego ˛ na strony (pagera). Najcz˛eściej jest to less, ale nie jest to jedyna możliwość. 1 Cz˛eści podr˛ecznika man 1. Programy wykonywalne i polecenia powłoki 2. Wywołania systemowe (funkcje udost˛epnianie przez jadro) ˛ 3. Funkcje biblioteczne 4. Pliki specjalne 5. Formaty plików, konwencje 6. Gry 7. Różne 8. Administracja systemem 9. Niestandardowe funkcje jadra ˛ Konwencje przyj˛ete w podr˛ecznikach systemowych pogrubienie (pojaśnienie) kursywa (podkreślenie) [-abc] -a|-b argument ... [wyrażenie] ... 2 wpisać dokładnie jak pokazano zastapić ˛ właściwym argumentem argumenty opcjonalne - dowolna kombinacja lub żaden alternatywa wykluczajaca ˛ (XOR) argument jest powtarzalny wyrażenie jest powtarzalne Powłoka bash i konsola tekstowa Klawiatura w powłoce systemowej enter zatwierdzenie komendy delete kasuje znal z prawej strony kursora backspace kasuje znak z lewej strony kursora tab dopełnienie nazwy polecenia lub nazwy pliku/katalogu ↑↓ przemieszczenie kursora; w linii komend poprzedni/nast˛epny wiersz w historii ←→ przemieszczenie kursora CTRL + c przerwanie bieżacej ˛ komendy CTRL + d koniec wejścia CTRL + z zawieszenie wykonywania programu2 2 Wi˛ ecej na ten temat w man bg i man bg 2 2.1 Uruchamianie programów, skrypty Wydawanie poleceń w powłoce systemowej Składnia polecenie opcje argumenty • Opcje (parametry) modyfikuja˛ działanie polecenia • Argumenty zwykle nazwa pliku lub inny łańcuch znaków na którym wykonywane jest działanie Uwaga! W przeciwieństwie do systemu Windows, systemy z rodziny Unix rozróżniaja˛ wielkie i małe litery. Uruchamianie programów • Plik programu musi mieć nadany atrybut wykonywalności: chmod a+x plik_programu • Jeśli program znajduje si˛e w ścieżce przeszukiwania, uruchamiamy go wpisujac ˛ nazw˛e: firefox • Jeśli katalog, w którym znajduje si˛e plik wykonywalny lub zależy nam na wykonaniu programu znajdujacego ˛ si˛e w specyficznej lokalizacji, konieczne jest podanie ścieżki bezwzgl˛ednej lub wzgl˛ednej: /usr/local/bin/firefox ./firefox Opcje poleceń i programów • Wersja krótka (jednoliterowe) – poprzedzone znakiem – jeśli nie wymagaja˛ podania wartości – można łaczyć ˛ ls -al jest równoważne ls -a -l – zwykle kolejność liter nie ma znaczenia – wartość parametru nast˛epuje po stosownej literze, oddzielona spacja˛ ls -w 50 • Wersja długa (wi˛ecej niż jedna litera) – poprzedzone -– nie można łaczyć ˛ ls --all --size --human-readable – wartość parametru podaje si˛e po znaku równości ls --width=50 • Bardzo cz˛esto opcje w wersji długiej maja˛ krótkie odpowiedniki: ls --all --size --human-readable ls -ash 3 Skrypty powłoki Skrypt jest plikiem tekstowym zawierajacym ˛ ciag ˛ poleceń wykonywanych wsadowo przez powłok˛e. • Pierwsza linia zawiera specyfikacj˛e użytego interpretera poleceń – w naszym przypadku jest to bash #!/bin/bash • Tekst na prawo od symbolu # traktowany jest jako komentarz • Nast˛epne wiersze zawieraja˛ polecenia • Jeśli linia polecenia jest zbyt długa, na jej końcu stawiamy znak \(backslash) i kontynuujemy polecenie w nast˛epnej linii • Składnia, konstrukcje sterujace ˛ oraz wykorzystanie zmiennych opisane sa˛ w podr˛eczniku. 2.2 Przekierowanie wejścia i wyjścia, potoki i listy Przekierowanie wejścia/wyjścia 1/3 stdin — standardowe wejście — zwykle klawiatura stdout — standardowe wyjście — zwykle ekran terminala stderr — Standardowe wyjście bł˛edów — zwykle ekran terminala Przekierowanie wejścia/wyjścia 2/3 Przekierowanie standardowego wejścia: • Przekierowanie pliku na standardowe wejście: mail user < tresc_listu • Przekierowanie nast˛epnych linii na standardowe wejście: main [email protected] << END Witam, Prosz˛ e zgłosić si˛ e jutro do administratora Z poważaniem, Administrator END Przekierowanie wejścia/wyjścia 3/3 Przekierowanie standardowego wyjścia: • Z nadpisaniem istniejacego ˛ pliku: ls -al > listing.txt • Z dopisaniem na końcu istniejacego ˛ pliku: cat plik1 >> plik2 Przekierowanie standardowego wyjścia bł˛edów: • Przekierowanie stderr do pliku: cp -a /home/user /backups 2> error.log • Przekierowanie stdout i stderr do pliku: find ./ -iname "*ala*" &> plik 4 Potok [time [-p]] [ ! ] polecenie [ | polecenie2 ... ] • time podaje czas wykonania potoku • każde polecenie wykonywane jest w oddzielnej powłoce • jeśli jest obecny symbol ! to kod zakończenia jest negowany Listy • Lista jest potokiem lub sekwencja˛ kilku potoków rozdzielonych operatorem • Operatory: ; polecenia zostana˛ wykonane sekwencyjnie & polecenie zostanie wykonane w tle bez oczekiwania na zakończenie && lista typu AND || lista typu OR Listy • Lista typu AND: polecenie && polecenie2 Polecenie 2 zostanie wykonane wtedy i tylko wtedy, kiedy kod zakończenia pierwszego polecenia b˛edzie równy 0 • Lista typu OR: polecenie || polecenie2 Polecenie 2 zostanie wykonane wtedy i tylko wtedy, kiedy kod zakończenia pierwszego polecenia b˛edzie różny od 0 2.3 Polecenia złożone Polecenia złożone (lista) lista wykonywana jest w podpowłoce { lista; } grupowanie poleceń ((wyrażenie)) obliczanie wartości wyrażenia arytmetycznego [[ wyrażenie ]] zwraca kod 0 lub 1 w zależności od wartości logicznej wyrażenia Zasady obliczania wyrażeń arytmetycznych oraz warunkowych opisano w podr˛eczniku man bash 5 2.4 Instrukcje warunkowe, p˛etle, funkcje Instrukcja if if lista; then lista; [ elif lista; then lista; ] ... [ else lista; ] fi Instrukcja case case słowo in [ [(] wzorzec [ | wzorzec ] ... ) lista ;; ] ... esac Słowo jest porównywane ze wzorcem, jeśli do siebie pasuja˛ - wykonana zostanie odpowiednia lista. P˛etla for for nazwa [ in słowo ] ; do lista ; done P˛etla for Składnia alternatywna for (( wyr1 ; wyr2 ; wyr3 )) ; do lista ; done P˛etle while i until • P˛etla while jest wykonywana dopóki warunek jest spełniony while lista; do lista; done • P˛etla until jest wykonywana dopóki warunek jest niespełniony until lista; do lista; done Deklaracja funkcji • Deklaracja funkcji: [ function ] nazwa () { lista; } – return – zakończenie wykonywania funkcji – local – definicja zmiennych lokalnych Wi˛ecej w podr˛eczniku man bash • Wywołanie funkcji: nazwa [parametr] ... 6 2.5 Podstawienia Podstawienia • Podstawienie zawartości zmiennej: $nazwa lub ${nazwa} Nawiasy klamrowe sa˛ obowiazkowe, ˛ jeśli nazwa jest parametrem pozycyjnym o wi˛ecej niż jednej cyfrze lub nast˛epny znak byłby interpretowany jako wchodzacy ˛ w skład nazwy. • Podstawienie wyniku polecenia: $(polecenie) lub ‘polecenie‘ • Podstawienie wartości wrażenia arytmetycznego: $((wyrażenie)) Wi˛ecej w podr˛eczniku man bash 3 System plików 3.1 Ścieżki, specjalne katalogi, symbole wieloznaczne Katalogi i ścieżki — terminologia 1/3 Ścieżka dost˛epu (nazwa ścieżki) Opisuje położenie pliku w systemie plików • Ścieżka bezwzgl˛edna - w stosunku do korzenia systemu plików – W systemie Unix - zaczyna si˛e znakiem / /usr/share/vim – W systemie Windows - zaczyna si˛e litera˛ dysku c:\widows\user.dat • Ścieżka wzgl˛edna - w stosunku do katalogu bieżacego ˛ – ./ - katalog bieżacy ˛ – ../ - katalog poziom wyżej Katalogi i ścieżki — terminologia 2/3 Katalog bieżacy ˛ (roboczy) Katalog wskazany w ostatnim poprawnie wykonanym poleceniu zmiany katalogu lub ustalony domyślnie w środowisku zadania. • W systemie Unix: pwd • W systemie Windows: cd (bez parametru) Katalogi i ścieżki — terminologia 3/3 Ścieżka przeszukiwania Ciag ˛ katalogów przeszukiwany w celu odnalezienia nazwy programu do wykonania. • zmienna środowiskowa PATH echo $PATH Separator ścieżki • W systemie UNIX — / (slash) • W systemie Windows — \ (backslash) 7 Symbole wieloznaczne * zast˛epuje dowolny ciag ˛ (0 lub wi˛ecej) znaków ? zast˛epuje dokładnie jeden znak • ls a aa aaa abc adca caa bdc • ls *c* abc adca caa bdc • ls a?c abc bdc 3.2 System uprawnień Kontrola dost˛epu • W systemie Unix/Linux implementowane sa˛ mechanizmy kontroli dost˛epu do plików • Prawa określane sa˛ dla właściciela (user), grupy (group) i pozostałych użytkowników (other) • Typy praw dost˛epu: read (numerycznie - 4) odczyt pliku, wyświetlenie zawartości katalogu write (numerycznie - 2) zapis/zmiana pliku, tworzenie plików w katalogu execute (numerycznie 1) wykonanie pliku, wejście do katalogu Kontrola dost˛epu ciag ˛ dalszy • Dodatkowe prawa - pliki wykonywalne: – Set User ID (suid) – program b˛edzie wykonywany na prawach właściciela a nie uruchamiajacego ˛ – Set Group ID (sgid) – program b˛edzie wykonywany na prawach grupy właściciela – Sticky Bit – obecnie niewykorzystywany Ignorowane w przypadku skryptów • Dodatkowe prawa - katalogi: – Set User ID (suid) – ignorowany – Set Group ID (sgid) – utworzone pliki/katalogi b˛eda˛ należały do tej samej grupy co katalog – Sticky Bit – utworzone pliki/katalogi b˛eda˛ mogły być usuni˛ete tylko przez właściciela 8 Prawa dost˛epu do plików u g - r w x r - r w x - - r w - r - r w s r d r w x r w d r w x r w 4 2 1 4 2 3.3 x x s x 1 r r r 4 o w w 2 x x x t 1 numerycznie 751 700 640 4755 2777 1777 Struktura katalogów Podstawowe katalogi / “korzeń” systemu plików /bin także /usr/bin, programy wykonywalne /etc pliki konfiguracyjne /home katalogi domowe użytkowników /lib biblioteki systemowe /mnt montowane dodatkowe systemy plików /opt dodatkowe oprogramowanie /sbin także /usr/sbin, narz˛edzia administracyjne /srv pliki serwerów usług /tmp katalog tymczasowy /usr oprogramowanie /var logi, cache, kolejki itp. Opcjonalne i nie zawsze dost˛epne /boot jadro ˛ systemu wraz z przyległościami /dev pliki urzadzeń ˛ /lib32 biblioteki systemowe - wersje 32bit /lib64 biblioteki systemowe - wersje 64bit /lost+found uratowane fragmenty plików3 /media nośniki wymienne /proc wirtualny system plików - m. in. informacje o procesach /root katalog domowy administratora /sys wirtualny system plików - parametry jadra ˛ 3 Zakładany w korzeniu każdego systemu plików 9 (suid) (sgid) (sticky bit) 4 Podstawowe komendy Poruszanie si˛e po systemie plików ls wyświetl zawartość kartoteki • format długi: ls -l • z plikami ukrytymi: ls -a pwd wyświetl ścieżk˛e kartoteki roboczej cd zmień katalog • powrót do katalogu domowego: cd cd ~/ • przejście katalog wyżej: cd .. Operacje na plikach i katalogach mkdir utwórz katalog rmdir usuń katalog (pusty!) rm usuń plik mv przenieś, zmień nazw˛e cp skopiuj touch utwórz plik / ustaw dat˛e pliku ln tworzenie dowiazań ˛ chmod zmiana uprawnień chown zmiana właściciela chgrp zmiana grupy Wyświetlanie zawartości pliku cat wypisz zawartość pliku (plików) na standardowe wyjście more wyświetl zatrzymujac ˛ si˛e po każdej stronie less wyświetl z możliwościa˛ przewijania (i nie tylko!) head wyświetl poczatek ˛ pliku tail wyświetl koniec pliku pr wyświetl przygotowujac ˛ do wydruku pg wyświetl z podziałem na strony grep wyświetl linie pasujace ˛ do wzorca file identyfikacja plików 10 Procesy ps lista procesów top lista procesów z uwzgl˛ednieniem wykorzystania zasobów bg wznów zatrzymany proces w tle fg wznów zatrzymany proces jobs lista zatrzymanych procesów kill zabij proces (prześlij sygnał do procesu) killall zabij wszystkie procesy & uruchom proces w tle acroread Wyklad.pdf & Kim jestem, gdzie jestem, która godzina whoami wypisuje nazw˛e użytkownika who lista zalogowanych użytkowników id zwraca identyfikator użytkownika i grup do których należy date wypisuje/ustawia dat˛e i godzin˛e df ilość wolnego miejsca w systemie plików du ilość zaj˛etego miejsca w katalogu uname informacje o systemie whereis informacja o położeniu pliku wykonywalnego which wskazanie, który plik wykonywalny jest pierwszy w ścieżce wyszukiwania Garść ciekawych narz˛edzi find “kombajn” do wyszukiwania plików mc narz˛edzie do zarzadzania ˛ plikami vim edytor tekstu nano edytor tekstu sed edytor wierszowy 11