Środowisko programisty/Wprowadzenie do Basha: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== Czym jest bash? == | |||
Bash (Bourne-Again Shell) jest najpopularniejszą odmianą shell'a. Innymi znanymi są np. ksh (Korn Shell), csh (C Shell). | |||
Shell możemy kojarzyć z linią poleceń, dzięki ktorej możemy wpisywać komendy z klawiatury służące na ogół do uruchamiania innych programów, poleceń lub wyświetlania informacji. Shell służy też do uruchamiania własnoręcznie napisanych skryptów. | |||
Najprostsze skrypty są po prostu ciągiem poleceń, ale możemy też pisać bardziej skomplikowane mechanizmy, które w istocie rzeczy można nazwać wręcz programami. | |||
Składnia skryptów nie jest skomplikowana. Oprócz znajomości różnych programów użytkowych i systemowych, jest zaledwie kilka reguł, które wystarczy się nauczyć, żeby swobodnie pisać skrypty składające poznane programy w celu wykonania zaplanowanych działań. | |||
Shell'e możemy są podstawowym narzędzie pod systemami typu UNIX, ale | |||
nie tylko. Pod Windowsem mamy np. interpretator poleceń, a skryptami są np. pliki o rozszerzeniu bat. | |||
Niemniej możliwości i funkcjonalność takich skryptów pod Windowsem są znikome w porównania do basha pod Unixem, ze względu na możliwości składniowe, jak i dostępny zbiór polecenień użytkowych. Aby uzyskać możliwość uruchamiania skryptów napisanych w Bashu pod Windowsem możemy sobie zainstalować pakiet [http://www.cygwin.com/ Cygwin]. | |||
=== Do czego się przydaje? === | |||
Skrypty pisze się jak chce się zautomatyzować lub uprościć jakąś czynność, powtarzalną badź nie. Czynności te, to | |||
* kompilacja, budowanie aplikacji, | |||
* przetwarzanie plików (tworzenie, usuwanie, szukanie, itp.), | |||
* prosta obróbka (np. tekstowa) plików, | |||
* administracja systemem (np. konfiguracja, uruchamiania demonów), | |||
* i wiele innych... | |||
=== Do czego się nie nadaje? === | |||
Bash jest interpreterem. Skryptów napisanych w bashu się nie kompiluje. | |||
Nie ma też żadnych skomplikowanych struktur danych (jak tablice wielowymiarowe, czy drzewa), ani bardziej skomplikowanej struktur znanych z języków wyższych poziomów (jak rekordy, klasy). W związku z tym skrypty nie nadają się na przykład do: | |||
* zadań trudnych obliczeniowo, wymagających szybkiego działania, | |||
* operacji skomplikowanych algorytmicznie, czy też matematycznie, | |||
* operacji niskopoziomowychm, jak dostęp do sprzętu. | |||
== Zaczynamy pracować == | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> | ||
Shell może ułatwiać nam wykonywanie nawet bardzo skomplikowanych czynności. Spójrzmy na następujący przykład. Załóżmy, że mamy projekt o nazwie ecmnet, którego źródła znajdują sie w katalogu o tej samej nazwie. Chcemy wysłać sobie mailem archiwum z źródłami tego projektu. Chcemy również, aby w tym archiwum nie znalazły się pliki o rozszerzeniu bak, czy kończące się znakiem ~. Ponadto nazwa archiwum powinna zawierać aktulną datę z dokładności co do sekundy. Oto jak może wyklądać przykładowa sesja w bashu realizujaca te zadanie . | |||
<div class="mw-collapsible-content" style="display:none"><flash>file= | <div class="mw-collapsible-content" style="display:none"><flash>file=SrodowiskoProgramisty-bash01.swf|width=484|height=316|quality=low|loop=false</flash></div> | ||
</div> | </div> | ||
Wiele rzeczy, czy niektóre komendy mogą być w tym momencie niezrozumiałe, niemniej warto być świadomym możliwości, że tego typu czynności można wykonywać bardzo sprawnie. |
Wersja z 11:03, 8 lip 2006
Czym jest bash?
Bash (Bourne-Again Shell) jest najpopularniejszą odmianą shell'a. Innymi znanymi są np. ksh (Korn Shell), csh (C Shell).
Shell możemy kojarzyć z linią poleceń, dzięki ktorej możemy wpisywać komendy z klawiatury służące na ogół do uruchamiania innych programów, poleceń lub wyświetlania informacji. Shell służy też do uruchamiania własnoręcznie napisanych skryptów.
Najprostsze skrypty są po prostu ciągiem poleceń, ale możemy też pisać bardziej skomplikowane mechanizmy, które w istocie rzeczy można nazwać wręcz programami. Składnia skryptów nie jest skomplikowana. Oprócz znajomości różnych programów użytkowych i systemowych, jest zaledwie kilka reguł, które wystarczy się nauczyć, żeby swobodnie pisać skrypty składające poznane programy w celu wykonania zaplanowanych działań.
Shell'e możemy są podstawowym narzędzie pod systemami typu UNIX, ale nie tylko. Pod Windowsem mamy np. interpretator poleceń, a skryptami są np. pliki o rozszerzeniu bat. Niemniej możliwości i funkcjonalność takich skryptów pod Windowsem są znikome w porównania do basha pod Unixem, ze względu na możliwości składniowe, jak i dostępny zbiór polecenień użytkowych. Aby uzyskać możliwość uruchamiania skryptów napisanych w Bashu pod Windowsem możemy sobie zainstalować pakiet Cygwin.
Do czego się przydaje?
Skrypty pisze się jak chce się zautomatyzować lub uprościć jakąś czynność, powtarzalną badź nie. Czynności te, to
- kompilacja, budowanie aplikacji,
- przetwarzanie plików (tworzenie, usuwanie, szukanie, itp.),
- prosta obróbka (np. tekstowa) plików,
- administracja systemem (np. konfiguracja, uruchamiania demonów),
- i wiele innych...
Do czego się nie nadaje?
Bash jest interpreterem. Skryptów napisanych w bashu się nie kompiluje. Nie ma też żadnych skomplikowanych struktur danych (jak tablice wielowymiarowe, czy drzewa), ani bardziej skomplikowanej struktur znanych z języków wyższych poziomów (jak rekordy, klasy). W związku z tym skrypty nie nadają się na przykład do:
- zadań trudnych obliczeniowo, wymagających szybkiego działania,
- operacji skomplikowanych algorytmicznie, czy też matematycznie,
- operacji niskopoziomowychm, jak dostęp do sprzętu.
Zaczynamy pracować
Shell może ułatwiać nam wykonywanie nawet bardzo skomplikowanych czynności. Spójrzmy na następujący przykład. Załóżmy, że mamy projekt o nazwie ecmnet, którego źródła znajdują sie w katalogu o tej samej nazwie. Chcemy wysłać sobie mailem archiwum z źródłami tego projektu. Chcemy również, aby w tym archiwum nie znalazły się pliki o rozszerzeniu bak, czy kończące się znakiem ~. Ponadto nazwa archiwum powinna zawierać aktulną datę z dokładności co do sekundy. Oto jak może wyklądać przykładowa sesja w bashu realizujaca te zadanie .
Wiele rzeczy, czy niektóre komendy mogą być w tym momencie niezrozumiałe, niemniej warto być świadomym możliwości, że tego typu czynności można wykonywać bardzo sprawnie.