May 1, 2025, Thursday, 120

SK Zadanie 2

From Łukasz Graczykowski

(Difference between revisions)
Jump to: navigation, search
(Created page with " == 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łok...")
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

Contents

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:

  • 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>>.