Polecenia systemu operacyjnego Unix
	W systemach Unix oraz w systemach uniksopodobnych polecenia są często programami uruchamianymi z wiersza poleceń powłoki systemowej. Często różne powłoki mają dodatkowo wbudowane własne implementacje niektórych poleceń; np. zawierają wersję polecenia dostępnego jako /bin/echo. To, która wersja polecenia będzie wykonana domyślnie zależy od tego, która powłoka jest używana oraz od konfiguracji systemu. Podstawową powłoką większości systemów Unix jest Bourne shell dostępna zwykle jako /bin/sh lub /usr/bin/sh, jednak częściej w pracy interaktywnej używa się wywodzących się z niej, bardziej rozbudowanych powłok takich jak bash, Korn shell, Z shell, czy też spokrewnionych C shell i tcsh, z nowszych popularność zyskuje fish. Większość powłok może być także używana jako języki skryptowe, co pozwala użytkownikowi na wykonywanie rozbudowanych poleceń wykorzystujących wiele programów oraz pisanie skryptów automatyzujących często wykonywane czynności. Za pomocą mechanizmów potoków i kolejek można w łatwy sposób przekazywać dane pomiędzy wieloma programami tworząc z nich bardziej skomplikowane narzędzia.
	Zarządzanie plikami
	cat – wypisywanie i łączenie plików
	chgrp – zmiana grupy pliku
	chmod – zmiana praw dostępu do pliku
	chown – zmiana właściciela/grupy pliku
	chattr – zmiana konkretnych atrybutów pliku
	cd – zmiana bieżącego katalogu, użyty bez argumentów powraca do katalogu domowego
	cp – kopiowanie plików
	df – wypisywanie wolnej przestrzeni zamontowanych systemów plików
	du – wyświetla ilość miejsca zajmowanego przez pliki/katalogi
	file – ustalanie typu danych zawartych w pliku
	find – przeszukiwanie systemu plików
	getfacl – odczytanie prawa dostępu z list ACL
	ln – tworzenie dowiązań twardych i symbolicznych (patrz niżej)
	ls – listowanie zawartości katalogu
	lsof – wyświetlanie listy otwartych plików, oraz używających ich programów
	mkdir – tworzenie katalogów
	mkfifo – tworzenie nazwanych potoków
	mv – przenoszenie/zmiana nazwy pliku
	pwd – wydruk aktualnego katalogu
	rcp – transfer plików na zdalny host
	rm – usuwanie plików i katalogów.
	rmdir – usuwanie katalogów
	scp – transfer plików bezpiecznym kanałem, SSH, na zdalny host
	setfacl – ustawienie prawa dostępu list ACL
	split – dzielenie pliku na kawałki
	rsync – synchronizacja plików, ewentualnie również bezpiecznym kanałem, SSH.
	touch – zamiana daty ostatniej modyfikacji, lub dostępu do pliku bądź utworzenie pustego pliku
	umask – wyświetla aktualną i umożliwia zmianę maski uprawnień dla tworzonych plików
	unlink – wywołanie systemowe, usuwanie pliku lub katalogu
	Zarządzanie systemem plików
	badblocks – kontroluje badblocks (złe bloki urządzeń)
	df – sprawdzanie przestrzeni (również wolnej) na dyskach
	fsck – sprawdzanie integralności systemu plików
	fdisk – manipulacje w tabeli partycji także cfdisk, sfdisk, parted
	mkfs – tworzenie systemu plików , 'formatowanie'
	lvm – narzędzia do LVM
	mount – montowanie urządzeń/zasobów w systemie plików (patrz niżej)
	umount – odmontowanie zasobu z systemu plików (patrz mount)
	dd – operacje io na dysku z pominięciem systemu plików.
	mdadm – zarządzania urządzeniami md czyli software raid
	Zarządzanie procesami[edytuj | edytuj kod]
	at – jednorazowe wykonywanie polecenia w określonym czasie
	chroot – uruchomienie programu ze zmienionym katalogiem głównym
	cron – regularne uruchamianie programów w określonym czasie
	fg – przeniesienie procesu uruchomionego w tle na pierwszy plan
	kill – przekazanie sygnału do procesu (domyślnie usunięcie wskazanego procesu)
	killall – zakończenie wykonywania wszystkich procesów o podanej nazwie
	ps – pobieranie informacji o aktywnych procesach
	top – wyświetla najważniejsze procesy
	watch – monitorowanie wyniku polecenia
	halt, poweroff, shutdown, reboot – wyłączenie lub restart systemu
	nice zmienia priorytet procesów
	Zarządzanie użytkownikami i systemem
	login – logowanie do systemu
	passwd – zmiana hasła
	su – logowanie na konto innego użytkownika (patrz niżej)
	sudo – uruchomienia aplikacji z uprawnieniami root
	w – podobnie jak who, jednak zawiera więcej informacji
	who – wypisanie listy zalogowanych użytkowników wraz z dodatkowymi informacjami o nich
	whoami – pokazuje bieżący efektywny uid, czyli identyfikator użytkownika, z którego prawami działamy
	Przetwarzanie tekstu[edytuj | edytuj kod]
	cut – wycina określone znaki z wejścia (zazwyczaj z pliku)
	grep – wypisywanie linii pasujących do wzorca
	head – wypisanie pierwszych 10 linijek tekstu
	more – rozwinięcie o sterowanie strumieniem
	less – dla dużych ilości tekstów
	tail – wypisanie ostatnich 10 linijek tekstu, także używane w diagnostyce (patrz niżej)
	tee – wypisywanie danych wejściowych na standardowe wyjście i do dowolnej liczby plików
	od – wypisywanie i formatowanie surowej wersji pliku
	vi – edycja plików tekstowych
	Operacje wejścia/wyjścia[edytuj | edytuj kod]
	echo – druk na standardowe wyjście
	printf – bardziej rozbudowane polecenie drukujące na standardowe wyjście.
	read – wczytanie znaków z terminala
	Inne[edytuj | edytuj kod]
	clear – wyczyszczenie konsoli/terminala
	mail – zarządzanie pocztą
	man – podręcznik elektroniczny
	xinit – uruchomienie środowiska X Window System
	test – sprawdzanie typów plików i porównywanie wartości
	Operatory (bash)
	&& – wykonaj jeśli poprzednie polecenie zakończyło się sukcesem, np. `./configure && make bzImage`
	 ; – bezwzględne wykonanie, np. `clear ; echo -e "Fajnie!"`
	> – przekierowanie standardowego wyjścia (czyli to co program wypisze w konsoli) do pliku, np. `cat /proc/cpuinfo > ~/cpuinfo.txt`
	< – przekierowanie do standardowego wejścia, np. `cat < /proc/cpuinfo`, jednak w efekcie to to samo co `cat /proc/cpuinfo` (w pierwszym przypadku dane wejściowe to plik skierowany na standardowe wejście, w drugim parametr przekazywany do programu, który znajduje, otwiera i czyta plik)
	| – skierowanie standardowego wyjścia do potoku, który obsłuży program trzeci, np. `cat /etc/hosts | grep "192.168.0." | awk {print $1}`
	& – wykonanie programu w tle, np. sudo synaptic &. Program taki nie podaje danych do terminala i pozostawia go możliwym do użycia.
	`komenda` – wykonanie polecenie bashowego w trakcie wykonywania poprzedniego polecenia, np. `clear && echo -en "\033[1;31mInformacje o procesorze:\033[1;0m\n`cat < /proc/cpuinfo`\n"` – należy zwrócić uwagę na operator "`", przerywa on na chwilę działanie skryptu, wykonuje polecenie `cat` i kieruje standardowe wyjście w miejsce operatorów ``. Parametry programu echo – \033[y;xxm ustawiają kolory – y to kolor tła, x to kolor napisów.
	Przykłady łączenia kilku poleceń
	$ su -c "mount -t smbfs //inny_komputer/share /mnt/net_share; cp -r /mnt/net_share /home/uzytkownik/dane; chown uzytkownik:users -r /home/uzytkownik/dane; umount /mnt/net_share"
	Podane polecenie skopiuje zawartość udostępnionych zasobów z inny_komputer, nada im odpowiednie prawa dostępu i potem odmontuje zasoby sieciowe. Wszystko jest wykonywane z poziomu roota, gdyż domyślnie tylko on może montować partycje i zasoby innych komputerów.
	Zapoznamy się teraz z funkcjonowaniem podstawowych filtrów używanych w systemie Linux:
	cat → wyświetla zawartość pliku
	tail → wyświetla koniec pliku
	head → wyświetla początek pliku
	nl → numeruje wiersze pliku
	more → wyświetlanie pliku strona po stronie
	wc → liczy linie, słowa, i znaki
	sort → uporządkowanie, fuzja plików
	grep → poszukiwanie ciągu znaków w pliku
	tr → prosta modyfikacja pliku
	Polecenie   cat
	Polecenie cat umożliwia wyświetlenie pliku a następnie zapisanie wyświetlonej zawartości – przy pomocy mechanizmu przekierowania – wybranego pliku w innym pliku.
	Opcja → Funkcja:
	-b → wyświetla numeracje wszystkich niepustych wierszy pliku
	-E → wyświetla znak  $ na końcu każdego wiersza
	-T → wyświetla znaki tabulacji  jako ^I
	-v → wyświetla znaki niedrukowalne poza znakami tabulacji i znaku
	-n → numeruje wszystkie wiersze
	Polecenie head
	Użycie polecenia head wyświetla nagłówek pliku. Często zdarza się, że plik, który użytkownik chce poddać edycji jest bardzo duży – zawiera kilkaset a nawet kilka tysięcy linii. Natomiast informacje których szuka użytkownik znajdują się w pierwszych liniach tekstu zawartego w pliku. Polecenie  head można przedstawić następująco:
	head  -opcja  nazwa pliku
	Opcje → Funkcje:
	-c → wyświetla pierwsze N bajtów pliku
	-n → wyświetla N pierwszych wierszy
	-c N{a,b,c} → wyświetla pierwsze N blokow, odpowiednio 512 B, 1kB, 1Mb
	Przećwiczmy zastosowanie polecenia head. W tym celu skorzystamy z dobrze znanego użytkownikowi  pliku  /etc/passwd oraz z konstrukcji potoku która szerzej omówimy w rozdziałach następnych:
	Polecenie  tail
	Jeżeli chcemy wyświetlić na ekranie końcowa zawartość pliku, powinniśmy skorzystać z dostępnego i stworzonego w tym celu polecenia tail. Poniżej znajduje się jego składnia i dostępne opcje.
	tail     -opcja    nazwa pliku
	Opcja → Funkcja:
	-c → wyświetla ostatnie N bajtów
	-f → nadzoruje wzrost pliku
	-n → wyświetla N ostatnich wierszy
	Polecenie  nl
	Polecenie nl numeruje wiesze pliku. Załóżmy, że dysponujemy następującym plikiem poemat. Wyświetlimy go na ekranie przy pomocy polecenia cat
	$ cat  poemat
	Opadają kwasem wina
	Liscie dębu i czeresni
	I zza wody psi przylesni
	Szczekaja jak mandolina
	Bałałajke psiej tęsknoty
	Uwiązali na łancuchu
	Za to zdzierze-mgle na uchu
	Dynda miesiac – kolczyk złoty
	$ nl poemat #numeruje linie poematu
	1 Opadają kwasem wina
	2 Liście dębu i czereśni
	3 I zza wody psi przyleśni
	4 Szczekaja jak mandolina
	5 Bałałajke psiej tęsknoty
	6 Uwiązali na łańcuchu
	7 Za to ździerze-mgle na uchu
	8 Dynda miesiąc – kolczyk złoty
	$ tail -3  poemat #wyświetla 3 ostatnie linie wiersza „poemat”
	Uwiązali na łancuchu
	Za to zdzierze-mgle na uchu
	Dynda miesicc – kolczyk złoty
	$ tail  +2  poemat #wyświetla od 2 lini do końca
	Za to zdzierze-mgle na uchu
	Dynda miesiac – kolczyk złoty
	$ head -3 poemat #wyświetla 3 pierwsze linie
	Opadaja kwasem wina
	Liście debu i czeresni
	I zza wody psi przylesni
	Uwagi: Liczba liń branych pod uwagę przez polecenie tail i head wynosi 10
	Co się dzieje gdy wystukamy (polecenie będące filtrem) bez żadnego argumentu, czyli bez nazwy pliku np.
	$ wc +  [Enter] *
	Polecenia zwane filtrami oczekują, że wprowadzimy jakieś dane możemy to zrobić i aby powrócić do lini poleceń i przerwać zapełnianie ekranu musimy wystukać jednocześnie  [ Carl ]+D
	Polecenie  more
	Często zdarza się, że edytowany przez użytkownika plik lub rezultat polecenia n.p ls –R / jest bardzo dużych rozmiarów i gdy jest wyświetlany na ekranie jego zawartość przelatuje przed oczyma użytkownika i widoczna jest jego końcowa część. Polecenie   more  umożliwia zapobiegać takim sytuacjom wyświetlając plik fragmentami ; przejście do następnego fragmentu następuje po naciśnięciu klawisza  spacja. Ogólna postać polecenia wygląda następująco:
	more  [  opcja  ]  [ liczba wierszy ]  [ nazwa  pliku]
	Opcja → Funkcja
	-d → wyświetla komunikat: Press space to continue q to quit na końcu każdego wyświetlanego wiersza
	-f → zlicza długie wiersze zapisane w kilku wierszach jako jeden wiersz
	-l → ignoruje znak zmiany strony
	-q → zatrzymuje wykonywanie polecenia more
	-p → blokuje przewijanie ekranu
	-s → zbiera wszystkie puste wiersze występujące po koleji w jeden pusty wiersz
	-u → blokuje podkreślenia
	-liczba wierszy → liczba wierszy która ma zostać jednorazowo
	+numer wiersza → rozpoczyna wyświetlenie zawartości pliku od wiersza numer pliku
	Polecenie    wc
	Polecenie wc ( word count – licznik słów) wyświetla liczbę wierszy, liczbę słów i liczbę znaków zawartych w pliku. Ostatnia nazwa w danych wynikowych to nazwa pliku. Można zobaczyć tylko część danych wynikowych używając poniższych opcji
	Opcja → Funkcja
	-c → liczy znaki
	-l → liczy wiersze
	-w → liczy słowa
	$  ls   |    wc  -l → liczy liczbę plików znajdujących się w katalogu – dlaczego
	Polecenie    sort
	Polecenie sort układa wiersze pliku w określonym porządku zgodnie z wartościami pewnych pól zawartymi w każdym pliku. Pola takie nazywamy kluczami sortowania np. kluczem sortowania w pliku zawierającym dane każdego obywatela może być numer Pesel lub nazwisko .
	Klucze sortowania określane dla polecenia sort mogą być polami w których znajduje się ciąg znaków zakończony białą spacją  czyli znakiem tabulacji lub spacji, klucze sortowania mogą być także wyznaczane w oparciu o pozycje grupy  znaków w wierszu. Jeżeli pola są rozdzielone znakiem innym niż znak tabulacji trzeba w takim wypadku użyć   opcji -t i podać znak rozdzielający.
	Na przykład w pliku passwd takim znakiem będzie  „:” . Jeżeli nie można podać jednoznacznie znaku rozdzielającego poszczególne pola w wierszu pliku to wtedy, to wtedy za pomocą zapisu  0.pozycja  znaku wyznaczyć początek i koniec klucza. Ważna funkcja polecenia sort jest funkcja łączenia plików, jest to możliwe pod warunkiem, ze pliki które chce się połączyć są juz uprzednio posortowane. W przypadku łączenia plików używamy opcji -m .Ogólna postać polecenia  sort ma następujący wygląd:
	sort  [  - opcja  ]   [  plik  ]
	Opcja → Funkcja:
	-d → sortowanie w kolejności książki telefonicznej
	-f → sortowanie nie rozróżniające małych i wielkich liter
	-i → sortowanie ignorujące znaki spoza zakresu ASCII
	-n → sortowanie najpierw w kolejności liczbowej , a potem alfabetycznej
	-r → sortowanie odwracające kolejność danych wynikowych
	root:x:0:0:root:/root:/bin/bash
	bin:x:1:1:bin:/bin:
	daemon:x:2:2:daemon:/sbin
	shutdown:x:6:0:shutdown:/sbin:/sbin:/shutdown
	halt:x:7:0:halt:/sbin:/sbin:/halt
	ftp:x:14:50:FTP User:/home/ftp:
	nobody:x:99:99:Nobody:/:
	ola:x:519:504:Ola Pawlak:/home/ola:/bin/bash
	$    sort  +3 –t’,’   liczba
	1,un,one,ein                                                               8, huit,eight,acht
	2,deux,two,zwei                                                           3,trois,three,drei
	3,trois,three,drei                                                          1,un,one,ein
	4,quatre,four,vier                                                         5,cinq,five,funf
	5,cinq,five,funf                    →         sort        →             9,neuf,nine,neun
	6,six,six,sechs                                                             6,six,six,sechs
	7,sept,seven,sieben                                                     7,sept,seven,sieben
	8,huit,eight,acht                                                           4,quatre,four,vier
	9,neuf,nine,neun                                                          10,dix,ten,zen
	10,dix,ten,zen                                                              2,deux,two,zwei
	$  sort –n  liczba
	1,un,one,ein
	2,deux,two,zwei
	3,trois,three,drei
	4,quatre,four,vier
	5,cinq,five,funf
	6,six,six,sechs
	7,sept,seven,sieben
	8,huit,eight,acht
	9,neuf,nine,neun
	10,dix,ten,zen
	$  sort  -t’,’ +3   liczba 8, 8,huit,eight,acht
	3,trois,three,drei
	1,un,one,ein
	5,cinq,five,funf
	9,neuf,nine,neun
	6,six,six,sechs
	7,sept,seven,sieben
	4,quatre,four,vier
	10,dix,ten,zen
	2,deux,two,zwei
	$  sort -t’,’ +1 -2
	5,cinq,five,funf
	2,deux,two,zwei
	10,dix,ten,zen
	8,huit,eight,acht
	9,neuf,nine,neun
	4,quatre,four,vier
	7,sept,seven,sieben
	6,six,six,sechs
	3,trois,three,drei
	1,un,one,ein
	Polecenie uniq
	Jak wiemy posortowane wyniki mogą zawierać powielone wiersze danych, czyli ten sam wiersz możw powtarzać sie 2 razy, za pomoca polecenia  uniq można takie powielone  wiersze usunąć.
	Polecenie cut
	Polecenie  cut (cut - ćiąć ) działa tak jak na to wskazuje nazwa, tnie wiersze pliku na częśći, które mogą byc nastepnie składane z powrotem w innym układzie. Polecenie cut działa na znakach lub na polach. Można również stosować te dwie metody jednocześnie.
	Opcja → Funkcja:
	-f → wskazuje pola które mają być wycięte
	-d → zmiana separatora
	-s → pozwala ignorować wiersze które nie zawieraja tabulacji lub separatora i nie wyświetla ich na standartowym wyjściu
	Przećwiczmy polecenie sort i cut na konkretnym, przykładzie. Załóżmy, że dysponujemy plikiem nazwanym liczba który zawiera 10 wierszy a każdy wiersz zawi cztery kolumny które w różnych jezykach odliczają do 10. Separatorem każdej kolumny  jest  ",". Plik przedstawia się nastepująco:
	$  cat  liczba
	1,un,one,ein
	10,dix,ten,zen
	2,deux,two,zwei
	3,trois,three,drei
	4,quatre,four,vier
	5,cinq,five,funf
	6,six,six,sechs
	7,sept,seven,sieben
	8,huit,eight,acht
	9,neuf,nine,neun
	$  cut –f1,3  -d’,’
	1,un,one,ein                                                  1,one
	2,deux,two,zwei                                              2,two
	3,trois,three,drei                                             3,three
	4,quatre,four,vier                                            4,four
	5,cinq,five,funf          →         cut          →          5,five
	6,six,six,sechs                                                6,six
	7,sept,seven,sieben                                         7,seven
	8,huit,eight,acht                                              8,eight
	9,neuf,nine,neun                                             9,nine
	10,dix,ten,zen                                                 10,ten
	 Opcja –f1,3 wskazuje, że wyselekcjonowane mają być kolumny  pierwsza i trzecia, opcja  -d wskazuje, ze separatorem kolumn jest   ",".
	Polecenie paste
	Polecenie paste (paste - sklej ) składa pliki na różne sposoby, przyjmuje jeden wiersz z jednego pliku i łaczy go z innym wierszem z innego pliku. Znak tabulacji jest zawsze domyślnym separatorem, mozna go jednak zmienić uzywając opcji  -d . Ogólna posatać polecenia  paste przedstawia sie nastepująco:
	Paste   [ -opcja ]   [ plik1  ]   [plik2 ]
	Opcja  → Funkcja:
	-d  → sklej pliki korzystając z separatorów
	-s  → sklej kolejne wiersze plików
	--  → sklej dwa kolejne wiersze ze standarowego wejścia
	-f  → wybiera kolumny do wyświetlenia
	Polecenie  join
	Polecenie join (join – łączyć) jest udoskonaloną wersją polecenia paste. Należy jednak pamiętać, że program ten działa tylko wtedy, kiedy łączone pliki mają wspólne pole. Polecenie  join rozpoczyna działanie od poszukiwania wspólnego pola w łączonych plikach, jeżeli takiego pola nie znajdzie, nic nie zostanie wyświetlone. Polecenie  join domyślnie oczekuje, że wspólnym polem obu plików będzie pole pierwsze. Aby polecenie  join działało skutecznie zaleca się sortowanie każdego z plików.
	Polecenie  split
	Polecenie split dzieli plik na części składające się z 1000 linii.
	$  split  -500   plik1   maly
	$ ls
	plik1   malya malyb malyc
	Polecenie grep
	Polecenie grep (globally look for a regular expression and print – co na polski można przetłumaczyć: wyszukaj w pliku napisów spełniających wyrażenie regularne i wyświetl je) służy do znalezienia każdego wystąpienia słowa – ciągu znaków, frazy – w pliku utworzonym w systemie Linux. Ogólny wzór polecenia grep można przedstawić następująco:
	grep  [ opcja ]   [ -e ]  [ wzór ]    [nazwa pliku]
	Opcja → Funkcie
	-b → wyświetla odnalezione miejsca
	-c → wyświetla liczbe odnalezionych wyrażeń
	-i → ignoruje różnice w wielkości liter
	-l → wyświetla tylko nazy plików w których odnaleziony został wzór
	-n → wyświetla numer każdego wiersza, w którym został odnaleziony wzór
	-v → wyświetla tylko te wiersze, które nie zawierają wzoru
	Przetestujmy polecenie grep na pliku, który przedstawia się następująco:
	$ cat   poemat
	Opadają kwasem wina
	Liście dębu i czereśni
	I zza wody psi przyleśni
	Szczekaja jak mandolina
	Bałałajke psiej tęsknoty
	Uwiązali na łańcuchu
	Za to zdzierze-mgle na uchu
	Dynda miesiąc – kolczyk złoty
	$  grep  ‘’psi’’  poemat
	Opadają kwasem wina
	Liście dębu i czereśni
	I zza wody psi przyleśni
	Szczekaja jak mandolina                                               ... I zza wody psi przyleśni
	→          grep          →          Bałałajke psiej tęsknoty
	Bałałajke psiej tęsknoty
	Uwiązali na łańcuchu
	Za to ździerze-mgle na uchu
	Dynda miesiąc – kolczyk złoty
	Polecenie  grep selekcjonuje z pliku linie zawierające poszukiwany ciąg znaków – w naszym przykładzie „psi”  - i wyświetla wskazane linie na ekranie. Opcja -i znosi różnice między małymi i dużymi literami. Jeżeli wystukamy:
	$  grep  -i   ‘’za’’  poemat
	I zza wody psi przyleśn
	Za to ździerze-mgle na uchu
	Opcja -c użyta z poleceniem grep umożliwia policzenie liczby liń zawartych w pliku (jakie inne polecenie wykonuje to samo ?).
	$   grep  -c  poemat
	8
	Opcja  -n numeruje linie w pliku (jakie inne polecenie wykonuje to samo ? ).
	$  grep  -n   poemat
	1 Opadają kwasem wina
	2 Liście dębu i czereśni
	3 I zza wody psi przyleśni
	4 Szczekaja jak mandolina
	5 Bałałajke psiej tęsknoty
	6 Uwiązali na łańcuchu
	7 Za to ździerze-mgle na uchu
	8 Dynda miesiąc – kolczyk złoty
	Opcja -v wyświetla linie, które nie zawierają poszukiwanego ciągu znaków, w naszym pierwszym przykładzie, jeśli przed  „psi” dodamy  -v to otrzymamy:
	$   grep  -v   ‘’psi’’  poemat
	Opadają kwasem wina
	Liście dębu i czereśni
	Szczekaja jak mandolina
	Uwiązali na łańcuchu
	Za to ździerze-mgle na uchu
	Dynda miesiąc – kolczyk złoty
	Opcja -l jest użyteczna kiedy poszukujemy ciągu znaków w wielu plikach.
	Polecenie  sed
	Polecenie a właściwie edytor sed (ang. stream editor) czyli edytor strumienia linii jest narzędziem informatycznym używanym do wyszukiwania  - wg wzorca opartego zazwyczaj na regułach zdefiniowanych w wyrażeniach regularnych – linii w pliku, do ich zmieniania  wyświetlania na ekranie czy też skierowywania rezultatów manipulacji do nowego pliku. Ogólny wzorzec polecenia sed wygląda następująco:
	sed  opcja  ‘wyszukiwany wzorzec’  nazwa_pliku
	Trzeba pamiętać, że edytor sed pracuje tak jak każdy inny edytor z jednym bardzo ważnym wyjątkiem: pobiera polecenia w oparciu o nie przetwarza plik, ale zmiany nie są zapisywane do oryginalnego pliku. Zmodyfikowane dane przesyłane są na standardowe wyjście jako nowy plik. Dlatego też sed jest często używany jako filtr.
	sed posiada następujące – główne- polecenia funkcje i opcje, których znaczenie przedstawiamy poniżej:
	Opcje  → Funkcje
	-e → pobierz polecenie edycji z wiersza polecenia
	-n → nie wyświetlaj wynikowych wierszy (tzw tryb cichy)
	-f → pobierz polecenia z pliku
	Podajmy przykład:
	$  sed  -n ‘polecenia edycji’  [ plik wejściowy  ]
	Można zauważyć, że w pierwszym przypadku opcja -e nie jest potrzebna, ponieważ podane jest tylko jedno pole specjalne. Jeżeli chce się użyć więcej niż jednego polecenia wtedy skorzystać właśnie z opcji -e lub opcji -f. Polecenia edytora  sed  umieszczamy w apostrofach, ponieważ wiele z nich – jak się przekonamy – zawiera znaki specjalne i wyrażenia regularne. Zasada działania edytora sed jest następująca. Edytor pobiera wiersz z pliku i stosuje do niego wszystkie polecenia edycyjne w kolejności ich wpisywania.
	Polecenie  → Opis
	a → dołącz tekst w pliku wyjściowym
	c → zastąp wybrane wiersze nowym tekstem
	d → usuń wiersze z pliku i przejdź do następnego wiersza usuwane wiersze nie są wyświetlane
	i\ → wstaw tekst w pliku wyjściowym -
	p → drukuj określone wiersze z pliku (może być używane do wybrania wierszy z pliku)
	h → skopiuj bieżący wiersz do bufora
	q → wyście z edytora sed
	r → wczytywanie wierszy z pliku i wyświetlanie ich na ekranie
	! → zaprzeczenie liniom wyszukiwanym przez wzorzec
	l → wyświetl wybrane wiersze
	s → zastąp pierwszy napis drugim
	Edytor  sed omówimy bardzo dokładnie w rozdziale 8, natomiast teraz przedstawimy kilka przykładów które umozliwią zrozumienie jak - to jedno z najbardziej skomplikowanych poleceń Linuksa -  funkcjonuje. Najprościej zrozumieć działanie edytora na podstawie przykładów. W tym podrozdziale przedstawimy kilka przykładów polecenia sed wykorzystującego funkcje  s czyli zastępowania. Załózmy że posiadamy w katalogu domowym plik o nazwie programowanie_bash w którym chcemy zamienić słowo  bash pisane z małej litery na Bash pisane z dużej litery.
	$  sed  `s/bash/Bash/g`  programowanie_bash
	Powyższe polecenia zastąpi wszystkie wystąpienia (tzw. znacznik  g) napisu bash napisem Bash we wszystkich wierszach pliku programowanie_bash. Pominięcie znacznika g   oznaczałoby zastąpienie tylko pierwszego wystąpienia napisu bash na bash w pliku. Jak widzimy ogólny wzór zastąpienia jednego ciągu znaków przez inny ciąg znaków wygląda następująco:
	s/stary ciąg znaków/nowy ciąg znaków/
	s/stary ciąg znaków/nowy ciąg znaków/g → g oznacza zastąp wszystkie wystąpienia wzorca znaków
	s/stary ciąg znaków/nowy ciąg znaków/p → p  oznacza wyświetl wiersz po wykonaniu zastąpienia
	Warto w tym podrozdziale zapoznać się także z opcją d usuwania wierszy. Jeżeli chcemy usunąć z pliky 10 pierwszych wierszy to polecenie sed będzie miało następującą postać:
	$  sed  `1,10d`  programowanie_bash
	Znak  ^  oznacza początek linii .
	Znak  $  oznacza koniec linii.
	Następujące polecenie usunie wszystkie puste wiersze z pliku:
	$  sed `/^$/d`  programowanie_bash
	Polecenie  tr
	Polecenie tr (translate ) umożliwia zmianę standardowego wejścia znak po znaku  a nie wiersz po wierszu. Ogólna postać polecenia tr jest nieco inna od tej do której przyzwyczaił się już zapewne czytelnik. Należy koniecznie pamiętać o tym, że struktura polecenia  tr  pozwala jedynie na podanie dwóch zestawów znaków, ale nie nazwy pliku.
	tr   [ nazwa znaków ]  [ nowa nazwa znaków ]
	Nazwę pliku podajemy poleceniu przekierowując wejście
	tr    [ nazwa znaków ] [ nowa nazwa znaków ]  <  plik1  > plik2
	Załóżmy że dysponujemy plikiem o nazwie plik1, którego zawartość wygląda następująco:
	$ cat  plik1
	warszawa
	paryz
	praga
	moskwa
	Aby nazwy stolic pisać tylko dużymi literami należy w następujący sposób użyć polecenia tr:
	$  tr  ‘[a-z]  ‘ [A-Z]   <  plik1   > plik2
	Opcja → Funkcja:
	-d → wymazanie pewnych znaków
	-s → wymazanie powtórzeń
	Podajmy kilka przykładów wyjaśniających działanie polecenia tr i opcji:
	$  tr   ‘a,/’   ‘A;_’   <  plik1   > plik2
	$ tr  -s  ‘ ‘  <  plik1   >  plik2
	lower → wszystkie znaki z małej litery
upper → wszystkie znaki z dużej litery
	print → wszystkie znaki drukowane
	punct → znaki przystankowe
	space → wszystkie odstępy
	alnum → znaki alfanumeryczne
	digit → tylko cyfry
	cntrl → znaki kontrolne
	alpha → tylko litery
	graph → znaki drukowalne oprócz odstępów
	$  tr  ‘[:lower:]’   ‘[:upper:]’  <  plik1  > plik2
   
        