From Łukasz Graczykowski
(Difference between revisions)
|
|
Line 1: |
Line 1: |
- |
| |
| == Powłoka Bash == | | == Powłoka Bash == |
| | | |
Line 9: |
Line 8: |
| | | |
| | | |
- | == Podstawy Bash == | + | == Powłoka Bash: Podstawy == |
| | | |
| Jednym z podstawowych poleceń jest <code>echo</code>, służące do wyświetlania tekstu podanego mu jako argument: | | Jednym z podstawowych poleceń jest <code>echo</code>, służące do wyświetlania tekstu podanego mu jako argument: |
Line 28: |
Line 27: |
| echo ~ | | echo ~ |
| /home/jb | | /home/jb |
| + | |
| + | |
| + | == Zadanie 1 == |
| + | |
| + | Za pomocą polecenia <code>echo</code> wyświetlić wszystkie pliki kończące się na <code>.conf</code> z katalogu <code>/etc</code> |
| + | |
| + | |
| + | == Powłoka Bash: Przekierowania == |
| + | |
| + | Program cat odczytuje zawartość plików i przekierowuje ją na standardowe wyjście: |
| + | |
| + | cat nazwa_pliku |
| + | By przekierować standardowe wyjście programu do pliku należy użyć operatora > lub >>. |
| + | |
| + | cat plik1 plik2 >> polaczonepliki |
| + | W wariancie z > polecenie to spowoduje nadpisanie pliku zawartością standardowego wyjścia, w wariancie >> spowoduje dopisanie treści na końcu pliku. |
| + | |
| + | Załóżmy, że mamy dwa polecenia: polecenieB i polecenieB i chcemy, aby polecenieB na swoje standardowe wejście przyjęło wynik działania polecenieA. W takim przypadku należy wpisać: |
| + | |
| + | polecenieA | polecenieB |
| + | Inne przykładowe filtry: |
| + | |
| + | *tail |
| + | |
| + | Pokazuje koncówkę pliku |
| + | cat /usr/share/romeo | tail -n 100 |
| + | |
| + | *head |
| + | |
| + | Pokazuje początek pliku |
| + | |
| + | Każdy program ma podłączone dwa standardowe strumienie wyjściowe: |
| + | * Standardowe wyjście |
| + | * Standardowy strumień błędów |
| + | |
| + | Rozróżnienie wynika z tego, aby wynik działania programu mógł być zwracany przez jeden strumień (np. polecenie tar zwróci spakowany folder), a informacje o ewentualnych błędach przez inny strimień. |
| + | |
| + | By przekierować standardowy strumień błędów należy użyć 2> lub 2>>. |
Revision as of 09:52, 13 October 2016
Powłoka Bash
Bash jest jedną z powłok systemowych, czyli programów, które pośredniczą między systemem operacyjnym a użytkownikiem. Użytkownik za pomocą powłoki uruchamia programy, jak i programy zwracają do powłoki wynik swojego działania, który następnie jest przekazywany użytkownikowi. Programy mogą komunikować sie z użytkownikiem również niezależnie (np. programy okienkowe).
Każda powłoka zawiera polecenia, które wykonują podstawowe operacje w systemie operacyjnym (np. tworzenie folderów). Paletę domyślnych poleceń wzbogacają zewnętrzne programy, które wykonują operacje nie będące zawartymi poleceniami.
Praktycznie każda dystrybucja Linuxa (z Androidem włącznie) zawiera powłokę Bash.
Powłoka Bash: Podstawy
Jednym z podstawowych poleceń jest echo
, służące do wyświetlania tekstu podanego mu jako argument:
echo foo
foo
W poleceniu echo możemy również stosować tzw. metaznaki. Przykładem takiego znaku jest *
:
cd /
echo *
bin boot dev etc home initrd.img initrd.img.old lib lib32 lib64 lost+found media mnt opt optl proc root run sbin selinux srv sys tmp usr var vmlinuz vmlinuz.old
echo b*
bin boot
W powyższym przykładzie widzimy, że Bash rozwija znak *
zastępując go dowolnym ciągiem znaków.
Innym przykładem metaznaku jest ~
, który zastępuje katalog domowy.
echo ~
/home/jb
Zadanie 1
Za pomocą polecenia echo
wyświetlić wszystkie pliki kończące się na .conf
z katalogu /etc
Powłoka Bash: Przekierowania
Program cat odczytuje zawartość plików i przekierowuje ją na standardowe wyjście:
cat nazwa_pliku
By przekierować standardowe wyjście programu do pliku należy użyć operatora > lub >>.
cat plik1 plik2 >> polaczonepliki
W wariancie z > polecenie to spowoduje nadpisanie pliku zawartością standardowego wyjścia, w wariancie >> spowoduje dopisanie treści na końcu pliku.
Załóżmy, że mamy dwa polecenia: polecenieB i polecenieB i chcemy, aby polecenieB na swoje standardowe wejście przyjęło wynik działania polecenieA. W takim przypadku należy wpisać:
polecenieA | polecenieB
Inne przykładowe filtry:
Pokazuje koncówkę pliku
cat /usr/share/romeo | tail -n 100
Pokazuje początek pliku
Każdy program ma podłączone dwa standardowe strumienie wyjściowe:
- Standardowe wyjście
- Standardowy strumień błędów
Rozróżnienie wynika z tego, aby wynik działania programu mógł być zwracany przez jeden strumień (np. polecenie tar zwróci spakowany folder), a informacje o ewentualnych błędach przez inny strimień.
By przekierować standardowy strumień błędów należy użyć 2> lub 2>>.