sop 2009 lab03

background image

Uniwersytet w Białymstoku

Wydział Matematyki i Informatyki

Instytut Informatyki

Materiały bazowe do zajęć z przedmiotu:

Systemy operacyjne

Laboratorium nr 03

Temat:

Komendy bash'a. Wyszukiwanie i modyfikacja

zawartości strumieni i plików.

mgr Adam Bonda

Białystok 2008

background image

Cel laboratorium: Zapoznanie si

ę

z podstawowymi komendami Linux'a ci

ą

g dalszy.

Skróty klawiszowe, operacje na zawarto

ś

ciach plików

(1) Skróty klawiszowe Bash'a

Wywołania z ctrl'em:

ctrl + a

– przeniesienie kursora na pocz

ą

tek linii

ctrl + b

– przeniesienie kursora jeden znak wstecz

ctrl + c

– przerwanie wywołania

ctrl + d

– kasowanie znaku pod kursorem

ctrl + D

– znak ko

ń

ca linii

ctrl + e

– przeniesienie kursora na koniec linii

ctrl + f

– przeniesienie kursora jeden znak do przodu

ctrl + k

– usuni

ę

cie znaków do znaku ko

ń

ca linii – EOL (ang. end of line)

ctrl + l

– czyszczenie ekranu

ctrl + r

– przeszukiwanie historii komend

ctrl + R

– przeszukiwanie historii komend z wielokrotnym wyst

ą

pieniem

ctrl + s

– zatrzymuje wyjście uruchomionego programu

ctrl + q

– przywraca wysyłanie danych na wyjście

ctrl + u

– usuni

ę

cie znaków przed kursorem

ctrl + xx

– przemieszczanie kursora pomi

ę

dzy aktualnym poło

ż

eniem kursora,

a EOL

ctrl + x @

– wy

ś

wietle nazwy hostów (z pliku

/etc/hosts

)

ctrl + z

– zawiesza lub wstrzymuje wykonywane polecenie

ctrl + \

– zako

ń

czenie programu i zapisanie obrazu programu w pliku core

Wywołania z alt'em:

alt + <

– skok do pierwej linii historii komend

alt + >

– skok do ostatniej linii historii komend

alt + ?

– wy

ś

wietlenie list

ę

aktualnych doko

ń

cze

ń

alt + *

– wy

ś

wietlenie list

ę

wszystkich doko

ń

cze

ń

alt + /

– wy

ś

wietla doko

ń

czenie pliku

alt + .

– wypisuje argument ostatniego polecenie

alt + b

– przenosi kursor o wyraz wstecz

alt + c

– zapisuje(zmienia) wyraz wielk

ą

litery

alt + d

– kasuje wyraz

alt + f

– przenosi kursor o wyraz do przodu

alt + l

– zapisuje(zmienia) wyraz mał

ą

litery

alt + n

– przeszukuj

ę

histori

ę

w przód bez dopisywania

alt + p

– przeszukuj

ę

histori

ę

wstecz bez dopisywania

alt + r

– przywołuje komend

ę

alt + t

– przestawia wyrazy

alt + u

– zapisuje cały wyraz wielkimi literami

alt + back-space

– kasuje cały wyraz przed kursorem

alt + F1,F2..

– zmienia numer aktualnego terminala

Inne wywołania klawiszowe:

„2xTab”

oznacza dwukrotne naci

ś

niecie klawisza tabulacji (TAB)

2xTab

– wy

ś

wietla wszystkie mo

ż

liwe do wywołania komendy (to samo co alt + ?)

(tekst)2xTab

– wszystkie mo

ż

liwe doko

ń

czenia polecenia zaczynaj

ą

cego si

ę

(tekst)

/2xTab

– wy

ś

wietla struktur

ę

katalogów z ukrytymi wł

ą

cznie

background image

./2xTab

– wy

ś

wietla wszystkie katalogi w bie

żą

cej lokalizacji z ukrytymi wł

ą

cznie

*2xTab

– wy

ś

wietla wszystkie katalogi w bie

żą

cej lokalizacji (bez ukrytych)

~2xTab

– wy

ś

wietla u

ż

ytkowników systemu (z /etc/passwd)

$2xTab

– wy

ś

wietla wszystkie zmienne

@2xTab

– wy

ś

wietla zawarto

ść

/etc/hosts

=2xTab

– działa tak samo jak

ls

czy

dir

(2) Pliki specialne i terminale

tty

(ang.Teletype device) wy

ś

wietla nazw

ę

pliku terminala na którym prowadzona

jest bie

żą

ca sesja

Przekazywanie informacji z bie

żą

cego terminala do terminala

/dev/pts/1

cat > /dev/pts/1
...
ctrl+d

wi

ę

cej informacji

man tty

stty

wy

ś

wietlenie lub zmiana ustawie

ń

terminala

Opcjonalny minus przed USTAWIENIEM oznacza zaprzeczenie. Gwiazdka (*) oznacza
ustawienia spoza POSIX. System sam okre

ś

la, które ustawienia s

ą

dost

ę

pne.

Przykłady zdefiniowania funkcji klawiszowych i ustawie

ń

terminala

eof ZNAK

ZNAK wysyła znak ko

ń

ca pliku (ko

ń

ca wej

ś

cia)

erase ZNAK

ZNAK kasuje ostatni wprowadzony znak

intr ZNAK

ZNAK wysyła sygnał przerwania

kill ZNAK

ZNAK kasuje bie

żą

c

ą

lini

ę

rows N

– ustawienie długo

ś

ci terminala na N wierszy

cols N

– ustawienie szeroko

ś

ci terminala na N kolumn

Przykłady:

Ustawienie kombinacji ctrl+F funkcji kasowania bie

żą

cej linii

stty kill ^F

Ustawienie liczby wierszy na 30

stty rows 30

wi

ę

cej informacji

man stty

(3) Komendy:

file

okre

ś

lenie typu pliku

Polecenie sprawdza ka

ż

dy ze swoich argumentów, próbuj

ą

c go sklasyfikowa

ć

. Istniej

ą

trzy zestawy testów, które s

ą

wykonywane w nast

ę

puj

ą

cej kolejno

ś

ci: testy systemu

plików, testy liczb magicznych, testy j

ę

zyka. Pierwszy zako

ń

czony powodzeniem test

powoduje wypisanie typu pliku.

Przykład:

login@nazwa:~$ file /etc/fstab
/etc/fstab: ASCII text

background image

umask

ustawia mask

ę

tworzenia pliku (katalogu)

pliki

katalogi

warto

ść

prawa dost

ę

pu warto

ść

prawa dost

ę

pu

0
1
2
3
4
5
6
7

rw-
rw-
r--
r--
-w-
-w-
---
---

0
1
2
3
4
5
6
7

rwx
rw-
r-x
r--
-wx
-w-
--x
---

Przykład:
Zestaw kilku komend ułatwiaj

ą

cych sprawdzenie wyniku u

ż

ycia polecenia

umask

umask 444 ; rm plik ; touch plik ; ls -l plik
--w--w--w- 1 adam shellusers 0 2008-10-13 17:09 plik

cmp

(ang. compare) porównuje dwa pliki

U

ż

ycie:

cmp [-l][-s] plik1 plik2

Porównuje wskazane pliki i je

ż

eli si

ę

one ró

ż

ni

ą

, dla ka

ż

dej ró

ż

nicy wyprowadza na

standardowe wyj

ś

cie numer ró

ż

ni

ą

cego si

ę

bajtu i numer wiersza w którym ten bajt

wyst

ę

puje.

-l

– wyprowadzenie numerów bajtów dziesi

ę

tnie, a ich warto

ś

ci ósemkowo

-s

– wyprowadzenie tylko kodu zako

ń

czenia polecenia (

0

– pliki s

ą

identyczne,

1

– pliki

ż

ni

ą

si

ę

,

2

– pliki s

ą

niedost

ę

pne)

diff

(ang. difference) ustala ró

ż

nice pomi

ę

dzy dwoma plikami

U

ż

ycie:

diff -[befh] plik1 plik2

Porównuje pliki wiersz po wierszu i wyprowadza ró

ż

nice na standradowe wyj

ś

cie wraz ze

wskazówkami co nale

ż

y zrobi

ć

z plikiem

plik1

, aby otrzyma

ć

plik2

.

comm

(ang. common) wyprowadza wspólne cz

ęś

ci plików

U

ż

ycie:

comm -[123] plik1 plik2

Porównuje pliki wiersz po wierszu i wyprowadza ró

ż

nice na standradowe wyj

ś

cie wraz ze

wskazówkami co nale

ż

y zrobi

ć

z plikiem

plik1

, aby otrzyma

ć

plik2

.

O ile nie podano dodatkowych funkcji dane wyj

ś

ciowe wyprowadzane s

ą

w trzech

kolumnach:

kolumna1 – wiersze, które zawarte s

ą

tylko w

plik1

kolumna2 – wiersze, które zawarte s

ą

tylko w

plik2

kolumna3 – wiersze, które zawarte s

ą

w obydwu plikach

background image

Przykład:
wyprowadzenie jedynie kolumny z liniami wspólnymi dla dwu plików:

comm -12 f1 f2

wyprowadzenie jedynie tych wierszy, które wyst

ę

puj

ą

w pliku f1:

comm -23 f1 f2

Nie wyprowadza

ż

adnych wierszy:

comm -123 f1 f2

wc

(ang. word count) liczy liczb

ę

bajtów, słów oddzielonych białymi znakami, oraz

znaków ko

ń

ca linii (wierszy) w ka

ż

dym podanym pliku lub w standardowym

wej

ś

ciu

Przykład:

login@nazwa:~$ ls > plik; wc < plik; rm plik
104 116 1171

liczba znaków (w tym spacji)
liczba kolumn (oddzielonych spacjami)
liczba wierszy

locate

wyszukuje pliki w okresowo aktualizowanej bazie danych

Bardzo wydajny sposób na okre

ś

lenie poło

ż

enia pliku(ów) w systemie.

locate

działa w

oparciu o periodycznie uruchamian

ą

komend

ę

updatedb

. Z kolei działanie

updatedb

uzale

ż

nione jest od programu

find

.

Dla ka

ż

dego z podanych wzorców

locate

przeszukuje jedn

ą

lub wi

ę

cej baz danych

zawieraj

ą

cych nazwy plików i wy

ś

wietla te nazwy, które zawieraj

ą

wzorzec. Wzorce mog

ą

zawiera

ć

metaznaki (znaki uogólniaj

ą

ce/specjalne), takie jak u

ż

ywane w powłoce:

`*',

`?' i `[]'

. Metaznaki nie traktuj

ą

specjalnie

`/'

ani

`.'

. Zatem, do wzorca

`foo*bar'

mo

ż

e by

ć

dopasowana nazwa pliku zawieraj

ą

ca

`foo3/bar'

, za

ś

do

wzorca

`*duck*'

nazwa zawieraj

ą

ca

`lake/.ducky'

. Wzorce posiadaj

ą

ce znaki

uogólniaj

ą

ce powinny by

ć

cytowane, by uchroni

ć

je przed rozwini

ę

ciem przez powłok

ę

.

Je

ż

eli wzorzec jest zwykłym ła

ń

cuchem tekstowym -- nie zawiera metaznaków -- to

locate

wy

ś

wietla wszystkie nazwy plików z bazy zawieraj

ą

ce ten ła

ń

cuch w dowolnym

miejscu. Je

ż

eli wzorzec zawiera metaznaki, to

locate

wy

ś

wietla tylko te nazwy

plików, które dokładnie pasuj

ą

do wzorca. Na skutek tego, wzorce zawieraj

ą

ce

metaznaki powinny zwykle rozpoczyna

ć

si

ę

od

`*'

, a najcz

ęś

ciej równie

ż

ko

ń

czy

ć

si

ę

tym znakiem.
Wyj

ą

tkami s

ą

wzorce celowo dosłownie dopasowuj

ą

ce pocz

ą

tek b

ą

d

ź

koniec nazwy pliku.

Przykład:

login@nazwa:~$ locate [hH][oO][sS][tT][nN]*
/bin/hostname
/etc/hostname
...

which

poka

ż

pełn

ą

ś

cie

ż

k

ę

komendy

which

pobiera seri

ę

nazw programów i drukuje pełne

ś

cie

ż

ki programów, które powłoka

by wywołała, aby je uruchomi

ć

. Robi to, symuluj

ą

c przeszukiwanie przez powłok

ę

zmiennej

ś

rodowiskowej

$PATH

.

background image

Przykład:

login@nazwa:~$ which bash
/bin/bash

whereis

znajduje pliki binarne,

ź

ródłowe i strony

man

dla danego polecenia

Przykład:

login@nazwa:~$ whereis whereis
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz

find

szuka pliki według zadanego kryterium w hierarchii katalogowej

Wybrane kryteria wyszukiwania:

-xdev

Przeszukiwanie okre

ś

lonego systemu plików

-name 'plik'

Uwzgl

ę

dnia pliki spełniaj

ą

ce zadany wzorzec. (*,?,[,])

-perm [-]000

Uwzgl

ę

dnia pliki według kryterium praw dost

ę

pu

-type
[fdcblosmnM]

Uwzgl

ę

dnia pliki typów:

f

– zwykły plik,

d

– katalog,

c

– specjalny

typu znakowego,

b

– specjalny typu znakowego,

l

– dowi

ą

zanei

symboliczne,

p

– nazwane ł

ą

cze kominikacyjne (FIFO),

s

– semafor,

m

– pami

ęć

dzielona,

n

– plik sieciowy,

M

– punkt podł

ą

czenia (ang

mount dir.),

H

– katalog ukryty

-atime ile_dni

Uwzgl

ę

dniane s

ą

pliki do których był dost

ę

p

ile_dni

wstecz.

Warto

ść

parametry (

ile_dni

) mo

ż

na poprzedza

ć

znakiem

+

,

,

=

,

zale

ż

nie od okre

ś

lenia czy chodzi o czas dost

ę

pu wi

ę

kszy, mniejszy,

czy równy zadanej warto

ś

ci (+ wi

ę

cej ni

ż

,

mniej ni

ż

,

=

dokładnie

tyle)

-mtime ile_dni

Uwzgl

ę

dnia modyfikacj

ę

plików ile_dni temu. (

+

,

,

=

)

-user login

Uwzgl

ę

dnia pliki nale

żą

ce do u

ż

ytkownika

login

-uid uid

jw. z tym

ż

e okre

ś

lana jest numeryczna warto

ść

-group nazwa_gr

Uwzgl

ę

dniane s

ą

pliki nale

żą

ce do okre

ś

lonej parametrem grupy

-gid gid

jw. z tym

ż

e okre

ś

lana jest numeryczna warto

ść

-nouser

Uwzgl

ę

dniane s

ą

pliki nale

żą

ce do nieznanego uzytkownika

(nieznanego systemowi, którego id nie wyst

ę

puje

/etc/passwd

)

-nogroup

jw.

-size rozmiar

Uwzgl

ę

dniane s

ą

pliki o rozmiarze zadanym parametrem

rozmiar

.

Po warto

ś

ci parametru okre

ś

la si

ę

jednostk

ę

:

c

(bajty),

b

(bloki

dysku),

k

(kilobajty). (

+

,

,

=

)

-links liczba

Uwzgl

ę

dniane s

ą

pliki posiadaj

ą

ce

liczba

powi

ą

za

ń

. (

+

,

,

=

)

Wybrane akcje:

-print

Wyprowadzanie pełnych nazw znalezionych plików

-exec polecenie

Wykonanie polecenia shell'a dla ka

ż

dego znalezionego pliku. Koniec

polecenia musi by

ć

zaznaczony symbolem

ś

rednika

\;

Argument polecenia postaci

{}

jest zast

ę

powany bie

żą

c

ą

nazw

ą

background image

(wraz ze

ś

cie

ż

k

ą

) pliku. Nawiasy klamrowe musz

ą

by

ć

otoczone

spacjami.

-ok polecenie

Podobnie jak w przypadku

-exec

z tym,

ż

e pełna posta

ć

polecenia

wyprowadzana jest na standardowe wyj

ś

cie i wykonywana jest po

potwierdzeniu klawiszem

y

.

Przykłady:

find . -print
find /usr/ -user frog -print
find / -type -f links +1 -print
find / -atime +100 -print
find /home -atime -6 -print
find . -name '*.c' -print
find . -atime +1 -type f -exec mv {} TMP \;
find / \( -name core -o -name "*.out"\) -atime +7 -exec rm -i {} \;
rm -i `find . Mtime +30 -print'
find . -print | cpio -ovB /dev/hdd3
find /export/home -xdev -user jasio -size +1024K -atime +30\

-printf '%s %p %a'

find / -nouser -exec rm -f \ {}\ \;
find / -nouser -print | cpio -oavH crc | gzip -9 > \
/mnt/dysk2/nouser.cpio.gz
find /raid -type d -name '*mp3*' \
-exec cp -R {} \mnt\pendrive\ \;

wi

ę

cej informacji

man find

;-)

bc

j

ę

zyk kalkulatora dowolnej precyzji

Polecenie udost

ę

pnia posty interakcyjny j

ę

zyk o składni przypominaj

ą

cej j

ęż

yk C,

umo

ż

liwiaj

ą

c obliczanie warto

ś

ci wyra

ż

e

ń

, oraz realizacj

ę

kilku własnych polece

ń

wewn

ę

trznych. Opis wyra

ż

e

ń

pobierany jest z pliku o zadanej nazwie, b

ą

d

ź

bezpo

ś

rednio

z klawiatury. Wykonanie polecenie zatwierdzamy enterem.

wi

ę

cej informacji

man bc

cut

Usuwanie fragmentów z ka

ż

dego wiersza pliku

Polecenie wycina wskazane kolumny lub fragmenty z wszystkich wierszy pliku, a wynik
operacji wyprowadzany jest na standardowe wyj

ś

cie. Wiersze nie mog

ą

zawiera

ć

wi

ę

cej

ni

ż

512 znaków.

U

ż

ycie:

cut -c lista [ plik1 plik2 ...]
cut -f lista [-d znak] [-s] [ plik1 plik2 ...]

Opcje:

lista –

lista oddzielonych przecinkami liczba całkowitych (w kolejno

ś

ci rosn

ą

cej), lub

poł

ą

czonych znakiem –, np.: 1,2,3; 1-3; -5,10, 3- itp.

-b

(ang. bytes) wypisuje tylko bajty okre

ś

lone na li

ś

cie

-c

(ang. characters) wypisuje tylko znaki okre

ś

lone na li

ś

cie

-d

(ang. delimiter) jako separatora pól u

ż

ywa znaku ogranicznika

background image

-f

(ang. field) wypisuje tylko podane pola oraz wszystkie linie nie zawieraj

ą

ce znaku

separatora (chyba,

ż

e u

ż

yto flagi -s)

-s

pomija wszystkie wiersze nie zawieraj

ą

ce separatora

Przykłady:

w | cut -f1,6 -d" "
cut -f1 -d: /etc/passwd
cat /etc/passwd | cut -b -8
cat /etc/passwd | cut -c8-12

grep, egrep, fgrep

wypisz linie pasuj

ą

ce do wzorca

grep

(ang. global regular expression print) przeszukuje wskazane pliki wej

ś

ciowe (lub

standardowe wej

ś

cie) szukaj

ą

c linii zawieraj

ą

cych co

ś

pasuj

ą

cego do podanego wzorca.

Domy

ś

lnie

grep

wypisuje pasuj

ą

ce linie.

Dodatkowo dost

ę

pne s

ą

dwa programy wariantowe

egrep

i

fgrep

.

Egrep

jest tym

samym, co

grep -E

.

Fgrep

jest tym samym, co

grep -F

.

Wszystkie warianty obsługuj

ą

wyra

ż

enia regularne

U

ż

ycie:

grep|egrep|fgrep [opcje] wzorzec plik1 plik2 ...

Opcje:

-c

- dla ka

ż

dego pliku wyprowadza tylko liczb

ę

wierszy zawieraj

ą

ce okre

ś

lony wzorzec

-e

- opcja poprzedza wzorzec, gdy ten zaczyna si

ę

znakiem -. Wzorzec mo

ż

e by

ć

zapisany bezpo

ś

rednio za opcj

ą

-e, lub odseparowany spacj

ą

.

-h

- nie wyprowadza na pocz

ą

tku nazwy przeszukiwanego pliku

-i

- ignoruje małe i wielkie litery

-l

- wyprowadza tylko wiersze zawieraj

ą

ce wzorzec

-n

- poprzedza ka

ż

dy wyprowadzony wiersze jego numerem w pliku

-s

- pomija komunikaty o bł

ę

dach w dost

ę

pie do pliku

-x

- wyprowadza tylko wiersze w cało

ś

ci pasuj

ą

ce do wzorca

-v

- wyprowadza wiersze nie zawieraj

ą

ce szukanego wzorca

-fplik

- plik zbieraj

ą

cy wzorzec (wzorce) do przeszukiwania

Wzorcem mo

ż

e by

ć

pojedyncze słowo, kilka słów uj

ę

tych w apostrofy lub cudzysłowy, oraz

wyra

ż

enia regularne.

Mo

ż

na te

ż

stosowa

ć

znaki specjalne:

.

- dowolny znak

\

- cytuje wyst

ę

puj

ą

cy za nim znak;

[...]

- dowolny znak z wymienionych w nawiasach

*

- zero lub wi

ę

cej wyst

ą

pie

ń

wyra

ż

e

ń

;

^

- pocz

ą

tek wiersza

$

- koniec wiersza

Przykłady:

ls | grep param[1-3]*.c
ls /dev/* | grep sda
grep '[pP]aram=' plik
ls | grep ^t

wy

ś

wietla wszystkie pliki zaczynaj

ą

ce si

ę

liter

ą

t

z listowanego, bie

żą

cego katalogu

background image

grep 'do..lne' przyklad

wyprowadza wiersze z pasuj

ą

cym do wzorcem, czyli np.: dowolne z pliku

przykład

grep ",$" przyklad

wyprowadza wiersze pliku

przykład

ko

ń

cz

ą

ce si

ę

przecinkiem

Specyfikacj

ę

kilku wzorców dopuszczaj

ą

polecenia

egrep

i f

grep

:

grep 'wzorzec1|wzorzec2' plik

W przypadku

fgrep

kolejne wzorce mog

ą

by

ć

okre

ś

lane w kolejnych wierszach.

sort

Sortowanie wierszy plików tekstowych

Polecenie

sort

sortuje wiersze kolejno z ka

ż

dego podanego pliku. Je

ś

li podano wi

ę

cej ni

ż

jeden plik to ich zawarto

ść

jest ł

ą

czona podczas sortowania. Domy

ś

le sortowanie

przeprowadzane jest zgodnie z kolejno

ś

ci

ą

kodów ASCII i zmiennej

ś

rodowiskowej

$LANG

.

Opcje:
zasadniczo dzieli si

ę

na trzy grupy:

Zmiana działania:

-c

- sprawdzenie uporz

ą

dkowania i zako

ń

czenie pracy, bez wyprowadzania

czegokolwiek je

ż

eli plik był uporz

ą

dkowany

-m

- tylko poł

ą

czenie posortowanych plików

-u

- zast

ą

pienie powtarzanych wierszy tekstu ich pojedynczymi wyst

ą

pieniami

-op

- zapisanie wyniku sortowania w pliku okre

ś

lonym argumentem

p

.

Okre

ś

lenie uporz

ą

dkowania:

-d

- sortowanie słownikowe (litery, cyfry, spacje)

-f

- sortowanie z uwzgl

ę

dnieniem

ż

e małe litery traktowane s

ą

jak wielkie

-i

- sortowanie z ignorowanie niedrukowanych znaków (o kodach ósemkowych

ż

nych od 040 – 176)

-n

- sortowanie według warto

ś

ci numerycznych zapisanych liczb

-r

- sortowanie według odwrotnej kolejno

ś

ci alfabetycznej

Interpretacja pól:

-M

- traktowanie pola jako nazwy miesi

ą

ca

-b

- ignorowanie spacji i znaków tabulatur na pocz

ą

tku pól sortowania

-tx

- ustalenie znaku

x

jako znaku separuj

ą

cego pola sortowane (standardowo jest nim

spacja lub tab)

Klucze sortowania:
Domy

ś

lnie sortowane s

ą

całe wiersze, jednak wiod

ą

ce białe znaki tych wierszy równie

ż

bior

ą

udział w sortowaniu. „Klucze sortowania” umo

ż

liwiaj

ą

okre

ś

lenie, które cz

ęś

ci

wierszy bior

ą

udział w ich porównywaniu. Polecenie sort w wierszach wyró

ż

nia pole, przy

czym domy

ś

lnie s

ą

one oddzielone białymi znakami (spacja, tab). Białe znaki

poprzedzaj

ą

ce pierwsze słowo wiersza nale

żą

do pierwszego pola, a gdy dwa lub wi

ę

cej

białych znaków oddziela s

ą

siaduj

ą

ce pola to pierwszy z nich traktowanych jest jako

separator, pozostałe nale

żą

do drugiego z tych pól.

Opcje

[]+pozycja1 [-pozycja2]]

definiuj

ą

w wierszu pocz

ą

tek i koniec pozycji klucza

sortowania. Je

ś

li pomini

ę

to

pozycja2

to klucz si

ę

ga do ko

ń

ca wiersza. Pozycje okre

ś

la si

ę

jako

p

(numer pola), lub

p.z

(

z

pozycja znaku w polu). Pola i ich znaki numerowane s

ą

od

0. Je

ś

li w poleceniu pomini

ę

te zostały klucze, to interpretowane s

ą

zawarto

ś

ci całych

wierszy.

background image

Z ka

ż

dym kluczem mo

ż

na zwi

ą

za

ć

odr

ę

bne opcje z drugiej grupy. Mo

ż

liwe jest wi

ę

c

sortowanie wg kilku kluczy (przy czym dla ka

ż

dego klucza sortowanie przebiega wg

innego kryterium).

Przykłady:

sort lista
sort -r liczby (seq początek krok koniec)
sort -n liczby
ls -l /etc/ | sort -b' ' +7

login@nazwa:~$ cat plik
4 2 7
2 3 4
3 1 5
login@nazwa:~$ sort

+0

plik

2

3 4

3

1 5

4

2 7

login@nazwa:~$ sort

+2

plik

2 3

4

3 1

5

4 2

7

sort +1 plik

omini

ę

cie jednego pola w ka

ż

dym wierszu podczas sortowania (spacje maj

ą

wpływ na

wynik działania polecenia)

sort +1 -2 plik

sortowane s

ą

wszystkie znaki znajduj

ą

ce si

ę

w kolumnie pierwszej (+1), lecz nie

znajduj

ą

ce si

ę

kolumnie drugiej (-2). Klucz sortowania obejmuje tylko drug

ą

kolumn

ę

sortowanie podanego pliku wg drugiego pole w jego wierszu

sort -r -o plik_w +1.0 -1.2 plik1 plik2

sortowanie w odwrotnej kolejno

ś

ci zawarto

ś

ci plików plik1 i plik2 i u mieszczenie wyników

w pliku

plik_w

. Jako klucz sortowania u

ż

ywane s

ą

dwa pierwsze znaki w drugim polu

wierszy pliku (pola s

ą

numerowane od 0).

cat /etc/passwd | sort -t: +3n -4 +2n -3

Separatorem pól jest dwukropek. Polecenie sortuje dane wej

ś

ciowe numerycznie (n)

najpierw wg numery grupy (gid), a nast

ę

pnie linie z jednakowym numerem grupy

sortowane s

ą

wg numeru u

ż

ytkownika (uid).

uniq

usuwa powtarzaj

ą

ce si

ę

linie z posortowanego pliku

hd

Wy

ś

wietlanie pliku binarnego

Wy

ś

wietla zawarto

ść

pliku binarnego w postaci szesnastkowej, ósemkowej, b

ą

d

ź

znakowej

background image

od [-bcdox] [plik] [[+]przesunięcie[.][b]]

(ang. octal dump) wy

ś

wietla

zawarto

ść

pliku

Polecenie od wyprowadza na standardowe wyj

ś

cie zawarto

ść

pliku. Je

ś

li nie u

ż

yto innych

opcji to domy

ś

lnie 16-bit słowa pliku wyprowadzane s

ą

ósemkowo.

tee

Rozdzielenie standardowego wyj

ś

cia

Składnia

tee [-i][-a][-u] plik ...

polecenie | tee plik

Powy

ż

sza konstrukcja przesyła zawarto

ść

swojego strumienia wej

ś

ciowego do strumienia

wyj

ś

ciowego, tworz

ą

c jednocze

ś

nie dodatkow

ą

kopie swojego strumienia wyj

ś

ciowego w

pliku o podanej nazwie.

Polecenie przydatne w przypadku [potrzeby jednoczesnego ogl

ą

dania wyników na ekranie

i jednoczesnego zachowania ich w pliku.

wi

ę

cej informacji

man tee

tr

translacja znaków

Składnia

tr [opcje] [napis1 [napis2]]

Polecenie przepisuje zawarto

ść

standardowego wej

ś

cia do wyj

ś

cia i wykonuje zamian

ę

(lub kasowanie) znaków. Znaki ze strumienia wej

ś

ciowego wymienione w argumencie

napis1

s

ą

zamieniane na odpowiednie znaki z tych samych pozycji argumentu

napis2

.

Za moc

ą

tego polecenia mo

ż

liwa jest zmiana liter małych na wielkie, konwersja polskich z

jednego standardu na inny

Opcje:

-c

- zast

ą

pienie znaków nie wymienionych w pieszym napisie, znakami z napisu

drugiego

-d

- usuni

ę

cie ze strumienia wej

ś

ciowego wszystkich znaków podanych w pierwszym

argumencie

-s

- zast

ą

pienie wszystkich powtarzaj

ą

cych si

ę

znaków ze strumienia wej

ś

ciowego

wymienionych w drugim napisie znakami pojedynczymi

Przykłady:
zmiana liter malych na wielkie

tr [a-z] [A-Z] < plik_in > plik_out

tworzy posortowan

ą

list

ę

słów pliku plik1 i umieszcza po jednym w linii pliku plik2.

Argumenty s

ą

cytowane ze wzgl

ę

du na ochron

ę

znaków specialnych przed interpretacj

ą

shell'a (012 – kod ASCII znaku nowej linii)

tr -cs ''[A-Z][a-z]'' ''[\012*]'' <plik1 | sort >plik2

konwersja pomi

ę

dzy standardami MAZOVIA i IBM Latin 2 (Code Page 852)

tr $MAZOVIA $IBMLAT2 < plik_in > plik_out

background image

Zadanie.1 Stwórz plik

test.txt

z zawarto

ś

ci

ą

:

jeden,dwa:trzy 3;
cztery. Piec: 0 sześc;
dwa :dziewięć 9;
tekst:teskt2;

Zadanie.2
Korzystaj

ą

c z cut

(a) wy

ś

wietl list

ę

praw dost

ę

pu do plików w aktualnym katalogu

(b) wy

ś

wietl rozmiary plików z bie

żą

cego katalogu

(c) wy

ś

wietl rozmiary plików z bie

żą

cego katalogu zachowuj

ą

c wyrównanie liczb do

prawej (spacje po lewej)

(d) wy

ś

wietl opisy u

ż

ytkowników z pliku /etc/passwd

Zadanie. 3
Korzystaj

ą

c z grep

(a) Wy

ś

wietl list

ę

podkatalogów katalogu bie

żą

cego. Wy

ś

wietl informacje o

dowi

ą

zaniach symbolicznych z katalogu /usr/bin

(b) Wy

ś

wietl informacje o takich plikach zwykłych z katalogu bie

żą

cego, które maj

ą

ustawione prawo zapisu dla grupy.

(c) Wy

ś

wietl z pliku test.txt linie nie zawieraj

ą

ce

ż

adnych liczb

(d) Wy

ś

wietl z pliku test.txt linie nie b

ę

d

ą

ce komentarzem, a wiec linie nie zaczynaj

ą

ce

si

ę

od znaku „#”.

(e) Wy

ś

wietl nazwy plików txt, w których (nie) sa zawarte dowolne polskie litery „a”, „c”

lub „e”.

(f) Pokaz 3-liniowy kontekst wyst

ą

pienia słowa „abc” w pliku test.txt.

Zadanie. 3
Korzystaj

ą

c z polecenia wc

Policz dowiązania symboliczne w katalogu

/usr/bin

Zlicz wszystkie pliki zwykłe znajdujące się w katalogu

/etc

i jego podkatalogach

Oblicz długość trzeciej linii pliku

/etc/passwd

.

Zadanie. 4
Korzystaj

ą

c z polecenia sort

Posortuj trwale zawartość pliku test.txt
Wyświetl listę nazw użytkowników z pliku

/etc/passwd

posortowana wg numerów

UID w kolejności od największego do najmniejszego

i odwrotnie

Zadanie. 5
Korzystaj

ą

c z polecenia tr

Zamień

wszystkie małe litery na wielkie w wynikach komendy

ls

Rozbij tekst z pliku test.txt tak, aby każde słowo było w oddzielnej linii. Dodatkowo usuń wszelkie
znaki interpunkcyjne.


Wyszukiwarka

Podobne podstrony:
sop-2009-lab06
sop-2009-lab08
sop-2009-lab04
sop-2009-lab01
sop-2009-lab05
canada unit sop 2009
sop 2009 lab04
sop 2009 lab01
sop 2009 lab08
sop 2009 lab07
sop 2009 lab02
SYSTEM OCHRON PRAWNEJ Wykla 17[1].10.2009, Dokumenty STUDIA SKANY TEXT TESTY, ADMINISTRACJA UNIWEREK
SOP UE-II 19[1].12.2009, Dokumenty STUDIA SKANY TEXT TESTY, ADMINISTRACJA UNIWEREK WROCŁAW MAGISTER,
SOP UE-I 05[1].12.2009 SW, Dokumenty STUDIA SKANY TEXT TESTY, ADMINISTRACJA UNIWEREK WROCŁAW MAGISTE
SYSTEM OCHRON PRAWNEJ Wykla 17[1].10.2009, Dokumenty STUDIA SKANY TEXT TESTY, ADMINISTRACJA UNIWEREK

więcej podobnych podstron