POWŁOKA
( ang. SHELL) - to program interpretujący polecenia
użytkownika nazywamy powłoką. Powłoka przyjmuje polecenia od
użytkownika, analizuje je i przekazuje jądru życzenia użytkownika.
Bezpośrednio po zgłoszeniu się użytkownika do Systemu UNIX
następuje automatyczne uruchomienie interpretera (inaczej
powłoki), który rozpoczyna pracę na rzecz użytkownika (każdy
użytkownik otrzymuje własny i odrębny egzemplarz procesu
powłoki). Powłoka od razu sygnalizuje na ekranie terminala
( powłoka Bourne’a znakiem $) gotowość przyjęcia polecenia.
Pojawienie się tego znaku rozpoczyna cykl, w jakim pracuje
powłoka.
System operacyjny HP-UX pozwala np. na korzystanie z
następujących powłok:
/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
UNIX - powłoka
Powłoka pracuje w cyklu. Na jeden cykl powłoki składają się:
wypisanie
prompt
'u ( znak zachęty -
$
dla powłoki Bourne’a),
czekanie na wprowadzenie tekstu polecenia przez użytkownika,
analiza wiersza polecenia, wyszukiwanie odpowiedniego
programu realizującego to polecenie,
powłoka zleca jądru wykonanie odszukanego programu,
powłoka przyjmuje od jądra odpowiedź, rozpoczyna nowy cykl
od punktu 1)
UNIX - powłoka
Przerwanie powtarzania cykli powłoki może nastąpić jeśli
polecenie użytkownika brzmi:
exit
lub zostanie naciśnięta na klawiaturze kombinacja klawiszy
Ctrl-D
,
co oznacza , że użytkownik nie ma zamiaru kontynuować
wprowadzania dalszych poleceń; powłoka zleca wtedy jądru
zamknięcie sesji użytkownika.
UOGÓLNIONA POSTAĆ POLECEŃ POWŁOKI SYSTEMU UNIX
Wszystkie polecenia rozpoznawane przez powłokę mają
taką samą postać ogólną:
$
nazwapolecenia
argument1 argument2 argument3
...
Konieczne jest podanie nazwy polecenia
nazwapolecenia
,
zaś argumenty mogą wystąpić , lecz nie są konieczne (tzn.
są opcjonalne
). O ile wynika to z konstrukcji polecenia, iż
argumenty powinny się pojawić, zaś użytkownik podał
postać
polecenia
bez
argumentów,
wstawiane
są
automatycznie wartości domyślne
argumentów
(tzw.
wartości
default’owe
) - zdefiniowane przy opisie polecenia
w dokumentacji technicznej powłoki.
Argumenty polecenia mogą być 2 różnych typów:
opcjami (najczęściej są oznaczane symbolami literowymi˙
poprzedzonymi znakiem "-", np. w poleceniu :
ls
-l
),
nazwami plików.
UNIX - powłoka
UNIX - powłoka - STANDARDOWE
STRUMIENIE
STANDARDOWE STRUMIENIE I PLIKI.
System UNIX został zaprojektowany do przetwarzania informacji
pogrupowanej w pliki.
Prawie każde polecenie powłoki realizuje swoje funkcje na
zasadzie przetwarzania (przekształcania) strumienia informacji
napływającej (w sposób określony przez treść polecenia) w
strumień informacji przetworzonej.
Każdemu procesowi przypisuje się standardowy strumień
wejściowy i standardowy strumień wyjściowy. W celu ułatwienia
pracy użytkownika strumień wejściowy skojarzony jest z
klawiaturą terminala zaś wyjściowy z ekranem terminala.
PROCES
HOST
STDIN
STDERR
STDOUT
TERMINAL
UNIX - powłoka - REDYREKCJA
KOJARZENIE STRUMIENI WEJŚCIA / WYJŚCIA
Jeżeli użytkownik uzna, że standardowe skojarzenie strumieni
wejścia/wyjścia (STDIN, STDOUT, STDERR) nie odpowiada jego
potrzebom, może spowodować skojarzenie alternatywne. Tę
czynność zwykło się nazywać
redyrekcją
.
Polecenie z redyrekcją strumienia STDOUT ma postać:
$
polecenie > plik
lub
$
polecenie >>
plik
PROCES
HOST
STDIN
STDERR
STDOUT
TERMINAL
PLI
K
UNIX - powłoka - REDYREKCJA
Polecenie z redyrekcją strumienia STDIN ma postać:
$
polecenie < plik
PROCES
HOST
STDIN
STDERR
STDOUT
TERMINAL
PLI
K
UWAGA:
JEST
DOPUSZCZALNE
stosowanie
równocześnie
redyrekcji zarówno STDIN jak i STDOUT (kolejność dowolna)
$
polecenie <plikin >plikout
PROCES
HOST
STDIN
STDERR
TERMINAL
plikin
STDOUT
pliko
ut
UNIX - powłoka - REDYREKCJA
KOJARZENIE STRUMIENI WEJŚCIA / WYJŚCIA
Przykład skojarzenia strumienia STDOUT
Polecenie:
cal 9 2000
ma za zadanie
przywołać kalendarz
września roku 2000
STDOUT to jest ekran
REDYREKCJA dla
STDOUT:
cal 9 2000
>
wrzesien2000
ma za zadanie
przywołać kalendarz
września roku 2000 ale
zapisać go w pliku o
nazwie
wrzesien2000
STDOUT to jest plik
Dla sprawdzenia wyświetlamy na ekran terminala zawartość pliku
wrzesien2000
posługując się poleceniem
pg wrzesien2000
lub
poleceniem
more wrzesien2000
pg
?
more?
cal
?
ROZWIĄZANIE2
ROZWIĄZANIE1
UNIX - powłoka - REDYREKCJA
Przykład skojarzenia strumienia STDOUT
Polecenie:
cat
;
STDOUT to ekran zaś STDIN to klawiatura ,
bo nie ma argumentów . Aby zanknąć STDIN w nowej linii
wprowadź EOF (Ctrl-D)
Zadanie1: połącz pliki
komentarz
i
wrzesien2000
w jeden plik
koniec0
, a potem sprawdź wynik
Sprawdzenie zawartości
pliku komentarz,
polecenie:
more komentarz
Redyrekcja:
cat >
komentarz
STDOUT to plik
komentarz
STDIN
to klawiatura
bo nie ma
argumentów .
Rozwiązanie 1. Zastosowanie
polecenia konkatenacji z
redyrekcją STDOUT:
cat plik1 plik2 > plik3
Zadanie2: dopisz swoje imię i nazwisko na koniec pliku
koniec0
,
umieść następnie wynik w pliku koniec1 używając polecenia cat, a
potem sprawdź wynik.
Rozwiązanie 2 - etap 1
Konkatenacja dotyczy
STDOUT ale w trybie append
(dołącz) stąd znak redyrekcji
>>
. STDIN to klawiatura.
Polecenie
more
koniec0
wyświetla zawartość pliku
koniec0
Rozwiązanie 2 - etap 2
Konkatenacja dotyczy
zarówno: STDOUT skojarzone
z
koniec1
STDIN skojarzone z
koniec0
Kolejność argumentów
dowolna !!
Polecenie
more
koniec1
wyświetla zawartość pliku
koniec1
cat?
UNIX - powłoka - zastosowanie potoków i filtrów
Zaawansowany użytkownik bardzo często korzysta z możliwości
powiązania procesów w pewien ciąg procesów.
Proces może być rozumiany jako pewien przekształtnik strumienia
informacji, zgonie z poniższym schematem
Możemy zatem stwierdzić : polecenie
filtruje
informację
napływającą (STDIN) w informację przekształconą (STDOUT) w
sposób określony przez twórcę programu, zgodnie z którym działa
polecenia.
PROCES
STDOUT
STDIN
Przykład. Polecenie wc filtruje informację ze strumienia STDIN
przekazując tę informację w formie przetworzonej (STDOUT).
Polecenie
cal 2000 > alfa
przygotowuje plik alfa z kalendarzem
na rok 2000
Polecenie
wc <alfa
STDIN to zawartość pliku
alfa
STDOUT to ciąg liczb określających
cechy informacji ze strumienia STDIN :
40 linii, 463 wyrazy, 1778 znaków
wc?
UNIX - powłoka - zastosowanie potoków i filtrów
Przykład.
Użytkownik chce szybko się dowiedzieć, ile obiektów znajduje się
we wskazanym katalogu ( w przykładzie jest to katalog /home ).
Polecenie
ls /home > listahome
przygotowuje plik
listahome
zawierający listę obiektów w
katalogu
/home
Polecenie
wc -w <listahome
STDIN to zawartość pliku
listahome
STDOUT to ciąg liczb określających
cechy informacji ze strumienia STDIN,
czyli cechy tekstu zapisanego w pliku
listahome
:
17 wyrazów
Polecenie
more listahome
wykonano tutaj tylko dla sprawdzenia,
wyświetla ono zawartość pliku
listahome
, która jest listą obiektów w
katalogu
/home
.
ls?
wc?
UNIX - powłoka - zastosowanie potoków i filtrów
W poprzednim przykładzie zauważyliśmy pewne niekorzystne
cechy zaproponowanego tam sposobu rozwiązania postawionego
zagadnienia. Pozostał nam śmieć w postaci pliku o nazwie
listahome
w katalogu aktualnym.
Oczywiście można go usunąć odpowiednim poleceniem.
Wniosek jest taki, że aby uzyskać jedną liczbę trzeba wykonać co
najmniej 3 polecenia.
PYTANIE : czy istnieje możliwość skrócenia tej operacji
ODPOWIEDŹ:
TAK
Służy temu
pojęcie potoku
Łączenie 2 procesów polega na ustaleniu, że wyniki
pierwszego procesu kierowane są na wejście drugiego
procesu. W ten sposób połączone 2
procesy tworzą
potok
(ang.
pipeline
).
PROCES
1
STDOUT-
1
STDIN-1
PROCES
2
STDOUT-
2
STDIN-2
Składnia potoku
polecenie1
argumenty |
polecenie2
argumenty
UNIX - powłoka - zastosowanie potoków i filtrów
Przykład potoku.
Użytkownik chce szybko się dowiedzieć, ile obiektów znajduje się
we wskazanym katalogu ( w przykładzie jest to katalog /home ).
Utwórz potok.
ROZWIAZANIE POPRZEDNIE
1) przygotowanie pliku
listahome
2) zliczenie ilości wyrazów w
listahome
3) usunięcie pliku
listahome
ROZWIAZANIE NOWE -
POTOK
STDOUT z polecenia
ls
(listuj) staje się
STDIN polecenia
wc
ls?
wc?
rm?
UNIX - powłoka - zastosowanie potoków i filtrów
Zadanie1
Zlicz, ile linii synchronicznych tty (obsługujących terminale) jest
używanych aktualnie przez użytkowników host’a rat. Wykorzystaj
możliwości tworzenia potoku.
Rozwiązanie
Rozwiązanie1
1. Polecenie
who
produkuje listę użytkowników, którzy
używają choć 1 linię tty, ale jeśli użytkownik używa ich
więcej niż jedną, to i tak wszystkie są prezentowane w
liście.
2. Polecenie
wc -l
zlicza liczbe lini w pliku lub STDIN
3. Wystarczy stworzyć potok
who | wc -l
który poda poszukiwaną wartość
.
who?
Rozwiązanie, etap 1
UNIX - powłoka - zastosowanie potoków i filtrów
Zadanie2
Zlicz, ilu różnych użytkowników aktualnie pracuje w systemie
cyfrowym rat.
Wykorzystaj rozwiązanie zadania 1.
Ciąg dalszy na następnym
przeźroczu
Rozwiązanie2, etap1
1. Potok, który jest rozwiązaniem poprzedniego zadania może
zliczać wielokrotnie jednego użytkownika, gdy używa więcej niż
jednej linii tty.
2. Musimy znaleźć taki filtr, który przed zliczeniem linii tty w liście
przygotowanej przez polecenie who, usunie wielokrotnie
powtarzającą się linię z identyfikatorem użytkownika.
3. Najpierw jednak musimy spowodować wycięcie z każdej linii
listy przygotowanej przez polecenie who tylko identyfikatora
użytkownika. Polecenie:
cut -f1 -d" "
wycina z każdej linii pierwsze pole zakończone delimiterem
spacja
4. Stwórzmy zatem potok
who |
cut -f1 -d" "
i zobaczmy jaki jest
wynik
cut?
who?
Rozwiązanie, etap 2
UNIX - powłoka - zastosowanie potoków i filtrów
Zadanie2
Zlicz, ilu różnych użytkowników aktualnie pracuje w systemie
cyfrowym rat.
Wykorzystaj rozwiązanie zadania 1.
Rozwiązanie2, etap2
5. W celu obliczenia ilości użytkowników, musimy usynąć z
poprzednio przygotowanej listy identyfikatory, które się
powtarzają.
Polecenie:
uniq
spowoduje przepisanie z STDIN na STDOUT tylko tych liniii które
się nie powtarzają.
6. Jednak warunkiem właściwego zadziałania polecenia
uniq
, jest to
by powtarzające się linie następowały po sobie, jeśli mają być
usunięte. W tym celu musimy przesortować STDIN, za pomocą
polecenia
sort -r
(-r odwrotna kolejność sortowania - aby widać
było efekt)
Potok postaci:
who |
cut -f1 -d" "
| sort -r | uniq
daje liste
unikalnych identyfikatorów uzytkowników.
7. Teraz wystarczy na koniec dołączyć filtr zliczajacy linie, i po
zabawie:
who |
cut -f1 -d" "
| sort | uniq | wc -l
cut?
who?
sort? uniq?
Rozwiązanie
UNIX - powłoka - zastosowanie potoków i filtrów
Zadanie3
Sprawdź czy użytkownik o określonym identyfikatorze np.
szczur
jest aktualnie w systemie, i jakie linie tty używa.
Rozwiązanie3
1. Polecenie
who
podaje listę wszystkich aktywnych użytkowników
2. Z tej listy musimy wybrać tylko takie linie gdzie występuje
podany identyfikator użytkownika np.
szczur
Polecenie:
grep " ^szczur "
wytnie z STDIN i przekopiuje na STDOUT linie w których
identyfikator
szczur
pojawi się na początku linii
3. Potok :
who |
grep " ^szczur "
| cut -f1-6
-d" "
jest rozwiązaniem naszego problemu
PYTANIE: dlaczego ostatni filtr w potoku ma takie (
cut -f1-6
-d" "
) a
nie inne
parametry?
grep?
cut?
Rozwiązanie
UNIX - powłoka - zastosowanie potoków i filtrów
Zadanie4
Zlicz, ile plików we katalogu
/home
jest dostępne do zapisu dla
wszystkich użytkowników z grupy
others
Rozwiązanie4
1. Polecenie
ls -l /home
listuje zawartość katalogu
/home
,
Jeśli w polu 9 ( 9-ty znak linii) jest litera
w
to użytkownicy z grupy
others
mają prawo zapisu w odniesieniu do tego pliku.
2. Z tej listy musimy wybrać tylko takie linie, gdzie w polu 9 jest
litera
w
Polecenie:
grep "^.......w"
właśnie to wykona w odniesieniu do
STDIN
3. Na koniec
musimy
zliczyć tylko
te linie
(
wc -l
)
4. Ostatecznie
potok
ma postać:
ls?
grep?
Rozwiązanie
UNIX - powłoka - zastosowanie potoków i filtrów
Zadanie5
Zlicz, ile katalogów w katalogu
/home
to katalogi których
właścicielem (
owner
) jest użytkownik o identyfikatorze
root
Rozwiązanie5
1. Polecenie
ls -l /home
listuje zawartość katalogu
/home
,
Jeśli w polu 1 ( 1-szy znak linii) jest litera
d
to jest to opis katalogu
2. Z tej listy musimy wybrać
tylko takie linie, gdzie w
polu 1 jest litera
d
Potok:
ls -l /home |
grep "^d"
właśnie to wykona
3. Z listy przygotowanej
powyższym potokiem
musimy wybrać tylko takie,
gdzie pojawia się w polu
właściciela nazwa
root
.
Ale wcześniej obetnijmy
listę do pozycji właściciela
filtrem
cut
, i dopiero wybie-
rajmy linie zawierające
root
4. Potok
jest właściwym
rozwiązaniem
Razem 15,
w tym 13
opowiadając
ych
parametrom
zadanym
ls?
grep?
cut?
KONIEC TEMATU
„POTOKI I FILTRY”
KONIEC POKAZU
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.
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.
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
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.
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.
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 .
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
$
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 ...]
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
.
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.
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,
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 .