From Łukasz Graczykowski
(Difference between revisions)
|
|
Line 36: |
Line 36: |
| == Powłoka Bash: Przekierowania == | | == Powłoka Bash: Przekierowania == |
| | | |
| + | * cat |
| Program cat odczytuje zawartość plików i przekierowuje ją na standardowe wyjście: | | Program cat odczytuje zawartość plików i przekierowuje ją na standardowe wyjście: |
| | | |
| cat nazwa_pliku | | cat nazwa_pliku |
- | By przekierować standardowe wyjście programu do pliku należy użyć operatora > lub >>. | + | By przekierować standardowe wyjście programu do pliku należy użyć operatora <code>></code> lub <code>>></code>. |
| | | |
- | cat plik1 plik2 >> polaczonepliki | + | 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. | + | W wariancie z <code>></code> polecenie to spowoduje nadpisanie pliku zawartością standardowego wyjścia, w wariancie <code>>></code> 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ć: | | 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 | + | polecenieA | polecenieB |
- | Inne przykładowe filtry:
| + | |
| | | |
| *tail | | *tail |
| | | |
- | Pokazuje koncówkę pliku
| + | Program tail okazuje koncówkę pliku |
| cat /usr/share/romeo | tail -n 100 | | cat /usr/share/romeo | tail -n 100 |
| | | |
| *head | | *head |
| | | |
- | Pokazuje początek pliku
| + | Program head pokazuje początek pliku |
| | | |
| Każdy program ma podłączone dwa standardowe strumienie wyjściowe: | | Każdy program ma podłączone dwa standardowe strumienie wyjściowe: |
Line 62: |
Line 62: |
| * Standardowy strumień błędów | | * 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ń. | + | 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 strumień. |
| | | |
| By przekierować standardowy strumień błędów należy użyć 2> lub 2>>. | | By przekierować standardowy strumień błędów należy użyć 2> lub 2>>. |
Revision as of 09:53, 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
Program tail okazuje koncówkę pliku
cat /usr/share/romeo | tail -n 100
Program 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 strumień.
By przekierować standardowy strumień błędów należy użyć 2> lub 2>>.