unix

Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ...


 


Poprzednia
strona


 


Unix - kurs
podstawowy
 
prepared
by


Spis tresci:

Poczatek
pracy
Ogólne
zasady wpisywania komend
Dostep
do programów i danych
Komendy
dzialajace na kartotekach
Komendy
dzialajace na plikach
Bazowa
kartoteka uzytkownika
Prawa
dostepu
Miejsce
na dysku

    Sumaryczna
    wielkosc plikow
    Fizyczna
    ilosc wolnego miejsca na dysku
    Jak
    znalezc informacje o fizycznej ilosci wolnego miejsca na dysku, na ktorym
    znajduja sie nasze pliki?
    Informacja
    o komendach ("help")
    Wybrane
    programy uslugowe - vi

      Wybrane
      komendy trybu klawiszowego
      Komendy
      zmiany pozycji
      Kopiowanie
      i przenoszenie tekstu
      Wybrane
      komendy trybu liniowego
      Wyswietlanie
      danych o innych uzytkownikach
      Wysylanie
      komunikatow do innych uzytkownikow
      Interaktywna
      komunikacja z innymi uzytkownikami
      Wysylanie
      listow
      Procesy

      Skrypty

      Konfigurowanie
      srodowiska uzytkownika
      Aliasy
      Adresy
      sieciowe komputerow. Komunikacja pomiedzy komputerami

        telnet

        ftp

        DNS
        - Domain Name Servis
        Uruchamianie
        systemu X Windows

          Zasada
          dzialania systemu X Windows
          Konfiguracja
          wlasnego ekranu w systemie X Windows

           

          Zanim zaczniemy prace - musimy zaloginowac
          sie do systemu. Unix pozwala na
          wpisanie:


          nazwy uzytkownika - po login
          hasla uzytkownika - po password.
          Haslo nie jest wyswietlane na ekranie
          Sprawdz u administratora swojego systemu jaka
          jest Twoja nazwa uzytkownika oraz jakie posiadasz haslo. Spróbuj zaloginowac sie
          popelniajac celowe pomylki w nazwie uzytkownika lub hasle. Zwróc uwage na tresc
          komunikatów o bledach.
          Nazwa uzytkownika:

          do 8 znaków, male i duze litery sa traktowane
          jako rózne znaki. W nazwie moga wystapic litery, cyfry oraz znaki specjalne: _
          - $
          Haslo uzytkownika:

          równiez do 8 znaków, zestaw znaków - jak dla
          nazwy uzytkownika
          W momencie tworzenia konta uzytkownika przez
          administratora systemu definiowane sa nastepujace obiekty:


          nazwe uzytkownika
          haslo
          unikalny numer uzytkownika (UID:
          User Identification Number
          grupe do której standardowo nalezy
          uzytkownik (GID: Group Identification Number)
          ewentualne ograniczenia na dopuszczalna
          ilosc zajmowanego miejsca na dyskach (file quota) - o ile system quota jest
          aktywny
          'dluga' nazwe uzytkownika -
          pozwalajaca na identyfikacje uzytkownika wedlug jego prawdziwego
          nazwiska
          bazowa kartoteke uzytkownika - kartoteke w
          której znajda sie pliki zakladane przez uzytkownika. Do kartoteki tej
          kopiowane sa zwykle standardowe pliki konfiguracyjne
          nazwa standardowej powloki jakiej uzywac
          bedzie w swoich sesjach uzytkownik. Zwykle ta powloka (shellem) jest
          csh lub tcsh
           

          Ogólne zasady wpisywania komend w systemie Unix:


          duze i male litery w nazwach komend sa
          traktowane jak rózne znaki - wiekszosc komend Unixa posiada nazwy
          zawierajace wylacznie male litery
          standardowa linia komendy Unixa ma do 128
          znaków. Najczesciej uzywane znaki edycyjne:




          skresl ostatni
          znak
          Backspace lub
          Cntrl-H

          skresl cala linie
          komendy
          Esc

          ostatnio wprowadzone komendy sa pamietane w
          historii komend uzytkownika.
          Na tak zapamietanym zbiorze komend mozemy
          wykonywac nastepujace operacje (wymieniono tylko te najwazniejsze):





          wyswietl liste wczesniej
          wykonywanych komend
          history

          powtórz wykonanie
          ostatniej komendy
          !!

          powtórz wykonanie
          ostatniej komendy zaczynajacej sie od podanego
          lancucha
          !lancuch

          powtórz wykonanie
          ostatniej komendy zawierajacej w sobie (w dowolnym miejscu)
          lancuch
          !?lancuch

          wykonaj ponownie
          n-ta komende (komendy sa numerowane od 1)
          !n
          przyklad powtarzania
          komend:





          nowak>
          history
          aby
          powtórzyc:

          1: pwd
          !pwd

          2: mkdir test
          !?dir

          3: cd test
          !3

          4: ls -l
          !!

          nowak>
           
           

          Dostep do programów i danych - poprzez kartoteki i
          pliki.
          Nazwa pliku i kartoteki:


          do 32 znaków
          duze i male litery, cyfry, znaki specjalne:
          _ - $ .
          Róznice w nazwach (w stosunku do nazw z Ms
          DOS):


          duze i male litery sa traktowane jako rózne
          znaki
          kropki moga wystepowac w nazwach
          wielokrotnie
          nazwy moga byc dluzsze
          nazwy podkartotek sa oddzielane slashem
          (/) a nie backslashem (\)
          nazwa kartoteki korzenia jest
          /
          Kartoteki tworza normalne drzewo kartotek.
          Oprócz zwyklych plików w kartotekach moga sie pojawic:


          pliki 'ukryte' - kazdy plik, którego nazwa
          zaczyna sie od kropki jest plikiem 'ukrytym'. Jego nazwa nie jest normalnie
          wyswietlana podczas listowania zawartosci kartoteki.

          Zwykle sa to pliki konfiguracyjne -
          nie powinny byc skreslane ani modyfikowane przez
          uzytkownika

          pliki 'specjalne' - wszystkie pliki w
          kartotece /dev oznaczaja naprawde urzadzenia dolaczone do
          komputera - twarde dyski, urzadzenia peryferalne, itp. Nie wolno
          skreslac plików z kartoteki /dev - uzywamy tych 'plików' tylko w
          komendach archiwizacji danych (tar)
          Oprócz nazw plików i kartotek mozemy
          uzywac wzorników. We wzornikach moga wystapic - oprócz liter, cyfr,
          znaków _ - $ i . (kropki) - znaki specjalne:


          * - oznacza dowolny
          lancuch dowolnych znaków
          ? - oznacza pojedynczy
          dowolny znak
          [znak, ..., znak] -
          dowolny z wymienionych znaków
          [od-do] - dowolny znak o
          kodzie w podanym zakresie
          Przyklady wzorników:





          *a
          dowolna nazwa konczaca
          sie litera a

          a??b*c*
          dowolna nazwa zaczynajaca
          sie od litery a po której wystepuja dwa dowolne znaki a
          nastepnie litera b, dowolny ciag dowolnych znaków, litera
          c i dowolny ciag dowolnych znaków konczacych nazwe

          [0-9]*[xyz]
          dowolna nazwa zaczynajaca
          sie od cyfry po której wystepuje dowolny ciag dowolnych znaków. Nazwa
          konczy sie jedna z liter x, y lub
          z
          Jezeli chcemy, zeby wzornik obejmowal nazwy
          zaczynajace sie od kropki ('ukryte') - musimy jawnie wymienic kropke we
          wzorniku





          *z
          dowolna nazwa konczaca
          sie litera z - z wyjatkiem nazw zaczynajacych sie od
          kropki

          .*z
          dowolna nazwa zaczynajaca
          sie od kropki po której wystepuje dowolny ciag dowolnych znaków
          zakonczonych litera
          z
          Nie mozna zdefiniowac wzornika
          obejmujacego zarówno nazwy 'ukryte' (zaczynajace sie od kropki) jak i nazwy 'nie
          ukryte'.
           

          Komendy dzialajace na
          kartotekach:
          mkdir nazwa

          tworzy (pod)kartoteke o podanej
          nazwie
          pwd

          wyswietl nazwe biezacej
          kartoteki
          rmdir wzornik

          skresl kartoteki o nazwach zgodnych z
          wzornikiem. Uwaga! Kartoteka moze zostac skreslona tylko wtedy, kiedy
          jest pusta (wczesniej skreslono wszystkie pliki i
          podkartoteki)
          cd nazwa

          przejdz do podkartoteki o podanej nazwie. W
          stosunku do MsDOS wystepuja nastepujace róznice:

          zamiast nazwy mozna podac wzornik -
          dowolny fragment nazwy zakonczony *. O ile tylko taki wzornik
          wyznacza jednoznacznie kartoteke - przejdziemy do niej
          istnieja równiez 'nazwy specjalne':

            .. - kartoteka nadrzedna
            (kartoteka 'ojca')
            / - kartoteka korzenia
            jezeli nazwa (lub wzornik) wystepujaca w
            komendzie cd zaczyna sie od / (slash) - Unix szuka kartoteki
            poczawszy od korzenia. W przeciwnym wypadku - szuka podkartoteki biezacej
            kartoteki.
            komenda cd bez nazwy
            kartoteki - powoduje powrót do kartoteki 'bazowej'
            uzytkownika.
             

            Komendy dzialajace na plikach:
            ls [ parametry ]
            [ wzornik ]

            wyswietla informacje o plikach, których nazwy
            sa zgodne z wzornikiem. Jezeli nie podamy wzornika - wyswietla informacje o
            wszystkich plikach - z wyjatkiem plików ukrytych. Najczesciej uzywane
            parametry:





            -F
            wyswietlaj
            * po nazwach programów, / po nazwach
            kartotek

            -R
            wyswietlaj
            równiez informacje o plikach znajdujacych sie w
            podkartotekach

            -a
            wyswietlaj
            równiez pliki ukryte (zaczynajace sie od kropki

            -g
            jak -l
            (zob.) ale bez wyswietlania informacji o wlascicielu
            pliku

            -l
            'pelny
            listing' - wyswietlane sa nastepujace informacje o plikach:

            typ pliku (kartoteka, plik,
            link)
            prawa dostepu, ilosc linków do
            pliku
            nazwa wlasciciela i wlasciciela
            grupowego
            wielkosc pliku (w bajtach)
            czas ostatniej modyfikacji
            pliku
            nazwa pliku

            -p
            wyswietla
            / po nazwach kartotek

            -r
            odwraca
            porzadek sortowania nazw

            -s
            podaje
            wielkosci plików, w jednostkach 512 bajtów

            -t
            sortuje nazwy
            wedlug czasu ostatniej modyfikacji ('najstarszy
            najpierw')

            -u
            sortuje wedlug
            czasu ostatniego dostepu do pliku
             


            ls
            -aFsl






            total 8



            drwxr-xr-x
            5
            tedd
            users
            1024
            Nov 5
            22:31
            ./

            drwxr-xr-x
            8
            root
            root
            1024
            Nov 3
            02:42
            ../

            -rw-r--r--
            1
            tedd
            users
            144
            Nov 5
            22:30
            .cshrc

            -rw-r--r--
            1
            tedd
            users
            163
            Nov 24
             
            .kermrc

            -rw-r--r--
            1
            tedd
            users
            34
            Jun 6
             
            .less

            -rw-r--r--
            1
            tedd
            users
            114
            Nov 24
             
            .lessrc

            drwxr-xr-x
            2
            tedd
            users
            1024
            Nov 3
            01:11
            .term/

            drwxr-xr-x
            2
            tedd
            users
            1024
            Nov 5
            22:33
            KURS.Unix
             
            cp plik
            nowy_plik
            cp wzornik [ ... wzornik]
            kartoteka

            kopiuje pliki. W pierwszej postaci kopiuje
            plik na nowy plik tworzac jego kopie. W drugim przypadku (ostatnia nazwa musi
            byc nazwa kartoteki) kopiuje grupe plików do wskazanej
            kartoteki.

            Uwaga!!! Komenda
            cp bez ostrzezenia niszczy - o ile takie pliki juz istnieja -
            zawartosc plików do których kopiowana jest informacja!!!


             
            mv
            nazwastara
            nazwanowa
            mv wzornik [ ... wzornik]
            katalog

            w pierwszej postaci - zmienia nazwe pliku lub
            kartoteki. Pojedyncze nazwy (nie wzorniki) moga wystapic w takiej sytuacji.
            Jezeli plik o nazwie nazwanowa juz istnieje i nie
            jest zabezpieczony przed zapisem - jest skreslany bez ostrzezenia
            w drugiej postaci - przenosi pliki o nazwach
            zgodnych z wzornikami do kartoteki, której nazwa wystepuje jako ostatni
            parametr. Uwaga!!! bez ostrzezenia skresla pliki w docelowej
            kartotece - o ile nie sa one zabezpieczone przed zapisem. . (kropka) jako nazwa kartoteki oznacza
            zadanie przeniesienia plików do biezacej kartoteki.
             
            rm [-f] [-r] -i]
            wzornik

            kasuje pliki o nazwach zgodnych z wzornikiem.
            Jezeli plik byl zabezpieczony przed zapisem - zada potwier-dzenia przed
            skresleniem pliku. Mozliwe parametry:




            -f
            kasuj pliki
            bez ostrzezenia, nawet gdy byly zabezpieczone przed
            zapisem

            -r
            jako
            wzornik musi wystapic wzornik wskazujacy na nazwy kartotek.
            Kasowane sa wszystkie pliki i podkartoteki w kartotekach o nazwach
            zgodnych z wzornikiem

            -i
            interaktywnie - wyswietla nazwe kazdego pliku przed
            skresleniem - pyta czy plik ma byc
            skreslony
             
            cmp
            plik1
            plik2

            porównuje dwa pliki, wyswietlajac napotkane
            róznice

             
            more
            nazwapliku

            wyswietla zawartosc pliku, strona (ekran) po
            stronie. W czasie wyswietlania dzialaja nastepujace
            klawisze:





            space
            nastepna
            strona

            Enter
            nastepna
            linia

            q
            koniec
            wyswietlania
            Przecwicz praktycznie
            nastepujace operacje:


            zalóz wlasna kartoteke
            wyswietl wszystkie nazwy plików z
            wlasnej kartoteki
            przekopiuj kilka plików z Twojej bazowej
            kartoteki do tej nowo utworzonej
            przejdz do tej nowej kartoteki
            wylistuj i skasuj wszystkie pliki z nowo
            utworzonej kartoteki
             
            Bazowa kartoteka uzytkownika
            kazdy uzytkownik posiada swoja kartoteke
            'bazowa' - to ta kartoteka w której znajdujemy sie bezposrednio po
            zaloginowaniu. Kartoteki zakladane przez uzytkownika sa zwykle tworzone jako
            podkartoteki jego kartoteki bazowej. Do kartoteki bazowej mozemy zawsze 'wrócic'
            w nastepujacy sposób:




            cd
            komenda
            cd bez nazwy kartoteki powoduje powrót do kartoteki
            bazowej



            cd
            $HOME
            istnieje zmienna
            systemowa - HOME - pamietajaca nazwe kartoteki bazowej.
            Konstrukcja $HOME powoduje 'pobranie' tej
            nazwy

            cd
            ~username
            ta komenda
            powoduje przejscie do kartoteki bazowej uzytkownika
            username
            Konstrukcji ~username mozemy
            równiez uzywac do kopiowania danych - komenda

            cp ~nowak/*
            .
            skopiuje wszystkie pliki uzytkownika
            nowak do biezacej kartoteki (o ile mamy pozwolenie na czytanie z
            kartoteki nowak)
             

            Prawa
            dostepu
            kazdy plik i kartoteka w systemie Unix posiada
            atrybuty, okreslajace prawa dostepu do takiego obiektu. Prawa dostepu sa
            definiowane w momencie tworzenia obiektu - wedlug maski ustawionej przez
            administratora systemu. Wlascicielem obiektu jest ten, kto go stworzyl.
            Wlasciciel obiektu moze w kazdej chwili zmienic prawa dostepu do obiektu -
            zarówno dla siebie jak i dla innych uzytkowników.
            Prawa dostepu sa zdefiniowane na trzech
            poziomach:


            dla wlasciciela obiektu
            (u)
            dla grupy, do której nalezy wlasciciel
            obiektu (g)
            dla pozostalych uzytkowników
            (o)
            Z punktu widzenia uzytkownika systemu Unix kazdy
            obiekt moze posiada zawsze jakies prawa dostepu, zdefiniowane przez wlasciciela
            obiektu. Prawa te sa kombinacja nastepu-jacych praw dostepu:




            r
            prawo do czytania
            obiektu

            w
            prawo do wpisywania danych
            do obiektu. Pozwala to równiez na skreslenie obiektu

            x
            prawo wykonania obiektu
            (program lub kartoteka)
            Do zmiany praw dostepu sluzy komenda

            chmod komu jak prawa
            wzornik
            gdzie:

            komu - dowolna kombinacja liter
            u, g i o oznaczajacych kolejno wlasciciela pliku,
            czlonków grupy do której nalezy wlasciciel pliku (z wylaczeniem wlasciciela
            obiektu) oraz pozostalych uzytkowników. Dodatkowo mozna uzyc litery a
            która oznacza 'wszystkich uzytkowników' (a=ugo)
            jak - jeden ze znaków +,
            - lub = oznaczajacych kolejno:





            +
            dodaj
            wymienione w komendzie chmod prawa do juz istniejacych
            praw dostepu

            -
            usun
            wymienione w komendzie chmod prawa dostepu ze zbioru
            praw dostepu do obiektu

            =
            usun wszystkie
            wczesniej ustawione prawa dostepu do obiektu, po usunieciu - nadaj
            wylacznie te prawa, które sa wymienione w komendzie
            chmod

            prawa - dowolna
            kombinacja liter r, w, x i s. Znaczenie - jak
            opisano to wczesniej
            wzornik - obiekty których nazwy
            sa zgodne z wzornikiem beda tymi obiektami, dla których zmieniamy prawa
            dostepu
            Przyklady:

            chmod u-w
            *a


            odbierz wlascicielowi prawa zapisu i
            kasowania do wszystkich plików i podkartotek z biezacej kartoteki, których
            nazwy koncza sie litera a.
            Uwaga!!! Ta zmiana nie bedzie
            dotyczyc obiektów których nazwa konczy sie litera a ale zaczyna sie
            od kropki.

            chmod g=r
            .*z


            odbierz uzytkownikom, nalezacym do tej samej
            grupy co uzytkownik wydajacy komende chmod, wszystkie prawa z
            wyjatkiem praw do czytania dla obiektów z biezacej kartoteki, których nazwy
            zaczynaja sie od kropki a koncza litera
            z

            chmod go-wx
            ~nowak/*


            odbierz wszystkim uzytkownikom - z wyjatkiem
            wlasciciela obiektów - prawa do zapisu i wykonywania wszystkich plików i
            podkartotek z kartoteki bazowej uzytkownika nowak. Zmiana ta nie
            dotyczy obiektów w kartotece ~nowak których nazwy zaczynaja
            sie od kropki
            Uwagi:

            biezaco ustawione prawa dostepu mozemy
            wyswietlic uzywajac komendy ls -l
            w Unixie inaczej niz w MsDOSie zdefiniowane
            sa programy. Programem jest plik o atrybucie x - niezaleznie od
            tego jaka ma nazwe. Nie ma zadnych standardowych typów (rozszerzen) nazw dla
            programów - atrybut x decyduje czy plik jest programem (lub skryptem)
            czy plikiem z danymi
            kartoteka równiez musi posiadac atrybut
            x - jezeli usuniemy atrybut x z kartoteki to nie bedziemy w
            stanie przejsc do tej kartoteki (komenda cd)
            Cwiczenie:


            wylistuj prawa dostepu do plików w swojej
            kartotece
            odbierz sobie prawo write do pliku a
            nastepnie spróbuj go skreslic
            wyswietl informacje o Twoich prawach
            dostepu do kartoteki kolegi. Popros go o odebranie praw dostepu. Ponownie
            wyswietl swoje prawa dostepu do jego obiektów. Zrób to samo dla kolegi -
            odbierz mu prawa dostepu do Twoich plików
            ukryj swoja kartoteke przed innymi
            wyswietl czesc obiektów z kartoteki
            /usr/bin - powiedz, które z nich sa programami


             
            Miejsce na
            dysku
            dowolnie duzy dysk twardy po pewnym czasie staje
            sie za maly. Miejsce na dysku, które moga zajac pliki uzytkownika moze zostac
            ograniczone przez administratora systemu. Aby zobaczyc, czy takie ograniczenie
            istnieje powinnismy uzyc komendy

            quota -v
            komenda ta wyswietli informacje o tym ile
            miejsca mozemy maksymalnie zajac na dysku oraz ile z tego miejsca juz zostalo
            przez nas zajete
            Sumaryczna wielkosc plików - komenda

            du -s
            [wzornik]
            wyswietla informacje o tym, ile miejsca na dysku
            - w kilobajtach - zajely sumarycznie pliki, których nazwy sa zgodne z
            wzornikiem. O ile nie podamy wzornika - wyswietlona zostanie informacja o tym,
            ile miejsca zajmuja wszystkie pliki w biezacej kartotece.




            du -s

            21
            .



             

            du -s
            /



            1
            /TMP

            1637
            /bin

            121
            /boot

            1
            /cdrom

            21
            /dev

            385
            /etc

            162
            /home

            647
            /lib

            106259
            /usr
             
            Fizyczna ilosc wolnego miejsca na dysku:
            komenda

            df
            wyswietla informacje i fizycznej
            ilosci miejsca na dysku. Podawana jest nazwa urzadzenia
            (/dev/...), fizyczna ilosc miejsca na urzadzeniu, ilosc uzytych
            kilobajtów, ilosc pozostalego miejsca (w kilobajtach), procentowa ilosc wolnego
            miejsca oraz nazwe kartoteki do której 'dolaczone' jest urzadzenie

            df




            Filesystem
            1024-blocks
            Used
            Available
            Capacity
            Mounted on

            /dev/hda3
            201176
            126269
            64172
            66%
            /

            /dev/hda1
            235592
            231464
            4128
            98%
            /dos_c

            /dev/hda5
            235592
            164284
            71308
            70%
            /dos_d
             
            Jak znalezc informacje o ilosci wolnego miejsca na
            dysku, na którym zapisywane sa nasze pliki?

            najpierw musimy znalezc informacje o tym,
            gdzie zapisywana jest nasz kartoteka bazowa. Mozemy to zrobic za pomoca
            wykonywanych po sobie komend


            cd
            pwd
            pierwsza z nich ,przeniesie' nas do naszej
            kartoteki bazowej, druga wyswietli nazwe tej kartoteki. zalózmy, ze komenda
            pwd wyswietlila nazwe /home/nowak jako nazwe
            naszej kartoteki bazowej

            nastepnie wykonujemy komende
            pwd i szukamy nazwy kartoteki której poczatek jest najbardziej
            zgodny z nazwa kartoteki zwrócona przez pwd


            df



            Filesystem
            1024-blocks
            Used
            Available
            Capacity
            Mounted on

            /dev/hda3
            201176
            126269
            64172
            66%
            /

            /dev/hda1
            235592
            231464
            4128
            98%
            /home

            /dev/hda5
            235592
            164284
            71308
            70%
            /usr/local

            w powyzszym przykladzie widzimy, ze nasza
            kartoteka bazowa znajduje sie na dysku /dev/hda1 na którym
            pozostalo okolo 4.1 MB wolnego miejsca

             
            Opisy komend
            ('help'):
            w kazdym momencie uzytkownik moze otrzymac
            angielskojezyczny opis komendy systemu Unix. Komenda

            man
            nazwa_komendy
            wyswietla pelny opis komendy o podanej nazwie
            dzielac ten opis na strony (ekrany monitora). Podczas wyswietlania takiego opisu
            dzialaja nastepujace klawisze kontrolne:




            spacja
            wyswietl nastepny ekran
            (strone)

            Enter
            wyswietl nastepna
            linie

            q
            przerwij wyswietlanie opisu
            komendy
            przyklad:

            man chmod




            CHMOD(1V) USER COMMANDS
            CHMOD(1V) 
            NAMEchmod - change the permissions mode of a
            file SYNOPSISchmod [ -fR ] mode filename
            ... DESCRIPTIONChange the permissions (mode) of a file or files. Only
            theowner of a file (or
            the super-user) may change its mode.

            Jezeli nie pamietamy nazwy komendy mozemy za
            pomoca

            man -k
            slowo_kluczowe
            spowodowac wyswietlenie nazw wszystkich komend
            które w naglówkach swych opisów posiadaja podane przez nas slowo
            kluczowe

            man -k
            files










             

            install_openwin (8)
            -
            install OpenWindows system files

            makeafb (1)
            -
            create bitmap files from scalable Folio format
            files

            makedepend (1)
            -
            create dependencies in makefiles

            mkfontdir (1)
            -
            create fonts.dir file from directory of font
            files.

            printtool (1)
            -
            OpenWindows tool for printing files

            ttcp
            (1)
            - copy
            files in a ToolTalk-safe way.

            ttmv
            (1)
            - move
            or rename files in a ToolTalk-safe way.

            ttrm,
            ttrmdir (1)
            -
            remove files or directories in a ToolTalk-safe
            way.

            tttar
            (1)
            -
            (de)archive files and ToolTalk objects

             
            :
             

            Wybrane programy uslugowe -
            vi
            vi jest standardowym edytorem w
            systemie Unix. Pozwala na tworzenie i edycje plików tekstowych.
            Uruchomienie:

            vi [parametry]
            wzornik
            vi zostanie uruchomiony - pierwszy
            z plików których nazwy sa zgodne z wzornikiem zostanie wczytany do
            edycji.
            Zanim omówimy zasady dzialania
            vi - najczesciej uzywane parametry wywolania
            vi:




            -r plik
            jezeli nastapila awaria
            komputera podczas poprawiania przez vi jakiegos pliku
            mozemy - po ponownym uruchomieniu Unixa odzyskac ten plik uruchamiajac
            vi z parametrem r nazwa_pliku poprawianego
            podczas awarii

            -R
            wczytaj pliki o nazwach
            zgodnych z wzornikiem w trybie read only - to
            zabezpiecza nas przed przypadkowa zmiana zawartosci tych
            plików
            vi moze pracowac w jednym z 3
            stanów:

            tryb klawiszowy - w tym trybie
            kazdy klawisz na klawiaturze powoduje wykonanie jakiejs akcji na edytowanym
            pliku
            tryb edycji tekstu - po
            wykonaniu (w trybie klawiszowym) komendy inicjujacej wpisywanie tekstu -
            przechodzimy do trybu edycji tekstu. W tym trybie tekst wpisywany z klawiatury
            jest wstawiany do edytowanego pliku - az do nacisniecia klawisza
            Esc - co spowoduje powrót do trybu klawiszowego
            tryb komend liniowych - jezeli
            w trybie klawiszowym nacisniemy : (dwukropek) - przechodzimy do
            trybu komend liniowych. W ostatniej linii na ekranie pojawia sie
            : po którym mozemy wpisac komende 'liniowa'. Komenda taka dziala
            zwykle na grupie linii. Po jej wykonaniu vi wraca do trybu
            klawiszowego
            Uwaga!!! Najczesciej
            popelnianym bledem jest próba wpisywania tekstu w trybie klawiszowym bez
            wczesniejszego wykonania komendy inicjujacej wpisywanie tekstu. Powoduje to
            interpretowanie przez vi kazdego nacisnietego klawisza jako
            komendy vi - moze do doprowadzic do duzych 'zniszczen' w
            edytowanym tekscie.

            (1) po uruchomieniu
            vi przechodzi w tryb komend klawiszowych - kazde nacisniecie
            klawisza na klawiaturze powoduje wykonanie komendy, zwiazanej z tym
            klawiszem
            (1 -> 3-> 1) z trybu
            klawiszowego, po nacisnieciu : przechodzimy do trybu komend
            liniowych. Mozemy wpisac komende - po nacisnieciu klawisza Enter
            vi wykonuje komende i wraca do trybu klawiszowego
            (2)
            (1 -> 2) jezeli w
            trybie klawiszowym wykonamy komende wstawiajaca tekst - przechodzimy do trybu
            edycji tekstu. W tym trybie znaki wpisywane z klawiatury sa wstawiane do
            edytowanego pliku. Nacisniecie klawisza ESC powoduje powrót do
            trybu klawiszowego (1) - zakonczenie wstawiania tekstu
            (3) jezeli pracujac w trybie
            liniowym wykonamy komende konczaca prace vi (q -
            zakoncz, nie zmieniaj pliku, x - zakoncz, zapisz zmieniony plik)
            - wrócimy do Unixa
             
            Wybrane komendy trybu klawiszowego powodujace przejscie do trybu
            wpisywania tekstu:




            a
            wpisuj tekst za
            kursorem

            i
            wpisuj tekst przed
            kursorem

            A
            wpisuj tekst na koncu
            linii

            I
            wpisuj tekst na poczatku
            linii

            S
            zastap cala biezaca linie
            wpisywanym tekstem

            C
            zastap znaki od polozenia
            kursora do konca linii wpisywanym
            tekstem
            Wpisywany tekst moze byc wieloliniowy. Konczymy
            wpisywanie tekstu naciskajac klawisz Esc - wracamy do trybu
            klawiszowego




            dd
            skasuj cala linie w której
            znajduje sie kursor

            x
            skasuj znak za
            kursorem

            X
            skasuj znak przed
            kursorem

            J
            polacz biezaca i nastepna
            linie w jedna linie

            u
            anuluj ostatnia zmiane
            ('undo')

            Y
            anuluj wszystkie zmiany w
            biezacej linii

            .
            powtarzaj ostatnie
            polecenie zmieniajace tekst
            Komendy
            zmiany pozycji:




            ? ?
            znak w lewo, znak w
            prawo

            ­ ?
            linia w góre, linia w
            dól

            0
            przejdz na poczatek
            biezacej linii

            $
            przejdz na koniec biezacej
            linii

            fc
            skocz wprzód do znaku
            c

            Fc
            skocz w tyl do znaku
            c

            w
            skocz do poczatku
            nastepnego slowa

            b
            skocz do poczatku
            poprzedniego slowa

            H
            przejdz na góre
            ekranu

            M
            przejdz na srodek
            ekranu

            L
            przejdz na dól
            ekranu

            ^F
            przesun o ekran w
            przód

            ^B
            przesun o ekran w
            tyl

            ^R
            przerysuj
            ekran
            zapis ^F oznacza jednoczesne
            nacisniecie klawisza Ctrl i klawisza F.
            Kopiowanie i przenoszenie tekstu:
            wszystkie komendy skreslajace lub kopiujace
            tekst wpisuja ten tekst do wewnetrznego bufora vi. Tekst ten moze
            byc potem wielokrotnie wstawiany w rózne miejsca pliku. Nizej wymienione komendy
            równiez dzialaja na buforze vi:




            m
            zaznacz biezaca
            linie

            y
            skopiuj zaznaczony tekst do
            bufora vi

            p
            wstaw tekst z bufora
            vi za kursorem

            P
            wstaw tekst z bufora
            vi przed kursorem
            Wybrane komendy trybu liniowego:




            /wzornik
            wyszukaj tekst zgodny z
            wzornikiem, przesun tam kursor

            /
            wyszukaj nastepne
            wystapienie ostatnio uzytego wzornika

            s/told/tnew/
            zamien tekst
            told na
            tnew

            w
            zapisz biezacy plik na
            dysk

            w
            fname
            zapisz biezaco poprawiany
            tekst na plik fname

            r
            fname
            wczytaj zawartosc pliku
            fname i wstaw go za kursorem

            number
            przejdz do linii numer
            number



            n
            zakoncz poprawianie
            biezacego pliku, zacznij poprawiac nastepny plik, którego nazwa pasuje
            do wzornika z linii komendy uruchamiajacej
            vi

            q
            zakoncz prace
            vi - jezeli zmienilismy zawartosc pliku vi
            nie pozwoli nam zakonczyc pracy

            q!
            zakoncz prace z
            vi nie zapisujac zmienionego pliku na dysk

            x
            zapisz edytowany plik na
            dysk i zakoncz prace z
            vi
            Komendy s i w
            standardowo przeszukuja i zapisuja caly plik. Jezeli poprzedzimy je dwoma
            numerami linii oddzielonymi przecinkiem - beda dzialac tylko na tych
            liniach.
            Jako numery linii mozna uzyc liczb calkowitych
            lub konstrukcji postaci:




            -liczba
            linia o liczba linii
            wczesniej niz biezaca

            +liczba
            linia o liczba linii
            pózniej niz biezaca

            .
            biezaca linia

            $
            ostatnia linia
            pliku
            Przyklady:

            1,20s/ala/ola/


            zamien kazde wystapienie tekstu
            ala na ola w liniach od 1 do
            20

            .+5,$-10w
            part1


            wpisz na plik part1 czesc
            biezaco poprawianego pliku - od linii o 5 dalej niz biezaca do linii o 10
            mniej niz ostatnia linia w pliku
             
            uzywajac vi stwórz we wlasnej
            kartotece plik zawierajacy podanie o podwyzke. Najpierw stwórz i zapisz plik
            zawierajacy naglówek takiego podania i zapisz go na dysk konczac prace z
            vi. Nastepnie uzyj ponownie vi aby dopisac do pliku
            uzasadnienie podwyzki.
             

            Wyswietlanie danych o innych
            uzytkownikach:
            zanim spróbujemy skomunikowac sie z jakims
            uzytkownikiem powinnismy czy jest on biezaco zaloginowany - mozemy wtedy nie
            tylko wyslac mu list lecz równiez 'porozmawiac' z nim przez komputer.
            Komenda

            w
            wyswietla informacje o uzytkownikach którzy
            pracuja biezaco na naszym komputerze

            w







            2:55pm up 3 min, 2
            users, load average: 0.02, 0.05, 0.01

            User
            tty
            from
            login@
            idle
            JCPU
            PCPU
            what

            root
            tty2
             
            2:53pm
             
             
             
            w

            tedd
            tty1
             
            2:52pm
             
            2
             
            -tcsh
            dodatkowo otrzymujemy informacje o tym kiedy
            zaloginowali sie poszczególni uzytkownicy ('login@'), z jakiego
            komputera ('from' - w tym przypadku nie bylo uzytkowników
            zaloginowanych spoza naszego komputera) oraz jaka komende wykonali ostatnio
            ('what')
            Pelniejsze dane o uzytkownikach otrzymamy
            uzywajac komendy


            finger [ nazwa_uzytkownika
            ]
            jezeli nie podamy nazwy uzytkownika otrzymamy
            skrótowa informacje o biezaco zaloginowanych uzytkownikach:









            Login
            Name
            Tty
            Idle
            Login
            Time
            Office
            Phone

            dawid
            Dawid Kedzierski -
            r
            4
            1
            Nov 8
            19:41
             
             

            t_user
            Uzytkownik
            'testowy'
            3
            1
            Nov 8
            19:41
            Comp
            229622

            tedd
            'Tedd' T.
            Kedzierski
            1
             
            Nov 8
            19:40
             
             

            natomiast podanie nazwy uzytkownika spowoduje
            wyswietlenie 'pelnej' informacji o uzytkowniku:

            finger dawid




            Login: dawid Name: Dawid Kedzierski -
            rowerzystaDirectory: /home/dawid Shell: /bin/tcshLast login Tue Nov 7
            19:05 (MET) on tty1No mail.No
            Plan.
            mozna równiez wyswietlac dane o uzytkowniku z
            innego komputera

            finger
            user@adres_sieciowy_komputera
            lub wyswietlic informacje o wszystkich
            uzytkownikach zaloginowanych biezaco na 'innym' komputerze:

            finger
            @adres_sieciowy_komputera
             

            Wysylanie komunikatów do innych
            uzytkowników:
            aby wyslac komunikat do biezaco zaloginowanego
            uzytkownika mozemy uzyc komendy

            write nazwa_uzytkownika
            [nazwa_terminala]
            nazwa_uzytkownika sluzy do
            wskazania do kogo ma byc wyslany komunikat. Jezeli uzytkownik jest zaloginowany
            na kilku terminalach mozemy jawnie wskazac na który terminal ma byc przeslany
            komunikat wpisujac nazwa_terminala jako ostatni parametr komendy
            write.
            Po wpisaniu komendy write uzytkownik
            wysylajacy komunikat wpisuje w kolejnych liniach tekst, który zostanie
            przeslany. Tekst moze byc wieloliniowy - przechodzimy do nowej linii naciskajac
            klawisz Enter. Konczymy wpisywanie naciskajac Ctrl-D
            jako pierwszy znak nowej linii.
            Uzytkownik do którego wysylamy komunikat zobaczy
            na swoim ekranie wiadomosc postaci:




            Message from root@teddPC on tty at
            14:56 ...Koniec pracy -
            zamykamy!!!Twoj
            PC.EOF


             
            Interaktywna
            komunikacja z innymi uzytkownikami:
            aby 'porozmawiac' z innym uzytkownikiem uzyjemy
            komendy

            talk user[@adres_komputera]
            [nazwa_terminala]
            komenda ta pozwala na 'rozmowe' z uzytkownikiem,
            który jest biezaco zaloginowany. Podanie po nazwie uzytkownika
            adresu_komputera umozliwi 'rozmowe' z uzytkownikiem zaloginowanym
            na innym niz nasz komputerze.
            Nawiazanie polaczenia pomiedzy dwoma
            uzytkownikami wyglada wtedy nastepujaco:

            zalózmy, ze uzytkownik nowak
            zaloginowany na komputerze alfa chce porozmawiac z uzytkownikiem
            kowalski pracujacym na komputerze beta
            nowak wysyla komunikat



            talk
            kowalski@beta

            na ekranie komputera
            kowalskiego pojawia sie komunikat:





            Message from
            TalkDaemon@betatalk: connection requested by
            nowak@alfatalk: respond with talk
            nowak@alfa

            kowalski wykonuje
            komende


            talk
            nowak@alfa
            polaczenie zostaje nawiazane. Ekrany komputerów
            nowaka i kowalskiego zostaja podzielone na polowy -
            na jednej z nich pojawiaja sie komunikaty wysylane, na drugiej odbierane -
            polaczenie zostalo nawiazane.
            Aby zakonczyc polaczenie jeden z uzytkowników
            naciska Cntrl-C - to przerywa polaczenie.
             
            Wysylanie
            listów
            wymienione wczesniej metody komunikacji pomiedzy
            uzytkownikami wymagaja zeby obaj respondenci byli biezaco zaloginowani. To nie
            zawsze jest mozliwe. Aby skomunikowac sie z uzytkownikiem który nie jest
            zaloginowany - w najprostszym przypadku - uzywamy komendy
            mail

            mail [
            uzytkownik[@adres_komputera]]
            jezeli nie podamy nazwy uzytkownika -
            mail sprawdzi czy sa do nas jakies listy. Jezeli nie ma zadnych
            listów po wypisaniu komunikatu 'no mail messages' mail
            zakonczy dzialanie.
            Jezeli sa jakies listy do nas -
            mail wyswietli naglówki tych listów:




            Mail version 5.5 6/1/90. Type ? for
            help."/var/spool/mail/root": 2 messages> 1 root Thu Sep 15
            02:23 132/4322 "Register with the Lin"2 vol@mhd1 Thu Sep 15
            02:53 65/2683 "Welcome to Linux!"&
            jestesmy teraz w trybie wykonywania komend
            maila. Najczesciej uzywane komendy to:




            num
            wyswietl list numer
            num

            d
            num
            skresl list numer
            num

            u
            num
            'odskresl' list numer
            num. Do momentu zakonczenia pracy z mailem
            wszystkie skreslone listy moga byc odzyskane - komenda
            u

            s num
            fname
            dopisz ('append')
            list numer num do pliku o nazwie fname

            R
            num
            wyslij odpowiedz na list
            numer num - tylko do nadawcy tego listu

            r
            num
            wyslij odpowiedz na list o
            numerze num do wszystkich, którzy go otrzymali

            m user
            [@adres_komp]
            zacznij tworzyc list który
            zostanie wyslany do uzytkownika user

            h
            ponownie wyswietl naglówki
            listów

            q
            zakoncz prace z
            mailem
            jako num mozemy uzyc pojedynczego
            numeru (komenda dotyczy wtedy pojedynczego listu), dwóch numerów oddzielonych
            myslnikiem (komenda dotyczy wszystkich listów o numerach od - do) lub *
            (gwiazdki) - w tym ostatnim przypadku komenda dotyczy wszystkich
            listów.
            Jezeli zaczniemy wysylac list - podajac nazwe
            adresata - bedziemy proszeni o wpisanie:

            cc - pole do którego wpisujemy nazwy
            uzytkowników (z ewentualnymi adresami komputerów) którzy powinni otrzymac
            kopie naszego listu. Komenda r wysyla odpowiedz do nadawcy listu oraz
            wszystkich uzytkowników wymienionych w polu cc
            nastepnie wpisujemy tresc listu. Tresc moze
            byc dowolnie dluga - konczymy wpisywanie naciskajac Ctrl - D lub
            wpisujac . (kropke) na poczatku pustej linii.
            Przecwicz poznane komendy komunikacji pomiedzy
            uzytkownikami:

            wyswietl informacje o biezaco zaloginowanych
            uzytkownikach
            wyslij komunikat do jednego z
            uzytkowników
            nawiaz lacznosc (talk) z
            wybranym uzytkownikiem
            wyslij list do grupy uzytkowników - odpowiedz
            na list który doszedl do Ciebie
            zapamietaj tresc wybranego listu na
            pliku



            Program mail to najprostszy program to obslugi
            poczty. Jego 'zaleta' jest to, ze jest obecny w kazdej wersji
            Unixa. Natomiast jego uzycie nie jest zbyt 'user friendly'. Dlatego
            uzytkownicy Unixa dosc szybko zaczynaja uzywac bardziej 'wygodnych'
            programow - elm i pine sa chyba
            najczesciej uzytwanymi programami do obslugi poczty. Omowienie tych
            programow przekracza zakres tego opracowania - zreszta sa one na tyle
            'przyjacielskie' ze elementarna znajpmosc jezyka angielskiego wystarcza do
            ich uzywania.
             

            Procesy
            kazdy uruchomiony w Unixie program jest
            traktowany jak niezalezny proces. Unix pozwala uruchomic wiele procesów
            jednoczesnie. Kazdy z uruchomionych procesów posiada 3 standardowe strumienie
            danych:

            input - stad wczytywane sa dane
            do programu; default: z klawiatury
            output - na ten strumien
            wypisywane sa wyniki i komunikaty; default: ekran terminala
            error - strumien na który
            wysylane sa komunikaty o bledach; default: ekran terminala
            Unix pozwala przedefiniowac miejsce, skad
            pobierane sa dane wejsciowe oraz miejsca gdzie wyswietlane sa komunikaty za
            pomoca nastepujacych konstrukcji:

            proces < fname - pobieraj
            dane z pliku fname zamiast z klawiatury
            proces > fname - wpisuj
            wyniki, które normalnie bylyby wyswietlane na ekran terminala, do pliku
            fname
            process >> fname - dopisz
            ('append') wyniki, które normalnie bylyby wyswietlane na ekran
            terminala, do pliku fname
            process >& fname -wpisuj
            wyniki, normalnie kierowane na strumienie output i
            error do pliku o nazwie fname
            process >>& fname -
            dopisuj ('append') wyniki, normalnie kierowane na strumienie
            output i error do pliku o nazwie
            fname
            Przyklad:

            ls -ls a*z >
            pliki


            zapamietaj w pliki dane o
            wszystkich plikach z biezacej kartoteki posiadajacych nazwy zaczynajace sie
            od a i konczace sie na z
            Unix pozwala równiez wykonywac kilka procesów
            tak, ze ich wykonanie jest powiazane ze soba:




            proc1 ;
            proc2 ; ...
            - wykonanie sekwencyjne:
            najpierw wykonany zostanie proces proc1, po jego
            zakonczeniu uruchomiony zostanie proces proc2,
            itd.

            proc1
            & proc2 & ...
            - wykonanie równolegle:
            wszystkie procesy procn zostana
            uruchomione jednoczesnie i beda sie wykonywac wspólbieznie

            proc1 |
            proc2 | ...
            - wykonanie potokowe:
            najpierw zostanie uruchomiony proces proc1. Wyniki które
            ten proces wyswietla na ekranie zostana przeslane do procesu
            proc2. Proces proc2 zostanie uruchomiony po
            zakonczeniu procesu proc1. Dane przekazane z procesu
            proc1 sa przesylane do procesu proc2 tak
            jakby byly wpisywane z klawiatury. To samo bedzie sie powtarzalo dla
            pozostalych procesów uruchomionych
            potokowo
            wszystkie te sposoby uruchamiania procesów mozna
            laczyc ze soba. Dodatkowo uruchamiane procesy moga byc laczone w grupy za pomoca
            nawiasów.

            (p1 ; p2 ) & (p3 | p4
            )


            uruchom wspólbieznie:


            wykonywane sekwencyjnie procesy
            p1 i p2
            proces p3, po jego
            zakonczeniu uruchom p4 przekazujac mu jako dane wejsciowe
            dane wytworzone przez p3

            Do wykonania bardziej sensownych operacji na
            strumieniach i procesach potrzebne nam beda jeszcze dwie komendy
            Unixowe:
            cat [ wzornik ]

            czyta zawartosc wszystkich plików których
            nazwy sa zgodne z wzornikiem, laczy ich zawartosc i wysyla na ekran. Jezeli
            nie podamy wzorników - czytaj dane ze standardowego wejscia
            (klawiatura)
            grep [ opcje ] tekst
            wzorzec

            wyszukuje w plikach których nazwy sa zgodne z
            wzorcem wszystkie linie w których wystepuje tekst. Wyszukane
            linie sa przesylane na standardowe wyjscie
            Najczesciej uzywane parametry:




            -v
            wyswietlane sa linie
            które nie zawieraja tekstu

            -c
            wyswietla tylko ilosc
            wyszukanych linii

            -l
            wyswietla tylko nazwy
            plików w których znaleziono tekst

            -n
            wyswietla numery linii
            przed wyswietlanymi
            liniami
            Przyklady:

            polacz w jeden plik wszystkie pliki o nazwach
            zaczynajacych sie od x w jeden plik o nazwie wynik


            cat x* >
            wynik

            wyswietl informacje o biezaco zaloginowanych
            uzytkownikach którzy w informacji o sobie maja slowo
            'programista'


            finger | grep
            programista


             

            Skrypty
            skrypty sa odpowiednikiem batchów z
            MsDOSa. Pozwalaja na spisanie ciagu komend Unixa a nastepnie wykonanie
            ich.
            W srodku skryptu mozemy uzywac nastepujacych
            konstrukcji:

            parametry - symbole $1,
            ... , $9 sa zastepowane wartosciami parametrów
            wystepujacych w linii uruchamiajacej skrypt
            zmienne - sa to obiekty, tworzone
            przez programiste lub zdefiniowane w systemie Unix. Kazda zmienna ma swoja
            nazwe - poprzez te nazwe odwolujemy sie do zmiennej.

            wartosc zmiennej nadajemy
            instrukcja

            nazwa =
            wartosc
            natomiast wartosc zmiennej pobieramy uzywajac
            konstrukcji $nazwa_zmiennej
            Jezeli wartoscia zmiennej alfa jest
            lancuch beta to komenda


            echo Wartosc zmiennej alfa:
            $alfa
            wyswietli na monitorze komunikat


            Wartosc zmiennej alfa:
            beta
            W systemie zdefiniowane sa pewne zmienne
            globalne - najczesciej uzywane z nich to:




            HOME
            nazwa kartoteki bazowej
            uzytkownika

            PATH
            ciag nazw kartotek,
            oddzielonych : - kartoteki te beda przeszukiwane przez Unixa w
            czasie szukania programu do wykonania - analogicznie jak zrobil to potem
            MsDOS
            wewnatrz skryptu wpisujemy normalne komendy
            Unixa. Dodatkowo mamy mozliwosc uzycia dodatkowych instrukcji. We wszystkich
            omawianych ponizej instrukcjach uzywamy nastepujacych oznaczen:




            warunek
            wykonanie
            dowolnego ciagu instrukcji Unixa - uruchomienie procesów, komendy
            wbudowane Unixa. warunek ma wartosc TRUE o
            ile uruchomione programy wykonaly sie bez bledów - dokladniej dopóki
            beda zwracac wartosc 0
            dodatkowo jako warunek moze wystapic
            konstrukcja -f fname - ma wartosc TRUE
            jezeli plik o nazwie fname
            istnieje



            ciag
            instrukcji
            dowolny ciag instrukcji
            Unixa
            Najwazniejsze z dodatkowych instrukcji których
            mozemy uzyc w skryptach:




            while
            warunek;dociag
            instrukcji;done
            wykonuj krotnie
            ciag instrukcji - tak dlugo jak dlugo ?spelniony? bedzie
            warunek

            for
            zmienna in lista_wartoscidociag
            instrukcjidone
            lista_wartosci to ciag nazw oddzielonych spacja.
            zmienna otrzymuje kolejno wartosci z listy_wartosci - dla
            kazdej z nich wykonywany jest ciag instrukcji.
            Jako lista_wartosci mozne
            wystapic równiez wzornik - wartoscia zmiennej beda nazwy plików
            zgodnych z wzornikiem

            if [
            warunek ];thenciag
            instrukcji1elseciag
            instrukcji2fi
            jezeli spelniony
            jest warunek - wykonaj ciag
            instrukcji1, jezeli nie jest - wykonaj
            ciag
            instrukcji2
             
            Uwaga! Przed wykonaniem pliku ze skryptem
            musimy mu nadac atrybut 'executable' - komenda

            chmod u+x
            nazwa_pliku
            Przyklad:

            sprawdz czy plik o podanej jako parametr
            skryptu nazwie istnieje. Jezeli tak - sprawdz czy w tym pliku wystepuje linia
            z tekstem bedacym drugim parametrem skryptu. Jezeli oba warunki sa spelnione -
            utwórz plik o nazwie zgodnej z nazwa pliku bazowego oraz rozszerzeniem
            '.tekst_szukany.RESULT'. W pliku tym powinny znajdowac sie wylacznie
            linie zawierajace szukany tekst

            plik: do_find




            for fname in
            $1;doif [ -f $fname ];thenif grep $2 $fnamethengrep $2 $fname >
            $fname.$2.RESULTecho Zalozono plik $fname.$2.RESULT
            ...elseecho W pliku $fname nie ma szukanych linii
            $2fielseecho Plik $fname nie
            istniejefi ;done
            Cwiczenie:

            stwórz - za pomoca vi - plik zawierajacy
            skrypt do_find. Przecwicz wykonanie takiego skryptu. Dodaj do skryptu
            instrukcje sledzace jego wykonanie (instrukcje echo wyswietlajace
            wartosci zmiennych podczas wykonywania skryptu)
             
            Konfigurowanie
            srodowiska uzytkownika:
            w kartotece bazowej kazdego uzytkownika znajduja
            sie pliki konfigurujace jego sesje. Do najwazniejszych z tych plików
            naleza:



            .cshrc
            plik zawierajacy
            instrukcje wykonywane w czasie uruchamiania sesji uzytkownika. Znajduja
            sie tu najczesciej instrukcje definiujace aliasy (zob. dalej),
            redefiniujace zmienna systemowa PATH oraz uruchomienie programów , które
            uzytkownik chce wykonywac kazdorazowo podczas uruchamiania jego
            sesji



            .login
            plik ten jest
            uruchamiany kazdorazowo podczas otwarcia przez uzytkownika nowego okienka
            w biezacej sesji. Znaczenie - podobne jak
            .cshrc



            .logout
            instrukcje
            wykonywane bezposrednio przed zakonczeniem sesji uzytkownika. Zwykle
            zawieraja komendy 'robiace porzadki' - usuwanie plików tymczasowych,
            odtwarzanie stanu systemu, itp. Moze nie
            wystapic.
            Kolejnosc uruchamiania plików
            .cshrc i .login jest nastepujaca:

            uzytkownik wykonuje komende
            login zeby uruchomic swoja sesje w systemie Unix. Wykonywane sa
            instrukcje z pliku .cshrc. Poniewaz jednoczesnie otwiera sie
            okienko - po .cshrc wykonywany jest plik
            .login
            kazdorazowo gdy - pracujac w biezacej sesji -
            uzytkownik otwiera nowe okienko - wykonywany jest plik
            .login
            kiedy uzytkownik wykona komende
            logout (konczaca sesje) wykonywany jest plik
            .logout
            Dodatkowymi plikami konfiguracyjnymi, które moga
            byc ustawiane przez uzytkownika sa:



            .forward
            jezeli taki plik
            istnieje w kartotece bazowej uzytkownika wszystkie przychodzace do niego
            listy (email) sa automatycznie odsylane na adres (lub adresy)
            zapisane wewnatrz pliku .finger

            .plan
            .project
            jezeli te pliki
            istnieja w kartotece bazowej uzytkownika ich zawartosc jest wyswietlana
            przez komende finger - przekazujaca informacje o
            uzytkowniku. Pozwalaja zdefiniowac informacje które uzytkownik chce
            przekazac o sobie
             

            Aliasy
            konstrukcje postaci

            alias nazwa
            'wartosc'
            wystepujace w plikach .cshrc i
            .login definiuja aliasy. Od momentu zdefiniowania aliasu
            kazde wpisanie przez uzytkownika tekstu nazwa bedzie traktowane
            tak jakby uzytkownik wpisal tekst wartosc. Pozwala to definiowac
            'nowe' komendy w Unixie. wartosc ujmujemy w apostrofy
            jezeli wewnatrz tekstu tworzacego wartosc wystepuja
            spacje.
            Komende alias mozemy równiez
            wprowadzic z linii komend Unixa.
            Definicje


            alias md
            mkdiralias dir 'ls -aFsl'alias
            del 'rm -i'
            pozwalaja uzywac pod Unixem 'komend
            MsDOSa'.
            Komenda

            alias
            pozwala wylistowac biezaco zdefiniowane aliasy a
            komenda

            unalias
            nazwa
            usuwa definicje aliasu
            nazwa.
            Cwiczenie:

            wyswietl zawartosc swoich plików
            .cshrc i .login. Jezeli nie istnieja aliasy
            'komend MsDOSa' - dopisz je do .cshrc. Zaloginuj sie
            ponownie i spróbuj ich uzyc.
            utwórz pliki .plan i
            .project w swojej kartotece bazowej. Zobacz jak dziala komenda
            finger twoja_nazwa_uzytkownika kiedy takie pliki
            istnieja.

             
            Adresy sieciowe
            komputerów. Komunikacja pomiedzy
            komputerami.
            kazdy komputer dolaczony do sieci komputerowej
            posiada dwa adresy sieciowe: symboliczny i tzw. IP adres. Oba
            adresy sa tworzone przez administratora systemu. Adres symboliczny wlasnego
            komputera mozemy uzyskac komenda

            hostname
            natomiast adres IP mozemy znalezc
            w pliku /etc/hosts - plik ten zawiera pary 'adres symboliczny - IP
            adres' dla komputerów, które sa 'znane' naszemu komputerowi. IP
            adres ma zawsze postac czterech liczb z przedzialu 1 - 253, oddzielonych
            od siebie kropkami.
            Do komunikacji pomiedzy komputerami w sieci
            uzywane sa najczesciej dwie komendy:



            telnet
            Uruchom sesje uzytkownika
            na zdalnym komputerze.
            komenda ta laczy sie z komputerem o
            podanym adresie. Jezeli taki komputer nie istnieje (nie jest znany jego
            adres symboliczny lub nie istnieje mozliwosc zamiany adresu symbolicznego
            na IP) komenda konczy sie z komunikatem o bledzie. Jezeli uda sie
            polaczyc ze zdalnym komputerem - uzytkownik zostanie poproszony o
            zaloginowanie sie - bedzie musial podac poprawna nazwe i haslo uzytkownika
            zdefiniowanego na komputerze, do którego sie dolaczyl. Jezeli to zrobi -
            od tego momentu, siedzac przy terminale wlasnego komputera, wykonuje
            obliczenia na komputerze zdalnym.

            ftp
            adres_IP_lub_symboliczny
            Uruchom program do
            transmisji plików pomiedzy komputerami.
            Najpierw - ftp próbuje
            polaczyc sie ze zdalnym komputerem - analogicznie jak
            telnet. Takie same moga byc równiez powody blednego
            zakonczenia ftp. Jezeli uda sie polaczyc ze zdalnym
            komputerem - uzytkownik musi sie poprawnie zaloginowac. Wiele z komputerów
            udostepniajacych pamietane na nich informacje pozwala zaloginowac sie jako
            uzytkownik anonymous z haslem
            'nazwa_uzytkownika@adres_komputera_z_którego_sie_lacze'.Po
            polaczeniu sie mozemy transmitowac pliki pomiedzy naszym komputerem a
            komputerem do którego sie dolaczylismy uzywajac wewnetrznych komend
            ftp:



            asciibinary
            przelancza tryb
            transmisji. W trybie ascii zawartosci plików sa
            przesylane 7bitowo - tryb ten sluzy najczesciej do przesylania
            plików tekstowych. W trybie binary transmisja jest 8
            bitowa

            prompt
            przelacza (jezeli nie
            byl wlaczony - to wlacza, jezeli byl wlaczony - wlacza) tryb pytania
            o kazdy plik podczas transmisji wielu plików

            status
            wyswietla informacje o
            biezaco ustawionych parametrach transmisji (ascii / binary,
            prompt)

            lcd
            kartoteka
            zmienia biezaca
            kartoteke na naszym komputerze

            cd
            kartoteka
            zmienia biezaca
            kartoteke na komputerze do którego sie dolaczylismy

            get
            nazwa_pliku [ nazwa_lokalna ]
            skopiuj jeden plik o
            nazwie nazwa_pliku z komputera zdalnego na nasz
            komputer. Jezeli wystapi parametr nazwa_lokalna plik zostanie
            zapisany pod ta nazwa. Jezeli nie wystapi - pod nazwa jaka mial na
            komputerze zdalnym

            put
            nazwa_pliku [ nazwa_zdalna ]
            operacja odwrotna do
            get - skopiuj plik z naszego komputera na komputer
            zdalny ewentualnie zmieniajac mu nazwe na
            nazwe_zdalna

            mget
            wzornik
            skopiuj wszystkie pliki
            których nazwy sa zgodne z wzornikiem ze zdalnego komputera na nasz
            komputer. Jezeli prompt jest wlaczony - nazwa kazdego pliku
            który ma byc przesylany bedzie wyswietlana a uzytkownik bedzie
            pytany czy ten plik ma byc przetransmitowany

            mput
            wzornik
            komenda odwrotne do
            mget - kopiuje wszystkie pliki o nazwach zgodnych z
            wzornikiem z naszego komputera na komputer zdalny

            help
            wyswietl opis komend
            ftp (omówilismy tylko najwazniejsze z nich, jest ich
            wiecej)

            quit
            zakoncz prace z
            ftp


             
            DNS - Domain Name
            Service
            jak mozemy zauwazyc w pliku
            /etc/hosts nie ma adresów wszystkich komputerów jakie istnieja na
            swiecie - jezeli tylko znamy symboliczny adres komputera to mozemy sie z nim
            polaczyc nawet wtedy kiedy informacji o nim nie ma w /etc/hosts.
            Dzieje sie tak dlatego ze w sieci komputerowej - oprócz zwyklych komputerów -
            istnieja równiez komputery zajmujace sie zamiana adresów symbolicznych na adresy
            IP - tzw. name servery
            Cwiczenie:

            wyswietl zawartosc pliku
            /etc/hosts na wlasnym komputerze
            polacz sie przez ftp z
            komputerem o adresie ftp.cyf-kr.edu.pl. Zaloginuj sie jako
            uzytkownik anonymous z odpowiednim haslem. Komputer ten to
            krakowska kopia wezla simtel i cica -
            zawiera bardzo duzo oprogramowania typu shareware i public
            domain. Skopiuj dowolny, wybrany przez siebie plik z tego komputera na
            wlasny komputer. Pamietaj o ustawieniu trybu transmisji
            (ascci/binary)

             
            Uruchamianie systemu X
            Windows
            konfiguracja komputera w ten sposób, zeby na
            terminalach graficznych uruchamial sie automatycznie system X Windows jest
            zwykle sprawa administratora systemu - informacje o 'recznym' konfigurowaniu
            sysetmu X Windows wykraczaja poza zakres tego kursu - dlatego nie beda tutaj
            omawiane.
            Gdyby jednak na naszym graficznym terminalu nie
            uruchomil sie automatycznie system X Windows - mozemy wykonac komende
            openwin - ta komenda inicjuje prace systemu X Windows.
            Zasada dzialania systemu X Windows:
            W systemie X Windows wyrózniamy dwa typy
            komputerów:

            klient - to komputer na którym
            wykonywane jest uruchomione przez nas oprogramowanie. Dokladniej - komputer
            którego procesor i pamiec sa uzyte do uruchomienia programu który
            wykonujemy
            serwer - to komputer którego
            ekran wyswietla wyniki dzialania uruchomionego programu a klawiatura jest
            uzywana do wprowadzania danych
            Zwykle serwerem jest komputer przy
            którym siedzimy a klientem komputer z którym polaczylismy sie zeby
            uruchomic znajdujace sie tam oprogramowanie (oczywiscie moze sie tak zdazyc, ze
            serwer i klient to ten sam komputer)
            Tym gdzie bedzie wyswietlany wynik programu
            pracujacego pod kontrola X Windows steruja dwa elementy:

            zmienna systemowa DISPLAY -
            przed uruchomieniem programu musimy ustawic te zmienna tak, by wskazywala
            komputer, na którym ma byc wyswietlany wynik dzialania programu.

            jezeli chcemy wyswietlac wyniki na ekranie
            komputera o nazwie alfa (nazwe naszego komputera otrzymamy
            uzywajac komendy hostname) to zmienna DISPLAY
            powinna byc ustawiona nastepujaco:

            set
            DISPLAY=alfa:0.0
            Takie ustawienie zmiennej DISPLAY
            mozemy potraktowac jako stwierdzenia 'ja program chce wyswietlac na komputerze
            alfa'. Aby to bylo mozliwe konieczna jest jeszcze druga operacja -
            komputer alfa musi zgodzic sie na to, zeby program mógl cos wyswietlac na
            ekranie alfy.
            Zalózmy, ze program który chce wyswietlac wyniki
            na komputerze alfa dziala na komputerze beta. Przed uruchomieniem
            programu uzytkownik musi - w okienku uchomionym na komputerze alfa -
            wykonac komende

            xhost
            +betaI
            Te komende mozemy potraktowac jako stwierdzenie
            'ja komputer alfa zgadzam sie zeby programy z komputera beta
            wyswietlaly na moim ekranie'
            Dopiero wykonanie obu tych czynnosci pozwoli na
            poprawne dzialanie programu graficznego
             
            Konfiguracja wlasnego ekranu w systemie X
            Windows
            jezeli chcemy spersonalizowac sposób w jaki
            bedzie zglaszac sie system X Windows na naszym komputerze postepujemy
            nastepujaco:
            SUN:

            uruchamiamy te aplikacje które powinny
            uruchamiac sie kazdorazowo kiedy bedziemy uruchamiac X Windows. Ustawiamy
            okienka w tych miejscach w których powinny sie pojawic, minimalizujemy do ikon
            aplikacje które powinny uruchomic sie jako zminimalizowane - porzadkujemy
            obiekty na ekranie tak, jak chcemy zeby sie ukazywaly po uruchomieniu X
            Windows
            ustawiamy kursor myszki na pustym fragmencie
            ekranu, naciskamy prawy przycisk myszki. Z menu które sie pojawilo wybieramy
            Desktop a nastepnie - z pod menu - Save Workspace.
            Spowoduje to zapamietanie stanu naszego ekranu - poczawszy od nastepnego
            uruchomienia X Windows beda pojawiac sie w sposób w jaki je
            ustawilismy.
            SGI:






            zobacz opis sposobu zapamietywania
            ustawienia Desktopu dla origina 200


            Cwiczenia:

            znajdz nazwy programów graficznych na Twoim
            komputerze - wyswietl z kartoteki $OPENWINHOME/bin nazwy
            wszystkich programów zaczynajace sie od 'x'. Spróbuj uruchomic kilka z
            nich
            spróbuj uruchomic program
            xclock (zegar) tak, by wyswietlal obraz na ekranie kolegi

            poustawiaj obiekty na ekranie swojego
            komputera i zapamietaj ich ustawienie
            ?'Tedd'
            T.Kedzierski
          • zanotowane.pl
          • doc.pisz.pl
          • pdf.pisz.pl
          • strefamiszcza.htw.pl
Copyright (c) 2009 Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ... | Powered by Wordpress. Fresh News Theme by WooThemes - Premium Wordpress Themes.