Menu
Strona g艂贸wna
Hacking
Programowanie
Telefonia Kom贸rkowa
Kody do Gier
Linux
Dlaczego?
Programowanie w Delphi
Mapa strony
 Programy
Systemy
Artyku艂y PDF

Security

Skanery
Sniffery
Security

Windows

U偶ytkowe
Przegl卤darki graficzne
Kodeki
Narz臋dzia plikowe
Narz臋dzia dyskowe
Narz臋dzia systemowe
Sterowniki
Szyfrowanie danych
Zarz卤dzanie has艂ami
Zarz卤dzanie rejestrem
拢aty i Patche
Zarz卤dzanie pami臋ci卤
Synchronizacja czasu
Nagrywanie p艂yt
Free Antivirus (Darmowe Antyvirusy)
Sterowniki
Obr贸bka d录wi臋ku
Edycja wideo

Internetowe

Bezpiecze帽stwo
Programy P2P
Komunikatory
Dodatki do przegl卤darek
Klienty poczty elektronicznej
Narz臋dzia Antyspamowe
Przegl卤darki grup dyskusyjnych
Przegl卤darki Offline
Serwery poczty elektronicznej
Telefonia kom贸rkowa
Wyszukiwarki internetowe
Zdalny dost臋p
Cybernianie
Klienty FTP
Narz臋dzia internetowe
Prywatno艣c
Przegl卤darki internetowe
Serwery FTP
Serwery WWW
Wspomagacze 艣ci卤gania
Zarz卤dzanie sieci卤 lokaln卤

Tuning Systemu

Diagnostyka i testowanie
Inne
Rozszerzenia pulpitu
Tapety na pulpit
Tuning Systemu
Ikony
Pow艂oki
Tuning sprz臋tu
Wygaszacze ekranu

Programowanie

Kompilatory
Biblioteki i komponenty
Bazy danych
Edytory programistyczne
娄rodowiska programistyczne
Debugery
Tworzenie wersji instalacyjnych

Webmastering

U偶ytkowe
Kursy

Linux

U偶ytkowe
Internetowe
Multimedialne

Programy biurowe

Programy dla firm
Pakiety biurowe
Administracja
Edytory tekstu
Grafika prezentacyjna
Kadry i p艂ace
Wspomaganie projektowania
Zarz卤dzanie projektami
Bazy danych
Finanse i ksi臋gowo艣c
Handel
Programy ewidencyjne
Zarz卤dzanie informacj卤 osobist卤 (PIM)
 Download GRY
Pelne Wersje GIER
 Artyku硑 > Linux > BASH - Bourne Again SHell

BASH - Bourne Again SHell

Interpreter polece艅 pow艂oki BASH

Interpreter polece艅 pow艂oki jest to interfejs pomi臋dzy u偶ytkownikiem, a j膮drem systemu. Dzi臋ki niemu, je艣li wydajemy za pomoc膮 klawiatury polecenie pow艂oka zamienia dane na j臋zyk zrozumia艂y przez j膮dro systemu, kt贸ry wie, 偶e ma np. uruchomi膰 b膮d录 zatrzyma膰 program. Jedn膮 z takich pow艂ok jest BASH stworzony przez Briana Foxa i Cheta Rameya i udost臋pniony na zasadach licencji GNU. Jest on jedn膮 z lepszych pow艂ok i w wielu systemach linuxowych wykorzystywany jako domy艣lna, przez co zapewne i Ty jej u偶ywasz :-) Zawiera 48 wbudowanych polece艅 (biult-in) oraz 12 funkcji wywo艂ania. Jest w pe艂ni kompatybilny z pow艂ok膮 sh oraz zawiera wiele ciekawych rozwi膮za艅 przej臋tych od pow艂ok Korn i C (ksh i csh).

Doka艅czanie polece艅

Doka艅czanie polece艅 jest bardzo wygodn膮 i przyspieszaj膮c膮 prac臋 opcj膮 pow艂oki Bash. Dzi臋ki niej nie musimy ju偶 wpisywa膰 pe艂nej nazwy programu (艣cie偶ki do katalogu, pliku itp) lub zna膰 jego dok艂adnej nazwy. Wystarczy, 偶e wpiszemy jego pierwsz膮 literk臋 i wci艣niemy klawisz TAB. Wtedy Linux spr贸buje wyszuka膰 wszystkie dost臋pne programy, katalogi, pliki, kt贸rych pierwsza litera nazwy odpowiada wpisanej przez nas. Je艣li wi臋cej program贸w zaczyna si臋 na t臋 sam znak pow艂oka wylistuje nam ich nazwy i poinformuje nas za pomoc膮 brz臋czyka, 偶e nale偶y poda膰 dodatkowe informacje. Dzieje si臋 to zazwyczaj, gdy podamy tylko jedn膮, b膮d录 dwie pierwsze litery, ale ju偶 np wpisanie mut i wci艣ni臋cie TAB, najprawdopodobniej spowoduje poprawne doko艅czenie nazwy programu na mutt! Je艣li wpiszemy nazw臋 z b艂臋dem np. mot, kt贸re nie ma odniesienia w rzeczywisto艣ci i naci艣niemy TAB interpreter poinformuje nas o b艂臋dzie wydaj膮c z brz臋czyka systemowego charakterystyczny dzwi臋k. Jest to dla nas sygna艂, 偶e co艣 jest nie w porz膮dku i nale偶y poprawi膰.

Historia polece艅

Bash zapami臋tuje wydane przez u偶ytkownika polecenia. Dzi臋ki temu za pomoc膮 klawiszy kursora (g贸ra - d贸艂), mo偶emy szybko przywo艂a膰 polecenie, kt贸re ju偶 wcze艣niej wydali艣my. Jest to szczeg贸lnie przydatne gdy w bardzo skomplikowanym poleceniu zmieniamy np. tylko nazw臋 pliku, na kt贸rym ma zosta膰 wykonane, a ca艂a sk艂adnia polecenia nie ulega modyfikacjom. Lista wydanych przez nas polece艅 jest 艂adowana z pliku historii, kt贸ry domy艣lnie nosi nazw臋 .bash_history. Parametry nazwy pliku historii oraz ilo艣ci przechowywanych w nim ostatnio wydanych polece艅 ustalaj膮 zmienne HISTFILE oraz HISTSIZE, ale o zmiennych pow艂oki Bash troch臋 p贸录niej. W tym miejscu warto zaznaczy膰, 偶e w wielu dystrybucjach Linuxa zmienna HISTSIZE ma warto艣膰 1000 co powoduje, 偶e w pliku .bash_history zapisywanych jest 1000 wydanych ostatnio polece艅. Aby obejrze膰 na ekranie dost臋pne z historii polecenia wystarczy u偶y膰 polecenia:

history liczba.polece艅

Tak wi臋c, je艣li chcemy obejrze膰 10 ostatnio wydanych polece艅 wpiszmy history 10.

Aliasy

Aliasy s膮 to skr贸ty, kt贸re przyspieszaj膮 nasz膮 prac臋 z pow艂ok膮. Je艣li np. codziennie uaktualniamy nasz膮 stron臋 g艂贸wn膮, kt贸rej plik startowy to /home/artur/linux/index.html to zamiast ci膮gle wpisywa膰 mcedit /home/artur/linux/index.html mo偶emy utworzy膰 do niego alias po wywo艂aniu kt贸rego otworzony zostanie do edycji ten w艂a艣nie plik. Nasz alias bedzie nosi艂 nazw臋 linux i w艂a艣nie to s艂owo b臋dziemy musieli wpisa膰, aby wywo艂a膰 do edycji plik index.html.

alias linux='mcedit /home/artur/linux/index.html'

Warto pami臋ta膰, 偶e utworzone z linii polece艅 aliasy staj膮 si臋 nieaktualne po wylogowaniu si臋 z pow艂oki. Aby by艂y dost臋pne po ka偶dym zalogowaniu si臋, nale偶y je dopisa膰 do jednego z plik贸w konfiguracyjnych, ale o tym w dziale Dostosowywanie pow艂oki.

Je艣li dany alias nie jest nam ju偶 potrzebny mo偶emy usun膮膰 go korzystaj膮c z polecenia unalias:

unalias linux

Aby wy艣wietli膰 list臋 wszystkich dost臋pnych alias贸w wystarczy wyda膰 polecenie alias, bez jakichkolwiek parametr贸w.

M贸j skonfigurowany przez ludzi z Mandrake-Soft zbi贸r alias贸w wygl膮da mniej wi臋cej tak:

alias cd..='cd ..'
# Gdybym przez pomy艂k臋? wpisa艂 cd.. (tak chyba jest to rozwi膮zane w dos`ie,

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Gdy wydaje jedno z powy偶szych polece艅, zostaje ono
# zamienione na polecenie z argumentem -i (interactive),
# dzi臋ki, kt贸remu polecenie pyta si臋 czy nadpisywa膰 istniej膮ce
# pliki, b膮d录 je usuwa膰. S艂u偶y to tylko i wy艂膮cznie
# poprawieniu bezpiecze艅stwa.

alias rd='rmdir'
alias md='mkdir'
# Te aliasy zosta艂y stworzone dla ludzi, kt贸rzy jeszcze
# niedawno u偶ywali systemu DOS i s膮 przyzwyczajeni
# do polece艅 tamtej pow艂oki.

alias ls='ls --color=auto -F'
alias ll='ls -l'
alias lsd='ls -d */'
alias la='ls -A -k'
# W tym wypadku aliasy zosta艂y stworzone, aby zb臋dne sta艂o
# si臋 operowanie na parametrach polecenia ls. I tak wydanie
# polecenia ls spowoduje, 偶e dane zostan膮 wy艣wietlone w kolorkach,
# oraz dodany zostanie do ka偶dego pliku znak oznaczaj膮cy jego typ.
# Po wpisaniu ll zostanie wywo艂ane polecenie ls z parametrem l,
# kt贸ry wy艣wieli nam list臋 plik贸w formacie zawieraj膮cym o wiele
# wiecej informacji. Pozosta艂e parametry musicie poszuka膰 w
# dokumentacji ls - man ls, bo artyku艂 ten nie ma zamiaru omawia膰
# polece艅, ani ich sk艂adni.

alias df='df -h -x supermount'
alias du='du -h'
# Aliasy, powoduj膮ce, 偶e po wydaniu polece艅 df i du, programy
# te b臋d膮 wykonywane z odpowiednimi parametrami.

alias l='ls'
alias p='cd -'
alias s='cd ..'
alias d='ls'
# Inne aliasy, skracaj膮ce wpisywanie :-)

Symbole wieloznaczne

Pow艂oka bash obs艂uguje trzy rodzaje symboli wieloznaczych. S膮 to: *, kt贸re zast臋puje dowolny znak lub ich ci膮g, ? - zast臋puje dowolny znak (tylko jeden!) oraz [...], kt贸re zast臋puje dowolny znak wyst臋pujacy pomi臋dzy nawisami. Symbole wieloznaczne wykorzystywane s膮 najcz臋艣ciej do wykonywania tego samego polecenia na r贸偶nych plikach, b膮d录 katalogach. Je艣li chcemy skopiowa膰 wszystkie pliki zawarte w katalogu linux do katalogu linux-kopia wystarczy wyda膰 polecenie:

cp linux/* linux-kopia/

Nast臋pny symbol wieloznaczny (?) zast臋puje pojedynczy znak. Wydaj膮c polecenie:

cp plik?.txt linux/

spowodujemy, 偶e zostan膮 skopiowane wszystkie pliki, kt贸rych nazwa brzmi plik[jaki艣 symbol], np. plik5, pliks.

Aby okre艣li膰 szczeg贸艂owo jakie pliki maj膮 by膰 kopiowane u偶yjemy trzecieko symbolu wieloznacznego [...]. Przypu艣膰my, 偶e w katalogu mamy pliki: plik1, plik2, plik3 i plik4. Chcemy skopiowa膰 tylko pliki z numerami 1,2 i 3. Wydajemy zatem polecenie:

cp plik[123].txt linux/

lub

cp plik[1-3].txt linux/

Przekierowanie wej艣cia i wyj艣cia

Przekierowanie wej艣cia s艂u偶y do podania z艂o偶onych danych, kt贸re musz膮 by膰 przekazane do programu. Zazwyczaj wykorzystywane jest to odczytywania danych z plik贸w. Oto przyk艂ad:

sort < pliki_mp3
# program sort ustawi w kolejno艣ci list臋 plik贸w, kt贸rych nazwy
# zapisane zosta艂y w pliki_mp3

Przekierowanie wyj艣cia jest cz臋艣ciej u偶ywane. Dzi臋ki niemu b臋dziemy mogli przes艂a膰 wyniki pochodz膮ce od programu do pliku lub urz膮dzenia. Potrzebne nam to b臋dzie gdy zechcemy zapisa膰 te wyniki do p贸录niejszej analizy itp. B臋dzie je mo偶na oczywi艣cie odczyta膰 zwyk艂ym edytorem tekstu. Oto dwa najprostsze przyk艂ady przedstawiaj膮ce dzia艂anie przekierowania wyj艣cia:

7
ls > lista
# Spowoduje to zapisanie listy plik贸w i katalog贸w w bie偶膮cym
# katalogu do pliku lista.

ps -A > procesy
# Spowoduje to zapisanie listy proces贸w do pliku procesy

UWAGA: Przy korzystaniu z przekierowa艅 musimy by膰 szczeg贸lnie uwa偶ni, gdy偶 w przypadku skierowania wyj艣cia do pliku jego poprzednia zawarto艣膰 zostanie skasowana!

Istnieje te偶 mo偶liwo艣膰 dopisywania do orginalnego pliku. Wtedy jego przednia zawarto艣膰 zostanie zachowana oraz uzupe艂niona o nowe dane. S艂u偶膮 do tego znaki: <<. A oto i przyk艂ad:

cat >> plik
To b臋dzie pierwsza linia.
To b臋dzie druga linia.

CTRL+D
# Korzystamy z programu CAT, wpisujemy tekst i ko艅czymy jego
# dzia艂anie wciskaj膮c CTRL+D

cat >> plik
To b臋dzie trzecia linia.
To b臋dzie czwarta linia.

CTRL+D
# Dopisujemy do tego pliku jeszcze dwie kolejne linie.

Nasz plik wygl膮da teraz:

To b臋dzie pierwsza linia.
To b臋dzie druga linia.
To b臋dzie trzecia linia.
To b臋dzie czwarta linia.

Potoki

Potoki (pipe) s艂u偶膮 do 艂膮czenia polece艅. Dzi臋ki temu przyspieszymy nasz膮 prac臋 oraz zwi臋kszymy mo偶liwo艣ci prostych polece艅. Potoki wykorzystywane s膮 najcz臋艣ciej w procesach przetwarzania danych np. gdy chcemy wyszuka膰 jakie艣 konkretne pliki b膮d录 przegl膮da膰 logi systemowe, uruchomione procesy itd. Zasada dzia艂ania potok贸w polega na tym, 偶e wy艣cie poprzedniego polecenia stanowi wej艣cie nast臋pnego. Przyk艂adowo polecenie:

find /home/artur/Mp3 -name *.mp3 | sort > moje_mp3

najpierw wyszuka wszystkie pliki o rozszerzeniu .mp3 w katalogu /home/artur/Mp3, nast臋pnie je posortuje (tutaj wykorzystanie potoku), a na ko艅cu wyj艣cie programu sort zostanie skierowane do pliku moje_mp3, kt贸ry b臋dziemy mogli potem odczyta膰 zwyk艂ym edytorem.

Zmienne

Zmienne s艂u偶膮 do okre艣lania konfiguracji pow艂oki i s膮 one dost臋pne dla wszystkich proces贸w potomnych. Wszystkie dost臋pne zmienne mo偶emy wylistowa膰 poleceniem:

printenv | more

Je艣li chcemy wyeksportowa膰 jak膮 zmienn膮 wydajemy polecenie wed艂ug schematu:

export ZMIENNA=warto艣膰.zmiennej

A oto i najbardziej u偶yteczne zmienne pow艂oki:

HISTFILE - okre艣la nazw臋 pliku historii, [patrz: historia polece艅]
HISTSIZE - rozmiar historii, [patrz: znak zach臋ty]
EDITOR - okre艣la domy艣lny edytor,
PATH - 艣cie偶ka przeszukiwania, [patrz: 艣cie偶ki przeszukiwania]
PS1 - znak zachety pierwszego poziomu, [patrz: znak zach臋ty]
PS2 - znak zachety drugiego poziomu, [patrz: znak zach臋ty]
PWD - okre艣la nazw臋 bie偶膮cego katalogu,
HOSTNAME - nazwa komputera,
MAIL - 艣cie偶ka gdzie przychodz膮 dla nas listy

Dla przyk艂ady, 偶eby ustawi膰 domy艣lny edytor z vi na mcedit wydaj polecenie:

export EDITOR=mcedit

Pami臋taj, 偶e wszystkie zmienne trac膮 wa偶no艣膰 po wylogowaniu si臋! Aby by艂y dost臋pne za ka偶dym razem musimy je doda膰 do plik贸w konfiguracyjnych bash`a, ale o tym za chwil臋.

Znak zach臋ty

Znak zach臋ty to tekst, kt贸ry informuje u偶ytkownika, 偶e system czeka na wprowadzenie przez niego danych. W pow艂oce bash istniej膮 dwa poziomy znaku zach臋ty - pierwszy, kt贸ry otrzymamy zaraz po zalogowaniu informuje nas, 偶e system czeka na wprowadzenie polecenia. Drugi poziom jest wy艣wietlany gdy interpreter potrzebuje dodatkowych danych, kt贸re musimy wprowadzi膰. Jest on przechowywany w zmiennej PS2 [patrz: zmienne pow艂oki] i standardowo ma posta膰 ">". Mo偶na go zmieni膰, ale takie rozwi膮zanie jest wygodne, wi臋c zajmiemy si臋 tylko konfiguracj膮 znaku zach臋ty pierwszego poziomu, kt贸ry opisany jest w zmiennej PS1. Je艣li wydamy polcenie:

export PS1="To m贸j komputer"

wtedy nasz znak zach臋ty b臋dzie wygl膮da艂: To m贸j komputer. Nie jest to jednak rozwi膮zanie ani wygodne, ani estetyczne. Lepiej utworzy膰 znak zach臋ty przedstawiaj膮cy dynamicznie zmieniaj膮ce si臋 dane jak na przyk艂ad czas, bie偶膮cy katalog, numer aktualnego polecenia itp.

Zerknijmy na standardow膮 zmienn膮 PS1. U mnie ma ona posta膰: PS1="[\u@\h \W]\\$ ". Przyjrzyjmy si臋 bli偶ej temu co zawarte jest w cudzys艂owi. Pierwszy znak [ - jest znakiem statycznym, dzi臋ki niemu dane przedstawione s膮 w estetycznej formie, kod \u wy艣wietla identyfikator u偶ytkownika, @ to nast臋pny znak statyczny, \h pokazuje nazw臋 komputera, a \W wy艣wietla podstawow膮 nazw臋 katalogu. Nast臋pnie znak ] zamyka nawias, a po nim nast臋puje kod \$, kt贸ry wy艣wietla znak # gdy jeste艣my zalogowani jako root, lub $ gdy jako zwyk艂y user. Spacje s膮 spacjami wy艣wietlanymi na ekranie.

A teraz jak wygl膮da zapis PS1="[\u@\h \W]\\$ " po przetworzeniu: [root@soho /root]# lub [artur@soho /artur]$.

Oto lista kod贸w specjalnych, kt贸re mog膮 zosta膰 u偶yte do konfiguracji znaku zach臋ty:

\! - wy艣wietla numer polecenia historii,
\# - wy艣wietla numer aktualnego polecenia,
\$ - wy艣wietla # dla root`a i $ dla zwyk艂ego u偶ytkownika
\\ - wy艣wietla znak \
\d - wy艣wietla dat臋
\t - wy艣wietla czas
\h - wy艣wietla nazw臋 komputera
\n - przechodzi do nowego wiersza
\nnn - wy艣wietla znak, kt贸ry odpowiada warto艣ci 贸semkowej nnn
\s - wy艣wietla nazw臋 pow艂oki
\u - wy艣wietla login u偶ytkownika
\W - wy艣wietla podstawow膮 nazw臋 bie偶膮cego katalogu
\w - wy艣wietla nazw臋 bie偶膮cego katalogu

娄cie偶ki przeszukiwania

娄cie偶ki przeszukiwania s膮 okre艣lone zmienn膮 PATH i s艂u偶膮 do wyszukania w okre艣lonej lokalizacji programu b膮d录 polecenia. Dzi臋ki tym 艣cie偶k膮 zamiast wpisywa膰 /usr/bin/mutt by uruchomi膰 program, wystarczy poda膰 mutt i klient pocztowy zostanie uruchomiony. Oczywi艣cie w zmiennej PATH musi by膰 podana 艣cie偶ka /usr/bin. Aby zobaczy膰 w jakich lokalizacjach Tw贸j Linux szuka program贸w wydaj polecenie printenv i poszukaj zmiennej PATH. Poszczeg贸lne 艣cie偶ki oddzielone s膮 dwukropkiem.

Zarz膮dzanie zadaniami

Pow艂oka Bash oferuje mo偶liwo艣膰 uruchamiania program贸w w tle. Jest to przydatne wtedy gdy mamy do dyspozycji tylko jedn膮 konsol臋 i wtedy program, kt贸rego wykonanie musi chwil臋 potrwa膰 (np. polecenie find) zajmuj臋 nam nasze "stanowisko pracy". Przyk艂adowo wydajmy polecenie:

find /usr -name kde* > pliki_z_kde &

Program find uruchomi si臋 w tle, a my na ekranie otrzymamy numer przypisanego mu procesu. Find wyszuka wszystkie pliki z /usr, kt贸rych nazwa zaczyna si臋 kde i zapisze je do pliku pliki_z_kde.

Mo偶na te偶 wys艂a膰 dzia艂aj膮cy program w t艂o u偶ywaj膮c kombinacji klawiszy CTRL+Z, kt贸ra spowoduje, 偶e program zostanie zatrzymany, a nast臋pnie uruchomimy go w tle wpisuj膮c bgWydajemy polecenie:

find /usr -name kde* > pliki_z_kde

i wciskamy CTRL+Z. Nast臋pnie wpisujemy bg. Efekt ten sam.

Aby ponownie przywr贸ci膰 program na pierwszy plan skorzystajmy z polecenia fg [numer zadania]. Poniewa偶 dowolnie mo偶emy korzysta膰 z bg i fg system musi wiedzie膰, na kt贸rym procesie ma operowa膰. Je艣li pami臋tamy kolejno艣膰 uruchamiania program贸w, mo偶emy z g艂owy wpisa膰 np. fg 2, lub je艣li nie pami臋tamy, zapodajemy polecenie jobs. Zostanie wy艣wietlona lista o wszystkich dzia艂aj膮cych b膮d录 zatrzymanych procesach wraz z ich numerem, kt贸rego potrzebowali艣my.

Konfiguracja pow艂oki

Do tej pory wszelkie ustawienia, kt贸rych dokonywali艣my na pow艂oce stawa艂y si臋 nieaktualne po wylogowaniu. Mo偶na jednak ustawi膰 je w plikach konfiguracyjnych tak by by艂y odczytywane podczas ka偶dego uruchamiania pow艂oki (logowania). W przypadku pow艂oki bash zmienne mo偶na umie艣ci膰 (zapewne s膮 ju偶 tam umieszczone) w plikach /etc/profile, gdy jeste艣my administratorem lub w katalogu u偶ytkownika w pliku o nazwie .profile lub .bash_profile. W艂a艣nie w nich dodajemy aliasy, zmienne, 艣cie偶ki itp.

UWAGA: Modyfikowanie plik贸w z katalogu /etc takich jak /etc/profile mo偶e doprowadzi膰 do tego, 偶e nie b臋dziemy mogli uruchomi膰 pow艂oki, dlatego bezpieczniej jest testowa膰 nowe konfiguracje jako zwyk艂y u偶ytkownik i zapisywa膰 je do domowych plik贸w konfiguracyjnych!

komentarz[1] |

Copyright 2006 - 2007 E-comet.info. Wszelkie prawa zastrze縪ne.

programy,artyku硑,gry online,teledyski,filmiki,smieszne reklamy,sterowniki,kodeki,programy,program,download, downloads,security,bramka sms, teledyski,antywirusy,darmowe free program,programy p2p,tapety,programy biurowe,programy dla firm,narz阣zia dyskowe,edytory,gry strategiczne,gry przygodowe,gry sportowe, symulatory, gry rpg,gry karciane, gry zrecznosciowe. Zapraszamy.
0.028 |