procedury linux

background image

POWŁOKA

( ang. SHELL) -

jak większość elementów Systemu UNIX

sama powłoka (shell) jest programem, takim jak i inne.

Interpretery różnych powłok w systemie operacyjnym UNIX

przechowywane są w plikach do których każdy z użytkowników
systemu ma dostęp w trybie egzekucji:

/bin/sh

- Bourne shell ,powłoka Bourne'a

/bin/csh

- C shell , powłoka C

/bin/ksh

- Korn shell

/bin/rsh

- remote shell

/bin/rksh

- remote Korn Shell

/bin/pam

- Personal Applications Manager - a visual shell

W związku z tym, nowa powłoka Bourne’a może być uruchomiona

przez wykonanie polecenia ( tak jak każdego innego polecenia ):

$

/bin/sh

lub po prostu

$

sh

( ponieważ ścieżka /bin jest na ogół w zestawie środowiska

poprzedniej powłoki wpisana do zmiennej PATH )

UNIX - powłoka jako program

background image

Wniosek:

powłoka jest pewnym programem, który może być

uruchomiony, tak jak

każde inne polecenie lub program

aplikacyjny.

Co z tego wynika:

- dla powłoki możemy także określić takie pojęcia jak:
STDIN - standardowe urządzenie wejścia
( default=klawiatura )
STDOUT - standardowe urządzenie wyjścia ( default=monitor )
STDERR - standardowe urządzenie dla komunikatów
( default=monitor )

- zestaw parametrów wywołania powłoki poleceniem

$

sh parametr1 parametr2 [... parametrN]

-

jeśli powłoka została uruchomiona poleceniem bez parametrów i

bez redyrekcji strumienia STDIN, to mówimy że powłoka pracuje w
trybie interakcyjnym, czyli takim, jak opisano wcześniej na
zajęciach, tzn. po wykonaniu ostatniego polecenia przechodzi na
nasłuch ( z klawiatury ) następnego polecenia pokazując

prompt

na ekranie (

$

)

- jeśli powłoka zostanie uruchomiona w jeden z dwojga poniżej

przytoczonych metod

$

sh < plik1

lub

$

sh plik1

to źródłem poleceń dla nowo uruchomionej powłoki (nowy,

odrębny proces), jest informacja zapisana w pliku o nazwie

plik1

.

Oczywiście, treść pliku plik1, musi stanowić ciąg linii tekstu, każda
z linii jest dobrze skonstruowanym poleceniem powłoki.

UNIX - powłoka jako program

background image

PRZYKŁAD Na poprzednich zajęciach rozwiązywano zadanie

postaci:
Użytkownik chce szybko się dowiedzieć, ile obiektów znajduje się
we wskazanym katalogu ( w przykładzie jest to katalog

/home

).

Zaproponowano 2 alternatywne podejścia:

UNIX - powłoka jako program

Rozwiązanie 1

Ciąg poleceń:

$

ls /home > listahome

$

wc -w < listahome

$

rm listahome

Rozwiązanie 2

Potok:

$

ls /home | wc -w

Możliwe jest zrealizowanie obu sposobów nieco inaczej, przez

uruchomienie kolejnej powłoki dla realizacji tego celu:

Rozwiązanie 1a

Rozwiązanie 2a

$

sh wykonaj1

$

sh wykonaj2

jeśli uprzednio przygotowano plik

wykonaj1 o zawartości :

wykonaj2 o zawartości

:

ls /home > listahome

ls /home | wc -w

wc -w < listahome
rm listahome

Oba pliki mogą być przygotowane typowym edytorem tekstu

(pliki ASCII).

background image

Rozwiązanie zaproponowane poprzednio jest mało elastyczne.

Zawsze będzie zliczać pliki w katalogu

/home

. Zliczenie plików w

innym katalogu będzie możliwe gdy zmienimy tekst

/home

na inny

( prawidłowo skonstruowaną ścieżkę do katalogu) w plikach :

wykonaj1

lub

wykonaj2

.

Powłoka dopuszcza użycia pewnych parametrów, które mogą być w

plikach

wykonaj1

lub

wykonaj2

reprezentowane w symboliczny

sposób, za pomocą:

$1

,

$2

,

$3

,

$4

,

$5

,

$6

,

$7

,

$8

,

$9

Noszą one nazwę parametrów pozycyjnych. W trakcie realizacji

nowego procesu powłoki w miejsce parametru pozycyjnego
wstawiany jest parametr z lini wywołania nowej powłoki.

PRZYKŁAD

Wracamy do naszego przykładu.
1. Zmieniamy zawartość pliku

wykonaj1

tak , by w miejsce

/home

wstawić

$1

2. Wykonujemy polecenie:

$

sh wykonaj1

/home

3. Wykonujemy polecenie:

$

sh wykonaj1

/home/studenci

UNIX - powłoka jako program

background image

PRZYKŁAD
Pokażemy zastosowanie

dwóch parametrów

pozycyjnych.

Poprzednie zadanie wzbogacamy o uzupełnienie pojawiającej się
liczby plików we wskazanym katalogu ( za pomocą pierwszego
parametru pozycyjnego ) komentarzem. Komentarz ten może być
drugim parametrem pozycyjnym.

1. Zmieniamy zawartość pliku

wykonaj1

2. Uruchamiamy nową powłokę
z parametrami:

wykonaj1

- nazwa pliku

/home/studenci

to $1

Janusz Donizak

to $2

UNIX - powłoka jako program

background image

Jeszcze większą elastyczność zastosowania powłoki jako programu
daje możliwość uprzedniego przygotowania pliku z listą poleceń
powłoki ( np.

wykonaj1

z poprzedniego przykładu ) , i uczynienie

tego pliku

plikiem wykonywalnym

( egzekucyjnym ),

przez

modyfikację praw dostępu

.

1

. Sprawdzamy prawa dostępu do pliku

wykonaj1

2

.

Modyfikujemy prawa dostępu ( w odniesieniu do siebie jako

właściciela pliku)

3

. Sprawdzamy ponownie nowe prawa dostępu do pliku

wykonaj1

4

. Uruchamiamy program ( nowe polecenie !!! )

./wykonaj parametr1 paramter2

UNIX - powłoka jako program

Uwaga: znaki

./

na początku polecenia wskazują jednoznacznie

ścieżkę

do

katalogu

aktualnego.

Przy

innych

poleceniach

( systemowych) tego nie trzeba robić, gdyż przeszukiwana jest
ścieżka

/bin

gdzie odpowiednie pliki poleceń są składowane

background image

Zmienne powłoki.

W powłoce można używać zmiennych, którym przypisuje się
określoną wartość za pomocą instrukcji przypisania ( podstawienia )

nazwazmiennej=wartość

gdzie

nazwazmiennej

to ciąg znaków nazwy, zaś

wartość

to ciąg

znaków określających wartość (czasami niezbędne jest zastosowanie
znaków cytowania)

Przykład. W poprzednio przygotowanej procedurze

wykonaj1

wprowadzimy pewne zmiany, przez wykorzystanie pojęcia zmiennej.

1. Zmiany dokonane w pliku

wykonaj1

2. Uruchomienie procedury wykonaj1

UNIX - powłoka jako program

Uwaga: Wykorzystanie zmiennej przez odwołanie się do niej:
nazwa zmiennej musi być poprzedzona znakiem

$

( $nazwazmiennej)
np.

echo

$abc

$1

$kon

background image

Zmienne powłoki ustalane w momencie uruchomienia nowego
procesu powłoki.

Pewna grupa zmiennych ma nadaną wartość przez powłokę w
momencie uruchomienia procedury powłoki. Są to:

#

- ilość parametrów pozycyjnych wywołania procedury powłoki,

?

- kod powrotu (dziesiętnie) ostatniego procesu uruchomionego

synchr.

$

- numer procesu (PID) właśnie tej procedury powłoki

!

- numer procesu (PID) ostatniego polecenia wykonanego w tle

(background)

*

- wszystkie parametry pozycyjne razem

HOME

- ścieżka do katalogu osobistego właściciela procesu

procedury powłoki,

PATH

- ściezki przeszukiwane w celu odszukania plików poleceń,

Przykład
1. Przygotowujemy plik
procedury proc0.sh

UNIX - powłoka jako program

2. Uruchamiamy procedurę
3 parametry pozycyjne:

Ala

,

ma

,

kota

background image

Podstawienie polecenia.

Częstym przypadkiem podstawienia (przypisania) wartości zmiennej
jest podstawienie wyniku jakiegoś polecenia. Takie podstawienie ma
postać :

zmienna = ‘polecenieA‘

Opis:

wykonywane jest

polecenieA

, wynik polecenia, który pojawił by

się na STDOUT umieszczany jest w miejsce

poleceniaA

, przez co

faktycznie realizowane jest podstawienie:

zmienna = ’wynik_poleceniaA’

UWAGA: znak cytowania, który ma tu zastosowanie, to klawisz :
Przykład
Spróbujmy napisać procedurę powłoki, która przypisuje zmiennej
ile1 ilość podkatalogów w katalogu wskazanym parametrem
pozycyjnym

UNIX - powłoka jako program

Uruchamiamy procedurę:

./za1.sh /home

`

~

background image

PRZYKŁAD: Instrukcja wyboru case

Przykład wykorzystania instrukcji wyboru "CASE" do analizy ilości
parametrów wywołania procedury oraz wykorzystania argumentów
$1, $2 ... i argumentu specjalnego "$#"

UNIX - powłoka jako program

OPIS:
Komentarz - linie
zaczynające się
znakiem #
Początek instr. Case

Przypadek
0 parametrów

1 parametr

2 parametry

każda inna ilość
parametrów niż 0,1
lub 2

koniec instr. case

Uruchomienie procedury:

./proc1.sh vera 12

ESC

background image

Instrukcja warunkowa if

UNIX - powłoka jako program

if

polecenieA

then

grupapoleceń1

else

grupapoleceń2

fi

OPIS:
Egzekwowana jest tylko jedna grupa
poleceń,

jeśli kod wyjścia

poleceniaA

= 0 (TRUE)

grupa1

jeśli kod wyjścia

poleceniaA

> 0 (FALSE)

grupa2

Uwaga: każdemu poleceniu, lub generalnie procesowi nadawany

jest kod wyjścia ( stała całkowita nieujemna ), za pomocą
której

można

scharakteryzować

wynik

realizacji

polecenia ( procesu ). W opisie działania polecenia taka
informacja jest na ogół dostępna.

Instrukcje warunkowe

if

można zagnieżdżać jedną

wewnątrz drugiej:

if

polecenieA

then

if

polecenieB

then

grupa1

else

grupa2

fi

fi

background image

Instrukcja warunkowa if

UNIX - powłoka jako program

if

polecenieA

then

grupapoleceń1

else

grupapoleceń2

fi

OPIS:
Egzekwowana jest tylko jedna grupa
poleceń,

jeśli kod wyjścia

poleceniaA

= 0 (TRUE)

grupa1

jeśli kod wyjścia

poleceniaA

> 0 (FALSE)

grupa2

Uwaga: każdemu poleceniu, lub generalnie procesowi nadawany

jest kod wyjścia ( stała całkowita nieujemna ), za pomocą
której

można

scharakteryzować

wynik

realizacji

polecenia ( procesu ). W opisie działania polecenia taka
informacja jest na ogół dostępna.

Instrukcje warunkowe

if

można zagnieżdżać jedną

wewnątrz drugiej:

if

polecenieA

then

if

polecenieB

then

grupa1

else

grupa2

fi

fi

background image

PRZYKŁAD zastosowania instrukcji

if

w powiązaniu z poleceniem

test.

Przygotowujemy procedurę, która ma sprawdzić, w którym spośród
dwóch katalogów jest więcej podkatalogów. Ścieżki do katalogów
porównywanych podane parametrami pozycyjnymi.
ROZWIAZANIE:
1. Wykorzystamy poprzednio napisaną
procedurę

za1.sh

, po małej modyfikacji,

w miejsce tekstu w poleceniu

echo

wstawiamy tylko zmienną wyrażającą
dziesiętnie ilość podkatalogów

2. Nowa procedura

za2.sh

będzie

korzystać z procedury

za1.sh

do wyzna-

czenia ilości podkatalogów.
Wykorzystujemy polecenie

test

do sprawdzenia wartości zmiennych

liczba1

i

liczba2

.

3. Uruchomienie procedury

UNIX - powłoka jako program

test

background image

ZADANIE1 Przebuduj procedurę

za2.sh

, tak aby w przypadku

niewłaściwej liczby parametrów pozycyjnych w linii wywołania
procedury ( różnej od 2 ) , procedura nie podejmowała innych
działań, tylko objaśniła użytkownika o swym działaniu.

ROZWIĄZANIE1:

UNIX - powłoka jako program

case

background image

UNIX - powłoka jako program

test

ZADANIE2 Zbuduj procedurę

proc2.sh

, która sprawdzi które

parametry pozycyjne z linii wywołania procedury są plikami
zwykłymi czy katalogami. Jeśli parametr procedury poprzedzony jest
znakiem - , należy go traktować jako opcję.
ROZWIĄZANIE2:

background image

Instrukcja pętli for

Pętla jest konstrukcją programistyczną pozwalającą na wielokrotne
powtórzenie jednego lub wielu poleceń:

UNIX - powłoka jako program

W tym kolorze
elementy stałe
instrukcji

W tym kolorze elementy
zmienne
(zależne od użytkownika)

for

zmienna

in

lista

do

grupapoleceń

done

OPIS:
Egzekwowana jest

grupapoleceń

tylokrotnie, ile obiektów występuje

w liscie

lista

, przy czym za każdym razem

zmienna

przyjmuje kolejną

wartość z listy

lista

.

Możliwe jest wielokrotne zagnieżdżanie pętli wewnątrz pętli, ale
należy zachować indywidualną (unikalną) nazwę

zmiennej

dla każdej

z nich.

UWAGA :
gdy lista ma postać reprezentowaną przez pojedynczy znak

*

,

wtedy

lista

reprezentuje zbiór nazw obiektów (plików i

podkatalogów) w katalogu aktualnym.

background image

UNIX - powłoka jako program

Przygotowanie do prezentacji przykładu:
1. Utwórz w katalogu aktualnym pliki:

a) plik tekstowy o nazwie mic1.txt zawierający pierwsze
strofy Inwokacji do „Pana Tadeusza” A. Mickiewicza

b) plik tekstowy o nazwie kolory.txt zawierający

background image

UNIX - powłoka jako program

Przygotowanie do prezentacji przykładu:
2. Utwórz w katalogu aktualnym pliki:

Listę plików zawierających kalendarze miesięczne roku 2000
dla każdego z miesięcy osobno, o nazwach :

1.fuj - styczeń 2000
2.fuj - luty 2000
.
.
.
12.fuj

- grudzień 2000

W tym celu napisz procedurę, korzystając z instrukcji

for

.

Rozwiązan
ie

( click )

cal

background image

UNIX - powłoka jako program

ZADANIE3: Przygotuj procedurę, która będzie:
1) rozpoznawać pliki zwykłe w katalogu aktualnym
2) spośród rozpoznanych plików zwykłych, wybierać takie, które
mają nazwę skonstruowaną w taki sposób że:

2a)

na końcu znajduje się ciąg znaków:

.txt

2b)

na końcu znajduje się ciąg znaków:

.fuj

3) Po rozpoznaniu pliku typu

2a

, otwiera edytor

/usr/vue/bin/vuepad

do edycji tego pliku
4) Po rozpoznaniu pliku typu

2b

, zmienia jego nazwę tak by kończyła

się ciągiem znaków

.be

( Uwaga: najpierw trzeba sprawdzić, czy

użytkownik uruchamiający procedurę ma uprawnienia zapisu ).

ROZWIĄZANIE3:
Wskazówka:
Polecenie treści

/usr/vue/bin/vuepad

nazwapliku

uruchamia

edycję tekstu z pliku

nazwapliku

.

Każde polecenie zakończone znakiem & , powoduje uruchomienie
nowego procesu biegnącego niezależnie od procesu który
spowodował jego powstanie.

Pytanie: jaka będzie różnica w realizacji procesów ( z poziomu
procedury )

/usr/vue/bin/vuepad

nazwapliku

/usr/vue/bin/vuepad

nazwapliku

&

background image

UNIX - powłoka jako program

basename

ROZWIĄZANIE3:
Wskazówka: aby wyciąć fragment nazwy pliku z jego ścieżki można
wykorzystać polecenie

basename

mv

test

Rozwiązan
ie

( click )

Napisz 2 wersje, ze
znakiem

&

i

bez,

porównaj

efekt

w

trakcie

wykonania

procedury

*

tutaj oznacza wszystkie

nazwy plików (i katalogów)
w katalogu aktualnym

background image

UNIX - powłoka jako program - edytor „ed”

W systemach Unixowych, występują bardzo stare edytory tekstu,
które pozwalały na wykonywanie edycji tekstów, bez korzystania z
możliwości oferowanych przez współczesne terminale. Takim
edytorem jest np. edytor liniowy

ed

, który nadal ma swoje

zastosowanie w niektórych sytuacjach ( będzie to przedmiotem
kolejnego przykładu zastosowania procedur ).

Edytor ed umożliwia operacje na określonym pliku tekstowym bez
potrzeby wyświetlania choćby jednej nawet linii tego pliku. W trybie
interakcyjnym, potrafi wyświetlić pojedynczą linie tylko. W trybie
wsadowym, jest jednak bardzo użyteczny.
Parę poleceń użytecznych:

ed

abc

uruchomienie edytora w trybie interakcyjnym

dla edycji pliku

abc

ed

abc

<<

%

lista rozkazów edycji

%

Rozkazy edycji edytora ed:

g

/

wzor1

/

s

/

wzor2

/

wzor3

/g -

uruchomienie edytora w trybie wsadowym,
z wczytywaniem poleceń edycyjnych
zawartym pomiędzy znakami cytowania

%

we wszystkich liniach pliku (

g

=global) w

których odnajdziesz fragment tekstu
/

wzor1

/ , dokonaj podstawienia

(

s

=substitute) tekst

wzor2

na tekst

wzor3

dla każdego pojawienia się

wzor2

w linii

(g=global)

background image

Polecenia edycyjne edytora ed:

w

- zapisz przetwarzany plik i zakończ edycje

ZADANIE:

Poprzednią procedurę, proc3.sh, przerób tak, by w odnalezionych
plikach tekstowych (*.txt) zamienić każde pojawienie się tekstu
zadanego pierwszym parametrem pozycyjnym procedury, na tekst
zadany przez drugi parametr pozycyjny. Wykorzystaj edytor ed.

Rozwiązan
ie

( click )

background image

KONIEC TEMATU

„PROCEDURY”

KONIEC POKAZU

background image

Polecenie wypisuje zawartość pliku dzieląc go na kolejne

ekrany. Rozmiar ekranu (ilość linii) czytany jest przez

system z bazy dostępnych terminali. Jeśli nie jest to

możliwe system przyjmuje że terminal ma 24 linie. Każdy

wypisany pełny ekran kończony jest linią ze znakiem

:

(dwukropek), jeśli nie użyto opcji

-p

. Polecenie

pg

ma

bardzo rozbudowany system wewnętrznych poleceń.

Między innymi: naciśnięcie klawisza

enter

powoduje

wypisanie kolejnej linii, sekwencja klawiszy

spacja

enter

wypisuje kolejny ekran,

5

enter

wypisuje zawartość pliku od

linii 5,

q

enter

przerywa wypisywanie,

h

enter

wypisuje

skróconą pomoc (help)

.

Składnia:

pg

[-nr]

[

-p

tekst]

[-cefns]

[ +numer ] [ +wzorzec ] [

plik ...]

pg

- wyświetl zawartość pliku tekstowego

z podziałem na ekrany

Wybrane Opcje:

-e

brak zatrzymywania po wyświetleniu pliku (gdy wypisywana

jest większa
ilość plików),

-s

tekst ustawiony przez

-p tekst

będzie podświetlany,

Parametry:

-nr

ustawia długość strony na

nr

linii (standardowo ilość

linii

terminalu),

-p

tekst

tekst kończący każdą

wypisaną stronę

(standardowo

:

) ,

+numer

wypisywanie od linii o numerze

numer

,

+wzorzec

rozpoczyna wypisywanie od linii w której znaleziono

ciąg

znaków określony przez

wzorzec

,

plik ...

nazwy wyświetlanych plików.

ESC

background image

Polecenie wypisuje zawartość pliku dzieląc go na kolejne

ekrany. Rozmiar ekranu (ilość linii) czytany jest przez

system z bazy dostępnych terminali. Jeśli nie jest to

możliwe system przyjmuje że terminal ma 24 linie.

Każdy wypisany pełny ekran kończony jest linią z

tekstem

--More--

oraz informacją ile tekstu już wypisano.

Polecenie

more

ma bardzo rozbudowany system

wewnętrznych poleceń. Między innymi: naciśnięcie

klawisza

enter

powoduje wypisanie kolejnej linii,

spacji

kolejnego ekranu, klawisza

q

przerywa wypisywanie a

klawisza

h

wypisuje skróconą pomoc (help)

.

Składnia:

more

[-n]

[-cdflsu]

[ +numer ] [ +wzorzec ]

[ plik ...]

more

- wyświetl zawartość pliku

tekstowego
z podziałem na ekrany

Wybrane Opcje:

-d

wypisuje dodatkowo po każdej stronie tekst

press space to

continue ,
q to quit

(standardowy tekst

--More-- x%

),

-s

usuwa wielokrotnie występujące linie puste zostawiając jedną,

Argumenty:

-n

ustawia długość strony na

n

linii (standardowo ilość

linii

terminalu),

+numer

wypisywanie od linii o numerze

numer

,

+wzorzec

rozpoczyna wypisywanie 2 linie przed linią w której

znaleziono

ciąg znaków określony przez

wzorzec

,

plik ...

nazwy wyświetlanych plików.

ESC

background image

Polecenie wypisuje kalendarz dla wskazanego przez
argumenty miesiąca lub całego roku. Przy braku
argumentów wypisywany jest kalendarz dla aktualnego
miesiąca. Rok musi zawierać się w przedziale 1-9999.
Polecenie zakłada że każdy rok rozpoczynał się w
styczniu, chociaż nie jest to prawdą historyczną.

Składnia:

cal

[ [ month ] year ]

cal

- wypisz kalendarz

Argumenty:

month

- numer miesiąca w roku,

year

- wybrany rok.

Przykład:

polecenie

cal 9 1939

wypisuje wrzesień 1939 roku

September 1939

S M Tu W Th F S

1 2

3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ESC

background image

ESC

Polecenie

czyta kolejne pliki z listy

file ...

i wypisuje w

postaci jednego pliku na standardowym wyjściu (zwykle
ekran terminala).
Jeśli lista

file...

jest pusta,

cat

czyta ze standardowego pliku

wejściowego (zwykle klawiatura).

cat

– połącz (konkatenuj) i wyświetlaj pliki

Składnia

-

cat

[-s] [-u] [-v] [-t] [-e]

file ...

Opcje:

-s

brak komunikatów o nieistnieniu plików,

-u

brak buforowania operacji we/wy,

-v

znaki niewidoczne (np. kontrolne) poza pewnymi

wyjątkami np. tabulator, pisane są w postaci
^n, gdzie n znak z zakresu (100-137 oct),

-t

znak tabulatora

pisan

y w postaci ^I

(opcja dostępna tylko łącznie z opcją

-v

),

-e

znak $ dopisywany na końcu każdej linii

(opcja dostępna tylko łącznie z opcją

-v

).

Argumenty:

file

- lista łączonych plików.

background image

ESC

Polecenie zlicza ilość wierszy, słów lub znaków we

wskazanych plikach lub na standardowym wejściu. Wynik

działania wypisywany jest na standardowe wyjście. Słowo

wg. tego polecenia to ciąg znaków zakończony spacją,

tabulatorem lub znakiem nowej linii. Opcje mogą być

stosowane łącznie. Standardowo polecenie zakłada że

włączone są wszystkie opcje (

-lwc

).

Składnia:

wc

[-lwc]

[name]

wc

- zlicz słowa, linie lub znaki

Opcje:

-l

zliczana jest ilość wierszy,

-w

zliczana jest ilość słów

,

-c

zliczana jest ilość znaków.

Argumenty:

name

nazwa pliku.

background image

Składnia

ls

[-abcdfgilmnopqrstuxACFHLR1]

[names]

ls

- wypisanie zawartości katalogów

Polecenie wypisuje zawartość wszystkich katalogów
wymienionych w liście katalogów

names

. Jeśli nie

występuje argument

names

wypisywana jest

zawartość katalogu aktualnego. Standardowo
wypisywane są wszystkie pliki poza tymi których
nazwa rozpoczyna się od

.

lub

..

(pliki ukryte).

Wybrane Opcje:

-a

wypisuje wszystkie pliki, również ukryte,

-l

pełna informacja o plikach: typ pliku, prawa dostępu,

ilość linków, właściciel, grupa, rozmiar, czas
modyfikacji oraz nazwa,

-p

dopisanie znaku

/

do nazwy katalogów,

-r

wypisanie w kolejności od najstarszego do

najmłodszego,

-t

wypisanie w kolejności zależnej od czasu

modyfikacji(pierwszy

najwcześniejszy,

-R

wypisywanie rekurencyjne łącznie z zawartością

podkatalogów

-1

wypisywanie w jednej kolumnie

Argumenty:

names

lista katalogów

Polecenie

ls -alt

wypisuje pełną informację o wszystkich

plikach katalogu aktualnego (łącznie z plikami ukrytymi) w
kolejności zależnej od czasu modyfikacji .

ESC

background image

ESC

Polecenie, w zależności od użytych opcji, może wyświetlić:
nazwę użytkownika, linię terminala, czas zgłoszenia się do
systemu (logowania), czas jaki upłynął od ostatniej
aktywności linii terminala oraz systemowy numer (process
ID) interpretera poleceń (shell) dla każdego użytkownika
obecnie pracującego w systemie. Informacja ta czytana jest
z pliku /etc/wtmp lub z pliku

file

jeśli występuje ten

argument.

who

- kto jest w systemie

Składnia

-

who

[-muTlHqpdbrtasAcR]

[file]

who am i

Wybrane Opcje:

-m

równoważna poleceniu

who am

i

lub

who am I

,

-T

pełna informacja łącznie ze stanem terminala,

numerem procesu, nazwą komputera lokalnego itp.

-H

wypisywane są dodatkowo nagłówki kolumn,

-R

wypisywana jest dodatkowo nazwa komputera lokalnego ,

Argumenty

:

file

- przeglądany jest plik

file

a nie

standardowy /etc/wtmp

$

who

-H

NAME

LINE

TIME

adam

ttyp3

May 3 08:23

marcin

console

May 3 08:08

szczur

ttyp4

May 4 12:16

$

background image

ESC

Polecenie wycina wskazane kolumny pól każdej liki
pliku. Wynik działania polecenia wypisywany jest na
standardowe wyjście. Pole może mieć stałą szerokość
(określoną ilość znaków) lub może być ograniczone
wybranym znakiem zwanym delimiterem.
Standardowym delimiterem jest tabulator.

Jeśli nie występuje argument

file...

czytane są znaki ze

standardowego wejścia.

Opcje:

-c

każdy znak jest polem,

-f

pole to ciąg znaków oddzielony delimiterem

(standardowo tabulatorem),

-d

ustawianie znaku delimitera,

-s

opuszczanie linii bez znaku delimitera.

Argumenty:

list

oddzielona przecinkami lista numerów

wycinanych

pól np. 1,4,6-9,12- oznacza: pole pierwsze,

czwarte,

od szóstego do dziewiątego oraz od 12 do

końca linii,

file...

lista nazw plików,

char

dowolny znak lub znaki specjalne i spacja

w cudysłowach .

cut

- wytnij wybrane pola z wszystkich

linii pliku

Składnia:

cut

-c

list [file ...]

cut

-f

list

[-d

char

]

[-s]

[file ...]

background image

ESC

Składnia:

sort

[-cmu]

[

-o

out]

[bdfilnrM]

[file ...]

sort

- sortuj i/lub scal pliki

Polecenie sortuje wspólnie wszystkie linie wskazanych przez
argumenty polecenia plików tekstowych. Jeśli pliki te nie
zostaną wyszczególnione, sortowana jest informacja za
standardowego wejścia. Wynik polecenia wypisywany jest
na standardowe wyjście lub do wskazanego pliku.

Argumenty:

out

- nazwa pliku po przesortowaniu,

file ...

- lista nazw plików sortowanych,

Wybrane Opcje:

-c

- kontrola czy plik wejściowy

file

jest już

przesortowany.

Jeśli tak, nie zostanie utworzony plik wynikowy

out

.

-m

- nie sortuje, tylko scala pliki z listy,

-u

- usuwa kopie linii (zostawia tylko oryginał),

-o

- wynik polecenia pisany do pliku o nazwie

out

.

background image

ESC

uniq

- znajdź powtarzające się linie

pliku

Składnia:

uniq

[-udc

[+n][-n]

]

[input

[output]]

...

Polecenie czyta standardowe wejście lub wskazany plik
tekstowy i porównuje sąsiadujące linie. W normalnym
przypadku, gdy nie użyto opcji, usuwane są wszystkie
kolejne kopie linii. Wynik wypisywany jest na standardowe
wyjście lub do wskazanego pliku.

Argumenty:

input

- nazwa sprawdzanego pliku,

onput

- nazwa pliku wynikowego,

+n

- liczba określająca ile znaków na

początku

każdej linii zostanie zignorowanych,

-n

- liczba określająca ile pól na początku

każdej

linii zostanie zignorowanych. Pole to ciąg
znaków oddzielony spacjami lub

tabulatorami.

Opcje:

-u

- w pliku wynikowym tylko nie

powtarzające się linie,

-d

- w pliku wynikowym tylko powtarzające się linie

(pisane

jednokrotnie),

-c

- dopisywanie ilości powtórzeń linii.

background image

ESC

Składnia:

grep

[-cefilnqsvx]

wzorzec [plik ...]

grep

- wypisz wiersze pliku w których

występuje wzorzec

Polecenie przegląda standardowe wejście lub pliki

plik...

poszukując linii w których występuje

wzorzec

. Domyślnie,

linie zawierające wzorzec kopiowane są na standardowe

wyjście. Dowolny ciąg znaków, będący

wzorcem

, w

przypadku gdy zawiera znaki specjalne powłoki systemu

Unix (rówież spację), należy zamknąć apostrofami.

Wybrane Opcje:

-c

wypisywana jest tylko ilość wierszy w których znaleziono

wzorzec

,

-i

nie rozróżnia

małych, dużych liter,

-l

wypisywane są tylko nazwy plików w których znaleziono

wzorzec

,

-n

dopisywane są numery wierszy w których znaleziono

wzorzec

,

-v

wypisywane są wiersze w których nie znaleziono

wzorca

,

Argumenty:

wzorzec

poszukiwany ciąg znaków,

plik

przeszukiwany plik,

background image

ESC

Polecenie usuwa wejścia (entries) dla jednego lub wielu
plików z katalogu. Jeśli wejście (entry) zawiera ostatni link
do pliku, plik ten też jest usuwany. Użytkownik musi
posiadać prawa do pisania i egzekucji w katalogu z którego
usuwane są plik, ale nie musi mieć takich praw dla
usuwanego pliku. W przypadku gdy użytkownik nie ma
prawa do modyfikacji pliku, na standardowe wyjście
wysyłane jest zapytanie o potwierdzenie operacji.

rm

- usuń pliki lub katalogi

Składnia

-

rm

[-f | -i]

[-Rr]

file ...

Opcje:

-f

uniemożl

i

wia pojawienie się zapytań powłoki

o potwierdzenie operacji usuwania,

-i

wymusza pojawienie się zapytań powłoki

o potwierdzenie

operacji usuwania,

-R

rekurencyjne usuwanie z katalogów i podkatalogów

-r

analogicznie jak

-R.

Argumenty:

file...

-

lista usuwanych plików (oraz

katalogów jeśli

używana jest opcja

-R

lub

-r .

background image

Składnia:

test

exp

[

exp

]

test

- podaj wartość wyrażenie

logicznego

Polecenie wyznacza wartość wyrażenia logicznego

exp .

Jeśli jest prawdą (true) zwraca liczbę zero (kod wyjścia) a
gdy fałszem (false), liczbę różną od zera. Wartość różną od
zera zwracana jest również przy błędnej konstrukcji lub
braku wyrażenia

exp

.

W konstrukcji wyrażeń

exp

można używać następujących

operatorów logicznych:

!

operator negacji

-a

operator iloczynu logicznego

-o

operator sumy logicznej.

Do grupowania wyrażeń logicznych należy używać
nawiasów ale każdy nawias musi być poprzedzony
znakiem

\

gdyż są to znaki specjalne powłoki systemu Unix.

Argumenty:

exp

- wyrażenie logiczne utworzone z

następujących

składników:

-r

file

- prawda gdy plik

file

istnieje i jest udostępniony do

czytania,

-w

file

- prawda gdy plik

file

istnieje i jest udostępniony do

pisania,

-x

file

- prawda gdy plik

file

istnieje i jest udostępniony do

egzekucji,

-f

file

- prawda gdy plik

file

istnieje i jest plikiem zwykłym,

-d

file

- prawda gdy plik

file

istnieje i jest katalogiem,

-z

s1

- prawda gdy długość ciągu znaków

s1

jest zerowa,

-n

s1

- prawda gdy długość ciągu znaków

s1

jest różna od

zera,

s1

=

s2

- prawda gdy tekst

s1

jest identyczny jak

s2

,

s1

!=

s2

- prawda gdy tekst

s1

i

s2

są różne,

n1

-eq

n2

- prawda gdy liczby całkowite

n1

i

n2

są równe

(poza

-eq

mogą wystąpić następujące symbole

-ne

,

-gt

,

-ge

,

-lt

,

-le

.

ESC

background image

basename

,

dirname

- wytnij część ścieżki

do pliku

Składnia:

basename

string [suffix]

dirname

[string]

Przykład 1:

$

basename /usr/staff/adam/kwiat.ps

kwiat

$

Przykład 2:

$

dirname /usr/staff/adam/kwiat.ps

/usr/staff/adam

$

Argumenty:

string

ścieżka do pliku,

suffix

rozszerzenie nazwy pliku.

ESC

background image

Polecenie przenosi:

- plik

file1

do nowego lub istniejącego pliku_

new_file

(zmienia

nazwę pliku),

- plik

file1

do istniejącego katalogu

dest_dir

,

- pliki

file1

,

file2

,

...

do istniejącego katalogu

dest_dir

,

- zawartość katalogu

dir1

do nowego lub istniejącego

dest_dir

,

- zawartości katalogów

dir1

,

dir2

,

...

do nowego lub

istniejącego

katalogu

dest_dir

,

Użytkownik musi mieć prawo do pisania w istniejącym

katalogu

dest_dir

w przeciwnym wypadku operacja

zostanie przerwana. Jeśli użytkownik nie ma uprawnień do

pisania w istniejącym pliku

new_file

zostanie na

standardowe wyjście wysłane zapytanie o potwierdzenie

operacji zmiany nazwy.

Składnia:

mv

[-f | -i ]

file1 new_file

mv

[-f | -i ]

file1 [file2...] dest_dir

mv

[-f | -i ]

dir1[dir2...] dest_dir

mv

- przenieś lub zmień nazwę plików i

katalogów

Opcje:

-f

jeśli pliki o nazwie docelowej np.

new_file

już istnieją, zostaną

zamienione bez zapytania o potwierdzenie operacji,

-i

jeśli pliki o nazwie docelowej np.

new_file

już istnieją ,

generowane są
zapytania o potwierdzenie operacji,

Argumenty:

file1,file2, dir1,dir2

nazwy

przesuwanych plików i

katalogów,

new_file

nowa

nazwa pliku,

dest_dir

nazwa katalogu docelowego,

ESC

background image

Polecenie wypisuje kalendarz dla wskazanego przez
argumenty miesiąca lub całego roku. Przy braku
argumentów wypisywany jest kalendarz dla aktualnego
miesiąca. Rok musi zawierać się w przedziale 1-9999.
Polecenie zakłada że każdy rok rozpoczynał się w
styczniu, chociaż nie jest to prawdą historyczną.

Składnia:

cal

[ [ month ] year ]

cal

- wypisz kalendarz

Argumenty:

month

- numer miesiąca w roku,

year

- wybrany rok.

Przykład:

polecenie

cal 9 1939

wypisuje wrzesień 1939 roku

September 1939

S M Tu W Th F S

1 2

3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ESC


Document Outline


Wyszukiwarka

Podobne podstrony:
PROCEDURA OLUP
06 pamięć proceduralna schematy, skrypty, ramyid 6150 ppt
LAB PROCEDURY I FUNKCJE
proces nbsp pomocy nbsp, nbsp strategie nbsp i nbsp procedury nbsp SWPS[1][1] 4
Procedura systemowa Nadzór nad produktami niezgodnymi
Bootowalny pendrive z systemem Linux
Poczta w systemie Linux
neostrada linux id 316732 Nieznany
procedura wypadek
procedura bada ewaluacyjnych - program zaj , procedura badań ewaluacyjnych
Niewydolność serca, Studia - ratownictwo medyczne, 3 rok, Zawansowane procedury ratunkowe
Grill - procedura postępowania
Procedury check in i check out oraz kompleksowa obsługa, powtórki do egzaminów
Procedury do redukcji zachowań niepożądanych wykorzystywane, terapia zajęciowa

więcej podobnych podstron