to get the file

Transkrypt

to get the file
Język C, Laboratorium nr 1
1/4
Programowanie w języku C
mgr inż. Grzegorz Łukawski
Instrukcja laboratoryjna nr 1
Temat: System Linux, edytor VI, skrypty wsadowe
1) Podstawowe komendy systemu Linux
1.1) Praca z systemem plików:
cd <nazwa>
Zmiana bieżącego katalogu na wskazany
pwd
Wyświetlenie bieżącego katalogu
ls
Wyświetlenie listy plików i podkatalogów w bieżącym katalogu
ls –l
j.w. ale ze szczegółowymi informacjami
mkdir <nazwa>
Utworzenie katalogu
rmdir <nazwa>
Usunięcie katalogu (tylko pustego)
rm <nazwa>
Usunięcie pliku
rm –r <nazwa>
Usunięcie katalogu wraz z zawartością
cat <plik>
Wyświetlenie wskazanego pliku
more <plik>
Wyświetlenie wskazanego pliku (z podziałem na strony)
cp <from> <to>
Skopiowanie pliku lub katalogu
mv <from> <to>
Przesunięcie lub zmiana nazwy pliku lub katalogu
man <polecenie>
Pomoc na temat wskazanego polecenia
chmod <tryb> <nazwa> Zmiana praw dostępu wskazanego pliku lub katalogu, np.:
chmod 777 plik - Nadanie wszystkich praw dla wskazanego pliku
chmod u-x plik - Zabranie prawa wykonywania właścicielowi pliku
chmod o+w plik - Nadanie prawa pisania dla pozostałych
1.2) Procesy:
ps -e
Wyświetla listę aktywnych procesów
kill –9 <pid>
Zabicie procesu o wskazanym identyfikatorze (pid)
1.3) Dostęp do napędów wymiennych i archiwizacja plików:
mount <ścieżka>
Zamontowanie napędu na który wskazuje podana ścieżka
umount <scieżka>
Odmontowanie napędu
tar cvzf [arch] [pliki]
Utworzenie archiwum TAR ze wskazanych plików. Nazwa archiwum
powinna mieć rozszerzenie „tgz”, do wskazywania plików można używać
znaków zastępujących (* i ?)
tar tvzf [arch]
Testowanie (wyświetlenie listy zawartości) wskazanego archiwum
tar xvzf [arch]
Rozpakowanie zawartości archiwum do bieżącego katalogu
Język C, Laboratorium nr 1
2) Podstawowe komendy edytora VI
Wszystkie komendy działają tylko w trybie komend.
2.1) Przełączanie między trybami pracy:
Klawisz
ESC
Funkcja
Przejście z trybu wpisywania do trybu komend
a
Przejście do trybu wpisywania – rozpoczęcie na prawo od kursora
A
j.w. ale rozpoczęcie od końca wiersza w którym stoi kursor
i
j.w. ale rozpoczęcie na lewo od kursora (w miejscu stania kursora)
I
j.w. ale rozpoczęcie na początku wiersza
2.2) Wyszukiwanie:
<nr>G
Skok do wskazanego wiersza pliku (np. 15G spowoduje skok do wiersza nr 15)
Ctrl+g
Wyświetla numer wiersza w którym stoi kursor
/tekst
Szuka wystąpienia podanego tekstu
n
Następne wystąpienie
N
Poprzednie wystąpienie
%
Szuka nawiasu „do pary”
2.3) Kasowanie, kopiowanie i wklejanie:
dd
d<n>d
yy
y<n>y
p
Kasuje jeden wiersz (umieszczając go w buforze)
Kasuje n kolejnych wierszy (umieszczając w buforze), np. d5d – 5 wierszy
Skopiowanie jednego wiersza do bufora
Skopiowanie n kolejnych wierszy do bufora, np. y20y – 20 wierszy
Wklejenie zawartości bufora
2.4) Komendy liniowe:
:q
Wyjście bez zapisania zmian (jeżeli zmian nie było)
:q!
Wyjście bez zapisania zmian
:w
Zapisanie otwartego pliku
:w <nazwa>
:wq
:r <plik2>
:set number
Zapisanie pod wskazaną nazwą
Wyjście z zapisaniem pliku
Wpisuje zawartość plik2 do pliku nad którym pracujemy
Włączenie numeracji wierszy
:set nonumber Wyłączenie numeracji wierszy
2/4
Język C, Laboratorium nr 1
3/4
3) Skrypty wsadowe powłoki BASH
•
•
•
•
•
Skrypt wsadowy to zwykły plik tekstowy z ustawionym atrybutem X (wykonywalny);
Skrypt może wywoływać dowolne polecenia systemowe i uruchamiać dowolne programy
analogicznie jak z linii poleceń;
Wszystko umieszczone po znaku # aż do końca linii jest komentarzem;
Pierwszy wiersz pliku powinien wyglądać tak:
#!/bin/bash
Polecenie echo służy do wyświetlania tekstów, np.:
echo „Hello world”
3.1) Standardowe wyjście
Efekty działania każdego polecenia systemowego lub programu który wyświetla wyniki na ekranie mogą
być zapisane w pliku przez tzw. przekierowanie standardowego wyjścia:
ls >lista.txt - Lista plików w bieżącym katalogu zostanie zapisana we wskazanym pliku
ls >>lista.txt - Lista plików zostanie dopisana do wskazanego pliku
3.2) Parametry
Skrypt wsadowy może odbierać argumenty podawane przez użytkownika, np.:
moj_skrypt -a 200
Zostanie potraktowane jako wywołanie skryptu z dwoma parametrami. Do odczytania parametrów
wewnątrz skryptu służą specjalne zmienne:
$1, $2 ... $9 - Odpowiada kolejnym parametrom
$#
- Zwraca liczbę faktycznie podanych parametrów
3.3) Zmienne
Mogą być deklarowane w dowolnym miejscu, odwołanie do zmiennej jest poprzedzone znakiem $, np.:
zmienna=Stefan
- Deklaracja nowej zmiennej
echo „Mam na imie $zmienna”
- Odwołanie do zmiennej
Wartość zmiennej może zostać wczytana od użytkownika, np.:
echo „Jak masz na imie?”
read imie
3.4) Blok warunkowy
if [ <warunek> ]
then
<lista instrukcji ... gdy warunek spełniony>
else
<lista instrukcji ... gdy warunek niespełniony>
fi
Porównywanie tekstów:
$odpowiedz = tak
<równe>
$odpowiedz != tak
<różne>
Porównywanie liczb:
$ilosc -eq 8
<równe>
$ilosc -ne 9
<różne>
Język C, Laboratorium nr 1
4/4
3.5) Przykładowy skrypt wsadowy
#!/bin/bash
if [ $# -eq 1 ]
then
echo "Podales parametr, na pewno wykonac?"
read odp
if [ $odp = tak ]
then
echo "Przystepuje do dzialania..."
ls $1
fi
else
echo "Nie podales parametru!"
fi
4) Zadania do wykonania
Napisać skrypt wsadowy z kontrolą podawanych parametrów. W przypadku nie podania
parametrów skrypt wyświetla opis z instrukcją użycia.
Zadanie A:
• Utworzyć dokładny listing bieżącego katalogu, zapisać w tymczasowym pliku;
• Do pliku dopisać informację o ścieżce do bieżącego katalogu;
• Gotowy plik wyświetlić na ekranie;
• Tymczasowy plik zarchiwizować programem tar do archiwum o nazwie podanej jako parametr
skryptu;
• Skasować plik tymczasowy.
Zadanie B:
• Utworzyć katalog o nazwie „kopie_zapasowe” w bieżącym katalogu;
• Do nowego katalogu skopiować wszystkie pliki o podanym rozszerzeniu (przekazywane do skryptu
jako parametr);
• Wyświetlić na ekranie listę skopiowanych plików.
Zadanie C:
• Zapytać użytkownika o imię;
• Zapisać do tymczasowego pliku wiersz tekstu z podanym imieniem (np. „Stefan to mistrz”);
• Do tymczasowego pliku dopisać treść pliku którego nazwę podano jako parametr skryptu;
• Usunąć oryginalny plik;
• Zmienić nazwę pliku tymczasowego na taką jaką miał skasowany plik.

Podobne dokumenty