Laboratorium, SO2 instrukcja 1

background image

Instrukcja do laboratorium Systemów Operacyjnych

wiczenie pierwsze

Ć

Temat: Wprowadzenie do edytora vim, kompilatora gcc,

podr cznika

ę

man i systemu operacyjnego Linux

Opracowanie:

mgr in . Arkadiusz Chrobot

ż

background image

Wprowadzenie

1. Edytor VIM

Edytor tekstowy VIM jest rozbudowaną wersją edytora VI, najstarszego i naj-
bardziej rozpowszechnionego w rodowiskach

ś

uniksowych edytora przeznaczo-

nego dla programistów. Mimo na pozór trudnej do opanowania obs ugi

ł

stanowi

on bardzo elastyczne i wygodne

rodowisko

ś

dla programisty. VIM dzia a

ł

w trzech trybach: edycji, wprowadzania i polece .

ń W trybie edycji kursorem

mo na

ż

poruszać przy pomocy klawiszy <h>, <j>, <k>, <l>, jak również pos ugu

ł

-

j c

ą się klawiszami kursorów. W tym trybie niektórym klawiszom, lub ci gom

ą

wpisanym przy pomocy klawiatury przypisano dzia ania

ł

zwi zane

ą

z operacjami

na tek cie. Oto kilka najwa niejszych przyk adów:

ś

ż

ł

yy – kopiuje do bufora lini tekstu pod któr znajduje si kursor,

ę

ą

ę

y10y – kopiuje do bufora 10 linii tekstu zaczynaj c od tej pod któr znajduje si

ą

ą

ę

kursor (zamiast 10 mo e wyst pi inna liczba)

ż

ą ć

p – wkleja tekst z bufora do miejsca, w którym znajduje si kursor,

ę

10p – robi to co p, tylko 10 razy (zamiast 10 mo e wyst pi inna liczba),

ż

ą ć

dd - usuwa lini tekstu

ę

pod któr znajduje si kursor (mo na j wklei

ą

ę

ż

ą

ć

klawiszem p w inne miejsce),

d10d - tak jak wy ej, ale 10 linii, (zamiast 10 mo e wyst pi inna liczba)

ż

ż

ą ć

x – kasuje znak pod którym znajduje się kursor (uwaga: pięć znaków mo na

ż

skasowa poleceniem 5x),

ć

u – polecenie cofni cia ostatniej zmiany (ang. undo) - jest wielopoziomowe,

ę

yw – skopiowanie wyrazu do bufora,

dw – usuni cie wyrazu,

ę

cw – usuni cie wyrazu i przej cie do trybu wprowadzania,

ę

ś

a – przesuni cie

ę

kursora o jedną pozycję w prawo i przej cie

ś

do trybu wprowa-

dzania,

i – przej cie do trybu wprowadzania,

ś

r – zmiana jednego znaku,

R – przej cie

ś

do trybu wprowadzania z nadpisywaniem (podobnie dzia a

ł klawisz

insert),

* - wyszukanie kolejnego wyst pienia wzorca znajduj cego si pod kursorem,

ą

ą

ę

2

background image

K – wyszukanie strony podr cznika

ę

man, dla instrukcji pod którą znajduje się

kursor,

== - formatuje wci cie pojedynczego wiersza kodu,

ę

=G – formatuje wci cia

ę

kodu pocz wszy

ą

od bie

cego

żą

po o enia

ł ż

kursora do

ko ca,

ń

gg – umieszcza kursor na pocz tku pliku z kodem/tekstem,

ą

G – umieszcza kursor na ko cu pliku z kodem/tekstem.

ń

Tryb wprowadzania, jak sama nazwa wskazuje s u y

ł ż do wprowadzania tekstu

programu (kodu

ród owego).

ź

ł

Edytor VIM oferuje wiele udogodnień u a

ł -

twiaj cych

ą

pracę programisty, jak pod wietlanie

ś

sk adni,

ł

czy numerowanie li-

nii. Niektóre z nich trzeba uaktywnić w trybie polece ,

ń jednak część z nich do-

st pna

ę

jest poprzez odpowiednie kombinacje klawiszy np: <Ctrl> + <p> uzupe-

nienie

ł

wprowadzanego wzorca poprzez dopasowanie go do wzorca znajduj cego

ą

się „u góry”, <Ctrl> + <n> to samo co poprzednio, ale wzorzec znajduje się „na
dole”, <Ctrl> + <W> przej cie

ś

mi dzy

ę

otwartymi oknami, <Esc> przej cie

ś

do try-

bu edycji. W trybie polece dost pne s nast puj ce

ń

ę

ą

ę

ą

opcje:

/wzorzec – znajduje wyst pienie wzorca w pliku, przeszukiwanie „w dó ”,

ą

ł

?wzorzec – jak wy ej, ale „w gór ”,

ż

ę

!polecenie – wykonanie polecenia pow oki,

ł

:q – wyj cie z edytora,

ś

:q! - wyj cie z edytora, bez zapisywania zmian,

ś

:wq – wyj cie z zapisaniem zmian,

ś

:sp – podzielenie bie

cego okna na dwie cz

ci,

żą

ęś

:e nazwapliku – otwarcie pliku do edytowania,

:s/wzorzec/zast pienie

ą

– zast pienie

ą

wzorca podanym ci giem

ą

w linii, w której

znajduje si kursor

ę

,

:%s/wzorzec/zast pienie

ą

– to samo co wy ej, ale dla ca ego pliku,

ż

ł

:%s/wzorzec/zast pienie

ą

/g – to samo co wy ej,

ż

ale również dla ka dego

ż

wy-

st pienia wzorca w wierszu,

ą

:set number – w czenie numeracji wierszy,

łą

:set nonumber – wy czenie numeracji wierszy,

łą

:tabnew – otworzenie nowej karty (od wersji 7.0),

:tabnext – przej cie do nast pnej karty (od wersji 7.0),

ś

ę

3

background image

:tabprev – przej cie do poprzedniej karty (od wersji 7.0),

ś

:10 – przeniesienie kursora do wiersza o podanym numerze,

:make – wykonanie kompilacji bez opuszczania edytora, o ile istnieje plik make-
file,

:cnext – wyszukanie kolejnego b du w kodzie, je li kompilacja si nie powiod a,

łę

ś

ę

ł

:cprevious – to co wy ej, ale poprzedniego b du,

ż

łę

:clist – wypisuje skrócon list b dów,

ą

ę łę

:clist! - wypisuje pe n list b dów.

ł ą

ę łę

Część z tych poleceń mo e

ż zostać automatycznie wykonana po uruchomieniu

VIMa, je li zostan zapisane w pliku

ś

ą

.vimrc.

Oto przyk adowy taki plik:

ł

set nocp

"wy cz tryb kompatybilno ci z VI

łą

ś

set nowrap

"wy cz zawijanie wierszy

łą

set autoindent shiftwidth=8 "ustaw g boko

wci

na 8 znaków

łę

ść

ęć

set showcmd "poka komendy wpisywane w trybie edycji

ż

map <F2> :set nowrap<cr> "zmapuj klawisze F2 – wy cz zawijanie wierszy

łą

map <F3> :set wrap<cr> "F3 – w cz zawijanie wierszy

łą

map <F4> :set number<cr> "F4 – w cz numeracje wierszy

łą

map <F5> :set nonumber<cr> "F5 – wy cz numeracje wierszy

łą

map <F6> :set showmatch<cr> "F6 – w cz parowanie nawiasów

łą

1

map <F7> :set noshowmatch<cr> "F7 – wy cz parowanie nawiasów

łą

2. Podr cznik man

ę

Podr cznik

ę

man zawiera opisy poleceń pow oki,

ł

oraz funkcji j zyka

ę

C. Sk adnia

ł

wywo ania

ł

jest nast puj ca:

ę

ą

man nazwa polecenia. W przypadku, kiedy istnieje

zarówno funkcja, jak i polecenie o takiej samej nazwie, to nale y

ż podać jeszcze

stron podr cznika, np.:

ę

ę

man 3 printf

.

3. Kompilator gcc i inne narz dzia do tworzenia programów

ę

Kompilator gcc jest tak naprawdę zbiorem kompilatorów stworzonym przez or-
ganizację GNU. Kompilator ten wywo uje

ł

się podaj c

ą mu argumenty w linii po-

lece .

ń W najprostszym przypadku wystarczy napisa :

ć gcc nazwa.c, ale za-

lecanym sposobem jest: gcc -Wall -o nazwa nazwa.c, gdzie flaga -o oznacza na-
zwę zbioru wynikowego, a flaga -Wall nakazuje w czenie

łą

wszystkich ostrze e .

ż ń

1 W tym trybie, je li stawiamy nawias zamykaj cy, to kursor na sekund wraca do nawiasu

ś

ą

ę

otwieraj cego

ą

4

background image

Oczywi cie

ś

powy sze

ż

wywo anie

ł

mo e

ż przyjąć formę bardziej z o on .

ł ż

ą W takim

wypadku, aby uniknąć wielokrotnego wpisywania d ugich

ł

poleceń mo emy

ż

się

pos u y

ł ż ć programem o nazwie make. Aby to uczynić nale y

ż przygotować plik

o nazwie makefile w katalogu, w którym znajdują się ród a

ź

ł

programu. Treść

takiego pliku tworzymy wed ug

ł

nast puj cego

ę

ą

schematu (linie zaczynaj ce

ą

się

od „#” stanowi komentarz):

ą

regu a: regu a1 regu a2

ł

ł

ł

#po nazwie regu y umieszczamy opis wymaga

ł

ń

akcja

#Pusty wiersz

regu a1:

ł

akcja

#Pusty wiersz

regu a2:

ł

akcja

Z powy szego

ż

przyk adu

ł

wynika, e

ż wymagania co do reguł są opcjonalne i nie-

koniecznie musimy je wypisywa .

ć Domy lnie

ś

wykonywana jest pierwsza za-

deklarowana w pliku regu a.

ł

Mo liwa

ż

jest również deklaracja na pocz tku

ą

pliku

pewnych sta ych

ł

do których się b dziemy

ę

odwo ywa

ł

ć poprzedzaj c

ą je znakiem

dolara. Oto przyk ad rozbudowanego pliku makefile:

ł

CC = gcc #sta a oznaczaj ca nazw kompilatora

ł

ą

ę

OFLAGS = -Wall -O2 -o #sta a przechowuj ca flagi wywo ania kompilatora

ł

ą

ł

#Pusty wiersz

all: primitive primitive16 check_prim check_prim_16

#Pusty wiersz

#Pusty wiersz

primitive:primitive.c #Regu a primitive wymaga pliku primitive.c by zadzia a

ł

ł ć

$(CC) $(OFLAGS) primitive primitive.c

#Pusty wierz

primitive16:primitive16.c

$(CC) $(OFLAGS) primitive16 primitive16.c

#Pusty wiersz

check_prim:check_prim.c

$(CC) $(OFLAGS) check_prim check_prim.c

5

background image

#Pusty wiersz

check_prim_16:check_prim_16.c

$(CC) $(OFLAGS) check_prim_16 check_prim_16.c

#Pusty wiersz

clean:

rm -f *~

rm -f core*

#Pusty wiersz

cleanprimitive:

rm -f *~

rm -f core*

rm -f primitive

#Pusty wiersz

cleanprimitive16:

rm -f *~

rm -f core*

rm -f primitive16

cleancheck_prim:

rm -f *~

rm -f core*

rm -f check_prim

#Pusty wiersz

cleancheck_prim_16:

rm -f *~

rm -f core*

rm -f check_prim_16

#Pusty wiersz

cleanall:

rm -f *~

6

background image

rm -f core*

rm -f primitive

rm -f check_prim

rm -f check_prim_16

rm -f primitive16

Proszę zwrócić uwag ,

ę

e

ż regu a

ł all jest regułą pustą - w miejscu gdzie powinna

być zdefiniowana jej akcja znajduje się pusty wiersz. Mimo tego jest to pierwsza
regu a

ł i program make spróbuje ją wykona .

ć Aby mógł to zrobić musi być spe-

niona

ł

lista wymaga ,

ń co poci gnie

ą

za sobą realizację wszystkich reguł wy-

mienionych na tej li cie.

ś

Akcje opisane wyra eniami

ż

zawieraj cymi

ą

odwo ania

ł

do sta ej

ł

są odpowiednio rozwijane, np. akcja $(CC) $(OFLAGS) primitive pri-

mitive.c jest rozwijana do gcc -Wall -o primitive primitive.c. Niektóre regu y

ł nie

są powi zane

ą

z regułą all (w przyk adzie

ł

s u

ł żą do usuwania plików, które w

danej chwili nie są potrzebne). Wywo ujemy

ł

je wed ug

ł

schematu: make

nazwa_regu y (np. make clean).

ł

Do usuwania b dów

łę

mo emy

ż

u y

ż ć debuggera gdb, aby się nim pos u y

ł ż ć musi-

my dodać flagę -g do wywo ania

ł

kompilatora, a nast pnie

ę

wywo a

ł ć polecenie:

gdb nazwa, gdzie nazwa oznacza nazwę pliku wykonywalnego. Debugger
umo liwia

ż

procę w trybie interaktywnym. Oto lista najwa niejszych

ż

instrukcji

dost pnych w tym programie:

ę



break – ustawia pu apk w wybranym wierszu programu np. break 6,

ł

ę



clear – usuwa pu apk z okre lonego wiersza np. clear 6,

ł

ę

ś



delete – usuwa wszystkie pu apki,

ł



print – wypisuje warto

zmiennej, np. print liczba,

ść



step – wykonuje jeden wiersz programu,



next – jak wy ej, ale wchodzi do funkcji,

ż



run – uruchamia program, musi być wykonana przed step i next. Nale y

ż

tak e pami ta o ustawieniu pu apki w odpowiednim wierszu.

ż

ę ć

ł



continue – kontynuuje wykonanie programu, po tym jak został on prze-
rwany po napotkaniu pu apki.

ł

Zadania:

1. Uruchom program vimtutor i zapoznaj si z dzia aniem edytora VIM.

ę

ł

2. Napisz program typu „hello world” w j zyku C i skompiluj go. Usu wszelkie

ę

ń

ostrze enia pojawiaj ce si podczas kompilacji.

ż

ą

ę

7

background image

3. Napisz w asny plik makefile i przetestuj dzia anie polecenia make.

ł

ł

4. Napisz program zawieraj cy prost funkcj i p tl „for”. Skompiluj go z opcj -g

ą

ą

ę

ę ę

ą

i prze led

ś

ź jego wykonanie za pomoc gdb (skorzystaj z pomocy w tym

ą

programie, wydaj c polecenie help).

ą

8


Wyszukiwarka

Podobne podstrony:
Laboratorium, SO2 instrukcja 6
Laboratorium SO2 instrukcja 1
Laboratorium SO2 instrukcja 2
Laboratorium SO2 instrukcja 9
Laboratorium, SO2 instrukcja 9
Laboratorium, SO2 instrukcja 7
Laboratorium, SO2 instrukcja 8
Laboratorium SO2 instrukcja 4
Laboratorium SO2 instrukcja 10
so2-laboratorium SO2 instrukcja 7
so2-laboratorium SO2 instrukcja 8
Laboratorium SO2 instrukcja 3
Laboratorium, SO2 instrukcja 5
Laboratorium, SO2 instrukcja 6
laboratorium zadanie 4 instrukcja
laboratorium zadanie 2 instrukcja
laboratorium zadanie 2 instrukcja
istan Laboratorium, BHP, Instrukcje-Stanowiskowe
sprawozdanie HP5 - OgarnijTemat.com, SiMR inżynierskie, Semestr 5, PNHiP, LABORATORIUM, SPRAWKA i IN

więcej podobnych podstron