Uruchamiając terminal, rozpoczynamy pracę w konkretnym katalogu. Zazwyczaj jest to katalog główny danego użytkownika. W trakcie pracy możemy wielokrotnie zmieniać katalog, w którym chcemy pracować. Katalog, "w którym aktualnie jesteśmy", nazywamy katalogiem bieżącym. Do sprawdzenia, co jest w danym momencie, używamy komendy pwd.Katalog bieżący zmieniamy, stosując polecenie cd:cd nazwa_katalogu_docelowegoOkreślając nazwę katalogu docelowego, możemy stosować ścieżkę bezwzględną lub względną. Ścieżka bezwzględna wskazuje dokładną lokalizację pliku lub katalogu. Ścieżka ta rozpoczyna się od katalogu głównego "/". Przykład wykorzystania ścieżki bezwzględnej:cd /home/FS2007/Scieżka względna określa położenie docelowego katalogu lub pliku względem katalogu bieżącego. Przykłady użycia ścieżki względnej:cd ../FS2007/tmp/ (przechodzimy do katalogu tmp, który znajduje się w katalogu FS2007, który z kolei znajduje się w katalogu nadrzędnym w stosunku do katalogu bieżącego.)cd ./abc/cde/lubcd abc/cde/ (przechodzimy do katalogu cde, który jest podkatalogiem katalogu abc, który z kolei jest podkatalogiem katalogu bieżącego)Do wyświetlania informacji o plikach i katalogach znajdujących się w katalogu bieżącym (lub w innych katalogach) służy polecenielsJego ważna opcja to -lls -lPo wykonaniu powyższej komendy na ekranie zobaczymy szczegółowe dane o zasobach zamieszczonych w danym katalogu. Pierwszy znak pierwszej kolumny określa, czy dany element jest plikiem (-) lub katalogiem (d). Pozostałe znaki pierwszej kolumny zawierają informacje o atrybutach, czyli prawach dostępu. Prawa dostępu mówią o tym, co właściciel danego elementu (znaki 2-4), inni użytkownicy należący do tej samej grupy użytkowników co właściciel (znaki 5-7), oraz wszyscy pozostali użytkownicy (znaki 8-10), mogą zrobić z danym elementem. W danej trójce znaków pierwszy oznacza prawo do odczytu (r) lub jego brak (-), drugi znak oznacza prawo do zapisu, czyli do zmieniania danego elementu (w) lub jego brak, trzeci znak oznacza prawo "do wykonywania", czyli np. uruchamiania pliku będącego programem, (x), lub jego brak (-). Właściciel może zmieniać atrybuty komendą chmod.Niekiedy interesują nas tylko niektóre spośród plików z danego katalogu. Na przykład, chcemy wyświetlić listę tych plików, których nazwy rozpoczynają się literą a:ls a* - gwiazdka reprezentuje dowolny ciąg znaków (również ciąg pusty - o zerowej długości).Inny przykład - interesują nas tylko pliki z rozszerzeniem txt:ls *.txtChcemy wyświetlić listę plików, których drugim znakiem w nazwie jest litera a, b lub c:ls ?[abc]* - znak zapytania reprezentuje jeden dowolny znak (w naszym przykładzie pierwszy znak nazwy może być jakikolwiek), nawias [ ] zawiera listę znaków, spośród których jeden ma się pojawić na drugim miejscu w nazwie. Ponieważ są to znaki, które występują kolejno w alfabecie, można było w nawiasie podać przedział interesujących nas znaków:ls ?[a-c]*Chcemy wyświetlić listę plikówz rozszerzeniem txt, których nazwy rozpoczynają się cyfrą od 1 do 5, lub 7 lub 9:ls [1-579]*.txtKopiowanie i przenoszenie plikówcp plik_zrodlowy plik_docelowy - kopiowaniemv plik_zrodlowy plik_docelowy - przenoszenie, ewentualnie zmiana nazwy - jeśli plik źródłowy i docelowy są w tym samym katalogu.Podając nazwy plików źródłowych i docelowych, korzysta się ze ścieżek bezwzględnych lub względnych.Przekierowanie wyjściaStandardowym wyjściem wielu komend jest ekran, np. po wpisaniu komendy ls listę plików zobaczymy właśnie na ekranie. Informacje "wychodzące" możemy przekierować np. do pliku albo do systemowego kosza. Robimy to stosując symbol przekierowania >ls > plikInformacje zostaną zapisane w pliku o nazwie plik. Jeśli taki plik już istniał, "stara" zawartość zostanie skasowana.ls -l >> plikJeśli plik już istniał, "stara" zawartość nie zostanie skasowana, a nowe dane zostaną dopisane na końcu pliku.Domyślnie przekazywane są informacje z kanału danych. Jest jeszcze kanał informacji o błędachls -l plik.txt 1> dane 2> bledyls -l plik.txt - generuje linię ze szczegółowymi informacjami na temat pliku plik.txt. Informacje te (kanał danych - nr 1) zostaną zapisane w pliku o nazwie dane. Ewentualne informacje o błędach, które miały miejsce w trakcie wykonania instrukcji ls -l plik.txt (przykładowo - plik.txt może nie istnieć), a zatem informacje z kanału błędów (nr 2), zostaną zapisane w pliku bledy.Polecenie catsłuży między innymi do wypisania zawartości pliku do standardowego wyjścia.cat plik.txt - plik zostanie wyświetlony na ekraniecat plik.txt >> plik1.txt - zawartość pliku plik.txt zostanie dopisana do pliku plik1.txt.Polecenie grepsłuży między innymi do wyszukania w danych pochodzących np. z wyświetlenia pliku lub z polecenia ls linii, zawierających (lub nie) pewnien wzorzecgrep "informatyka" plik.txt - wypisze tylko te linie z pliku plik.txt, które zawierają słowo informatykagrep -v "informatyka" plik.txt - wypisze tylko te linie z pliku plik.txt, które nie zawierają słowa informatykagrep ^d plik.txt - wypisze tylko te linie z pliku plik.txt, które zaczynają się znakiem dgrep d$ plik.txt - wypisze tylko te linie z pliku plik.txt, które kończą się znakiem dPotoki"wyjście" z jednego polecenia, może byc od razu użyte jako "wejście" do kolejnego polecenials -l | grep ^d - spośród linii generowanych przez polecenie ls -l, wybrane zostają tylko te, które rozpoczynają się znakiem dcat plik.txt | grep "informatyk" - por. informacje o poleceniach cat i grepaliasyMożemy stworzyć własne polecenia, które będą na przykład skrótami poleceń lub ciągów poleceń.alias ls1="ls -ltr"zdefiniowaliśmy nową instrukcję, której efekty są takie same jak ls -ltr. W aliasach można stosować potoki:alias ins1="ls -l | grep ^d"aliasy działają do momentu wylogowania się, lub do momentu anulowania instrukcją unaliasunalias ins1Polecenie wcPodaje informację na temat wielkości na przykład pliku.wc -l plik.txtwynikiem będzie liczba wierszy zawartych w pliku plik.txtls -l | grep ^d | wc -lwynikiem będzie liczba wierszy generowanych poleceniem ls -l | grep ^dPolecenie cutZałóżmy, że mamy plik 1.txt z zawartościąabxcbyZawartość tę można rozumieć jako dwa wiersze z dwiema kolumnami, rozdzielonymi literą b. cat 1.txt | cut -db -f1Na ekranie wyświetli się tylko pierwsza kolumna. -db oznacza, że jako separator wybrany jest znak b, -f1 oznacza, że chcemy wyświetlić tylko kolumnę nr 1. Plik wejściowy pozostanie nie zmieniony.Plik 2.txt ma zawartość qwe rty uio p[]ad fh jl ;'cat 2.txt | cut "-d " -f3-4Jako separator wybraliśmy spację, chcemy zobaczyć kolumny od 3 do 4. Wynikiem będzieuio p[]jl ;'Wynik możemy przekierować do nowego pliku:cat 2.txt | cut "-d " -f3-4 > 2_new.txtPolecenie trZałóżmy, że mamy plik zam.txt z zawartościąabc def xyz def ijk mnocat zam.txt | tr e qNa ekranie zamiast e pojawi się q.cat zam.txt | tr e " "Na ekranie zamiast e pojawi się spacja.cat zam.txt | tr def cvbNa ekranie zamiast def pojawi się cvb.cat zam.txt | tr [def] tKażda z liter d, e, bądź f zmieni się w t.cat plik | tr . ,Przydatne np. w plikach z liczbami, aby zmienić separator części dziesiętnej z kropki na przecinek.cat zam.txt | tr def cvb > zam1.txtZapisanie wyniku nie na ekranie, a w nowym pliku.Instrukcja for - tworzenie pętlifor {zmienna sterująca} in {lista} ; do {instrukcja}; donePrzykładfor i in a b; do echo x; donedwa razy wypisany zostanie "x" - dla każdej z dwóch wartości (a i b) zmiennej sterującej i.for i in a b; do echo $i; donewypisanie wartości zmiennej sterującej w kolejnych krokach (znak $ oznacza, że chodzi o wartość)for i in 1 10; do echo $i; donedziała podobnie, jak powyżejfor i in `seq 1 10`; do echo $i; done` ` - w tych apostrofach umieszczamy instrukcje, służące wygenerowaniu złożonej listy wartości zmiennej sterującej. Polecenie seq 1 10 oznacza generowanie kolejnych wartości od 1 do 10.wyn=0; for i in `seq 1 10`; do wyn=$((${wyn}+${i})); done ; echo $wynStworzyliśmy zmienną wyn i nadaliśmy jej wartość 0. W każdym kroku pętli wartość wyn zmieniamy w tej sposób, że do aktualnej warości wyn dodajemy aktualną wartość zmiennej sterującej i. Na końcu wyświetlamy ostateczną wartość wyn, która w tym przypadku jest sumą liczb od 1 do 10. Podwójne nawiasy (( )) zawierają wyrażenie arytmetyczne. wyn=$(( )) oznacza, że wyn przyjmuje wartość wyrażenia zawartego w nawiasach. Zamiast (( )) można użyć [ ]wyn=0; for i in `seq 1 10`; do wyn=$[${wyn}+${i}]; done ; echo $wynPoniżej nieco inne użycie tej instrukcji (bez określenia, że chodzi o wartość wyrażenia arytmetycznego)wyn=0; for i in `seq 1 10`; do wyn=${wyn}+${i}; done ; echo $wynLista może być wynikiem jeszcze innych instrukcji, np.for i in `ls | grep ^a` ; do cp ${i} ${i}_back ; doneWszystkie pliki rozpoczynające się literą a zostaną skopiowane, kopie będą miały nazwy takie jak oryginały, ale dostawiona zostanie końcówka _back.W trakcie pracy system wykorzystuje tzw. zmienne środowiskowe. Wartości tych zmiennych wpływają na sposób działania wykorzystywanych programów czy poleceń. W celu wyświetlenia wszystkich używanych zmiennych środowiskowych (i ich wartości), stosujemy polecenieenvNa przykład zmienna USER przechowuje nazwę użytkownika. Wartość zmiennej sprawdzamy następującoecho $USEROprócz zmiennych środowiskowych istnieją zmienne powłokowe. Własne zmienne tworzymy następującozmienna=wartoscJeżeli dodatkowo użyjemy polecenia export, utworzymy zmienną w sposób bardziej ogólny z punktu widzenia działania powłoki (np. nowa zmienna będzie "widziana" przy użyciu polecenia env)export zmienna2=wartosc...
respey