Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

Linux - Notatki - Programowanie - Część 2, Notatki z Informatyka

Informatyka: notatki z zakresu programowania dotyczące struktury Linuxa. Część 2.

Typologia: Notatki

2012/2013

Załadowany 12.04.2013

Norbert_88
Norbert_88 🇵🇱

4.5

(31)

322 dokumenty

Podgląd częściowego tekstu

Pobierz Linux - Notatki - Programowanie - Część 2 i więcej Notatki w PDF z Informatyka tylko na Docsity! Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 24 Rezultatem egzekucji polecenia - ls -l - jest lista zarówno plików jak katalogów, otóż chcielibyśmy wiedzieć ile ich jest ? Zastosowanie mechanizmu potoków umożliwi nam ich policzenie. Wiemy, że powyższa lista jest wejściem standardowym następnego polecenia, które wykona stosowne obliczenie. Tym poleceniem – jak by może pamiętacie – jest : wc -l . Tak więc by policzyć pliki katalogu domowego musimy wykonać następujące polecenie „potok” : $ ls - l | wc -l 5 Wyobraźmy sobie teraz, że chcemy wyświetlić na ekranie wszystkie pliki zawarte w katalogu /usr, podejrzewamy (dlaczego ?), że może być ich dużo. Co zrobić by ich lista nie „przedefilowała”, bez zatrzymania na ekranie co uniemożliwiłoby nam spokojne jej odczytanie. Otóż w tym wypadku też możemy zastosować mechanizm potoku : $ ls –l /usr | more #jak inaczej możemy obejrzeć w/w listę stronicę po stronicy ? Jak zapewne zauważyliście na ekranie wyświetlany jest tylko rezultat końcowy „potoku”, dane pośrednie np rezultat polecenia : ls –l z „potoku” : ls -l | wc -l , giną. Czy nie ma żadnego sposobu ich zapisania np w jakimś oddzielnym pliku ? Mechanizm zapisywania w plikach rezultatów poszczególnych poleceń wchodzących w skład „potoku” uzyskujemy przy pomocy polecenia : tee nazwa_pliku . Jeśli chcemy zapisać rezultat polecenia : ls -l to nasz potok przybierze formę następującą : $ ls -l | tee plikb | wc -l Mechanizm zapisywania w plikach rezultatów poszczególnych poleceń wchodzących w skład „potoku” nazywamy rozgałęzieniem „potoku”. Rezultat „potoku” może być uzyskany także przy pomocy odpowiednich skierowań : Skierowanie do pliku Użycie „potoku” $ polecenie1 > plik1 polecenie1 | polecenie2 $ polecenie2 < plik1 $ rm plik1 $ polecenie1 > plik_a $ polecenie2 < plik_a > plik_b polecenie1 | polecenie2 | polecenie3 $ polecenie3 < plik_b Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 25 Mechanizm funkcjonowania potoków wymaga od użytkownika zapamiętania nie tylko znaczeń poszczególnych poleceń, ale także pamiętania ich rezultatów. Podamy teraz kilka „potoków’’, których interpretacje rezultatów pozostawiamy czytelnikowi. $ who | wc -l $ cat /etc/passwd | wc -l $ cat /etc/group | wc -l $ cat /etc/passwd | grep /bin/bash | wc -l $ ls -l | grep ‘’rwxr-xr-x’’ | more Zgrupowania poleceń Linux umożliwia nam wystukanie wielu poleceń jednocześnie, pod warunkiem, że polecenia te będą oddzielone między sobą „ ; ”. Polecenia są wykonywane w takim przypadku po kolei, niezależnie od siebie. Przykład : $ ls; pwd; date #polecenia są wykonywane po kolei od lewej do prawej strony drwxr-xr-x 2 piotr oracle 1024 May 15 2003 test drwxr-xr-x 2 ola oracle 512 May 25 2003 katalog5 drwxr-xr-x 5 piotr oracle 1024 May 17 2003 test1 -rwxr-xr-x 1 piotr oracle 1536 May 18 2003 plikb -drwxr-xr-x 2 piotr oracle 1325 May 15 2003 plikc /home/piotr Fri May 15 15:14:38 GMT-0100 2003 Polecenie te mogą być zgrupowane przy pomocy nawiasów i skierowane do pliku lub użyte w mechanizmie „potoku” $ ( ls ; pwd ; date ) > plik_wyjscie Istnieją także w Linuksie operatory, które warunkują wykonanie danego polecenia w zależności od tego jaki rezultat przyniesie wykonanie polecenia je poprzedzającego. Operator && pozwala wykonać polecenie tylko w tym wypadku jeżeli egzekucja polecenia je poprzedzającego została wykonana bez błędu. Przykład : Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 28 Rozdział 5 : Prawa Po przestudiowaniu tego rozdziału, czytelnik powinien umieć rozpoznawać i modyfikować uprawnienia wszystkich rodzajów plików oraz definiować prawa automatycznie. Szczególną uwagę poświęcimy prawom katalogów. W rozdziale tłumaczymy także zarządzanie grupami użytkowników. 5.1 Zarządzanie prawami System Linux jest systemem wielodostępnym w którym dostęp do plików jest regulowany przez prawa Polecenia umożliwiające zarządzaniem uprawnieniami plików, katalogów, użytkowników :  ls -l : wyświetla praw plików  chmod : umożliwia zmienienie praw przydzielonych plikowi  umask : automatyczne przydzielanie uprawnień  chgrp :  id : wyświetla identyfikacje użytkownika  su : umożliwia zmianę identyfikacji użytkownika  newgrp : umożliwia zmienienie grupy użytkownikowi 5.2 Poznanie atrybutów pliku (ls –l) $ ls -l plika (1) -rwx|r-x|--- 1 piotr nauka 265 maj 17 14:45 plika !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! nazwa pliku (8) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!data i godzina ostatniej modyfikacji pliku (7) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! objętość (6) !!!!!!!!!!!!!!!!!!!!!!!!!!! grupa (5) !!!!!!!!!!!!!!!!! właściciel (8) !!!!!!!!!!!!!!!! liczba łączy (3) !!!!!!!!!!!! prawa (2) ! typ pliku „-” kreska oznacza plik normalny „d” plik jest katalogiem. (1) a b c (1) -|rwx|r-x|--- Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 29 a  prawa właściciela pliku b  prawa grupy do której należy właściciel c  prawa reszty użytkowników systemu Jak widzimy aby kontrolować dostęp do plików, Linux dzieli użytkowników systemu na trzy kategorie : 6. właścicieli plików 7. członków grupy do której należy właściciel grupy 8. innych użytkowników systemu Każda kategoria użytkowników dysponuje trzema prawami : 9. prawem lektury („read”), które umożliwia czytanie pliku, prawo te umożliwia np. wykonanie kopi pliku 10. prawem pisania („write”), które umożliwia modyfikacje pliku 11. prawem egzekucji pliku („execute”)które umożliwia traktowanie pliku jako polecenia (lub jego zbioru). Prawo to ma sens tylko dla skryptów i programów. 5. 3 Modyfikacja praw pliku (1) Polecenie chmod umożliwia właścicielowi pliku lub administratorowi systemu zmienić uprawnienia pliku. Jego forma jest następująca $ chmod u-w plik1 Ciąg znaków u-w symbolizuje zmianę praw pliku , na pierwszym miejscu (w naszym przykładzie „u”) określa się kto ma prawo korzystać z pliku, dysponujemy następującymi symbolami u  symbolizuje właściciela pliku g  symbolizuje grupę do której plik jest przypisany o  reszta użytkowników systemu a  symbol ten oznacz : wszystkich  u+g+o Na drugim miejscu umieszcza się symbole zmiany praw : +  dorzucamy prawo -  likwidujemy prawo =  przypisujemy prawo Na trzecim miejscu umieszczamy symbole, czego dotyczy prawo : r  prawo czytania pliku w  prawo modyfikacji pliku Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 30 x  prawo jego egzekucji Przykłady : Likwidujemy prawo modyfikacji pliku dla jego właściciela : $ chmod u-w plik1 Dorzucamy prawo modyfikacji dla grupy do której jest przypisany plik : $ chmod g+w plik1 5.4 Modyfikacja praw pliku (2) $ chmod 740 plikb 400  prawo czytania dla właściciela pliku 200  prawo pisania dla właściciela pliku 100  prawo egzekwowania pliku przypisane jego właścicielowi 040  prawo czytania dla grupy użytkowników 020  prawo pisania dla grupy użytkowników 010  prawo egzekwowania pliku przypisane grupie użytkowników 004  prawo czytania przypisane innym użytkownikom 002  prawo pisania przypisane innym użytkownikom 001  prawo egzekwowania przypisane innym użytkownikom Polecenie chmod pozwala zmienić prawa przy pomocy wartości wyrażonych w kodzie binarnym np jak nadać wszystkie prawa właścicielowi pliku plikb, prawa do czytania i egzekwowania tego pliku grupie do której należy jego właściciel i prawo do czytania pliku innym użytkownikom systemu ? $ chmod 754 plikb System dziesiętny rózni się zasadniczo od swoich poprzedników (np zapisu rzymskiego, systemu Azteków opartego na 5 itd) . Za Charlesem Petzold można go scharakteryzować w następujący sposób : 1. dziesiętny system liczbowy jest systemem pozycyjnym co oznacza, że określona cyfra reprezentuje różną wartość zależnie od swego miejsca w liczbie. Miejsce cyfry jest więc równie, jak jej rzeczywista wartość.. Zarówno liczba 200 jak i 20000 mają na początku tylko jedną dwójkę, jednak wiemy, że dwadzieścia tysięcy jest większe od dwustu Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 33 Podsumujmy : Potęga 2 1 0 2 1 0 2 1 0 1 1 0 | 1 1 1| 0 0 1 = 671 1 1 0 1 4 + 2 + 0 = 6 1 1 1 4 +2+ 1 = 7 0 0 1 0 + 0+1 = 1 System dziesiętny system binarny system octal system hexa 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 5.5 Prawa katalogów $ ls –ld katalog drwxr-x--- 1 piotr grupa 265 czerwiec 20 14:00 katalog r prawo lektury plików zawartych w katalogu w prawo tworzenia i usuwania plików w katalogu Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 34 x prawo dostępu do plików w katalogu Mechanizm lektury i nadawania praw katalogowi jest analogiczny do tego, który używamy w stosunku do plików. Jednak prawa katalogów interpretujemy inaczej i zrozumienie tego jest konieczne do odczytywania, usuwania i tworzenia plików, które katalog zawiera. 4 Prawo lektury katalogu pozwala poznać listę plików, które katalog zawiera, przy pomocy polecenia ls możemy (posiadając to prawo) wyświetlić pliki na ekranie. 5 Prawo egzekucji pozwala na uzyskanie dostępu do plików zawartych w katalogu 6 Prawo tworzenia plików – ma sens tylko wtedy gdy posiadamy jednocześnie prawo dostępu do plików (czy możesz wytłumaczyć dlaczego ?) . Prawo to umożliwia usuwanie starych i tworzenie nowych plików Możemy wyróżnić następujące kombinacje praw które może posiadać użytkownik * rwx  użytkownik posiada wszystkie prawa * r-x  użytkownik ma prawo dostępu do plików katalogu * ---  użytkownik nie ma żadnych praw * --x  użytkownik posiada prawo dostępu do plików, których nazwy zna Przypomnijmy teraz podstawowe polecenia używane do zarządzania katalogami : mkdir (make direktory ) – przy pomocy tego polecenia tworzymy katalogi. Załóżmy, ze znajdujemy się w katalogu domowym /home/piotr $ mkdir katalog1 katalog2 (utworzyliśmy katalogi, które znajdują się w katalogu Domowym) Chcemy teraz utworzyć w katalogu - katalog1 - podkatalog o nazwie cwiczenia, ale nadal Będąc w katalogu domowym $ mkdir katalog1/cwiczenia Czy wiesz jak można to zrobić inaczej ? rmdir (remove direktory) - przy pomocy tego polecenia usuwamy katalogi Załóżmy, że chcemy usunąć katalog o nazwie katalog2 , który przed chwilą utworzyliśmy $ rmdir katalog1 katalog2  po egzekucji tego polecenia otrzymamy na ekranie następujący napis $ rmdir: katalog1: Directory not empty  czyli polecenie rmdir usunęło tylko katalog2 Pusty Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 35 Jeżeli wykonamy polecenie ls $ ls katalog1 W jaki sposób go usunąć? Otóż do usuwania katalogów z zawartością służy polecenie rm -r nazwa katalogu  jest to polecenie bardzo niebezpieczne w wypadku jeżeli po opcji -r zapomnisz wpisać nazwę katalogu, który chcesz usunąć Czy wiesz co się może wtedy stać ? 5.7 Zarządzanie grupami Polecenia : ls –l  polecenie to wskazuje grupę do której przynależy plik chgrp  polecenie to zmienia przynależność pliku z np grupy a d o grupy b newgrp  polecenie to umożliwia, podczas sesji, zmienić przynależność pliku z grupy zdefiniowanej w pliku /etc/passwd, na początku sesji id  pozwala poznać aktualną grupę Użytkownicy przynależą do jednej lub wielu grup i prawa dostępu do plików, których nie są właścicielami, zależą od tej przynależności. Pliki utworzone przez użytkownika należą do jego aktualnej grupy. Grupa ta jest inicjalizowana w momencie otwarcia sesji, dzięki plikowi etc/passwd Plik użytkowników /etc/passwd Lista użytkowników systemu znajduje się w pliku /etc/passwd , który jest dostępny dla wszystkich użytkowników (to znaczy może być wyświetlony na ekranie przez wszystkich) i który składa się z następujących kolumn : 1. nazwa użytkownika 2. znak x 3. numer użytkownika 4. numer grupy 5. komentarz 6. katalog domowy Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 38 -r-xr-x—x 2 ola personel 452460 maj 25 2002 /home/ola/prog.sh Kto może wyegzekwować ten program ? Ćwiczenie 5. Polecenie ls -ld /home/piotr wyświetla na ekranie : drwxrwxr-x 2 piotr konto 512 maj 15 2002 /home/piotr Jacy użytkownicy mają uprawnienia do tworzenia lub wymazywania plików w tym katalogu ? Ćwiczenie 6. Czy Piotr ma prawo wymazać ze swego katalogu domowego plik, który posiada następujące atrybuty : -r--------- 2 ola konto 2416 Maj 2 2002 plik.txt Ćwiczenie 7. Utwórz katalog o nazwie „prywatne” w ten sposób by inni użytkownicy, należący do tej samej grupy, nie mieli do niego dostępu Ćwiczenie 8. Wykonaj polecenie, które umożliwi użytkownikom z twojej grupy „czytanie” katalogu „prywatne”. Ćwiczenie 9. Czy możesz zmienić nazwę swego katalogu domowego ? dlaczego ? Ćwiczenie 10. Jaką wartość oktalną użyć by w momencie nadawania praw otrzymać : drwxr-x--- dla katalogu -rw-r----- dla pliku Ćwiczenie 11. Podłącz się do grupy „bin”. Wytłumacz rezultat polecenia. Ćwiczenie 12. Katalog „prywatne” posiada następujące atrybuty : $ ls -ld prywatne drwxr-x--- 2 piotr konta 1024 czerwiec 20 10:35 prywatne Wykonaj polecenie, które dołącza grupę „zaliczka” (której jesteś członkiem) do katalogu „prywatne” Ćwiczenie 13. Czy Piotr może zmienić grupę pliku plik.txt, który się znajduje w jego katalogu domowym ? $ ls -l plik.txt -r-------- 2 ola konto 2416 Maj 10 2002 plik.txt Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 39 Ćwiczenie 14. Jakich informacji dostarczają następujące polecenia : $ who am i $ id Ćwiczenie 15. Sprawdź czy w twoim systemie możesz pisać na ekranie operatora „/dev/console” Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 40 Rozdział 6 : Filtry do czego służą ? grep  poszukiwanie ciągu znaków w pliku cut  selekcjonuje (znajduje) pojedyńcze znaki lub zony sort  uporządkowanie, fuzja plików more  wyświetlanie pliku strona po stronie wc  liczy linie, słowa, i znaki tail  wyświetla koniec pliku head  wyświetla koniec pliku nl  numeruje linie pliku tr  prosta modyfikacja pliku Czym jest filtr ? Jest on poleceniem, które wykonuje pewno działanie na plikach zawierających tekst. Rezultat tego działania, który jest także tekstem, wyświetlany jest na ekranie (chociaż nie tylko). Powiązanie między sobą wielu filtrów (czyli jednoczesna egzekucja kilku poleceń) jest możliwa dzięki użyciu metody zwanej przekierowaniem lub innej metody nazywanej „potokiem”. Zapoznamy się teraz z podstawowymi filtrami używanymi w systemie Linux. Przykłady : $ cat poemat Opadają kwasem wina Liście dębu i czereśni I zza wody psi przyleśni Szczekają jak mandolina Bałałajkę psiej tęsknoty Uwiązali na łańcuchu Za to ździerze-mgle na uchu Dynda miesiąc – kolczyk złoty $ wc -l poemat # polecenie to liczy liczbę lin w wierszu „poemat” 8 poemat $ ls | wc -l #liczy liczbę plików znajdujących się w katalogu – dlaczego ? – spróbuj znaleźć polecenie, które wyświetliłoby liczbę znaków w katalogu 5 $ nl poemat #numeruje linie poematu Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 43 Liście dębu i czereśni Szczekają jak mandolina Uwiązali na łańcuchu Za to ździerze-mgle na uchu Dynda miesiąc – kolczyk złoty Opcja -l jest użyteczna kiedy poszukujemy ciągu znaków w wielu plikach. 6.3 Polecenie cut $ cut –f1,3 -d’,’ 1,un,one,ein 1,one 2,deux,two,zwei 2,two 3,trois,three,drei 3,three 4,quatre,four,vier 4,four 5,cinq,five,funf  cut  5,five 6,six,six,sechs 6,six 7,sept,seven,sieben 7,seven 8,huit,eight,acht 8,eight 9,neuf,nine,neun 9,nine 10,dix,ten,zen 10,ten Polecenie cut 6.4 Polecenie sort $ sort +3 –t’,’ liczba 1,un,one,ein 8, huit,eight,acht 2,deux,two,zwei 3,trois,three,drei 3,trois,three,drei 1,un,one,ein 4,quatre,four,vier 5,cinq,five,funf 5,cinq,five,funf  sort  9,neuf,nine,neun 6,six,six,sechs 6,six,six,sechs 7,sept,seven,sieben 7,sept,seven,sieben 8,huit,eight,acht 4,quatre,four,vier 9,neuf,nine,neun 10,dix,ten,zen 10,dix,ten,zen 2,deux,two,zwei Przykłady : Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 44 $ cat liczba 2,deux,two,zwei 8,huit,eight,acht 3,trois,three,drei 4,quatre,four,vier 1,un,one,ein 5,cinq,five,funf 10,dix,ten,zen 6,six,six,sechs 7,sept,seven,sieben 8,huit,eight,acht 9,neuf,nine,neun $ sort liczba 1,un,one,ein 10,dix,ten,zen 2,deux,two,zwei 3,trois,three,drei 4,quatre,four,vier 5,cinq,five,funf 6,six,six,sechs 7,sept,seven,sieben 8,huit,eight,acht 9,neuf,nine,neun $ sort –n liczba 1,un,one,ein 2,deux,two,zwei 3,trois,three,drei 4,quatre,four,vier 5,cinq,five,funf 6,six,six,sechs 7,sept,seven,sieben 8,huit,eight,acht 9,neuf,nine,neun 10,dix,ten,zen $ sort -t’,’ +3 liczba 8, 8,huit,eight,acht 3,trois,three,drei Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 45 1,un,one,ein 5,cinq,five,funf 9,neuf,nine,neun 6,six,six,sechs 7,sept,seven,sieben 4,quatre,four,vier 10,dix,ten,zen 2,deux,two,zwei $ sort -t’,’ +1 -2 5,cinq,five,funf 2,deux,two,zwei 10,dix,ten,zen 8,huit,eight,acht 9,neuf,nine,neun 4,quatre,four,vier 7,sept,seven,sieben 6,six,six,sechs 3,trois,three,drei 1,un,one,ein Polecenie sort Polecenie more Ćwiczenia 5.1 Ćwiczenie 1. Wyświetl listę użytkowników uporządkowaną według ich nazwisk Ćwiczenie 2. Wyświetl atrybuty, największego pliku, z twojego katalogu Ćwiczenie 3. Wyświetl zawartość pliku „.profile.” Ćwiczenie 4. Wyszukaj w twoim katalogu wszystkie pliki modyfikowane w ciągu jednego dnia Ćwiczenie 5.