Grupa 12K2 Rafał Linca 14.X.2009
Ćwiczenie Laboratoryjne 2
Sprawozdanie
Sprawozdanie
Sprawozdanie
1. Cel ćwiczenia:
Celem ćwiczenia było poznanie podstaw poruszania się w systemie plików, tworzenia i manipulacji plikami/katalogami w powłoce BASH (Bourne Again Shell).
Przedstawione zostały także ogólne wytyczne FHS (Filesystem Hierarchy Standard, http://www.pathname.com/fhs/).
2. Przebieg ćwiczenia:
W trakcie ćwiczeń laboratoryjnych zostały scharakteryzowane podstawowe katalogi systemu
GNU/Linux. Następnie poznaliśmy podstawowe polecenia powłoki BASH, które wykorzystywaliśmy podczas ćwiczeń polegających na:
● poruszania się pomiędzy katalogami (polecenie cd),
● listowania zawartości katalogów (ls),
● wyświetlania zawartości pliku (cat, less, more),
● tworzenia plików/katalogów (touch, przekierowanie wyjścia, mkdir),
● usuwania plików/katalogów (rm, rmdir),
● tworzenia dowiązań twardych oraz symbolicznych (ln),
● kopiowania (cp),
● przenoszenia i zmiana nazwy (mv),
● korzystania z plików pomocy (man, info, help, apropos, whatis), 3. Wnioski:
Powłoka systemu GNU/Linux pomimo pierwszego wrażenia jest potężnym narzędziem. Wszystko co możemy ' wyklikać', da się wykonać za pomocą poleceń (często kilkakrotnie szybciej).
4. Ciekawostki:
● Alternatywne sposoby tworzenia plików:
– Przy pomocy przekierowania standardowego wyjścia (symbol '>') możemy tworzyć puste pliki (polecenie echo > plik nie tworzy pustego pliku –
wstawia znak nowej linii) za pomocą:
echo -n > plik
– Możemy także definiować (dynamicznie) zawartość pliku podczas jego tworzenia:
cat << EOF > plik
tresc
(…)
EOF
Metoda ta pozwala w przejrzysty sposób generować pliki o dynamicznej zawartości. W przeciwieństwie do echo 'tekst' > plik; echo
$zmienna_środowiskowa >> plik itd. nie musimy się tutaj przejmować nawiasami i ampersandami oraz eliminujemy niebezpieczeństwo nadpisania pliku (przypadkowe wstawienie > (nadpisanie) zamiast >> (dopisanie))
Poniżej prezentuję przykład zastosowania w skrypcie generującym podstawowe informacje o systemie:
#!/bin/bash
cat << EOF > ./sys_info
Kernel: ùname -r`
Wersja gcc: `gcc –version | head -n 1`
Profil gcc: `gcc-config -c`
Wygenerowano przez: `whoamiÈOF
Na pierwszy rzut oka widać, że taki zapis jest praktyczniejszy i bardziej przejrzysty niż seria poleceń echo (..) >> plik