bash.pdf

(101 KB) Pobierz
106293329 UNPDF
Powloka Bash
Pawel Bielecki
13 stycznia 2004
Spis tresci
1 Wprowadzenie.
2
2 Uruchamianie powloki.
2
3 Wprowadzenie polecen
2
4 Edytowanie Linii polecen. 3
4.1 Operacje na pojedynczych znakach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2 Poruszanie si e po linii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5 Uzupelnianie Polecen.
3
6 Historia polecen.
4
7 Aliasy.
5
8 Skrypty Bash. 6
8.1 Zmienne programowe(ang. program variables) . . . . . . . . . . . . . . . . . . . . . . 6
8.2 Zmienne specjalne (ang. special variables, special parameters) . . . . . . . . . . . . . 7
8.3 Zmienne srodowiskowe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.4 Instrukcja warunkowa if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.5 Instrukcja case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.6 Petla for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.7 Petla select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.8 Petla while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.9 Petla until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.10 Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.11 Interpretacja wyrazen arytmetycznych. . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.12 Polecenie let . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
1 Wprowadzenie.
Powloka shell to program, ktory przyjmuje polecenia uzytkownikow i uruchamia inne programy.
Kiedy uzytkownik si e zaloguje, pierwsz a widzian a przez niego rzecz a jest zgloszenie si e powloki (shell
prompt). Dost epnych jest wiele roznych powlok dla Linuxa (na przyklad Kerna, Bourne'a, csh, tcsh);
ta ktora jest uruchamia si e po zalogowaniu, jest okreslona jego wpisem w pliku /etc/passwd.
Bush to skrot od Broune Again Shell, co wi aze si e z faktem, ze powloka ta jest wzorowana na
innej powloce, a mianowicie powloce Bourne. Wszystkie wbudowane polecenia powloki Bourne'a s a
dost epne takze w Bashu.
2 Uruchamianie powloki.
Powloki s a zwykle wywolywane podczas logowania uzytkowania. Program loguj acy sprawdza w pliku
/etc/passwd, jak a powloke przypisal danemu uzytkownikowi administrator systemu. Jezeli nie jest to
Bash, mozna wywolac program bash z innej powloki, wpisuj ac /bin/bash w linii polecen. Mozna uzyc
nast epuj acych metod:
- norc - Nie odczytuje plikow inicjacyjnych/.bashre w przypadku wywolania interaktywnej
powloki.
- rcle nazwa pliku { Wykonuje polecenie ze wskazanego pliku.
- noprole { Nie wczytuje systemowego pliku startowego /etc/prole ani zadnego osobistego pliku.
- version { Wyswietla informacje o wersji.
- login { Sprawi, ze powloka dziala tak jak gdyby zostala bezposrednio wywolana przez program
login.
3 Wprowadzenie polecen
Pierwszy kontakt z bash nast epuje podczas normalnego wprowadzania polecen. Bash wspomaga nas
duz a liczb a skrotow klawiaturowych i klawiszy specjalnych. W szczegolnosci mozna uzywac klaw-
iszy kursora [w gore] i [w dol] do powtornego wykonywania najcz esciej wprowadzanych polecen, co
oszcz edza wiele mozolnego wpisywania. Po wylogowaniu si e z powloki, ostatnio uzywane polecenia
zostan a zapisane w pliku i w ten sposob b ed a dost epne podczas nast epnej sesji (jezeli pracujemy pod
t a sam a nazw a uzytkownika na kilku terminalach, tylko polecenia jednego z tych terminali b ed a za-
chowane). Wiersze polecen mog a byc edytowane w ten sam sposob jak w edytorze tekstowym, mozna
wstawiac i usuwac znaki w dowolnym miejscu. Mapowanie klawiatury w bash jest niemal calkowicie
kongurowalne. W szczegolnosci mozna przypisywac swoje wlasne polecenia do klawiszy specjalnych
(takich jak klawisze funkcyjne i klawisze kursora). Poza tym mozna przel aczac si e pomi edzy try-
bami emacs oraz vi. Dlatego dla wszystkich podstawowych polecen edycji odnosz a si e te same skroty
klawiaturowe, co w wybranym edytorze. Zazwyczaj standardowym ustawieniem jest emacs.
2
4 Edytowanie Linii polecen.
Wpisuj ac z klawiatury polecenia powloki, korzysta si e w istocie z prostego, liniowego miniedytora,
nieco podobnego do edytora DOSKEYS pod MS-DOS. Bush zawiera bardo duzo sekwencji znakow,
sluz acych do edytowania linii polecenia.
4.1 Operacje na pojedynczych znakach.
< Ctrl > -b lub Strzalka w prawo Przesuwa kursor o jeden znak w tyl.
< Ctrl > -f lub Strzalka w lewo Przesuwa kursor o jeden znak w przod.
< Del > Usuwa znak na lewo o kursora.
< Ctrl > - d Usuwa znak pod kursorem.
< Ctrl > - u Cofa ostatnio dokonan a zmian e (usuwa ostatnio wpisany
znak).
4.2 Poruszanie si e po linii.
< Ctrl > -a Przesuwa kursor na pocz atek lini.
< Ctrl > -e Przesuwa kursor na koniec linii.
< Meta > -f Przesuwa kursor o jedno slowo w przod.
< Meta > -b Przesuwa kursor o jedno slowo w tyl.
< Ctrl > -l Czysci ekran i wyswietla na gorze biez ac a lini e.
< Ctrl > -k Usuwa tekst od pozycji kursora do konca linii.
< Meta > -d Usuwa tekst od pozycji kursora do konca biez acego slowa, jesli kursor
znajduje si e w srodku slowa to tekst do do konca nast epnego slowa.
< Meta > -del Usuwa tekst od pozycji kursora do pocz atku biez acego slowa, a jesli kursor jest
mi edzy slowami { do pocz atku poprzedniego slowa.
<Ctrl>-y Wstawia ostatnio usuni ete slowo w miejsce kursora.
Oprocz sekwencji klawiszy pozwalaj acych edytowac lini e polecenia, powloka interpretuje tez kilka
innych sekwencji, ktore steruj a wykonaniem aktualnie aktywnego programu.
[Ctr1+C] Wysyla sygnal przerwania do aktualnie wykonywanego polecenia, co z
reguly powoduje, ze odpowiedni proces zostaje zakonczony.
[Ctr1+D] Wysyla znak konca pliku do aktualnie wykonywanego polecenia uzyj
tej sekwencji do zakonczenia wprowadzania danych z klawiatury.
[Ctr1+Z]
5 Uzupelnianie Polecen.
Dokanczanie polecen jest bardzo wygodn a i przyspieszaj ac a prac e opcji powloki Bash. Dzi eki niej
nie musimy juz wpisywac pelnej nazwy programu (sciezki do katalogu, pliku itp.) lub znac jego
dokladnej nazwy. Wystarczy, ze wpiszemy jego pierwsz a literke i wcisniemy klawisz TAB. Wtedy
Linux sprobuje wyszukac wszystkie dost epne programy, katalogi, pliki, ktorych pierwsza litera nazwy
3
Wstrzymuje (czasowo) wykonywanie aktualnie aktywnego programu.
odpowiada wpisanej przez nas. Jesli wi ecej programow zaczyna si e na t e sam znak powloka wylis-
tuje nam ich nazwy i poinformuje nas za pomoc a brz eczyka, ze nalezy podac dodatkowe informacje.
Dzieje si e to zazwyczaj, gdy podamy tylko jedn a, b adz dwie pierwsze litery, ale juz np. wpisanie mut
i wcisni ecie TAB, najprawdopodobniej spowoduje poprawne dokonczenie nazwy programu na mutt !
Jesli wpiszemy nazw e z bl edem np. mot, ktore nie ma odniesienia w rzeczywistosci i nacisniemy TAB
interpreter poinformuje nas o bl edzie wydaj ac z brz eczyka systemowego charakterystyczny dzwi ek.
Jest to dla nas sygnal, ze cos jest nie w porz adku i nalezy poprawic.
Spis najcz esciej uzywanych polecen uzupelniaj acych:
<TAB> Probuje uzupelnic tekst znajduj acy si e przed kursorem.
< Meta > -? Wyswietla mozliwe uzupelniania tekstu znajduj acego si e pod kursorem.
< Ctrl > -x- < Ctrl > -r Wczytuje zawartosc pliku inicjacyjnego i uwzgl ednia wszystkie
znajduj ace si e tam powi azania i przypisania zmiennych.
< Esc > Sprawia, ze nast epny znak b edzie traktowany tak, jakby zostal nacisni ety
razem z klawiszem < Meta > .
< Meta > - r Cofa wszystkie modykacje biez acej linii.
< Ctrl > - Przyrostowe cofanie zmian, zapami etywane oddzielnie dla kazdej linii.
6 Historia polecen.
Bash zapami etuje wydane przez uzytkownika polecenia. Dzi eki temu za pomoc a klawiszy kursora
(gora - dol), mozemy szybko przywolac polecenie, ktore juz wczesniej wydalismy. Jest to szczegolnie
przydatne, gdy w bardzo skomplikowanym poleceniu zmieniamy np. tylko nazw e pliku, na ktorym
ma zostac wykonane, a cala skladnia polecenia nie ulega modykacjom. Lista wydanych przez nas
polecen jest ladowana z pliku historii, ktory domyslnie nosi nazw e .bash history. Parametry nazwy
pliku historii oraz ilosci przechowywanych w nim ostatnio wydanych polecen ustalaj a zmienne HIST-
FILE oraz HISTSIZE. W tym miejscu warto zaznaczyc, ze w wielu dystrybucjach Linuksa zmienna
HISTSIZE ma wartosc 1000 co powoduje, ze w pliku .bash history zapisywanych jest 1000 wydanych
ostatnio polecen.
<Enter> Przyjmuje linie niezaleznie od polozenia kursora.
< Ctrl > -p lub Strzalka do gory Przechodzi w gor e listy historii.
< Ctrl > -n lub Strzalka do dolu Przechodzi w dol listy historii.
< Meta > - < Przechodzi do pierwszej linii historii.
< Meta > - > Przechodzi do ostatniej linii historii.
< Ctrl > -r Przeszukuj w tyl, zaczynaj ac od biez acej linii i w razie potrzeby poruszaj ac si e
w gor e listy historii.
<Ctrl>-s Przeszukuj w przod, zaczynaj ac od biez acej linii i w razie potrzeby poruszaj ac
si e w dol listy historii.
< Meta > -p Szuka calego wpisanego slowa w tyl, zaczynaj ac od biez acej linii i w razie
potrzeby poruszaj ac si e w gor e listy historii.
4
106293329.001.png 106293329.002.png
 
< Meta > -n Szuka calego wpisanego slowa w przod, zaczynaj ac od biez acej linii i w razie
potrzeby poruszaj ac si e w gor e listy historii.
< Meta > - < Ctrl > -y Wstawia argument poprzedniego polecenia.
< Meta > -. Lub < Meta > - Wstawia ostatni argument poprzedniego polecenia.
Istnieje tez metoda innego dost epu do historii polecen:
! Zaczyna podstawianie polecen z historii.
!! Jest to synonim zapisu !-1.
!n Oznacza n-t a linie polecenia.
!-n Oznacza polecenie odlegle o n linii w tyl.
!lancuch Oznacza pierwsze z uprzednio wydanych polecen zaczynaj acych si e od lancuch.
!?lancuch[?] Oznacza pierwsze z uprzednio wydanych polecen zawieraj acych lancuch.
!# Oznacza cal a linie polecenia wpisan a do tej pory.
Oprocz tych polecen istniej polecenie history, ktore wyswietla listing historii polecen.
history [N] [[-w {r {a {n] [ Nazwa pliku]]
-w Zapisuje biez ac a histori e w pliku historii.
-r Wczytuje plik historii i wypelnia list e historii jego zawartosci a.
-a Dodaje nowe linie historii.
-n Wczytuje linie historii jeszcze nie odczytane z pliku historii i umieszcza je na liscie
historii.
7 Aliasy.
Aliasy to mechanizm powloki, ktory umozliwia utworzenie skroconych wersji cz esto uzywanych pole-
cen. Aliasy tworzy si e, wpisuj ac slowo " alias", sekwencj e znakow, ktora b edzie nowym aliasem, znak
rownosci, a wreszcie wartosci, do ktorej alias b edzie rozwijany.
Alias [Nazwa[=wartosc]...]
Bez argumentow wyswietla aktualn a list e aliasow. W innym przypadku deniuje alias. Kiedy zostanie
wpisana
" wartosc" i wykonuje
" wartosc" jako polecenie.
Alias [-a][nazwa]
Usuwa okreslon a nazwe z list aliasow. Opcja {a powoduje usuni ecie wszystkich aliasow.
Przyklady:
alias rm='rm -i'
alias cp='cp -i'
5
" nazwa" , bash zmienia j a na
106293329.003.png
 
Zgłoś jeśli naruszono regulamin