Professional Documents
Culture Documents
Лабораторні Роботи - 1-6!
Лабораторні Роботи - 1-6!
Ñîäåðæàíèå
1 Ëàáîðàòîðíàÿ ðàáîòà 1.
1.1 Âèðòóàëèçàöèÿ . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Ãèïåðâèçîðû - ýìóëÿòîðû àïïàðàòíîãî îáåñïå÷åíèÿ 5
1.1.2 VirtualBOX . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3 Ñîçäàíèå âèðòóàëüíîé ìàøèíû . . . . . . . . . . . . 8
1.2 Îáùèå ñâåäåíèÿ î UNIX ñèñòåìàõ . . . . . . . . . . . . . . 9
1.2.1 Ôèëîñîôèÿ UNIX . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Èñòîðèÿ UNIX . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Èñòîðèÿ BSD-ñèñòåì . . . . . . . . . . . . . . . . . . 11
1.2.4 Îáçîð ñîâðåìåííûõ BSD-ñèñòåì . . . . . . . . . . . 12
1.2.5 Îïèñàíèå è ñïîñîáû ïîëó÷åíèÿ FreeBSD . . . . . . . 13
1.3 Óñòàíîâêà FreeBSD . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Ïîäãîòîâêà ê óñòàíîâêå . . . . . . . . . . . . . . . . 14
1.3.2 sysinstall . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.3 Ïîñëåóñòàíîâî÷íûå íàñòðîéêè . . . . . . . . . . . . 26
1.3.4 Ïðîöåññ çàãðóçêè îïåðàöèîííîé ñèñòåìû . . . . . . 29
1.3.5 Àâòîðèçàöèÿ â ñèñòåìå . . . . . . . . . . . . . . . . . 41
1.4 Çàäàíèå íà ëàáîðàòîðíóþ ðàáîòó . . . . . . . . . . . . . . . 43
1.5 Ñîäåðæàíèå îò÷åòà . . . . . . . . . . . . . . . . . . . . . . . 43
1.6 Âîïðîñû äëÿ ñàìîêîíòðîëÿ . . . . . . . . . . . . . . . . . . 43
2.3 Ôàéëû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.3.1 Îïåðàöèè ñ ôàéëàìè è êàòàëîãàìè (ñîçäàíèå, ïðî-
ñìîòð, óäàëåíèå) . . . . . . . . . . . . . . . . . . . . 56
2.3.2 Ïåðåíàïðàâëåíèå, êàíàëû . . . . . . . . . . . . . . . 61
2.3.3 Ññûëêè . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4 Ñòàíäàðòíûå êîìàíäû è óòèëèòû FreeBSD . . . . . . . . . 65
2.4.1 Ïîëüçîâàòåëüñêèå óòèëèòû . . . . . . . . . . . . . . 65
2.4.2 Óòèëèòû àäìèíèñòðèðîâàíèÿ . . . . . . . . . . . . . 68
2.4.3 alias'û . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.5 Çàäàíèå íà ëàáîðàòîðíóþ ðàáîòó . . . . . . . . . . . . . . . 71
2.6 Ñîäåðæàíèå îò÷åòà . . . . . . . . . . . . . . . . . . . . . . . 72
2.7 Âîïðîñû äëÿ ñàìîêîíòðîëÿ . . . . . . . . . . . . . . . . . . 72
1 Ëàáîðàòîðíàÿ ðàáîòà 1.
1.1 Âèðòóàëèçàöèÿ
1.1.2 VirtualBOX
ñòè.
Êîíñòðóêòèâíî UNIX áàçèðóþòñÿ íà ìíîæåñòâå íåáîëüøèõ ïðî-
ãðàìì, êàæäàÿ èç êîòîðûõ âûïîëíÿåò îäíó çàäà÷ó (îäíà ïðîãðàììà
îäíà çàäà÷à). Êðîìå òîãî â UNIX çàëîæåíà çàìå÷àòåëüíàÿ èäåÿ: ïðè
íåîáõîäèìîñòè íåñêîëüêî ìàëåíüêèõ, íå ñâÿçàííûõ ìåæäó ñîáîé ïðî-
ãðàììîê ìîæíî îáúåäèíèòü â åäèíîå öåëîå, ðåøàÿ òåì ñàìûì çàäà÷è
ëþáîé ñëîæíîñòè.
Íàïðèìåð â îïåðàöèîííûõ ñèñòåìàõ Windows, äëÿ çàïèñè CD/DVD-
äèñêîâ åñòü ìíîãî ðàçëè÷íûõ ïðèëîæåíèé. Îáðàñòàÿ íîâûìè ôóíêöèÿìè
îíè óâåëè÷èâàþòñÿ â îáúåìå è òðåáîâàòåëüíîñòè ê ðåñóðñàì. Ñ óâåëè-
÷åíèåì ôóíêöèîíàëüíîñòè âîçðàñòàåò è êîëè÷åñòâî îøèáîê. Íàâåðíÿêà
ó Âàñ íà êîìïüþòåðå óñòàíîâëåíû è Nero, è Alcohol, è Daemon Tools,
êîòîðûå ïîçâîëÿþò çàïèñûâàòü îïòè÷åñêèå äèñêè.  UNIX ñèñòåìàõ åñòü
îäíà ñòàðàÿ óòèëèòêà cdrecord, êîòîðàÿ èìååò òîëüêî îäíó ôóíêöèþ
çàïèñü ISO îáðàçà íà äèñê. Äëÿ ñîçäàíèÿ ISO îáðàçà åñòü óòèëèòà
makeisofs. Ðàçðàáîò÷èêè êàæäîé èç íèõ çàíèìàþòñÿ òîëüêî ôóíêöèÿìè
ñâîåé óòèëèòû, íå âìåøèâàÿñü â ðàçðàáîòêó äðóãèõ óòèëèò è íå îòÿãîùàÿ
ñâîè òåìè ôóíêöèÿìè, êîòîðûå ìîãóò áûòü âûïîëíåíû äðóãèìè óòèëè-
òàìè. Ãðàôè÷åñêèå ïðîãðàììû çàïèñè äèñêîâ èñïîëüçóþò makeisofs è
cdrecord èõ ïðåäîñòàâëÿÿ âñåãî ëèøü ãðàôè÷åñêèé èíòåðôåéñ ê íèì.
Ïîäîáíàÿ ñõåìà ðàçðàáîòêè äðóãèõ êîìïîíåíòîâ ñèñòåìû è äåëàåò
UNIX ñèñòåìû íàäåæíûìè è óñòîé÷èâûìè, õîòÿ âìåñòå ñ òåì îíè êàæóò-
ñÿ áîëåå ñëîæíûìè. Êëþ÷åâûå ýëåìåíòû ôèëîñîôèè UNIX:
- ïðîñòûå êîìàíäû
3 Ïî÷òè âîîáùå íå íàêëàäûâàåò. Íåîáõîäèìî òîëüêî ñîõðàíèòü èìÿ àâòîðà è òåêñò ëèöåíçèè, à òàê
æå çàïðåùåíî èñïîëüçîâàòü èìÿ àâòîðà â ïðîäâèæåíèè ïðîäóêòà.
4 Òî÷íûõ äàííûõ íå ñóùåñòâóåò, íî ïî íåêîòîðûì îöåíêàì äî 15% ñåðâåðîâ îáñëóæèâàþòñÿ
ñèñòåìîé FreeBSD. Ïî ñòàòèñòèêå Web-ñåðâåðîâ, FreeBSD óñòàíîâëåíà íà 9% Web-ñåðâåðîâ. Ïî
äàííûì 2006-ãî ãîäà FreeBSD áûëà óñòàíîâëåíà íà áîëåå ÷åì 50% ñåðâåðîâ â ñòðàíàõ ÑÍÃ.
14
ìåííîñòè èíòåðôåéñîâ, êàê òî API, ABI è òàê äàëåå). Íîâûé êîä ïîìå-
ùàþò â âåòêó CURRENT, ãäå îí ïîëó÷àåò áîëåå øèðîêîå òåñòèðîâàíèå.
Íîâûå ôóíêöèè, äîáàâëåííûå â CURRENT, ìîãóò îñòàòüñÿ â ñèñòåìå èëè
îò íèõ ìîãóò îòêàçàòüñÿ, åñëè ðåàëèçàöèÿ îêàæåòñÿ íåóäà÷íîé. Èíîãäà
ýòà âåðñèÿ ìîæåò îêàçàòüñÿ â íåïðèãîäíîì äëÿ èñïîëüçîâàíèÿ ñîñòîÿ-
íèè. STABLE-âåðñèÿ ñîäåðæèò òîëüêî òå íîâîââåäåíèÿ, êîòîðûå ïðîøëè
ïðîâåðêó â CURRENT. Òåì íå ìåíåå, ýòà âåðñèÿ òîæå ïðåäíàçíà÷åíà, â
îñíîâíîì, äëÿ ðàçðàáîò÷èêîâ. Íå ðåêîìåíäóåòñÿ îáíîâëÿòü îòâåòñòâåí-
íûå ðàáî÷èå ñåðâåðû äî STABLE, ïðåäâàðèòåëüíî å¼ íå ïðîòåñòèðîâàâ.
Íà îñíîâå STABLE ðåãóëÿðíî ñîçäàþòñÿ òùàòåëüíî ïðîòåñòèðîâàííûå
ðàçðàáîò÷èêàìè, ãðóïïîé release-èíæåíåðîâ è áîëåå øèðîêèì êðóãîì
ïîëüçîâàòåëåé, RELEASE-âåðñèè.
 äàííîì êóðñå ëàáîðàòîðíûõ ðàáîò èñïîëüçóåòñÿ âåðñèÿ 8.0 RELEASE.
1.3.2 sysinstall
Êëàâèøà Êîìàíäà
Ñòðåëêà ââåðõ Ïåðåõîä ê ïðåäûäóùåé îïöèè ìåíþ
Ñòðåëêà âíèç Ïåðåõîä ê ñëåäóþùåé îïöèè ìåíþ
Ñòðåëêè âëåâî/âïðàâî Ïåðåêëþ÷åíèå ìåæäó âàðèàíòàìè âûáîðà
âíèçó ýêðàíà
Ïðîáåë  ìåíþ, ãäå âîçìîæåí âûáîð ìíîãî÷èñëåííûõ
îïöèé, ïðîáåë ñëóæèò äëÿ âûáîðà òåêóùåé
îïöèè
Êëàâèøà Tab Ðàáîòàåò êàê è êóðñîðíûå êëàâèøè âëåâî/â-
ïðàâî, à òàê æå èñïîëüçóåòñÿ äëÿ ïåðåõîäà
ìåæäó ïîëÿìè, ãäå íåîáõîäèìî ââîäèòü èí-
ôîðìàöèþ
åãî íà äðóãîì.
Ðàçìåùåíèå ðàçíûõ äàííûõ íà îòäåëüíûõ ñëàéñàõ ïîçâîëÿåò ïî-
ëó÷èòü âûèãðûø â ïðîèçâîäèòåëüíîñòè, íàäåæíîñòè, áåçîïàñíîñòè. Ëþ-
áîé êàòàëîã ìîæåò áûòü ðàñïîëîæåí íà îòäåëüíîì ñëàéñå. Òî÷íî òàê
æå âîçìîæíà óñòàíîâêà âñåé ñèñòåìû â îäèí ñëàéñ. Ãðóïïà ðàçðàáîò-
÷èêîâ FreeBSD äàåò ðåêîìåíäàöèè ðàñïîëàãàòü íà îòäåëüíûõ ñëàéñàõ
êîðíåâîé ðàçäåë (/), ðàçäåë ïîäêà÷êè(swap), ðàçäåë âðåìåííûõ ôàéëîâ
(/tmp), ðàçäåë ïåðåìåííûõ ôàéëîâ (/var) è ðàçäåë ïîëüçîâàòåëüñêèõ
ôàéëîâ(/usr).
Êîðíåâàÿ ôàéëîâàÿ ñèñòåìà ïðåäíàçíà÷åíà äëÿ õðàíåíèÿ îñîáî âàæ-
íûõ ôàéëîâ, òàêèõ êàê çàãðóç÷èê, ÿäðî îïåðàöèîííîé ñèñòåìû, îñíîâ-
íûå ñèñòåìíûå óòèëèòû, ôàéëû íàñòðîåê, ôàéëû óñòðîéñòâ è ïðî÷åå.
FreeBSD ðàçìåùàåò â íåì îêîëî 160 Ìá ôàéëîâ. Äîïîëíèòåëüíîå ìåñòî
ðåêîìåíäóåòñÿ îñòàâèòü äëÿ âðåìåííûõ ôàéëîâ, à òàê æå äëÿ áóäóùèõ
ðàñøèðåíèé ñèñòåìû, êîòîðûì ïîíàäîáèòñÿ ñâîáîäíîå ïðîñòðàíñòâî. Ýòî
îñíîâíîé ðàçäåë â èåðàðõèè ôàéëîâîé ñèñòåìû FreeBSD. Âñå äðóãèå ðàç-
äåëû ìîíòèðóþòñÿ (ïîäêëþ÷àþòñÿ) èìåííî ê íåìó. Ïîñêîëüêó ïðè ñáîÿõ
ýëåêòðîïèòàíèÿ íàäåæíîñòü ôàéëîâîé ñèñòåìû ïîâûøàåòñÿ, åñëè îíà íå
íàõîäèëàñü â ïðîöåññå çàïèñè, òî æåëàòåëüíî, ÷òî áû êîðíåâîé ðàçäåë íå
âêëþ÷àë â ñåáÿ ðàçäåëîâ (/var, /tmp) â êîòîðûå àêòèâíî èäåò çàïèñü ïðè
ðàáîòå ñèñòåìû. Â êîðíåâîì ðàçäåëå äîëæíû õðàíèòüñÿ òîëüêî ñàìûå
âàæíûå ôàéëû, êîòîðûé ðåäêî èçìåíÿþòñÿ.
ÌÎÍÒÈÐÎÂÀÍÈÅ. Ïðè ïîäêëþ÷åíèè ðàçäåëà èëè äèñêà
(ôëåøêè èòï) ê ñèñòåìå, åé íåîáõîäèìî óêàçàòü ïóòü, ïî êî-
òîðîìó ìîæíî íàéòè ïîäêëþ÷åííûé ðàçäåë. Ïóòü ê êîòîðîìó
ìîíòèðóåòñÿ ðàçäåë, íàçûâàåòñÿ òî÷êîé ìîíòèðîâàíèÿ. Íàïðè-
ìåð äëÿ /var, òî÷êîé ìîíòèðîâàíèÿ ÿâëÿåòñÿ /. Êàòàëîã /media
ÿâëÿåòñÿ òî÷êîé ìîíòèðîâàíèÿ äëÿ ñúåìíûõ óñòðîéñòâ. Íà-
ïðèìåð ïîñëå ïîäêëþ÷åíèÿ ôëåøêè â GNU/Linux â êàòàëîãå
/media ïîÿâëÿåòñÿ êàòàëîã disk1 ñ ñîäåðæèìûì Âàøåé ôëåøêè.
Ðàçäåë ïîäêà÷êè ïðåäíàçíà÷åí äëÿ óâåëè÷åíèÿ îáúåìà âèðòóàëü-
íîé ïàìÿòè. Îáû÷íî â çàâèñèìîñòè îò îáúåìà óñòàíîâëåííîé ïàìÿòè è
çàäà÷ ñåðâåðà åãî âûáèðàþò îò 1:1 äî 3:1 ïî îòíîøåíèþ ê îïåðàòèâ-
22
íîé ïàìÿòè. Ìåíüøå 1:1 ñòàâèòü íå ðåêîìåíäóåòñÿ, òàê êàê ïðè êðàõå
ÿäðà îïåðàöèîííîé ñèñòåìû (kernel panic ïàíèêà ÿäðà) ñîäåðæèìîå
îïåðàòèâíîé ïàìÿòè ñáðàñûâàåòñÿ â ðàçäåë swap, ÷òî ïîçâîëèò âûÿâèòü
îøèáêó, åñëè ïàíèêà ÿäðà ïðîèñõîäèò ÷àñòî. Âîçìîæåí âàðèàíò, ÷òî
ïîñëå òîãî êàê çàêîí÷èòñÿ swap, íèçêîóðîâíåâàÿ çàïèñü äàìïà áóäåò
ïèñàòü â äàëüíåéøèå ñåêòîðû, ïîâðåæäàÿ ôàéëîâóþ ñèñòåìó, êîòîðàÿ
òàì íàõîäèòñÿ. Åñëè âàì ïðèõîäèòñÿ ñòàâèòü îáúåì ðàçäåëà swap áîëåå
÷åì â 3 ðàçà áîëüøå îáúåìà îïåðàòèâíîé ïàìÿòè, òî ñòîèò çàäóìàòüñÿ
íàä òåì, ÷òî áû äîêóïèòü åùå ïàìÿòè.
Êàòàëîã /var ñîäåðæèò ôàéëû, êîòîðûå ïîñòîÿííî ìåíÿþòñÿ: ëîãè
è äðóãèå àäìèíèñòðàòèâíûå ôàéëû. Ìíîãèå èç ýòèõ ôàéëîâ èíòåíñèâ-
íî ÷èòàþòñÿ è çàïèñûâàþòñÿ â ïðîöåññå åæåäíåâíîé ðàáîòû FreeBSD.
Ðàçìåùåíèå èõ íà îòäåëüíîé ôàéëîâîé ñèñòåìå ïîçâîëÿåò FreeBSD îï-
òèìèçèðîâàòü äîñòóï ê ýòèì ôàéëàì áåç çàòðàãèâàíèÿ äðóãèõ êàòàëîãîâ,
íå èìåþùèõ òàêîé æå ìîäåëè äîñòóïà. Òàê æå â ñëó÷àå ïåðåïîëíåíèÿ ôà-
ëîâîé ñèñòåìû (åñëè var íå âûäåëåí â îòäåëüíûé ðàçäåë), íåâîçìîæíîñòü
âåñòè log ôàéë ìîæåò ïðèâåñòè ê êðàõó ñåðâèñà. Â ýòîì æå êàòàëîãå íà-
õîäÿòñÿ áóôåðíûå (spool) êàòàëîãè, èñïîëüçóåìûå äëÿ î÷åðåäåé ïå÷àòè
èëè ýëåêòðîííîé ïî÷òû.
Êàòàëîã âðåìåííûõ ôàéëîâ ïðåäíàçíà÷åí äëÿ õðàíåíèÿ íåíóæíîé
èíôîðìàöèè â ïðöåññå ðàáîòû. Îáû÷íî îí ñàì î÷èùàåòñÿ. Íî ìíîãèå
ïðèëîæåíèÿ íå ìîãóò ðàáîòàòü åñëè íåò ìåñòà äëÿ âðåìåííûõ ôàéëîâ.
Ïîýòîìó æåëàòåëüíî íå âêëþ÷àòü êàòàëîã /tmp â ñîñòàâ äðóãîãî ðàçäåëà,
êîòîðûé ìîæåò îòîáðàòü æèçíåííî íåîáõîäèìîå ìåñòî, à âûäåëèòü äëÿ
íåãî îòäåëüíûé ðàçäåë.
Ïîëüçîâàòåëüñêèé êàòàëîã íåîáõîäèì äëÿ ðàçìåùåíèÿ äàííûõ ïîëü-
çîâàëåëÿ (êàòàëîã /usr/home), óñòàíîâëåííûõ ïðîãðàìì, ôàéëîâ ñïðàâ-
êè, èñõîäíûõ êîäîâ è ïðî÷. Ðàçóìååòñÿ ÷åì îí áîëüøå, òåì ëó÷øå.
Ñ ó÷åòîì âñåõ ëàáîðàòîðíûõ ðàáîò, ìû ñ Âàìè ðàñïðåäåëèì ìåñòî
òàêèì îáðàçîì, êàê óêàçàíî â òàáë. 2.
Äàííàÿ ñõåìà ïðèìåíèìà íå êî âñåì îïåðàöèîííûì ñèñòåìàì UNIX.
Íàïðèìåð â GNU/Linux ðàçäåë home ïðèìîíòèðîâàí íå ê /usr, à ê /. È
ðàñïðåäåëåíèå ïî äàííîé ñõåìå âûäåëèò äëÿ Âàøèõ ëè÷íûõ ôàéëîâ âñåãî
23
FreeBSD
7 Portable Operating System Interface for UNIX - Ïåðåíîñèìûé èíòåðôåéñ îïåðàöèîííûõ ñèñòåì
UNIX - Íàáîð ñòàíäàðòîâ, îïèñûâàþùèõ èíòåðôåéñû ìåæäó îïåðàöèîííîé ñèñòåìîé è ïðè-
êëàäíîé ïðîãðàììîé
46
ñòîèò â êà÷åñòâå îáîëî÷êè nologin. Ýòî îçíà÷àåò, ÷òî îíè íå ìîãóò âîéòè
â ñèñòåìó.
ñèñòåìå
3. Subroutines (Ïðîöåäóðû)
Çäåñü ñîäåðæèòñÿ îïèñàíèå áèáëèîòå÷íûõ ôóíêöèé. Îíè ïðåäíà-
çíà÷åíû äëÿ ïðîãðàììèñòîâ íà Ñ
4. Devices (Óñòðîéñòâà)
Èíôîðìàöèÿ äëÿ ïðîãðàììèñòîâ íà Ñ îá èíòåðôåéñàõ ê äðàéâåðàì
óñòðîéñòâ âî FreeBSD.
6. Games (Èãðû)
Íàèáîëåå âàæíûé ðàçäåë ñïðàâî÷íûõ ðóêîâîäñòâ. Çäåñü ñîäåðæàò-
ñÿ èíñòðóêöèè ê èãðàì è äðóãèì ðàçâëåêàòåëüíûì ñðåäñòâàì FreeBSD.
7. Miscellaneous (Ðàçíîå)
Òî, ÷òî íå ïîäõîäèò äëÿ äðóãèõ ðàçäåëîâ, ðàçìåùàåòñÿ çäåñü.
Êàòàëîã Íàçíà÷åíèå
/ Êîðíåâàÿ ôàéëîâàÿ ñèñòåìà (ôàéëîâàÿ ñè-
ñòåìà root). Ýòî âåðõíèé ðàçäåë â èåðàð-
õèè UNIX. Âñå îñòàëüíûå ðàçäåëû ïîä÷èíåíû
íåìó, äàæå åñëè íàõîäÿòñÿ íà äðóãèõ äèñêàõ
èëè äðóãèõ êîìïüþòåðàõ.
/bin Çäåñü íàõîäÿñÿ èñïîëíÿåìûå ôàéëû, ñêîìïè-
ëèðîâàííûå ñî ñòàòè÷åñêèìè áèáëèîòåêàìè
/boot Çäåñü íàõîäÿòñÿ êîíôèãóðàöèîííûå ôàéëû
çàãðóç÷èêà, ÿäðî îïåðàöèîííîé ñèñòåìû, ìî-
äóëè ê ÿäðó è äðóãèå ôàéëû, íåîáõîäèìûå
äëÿ çàãðóçêè îïåðàöèîííîé ñèñòåìû.
/cdrom Ïóñòîé êàòàëîã, ïðåäíàçíà÷åííûé äëÿ ìîíòè-
ðîâàíèÿ ïðèâîäà îïòè÷åñêèõ äèñêîâ.
/dev Ñïåöèàëüíûé êàòàëîã. Ôàéëû âíóòðè íåãî ÿâ-
ëÿþòñÿ óñòðîéñòâàìè. Òî÷íåå ôàéëàìè ñïå-
öèàëüíûõ òèïîâ, êîòîðûå îáåñïå÷èâàþò ïðî-
ãðàììàì èíòåðôåéñ ê óñòðîéñòâàì, ïîääåð-
æèâàåìûì ÿäðîì.
/etc Çäåñü õðàíÿòñÿ ñèñòåìíûå êîíôèãóðàöèîí-
íûå ôàéëû.
/home Ññûëêà íà êàòàëîã /usr/home ñîçäàííàÿ ïî
ñîîáðàæåíèÿì ñîâìåñòèìîñòè.
/lib Îñíîâíûå áèáëèîòåêè è ìîäóëè ÿäðà
/libexec Îñíîâíûå áèáëèîòåêè è ìîäóëè ÿäðà
/media Ïóñòîé êàòàëîã, ïðåäíàçíà÷åííûé äëÿ ìîíòè-
ðîâàíèÿ ñòàíäàðòíûõ íàêîïèòåëåé èíôîðìà-
öèè.
/mnt Ïóñòîé êàòàëîã, ïðåäíàçíà÷åííûé äëÿ ìîíòè-
ðîâàíèÿ.
/proc Ôàéëîâàÿ ñèñòåìà ïðîöåññîâ (procfs). Îíà
ïðåäñòàâëÿåò ñîáîé èíòåðôåéñ ê òàáëèöå ïðî-
öåññîâ.
/rescue Ðåçåðâíûé êàòàëîã ñ îñíîâíûìè óòèëèòàìè
äëÿ âîññòàíîâëåíèÿ ðàáîòû ñèñòåìû
55
Êàòàëîã Íàçíà÷åíèå
/root Äîìàøíèé êàòàëîã ïîëüçîâàòåëÿ root. Îí
ðàñïîëîæåí çà ïðåäåëàìè êàòàëîãà /usr/home
ïî ñîîáðàæåíÿì áåçîïàñíîñòè è, êðîìå òîãî,
äîñòóïåí ïðè àâàðèéíîé çàãðóçêå.
/sbin Ñèñòåìíûå èñïîëíÿåìûå ôàéëû, ñêîìïèëè-
ðîâàííûå ñî ñòàòè÷åñêèìè áèáëèîòåêàìè.
Îíè îòëè÷àþòñÿ îò ôàéëîâ, êîòîðûå õðàíÿò-
ñÿ â /bin, òåì, ÷òî ñïîñîáíû èçìåíèòü ïîâå-
äåíèå ñèñòåìû, òîãäà êàê ïðîãðàììû èç /bin,
ïðåäñòàâëÿþò ñîáîé ëèøü ïîëüçîâàòåëüñêèå
óòèëèòû.
/sys Ññûëêà íà ôàéëû ñ èñõîäíûì êîäîì ÿäðà.
åñëè îíè áûëè óñòàíîâëåííû.
/tmp Âðåìåííûå ôàéëû. Äàííûé êàòàëîã äîñòóïåí
äëÿ çàïèñè âñåì ïîëüçîâàòåëÿì.
/usr Ñ ýòîãî êàòàëîãà íà÷èíàåòñÿ "îñòàëüíàÿ ñè-
ñòåìà".
/var Êàòàëîã. ïðåäíàçíà÷åííûé äëÿ èçìåíÿþùèõ-
ñÿ ôàéëîâ.
/usr/bin Çäåñü íàõîäèòñÿ äîïîëíèòåëüíîå ÏÎ, ÿâëÿþ-
ùååñÿ ÷àñòüþ ñèñòåìû.
/usr/games Íàèâàæíåéøèé êàòàëîã ñèñòåìû.
/usr/home Çäåñü õðàíÿòñÿ äîìàøíèå êàòàëîãè ïîëüçîâà-
òåëåé
/usr/home/ êàæäûé ïîëüçîâàòåëü ïîëó÷àåò â ñâîå ðàñïî-
èìÿ_ïîëüçîâàòåëÿ ðÿæåíèå êàòàëîã ñî ñâîèì èìåíåì.
/usr/include Çäåñü íàõîäÿòñÿ ðàçëè÷íûå áèáëèîòåêè.
/usr/lib
/usr/libdata
/usr/libexec
/usr/local Çäåñü íàõîäÿòñÿ ïðîãðàììû, êîòîðûå íå ÿâ-
ëÿþòñÿ ÷àñòüþ îïåðàöèîííîé ñèñòåìû.
56
Êàòàëîã Íàçíà÷åíèå
/usr/sbin Çäåñü íàõîäèòñÿ äîïîëíèòåëüíîå ÏÎ, ïðåäíà-
çíà÷åííîå äëÿ àäìèíèñòðàòèâíûõ çàäà÷.
/usr/share Çäåñü íàõîäèòñÿ ðàçíîîáðàçíàÿ äîêóìåíòà-
öèÿ, ñïèñêè, ñïðàâî÷íèêè, ñëîâàðè etc.
/usr/src Çäåñü íàõîäÿòñÿ èñõîäíûå êîäû FreeBSD.
/usr/local/bin Çäåñü íàõîäèòñÿ ïðèêëàäíîå ÏÎ, êîòîðîå íå
ÿâëÿåòñÿ ÷àñòüþ ñèñòåìû è óñòàíàâëèâàåòñÿ
àäìèíèñòðàòîðîì.
/usr/local/etc Çäåñü íàõîäÿòñÿ ôàéëû íàñòðîéêè ê ýòîìó
ÏÎ.
/usr/local/man Çäåñü íàõîäÿòñÿ ôàéëû ñïðàâêè manual pages
(man).
/usr/local/sbin Çäåñü íàõîäèòñÿ óñòàíàâëèâàåìîå ÏÎ, êîòî-
ðîå ìîæåò âëèÿòü íà ñîñòîÿíèå îïåðàöèîííîé
ñèñòåìû.
/usr/local/share Çäåñü íàõîäèòñÿ ðàçíîîáðàçíàÿ äîêóìåíòà-
öèÿ.
/usr/local/www Çäåñü ðàñïîëîãàþòñÿ ôàéëû äëÿ
Web-ñåðâåðà.
2.3 Ôàéëû
ïðîñìîòð, óäàëåíèå)
Òàáëèöà 4: Ñèìâîëû-çàìåñòèòåëè
2.3.3 Ññûëêè
Ñîçäàíèå àðõèâà
tar czf èìÿ_àðõèâà.tar.gz ìîÿ_âàæíàÿ_ïàïêà
Ïðîñìîòð ñïèñêà ôàéëîâ â àðõèâå
tar tf èìÿ_àðõèâà.tar.gz
Èçâëå÷åíèå ôàéëîâ èç àðõèâà
tar zxf èìÿ_àðõèâà.tar.gz
Êàê âèäèòå, ëåãêî äîãàäàòüñÿ, ÷òî c îçíà÷àåò ñîçäàòü (Create), x
èçâëå÷ü (eXtract), z èñïîëüçîâàòü ñæàòèå, à f îïåðàöèè ïðîâîäèòü
ñ ôàéëîì, âìåñòî ìàãíèòíîé ëåíòû, êîòîðàÿ ïî óìîë÷àíèþ èñïîëüçîâà-
ëàñü 40 ëåò íàçàä âî âðåìåíà ñîçäàíèÿ tar.
nger
Ïîêàçûâàåò ïîëíóþ èíôîðìàöèþ î ïîëüçîâàòåëå (åñëè ïîëüçîâà-
òåëü, êîíå÷íî, åå çàïîëíèë). Ýòî î÷åíü èçâåñòíàÿ ïðîãðàììà. Êîãäà-òî
(ëåò 20-30 íàçàä) èíôîðìàöèÿ, êîòîðóþ îíà äàåò, ìîæíî áûëî ïîëó÷èòü
ñ ëþáîãî ñåðâåðà. Íî òåïåðü, ïî ñîîáðàæåíèÿì áåçîïàñíîñòè, îíà çàáëî-
êèðîâàíà âåçäå.
info
Ñïðàâî÷íàÿ ñëóæáà íàïîäîáèå man, íî ñî ñâîèì ñèíòàêñèñîì.
bc, dc
bc ýòî ïðîñòîé êàëüêóëÿòîð. Çàïóñòèâ åãî ñ îïöèÿìè -lq, ìîæíî
ââîäèòü ïðîèçâîëüíûå ïðèìåðû âèäà (2+2)*2. Íàæàâ Enter ìû ïîëó-
÷èì ðåçóëüòàò. bc î÷åíü ôóíêöèîíàëåí è óìååò ðåøàòü çàäà÷è ëþáîé
ñëîæíîñòè, âû÷èñëÿòü ðàçëè÷íûå ìàòåìàòè÷åñêèå ôóíêöèè. Îí èìååò
ìíîãî íàñòðîåê è â íåãî âñòðåí ñâîé ÿçûê ïðîãðàììèðîâàíèÿ, ñ ïîìîùüþ
êîòîðîãî ìîæíî ôîðìèðîâàòü çàäàíèÿ äëÿ âû÷èñëåíèÿ. dc ñòåêîâûé
êàëüêóëÿòîð, èñïîëüçóþùèé îáðàòíóþ ïîëüñêóþ çàïèñü. Âàì îí ïîíàäî-
áèòñÿ òîëüêî, åñëè íå õâàòèò ôóíêöèîíàëà bc.
echo
Õîòÿ ñìûñë êîìàíäû ñðàçó íå ïîíÿòåí è êàæåòñÿ àáñóðäíûì, íî
ñêîðî Âû ïîéìåòå, ÷òî îíà î÷åíü ïîëåçíà è âîñòðåáîâàíà. Ýòà êîìàíäà
ïðîñòî âûâîäèò íà ýêðàí ñòðîêó, êîòîðóþ Âû åé ïåðåäàëè. Áëàãîäàðÿ
ýòîìó ìîæíî ïåðåíàïðàâèòü ýòó ñòðîêó íà ââîä äðóãîé ïðîãðàììû. Íà-
ïðèìåð:
68
echo 10+10 | bc
Âåðíåò âàì ÷èñëî 20.
fc
Ïîëåçíàÿ óòèëèòêà. Åñëè âû íàáðàëè êîìàíäó â òðè ñòðîêè ñ äâà-
äöàòüþ ïåðåìåííûìè è òðèäöàòüþ îïöèÿìè, òî íàáðàâ fc Âû ëåãêî ñìî-
æåòå åå ñîõðàíèòü â ôàéë. Ñäåëàâ ôàéë èñïîëíÿåìûì, Âàì áîëüøå íå
ïîòðåáóåòñÿ ñíîâà åå íàáèðàòü, à ñòîèò òîëüêî çàïóñòèòü ôàéë. Êàê
ñäåëàòü ôàéë èñïîëíÿåìûì, ìû óçíàåì â ñëåäóþùèõ ëàáîðàòîðíûõ ðà-
áîòàõ.
2.4.3 alias'û
8 md5 àëãîðèòì õýøèðîâàíèÿ, êîòîðûé ÷àñòî ïðèìåíÿåòñÿ äëÿ ïðîâåðêè öåëîñòíîñòè ôàéëîâ,
òàê êàê èçìåíåíèå (ïîâðåæäåíèå) ôàéëà äàæå íà îäèí áèò èñêàçèò ðåçóëüòàò âû÷èñëåíèÿ md5
ñóììû
72
9 Ïðîãðàììà script âåäåò ïðîòîêîë òîëüêî ïîòîêîâîé èíôîðìàöèè, êîòîðàÿ âûâîäèòñÿ íà òåð-
ìèíàë. Èíòåðàêòèâíûå ïðîãðàììû, òàêèå êàê ðåäàêòîð vi èëè óòèëèòà top, íå ìîãóò áûòü
çàïðîòîêîëèðîâàíû.
73
òåêñòà
3.1.4 Îñíîâû vi
0 â íà÷àëî ñòðîêè
$ â êîíåö ñòðîêè
d w óäàëÿåò ñëîâî
: w ñîõðàíèòü èçìåíåíèÿ
Ïîèñê è çàìåíà
: øàáëîí1
s / øàáëîí2 çàìåíÿåò â òåêóùåé
/
Êîïèðîâàíèå è âñòàâêà
n,m n äî ñòðîêè m
îò ñòðîêè
Êîìàíäû:
- x ty x è âñòàâèòü ïîñëå y
êîïèðîâàòü ñòðîêó
d óäàëèòü ñòðîêó
p ÷èòàåò ñòðîêè
c çàìåíÿåò ñòðîêè
\+ ýêðàíèðóåò îïåðàòîð
LaTeX
10 Ðåäàêòèðîâàòü òåêñò íà êîìïüþòåðå íà÷àëè åùå äî ïîÿâëåíèÿ ìîíèòîðîâ, à âåñü âûâîä ïå÷àòàëñÿ
íà ìàòðè÷íîì ïðèíòåðå. Ðàçóìååòñÿ íà áóìàãå íåâîçìîæíî èñïîëüçîâàòü ðåäàêòîðû ïîäîáíûå
vi, ïîýòîìó â òå äàëåêèå âðåìåíà ïðèõîäèëîñü ïîëüçîâàòüñÿ ïîòîêîâûìè ðåäàêòîðàìè.
103
4 Ëàáîðàòîðíàÿ ðàáîòà 4.
Ïðîãðàììèðîâàíèå âî FreeBSD
èíòåðïðåòàòîðà
ñïåöèàëüíîå çíà÷åíèå.
Ïîñëå âûïîëíåíèÿ êîìàíäû shift ïåðåìåííûå ñäâèãàþòñÿ íà îäíó
ïîçèöèþ âëåâî. Çíà÷åíèå $1 îòáðàñûâàåòñÿ (îíî áîëüøå íåäîñòóïíî), $2
ñìåùàåòñÿ â $1, $3 â $2 è ò.ä.
Îäíèì èç ðàñïðîñòðàíåííûõ âàðèàíòîâ ïðèìåíåíèÿ êîìàíäû shift
(è öèêëîâ for) ÿâëÿåòñÿ îáðàáîòêà èìåí ôàéëîâ, çàäàííûõ êàê àðãóìåí-
òû êîìàíäíîé ñòðîêè, è âûïîëíåíèå îïåðàöèé íàä êàæäûì èç íèõ.
 ïðîãðàììèðîâàíèè ñöåíàðèåâ èñïîëüçóþòñÿ îïåðàòîðû true è
false. Èõ åäèíñòâåííûì íàçíà÷åíèåì ÿâëÿåòñÿ âîçâðàùåíèå çíà÷åíèÿ
èñòèíà (0) èëè ëîæü (1), ñîîòâåòñòâåííî. Èíîãäà âîçíèêàåò íåîáõîäè-
ìîñòü ïðîãðàììíî ïðåðâàòü áåñêîíå÷íûé öèêë. Äëÿ ýòîãî èñïîëüçóåòñÿ
îäèí èç äâóõ ñëåäóþùèõ îïåðàòîðîâ: break èëè continue. Îïåðàòîð
break ïðåðûâàåò öèêë íåìåäëåííî, íåçàâèñèìî îò òîãî, âûïîëíåíî ëè
óñëîâèå îêîí÷àíèÿ öèêëà. Îïåðàòîð continue çàñòàâëÿåò öèêë ïåðåéòè ê
íà÷àëó è ïðîâåðèòü óñëîâèå. Îïåðàòîðû öèêëà, ñëåäóþùèå çà continue,
íå âûïîëíÿþòñÿ.
Óñëîâíûå îïåðàòîðû âûïîëíÿþòñÿ â òîì ñëó÷àå, êîãäà îïðåäåëåí-
íîå óñëîâèå (èëè íåñêîëüêî óñëîâèé) èñòèííî. Îíè ìîãóò ïðèíèìàòü îäíó
èç òðåõ îáùèõ ôîðì: if, case è AND/OR.
Îïåðàòîðû if ïðîâåðÿþò ÷èñëîâûå âûðàæåíèÿ. Åñëè óñëîâèå èñ-
òèííî, âûïîëíÿþòñÿ îïåðàòîðû âíóòðè áëîêà if. Åñëè îíî ëîæíî, åñòü
äâå âîçìîæíîñòè:
âêëþ÷àÿ ? (êîòîðûé ðàáîòàåò òî÷íî òàê æå, êàê è â êîìàíäíîé ñòðîêå èí-
òåðïðåòàòîðà), è ñèìâîë êîíâåéåðà, ïîçâîëÿþùèé ïåðåäàâàòü îïåðàòîðó
case äèàïàçîí îïöèé. Íàïðèìåð, Y | ó ñîâïàäàåò ñ Y èëè ó ïðè ïðîâåðêå
óñëîâèÿ. Íåñêîëüêî ñëåäóþùèõ ïîäðÿä ñèìâîëîâ ñëåäóåò çàêëþ÷àòü â
êâàäðàòíûå ñêîáêè. Òàê, íàïðèìåð, [Yy]|[Yy][Ee][Ss] äàåò ñîâïàäåíèå
ñî ñòðîêîé ó èëè yes, ñîäåðæàùåé ëþáóþ êîìáèíàöèþ ñèìâîëîâ âåðõíåãî
èëè íèæíåãî ðåãèñòðà.
Ëîãè÷åñêèå óñëîâíûå îïåðàòîðû AND/OR â íåêîòîðûõ ñëó÷àÿõ
çàìåíÿþò îïåðàòîðû if. Êîä çàâåðøåíèÿ ïåðâîé êîìàíäû èñïîëüçóåòñÿ
êàê óñëîâèå çàïóñêà âòîðîé. Íàïðèìåð:
tar cvfz backup.tar.gz doouments/* && rm -r documents
Ýòà êîìàíäà îçíà÷àåò ñëåäóþùåå: "Åñëè ïåðâàÿ îïåðàöèÿ ïðîøëà
óñïåøíî, âûïîëíèòü âòîðóþ. Åñëè íåò âòîðàÿ êîìàíäà íå âûïîëíÿ-
åòñÿ". Äðóãèìè ñëîâàìè: "Íåîáõîäèìî âûïîëíèòü êîìàíäû À è Â. Íî
åñëè êîìàíäà À íåâûïîëíèìà, òî íå ñëåäóåò èñïîëíÿòü è Â". Â äàííîì
ñëó÷àå ïåðâàÿ êîìàíäà àðõèâèðóåò âñå ôàéëû èç êàòàëîãà documents â
ôàéë backup.tar.gz. Åñëè ýòîò ïðîöåññ çàâåðøàåòñÿ óñïåøíî (êîìàíäà tar
âîçâðàùàåò êîä 0), âûïîëíÿåòñÿ êîìàíäà ïîñëå îïåðàòîðà &&, êîòîðàÿ
óäàëÿåò êàòàëîã documents. Åñëè æå ïðîöåññ àðõèâèðîâàíèÿ íå çàâåðøåí
óñïåøíî (êîìàíäà tar âîçâðàùàåò êîä, îòëè÷íûé îò 0), êîìàíäà ïîñëå
&& íå èñïîëíÿåòñÿ (ïîíÿòíî, ÷òî íåò ñìûñëà óäàëÿòü êàòàëîã, åñëè îí
íå áûë êîððåêòíî çààðõèâèðîâàí).
119
Îïöèÿ Äåéñòâèå
-f Ôàéë ñóùåñòâóåò è ýòî îáû÷íûé ôàéë
-d Ôàéë ñóùåñòâóåò è ÿâëÿåòñÿ êàòàëîãîì
-s Ôàéë ñóùåñòâóåò è åãî ðàçìåð áîëüøå íóëÿ
-c Ôàéë ñóùåñòâóåò è ÿâëÿåòñÿ ñïåöèàëüíûì ôàéëîì ñèì-
âîëüíîãî óñòðîéñòâà
-b Ôàéë ñóùåñòâóåò è ÿâëÿåòñÿ ñïåöèàëüíûì ôàéëîì áëî÷íî-
ãî óñòðîéñòâà
-r Ôàéë ñóùåñòâóåò è äîñòóïåí äëÿ ÷òåíèÿ
-w Ôàéë ñóùåñòâóåò è äîñòóïåí äëÿ çàïèñè
-x Ôàéë ñóùåñòâóåò è äîñòóïåí äëÿ âûïîëíåíèÿ
4.2.2 ßçûê Ñ
ùåííóþ ïðîãðàììó cp, ìîæíî óìåñòèòü â ïîëòîðà äåñÿòêà ñòðîê (ðèñ. 45).
Èíôîðìàöèþ î áèáëèîòåêàõ (êàê ñèñòåìíûõ, òàê è ñòàíäàðòíûõ)
Âû ñìîæåòå íàéòè â ñïðàâêå man, íàáðàâ, íàïðèìåð, man stdio èëè
man syscall.
Ïîñêîëüêó UNIX ñèñòåìû â áîëüøèíñòâå ñâîåì áåñïëàòíû è ïî-
ñòàâëÿþòñÿ âìåñòå ñ èñõîäíûìè êîäàìè, òî Âû ìîæåòå èçìåíèòü ëþáóþ
ïðîãðàììó, åñëè âîçíèêíåò òàêîå òðåáîâàíèå. Òàê æå Âû âïðàâå èñïîëü-
çîâàòü ëþáûå ó÷àñòêè èñõîäíîãî êîäà ïðè ðàçðàáîòêå ñâîåé ïðîãðàììû.
È åñëè ëèöåíçèÿ GPL (îïåðàöèîííûå ñèñòåìû ñåìåéñòâà GNU/Linux)
íàêëàäûâàåò íåêîòîðûå íåçíà÷èòåëüíûå îãðàíè÷åíèÿ íà èñïîëüçîâàíèå
êîäà â êîììåð÷åñêèõ öåëÿõ, òî ëèöåíçèÿ BSD, ïîä êîòîðîé ðàñïðîñòðà-
íÿþòñÿ âñå ñèñòåìû ñåìåéñòâà BSD, äàåò Âàì ïîëíûå ïðàâà íà åãî èñ-
ïîëüçîâàíèå.
Èñõîäíûå êîäû óñòàíîâèòü ìîæíî ñ ïîìîùüþ sysinstall. Ïîñëå
óñòàíîâêè èñõîäíûå êîäû áóäóò äîñòóïíû â ïàïêå /usr/src.
4.2.4 Perl
Ðèñ. 46:
Ðèñ. 47:
Ðèñ. 48:
èíêðåìåíòíàÿ îïåðàöèÿ:
Ðèñ. 49:
Ðèñ. 50:
Ðèñ. 51:
Ðèñ. 52:
Ðèñ. 53:
Òàáëèöà 8: Òåêñò
Òàáëèöà 9: Êâàíòèôèêàòîðû
$mystr = tr/A-Z/a-z/;
Òàêèì îáðàçîì, âñå ñèìâîëû ñòðîêè $mystr ïðåîáðàçóþòñÿ ê íèæ-
íåìó ðåãèñòðó.
Îäíîé èç ïîëåçíûõ ôóíêöèé îáðàáîòêè òåêñòà ÿâëÿåòñÿ substr().
Î åå èñïîëüçîâàíèè ïîäðîáíî ðàññêàçàíî â ðóêîâîäñòâå ïî ÿçûêó Perl.
Ýòà ôóíêöèÿ âîçâðàùàåò ïîäñòðîêó çàäàííîé äëèíû, íàõîäÿùóþñÿ â
èñõîäíîé ñòðîêå ïî óêàçàííîìó ñìåùåíèþ. Íàïðèìåð:
$mystr = "cat and dog";
$newstr = substr($mystr,0,3);
$newstr ñîäåðæèò ñòðîêó "cat". Åùå áîëåå óäîáíîé ôóíêöèîíàëü-
íîñòè ìîæíî äîáèòüñÿ îò substr() â ñî÷åòàíèè ñ index(). Ïîñëåäíÿÿ
âîçâðàùàåò ñìåùåíèå, ïî êîòîðîìó â èñõîäíîé ñòðîêå íàõîäèòñÿ óêàçàí-
íàÿ ïîäñòðîêà:
$mystr = "cat and dog";
$newstr = substr($mystr,index($mystr,"cat"),index($mystr,"dog"));
Ïåðåìåííîé $mystr ïðèñâàèâàåòñÿ ïîäñòðîêà "cat and "(âêëþ÷àÿ
è çàìûêàþùèé ïðîáåë).
Èñïîëüçîâàíèå ôàéëîâûõ äåñêðèïòîðîâ ( lehandles ) ïîçâîëÿåò îò-
êðûòü ôàéë, ïðî÷åñòü åãî ñîäåðæèìîå â ìàññèâ, âûâåñòè äàííûå â íîâûé
ôàéë è ò.ä. Ìåòîäû ââîäà-âûâîäà ïðèìåíÿþòñÿ äëÿ ââîäà è âûâîäà äàí-
íûõ íå òîëüêî íà êîíñîëü, à è â ôàéëû.
Ïðîñòåéøèì ôàéëîâûì äåñêðèïòîðîì ÿâëÿåòñÿ îïåðàòîð ÷òåíèÿ
ïîòîêà (diamond operator) (õîòÿ ñàì ïî ñåáå îí è íå äåñêðèïòîð). Ýòî
ñïîñîá îáðàùåíèÿ ê âõîäíîìó ôàéëó (èëè íàáîðó ôàéëîâ) èç êîìàíäíîé
ñòðîêè êàê ôàéëîâîìó äåñêðèïòîðó (ïîêà âî âõîäíîì ïîòîêå ïðèñóòñòâó-
þò ñòðîêè). Ýòîò îïåðàòîð ìîæíî ïðèìåíèòü, íàïðèìåð, â öèêëå:
while (<>) print $_;
Ïîñëå ýòîãî íåîáõîäèìî çàïóñòèòü ïðîãðàììó, óêàçàâ â êîìàíäíîé
ñòðîêå íåñêîëüêî àðãóìåíòîâ èìåí ôàéëîâ:
./myscript.pl lel.txt le2.txt ...
Ïðîãðàììà ïðîñòî âûâåäåò ñîäåðæèìîå âñåõ ôàéëîâ, êàê ýòî äå-
ëàåò êîìàíäà cat. Ýòî î÷åíü óäîáíûé è áûñòðûé ñïîñîá îáðàùåíèÿ ê
ñîäåðæèìîìó ôàéëà. Îäíàêî îí çíà÷èòåëüíî îãðàíè÷åí ïî ñðàâíåíèþ
141
Ðèñ. 54:
Ðèñ. 55:
Ðèñ. 56:
Ðèñ. 57:
Ðèñ. 58:
use mylib;
Âî FreeBSD Perl óñòàíàâëèâàåòñÿ â êàòàëîã /usr/lib/perl5. Îäíàêî
ìîäóëè Perl â íåãî íå óñòàíàâëèâàþòñÿ. Èõ ìîæíî èíñòàëëèðîâàòü ïðè
íåîáõîäèìîñòè, è îíè áóäóò ðàçìåùåíû â êàòàëîãå /usr/local/lib/perl5.
Îí ñîäåðæèò äâà ïîäêàòàëîãà: îäèí èç íèõ ïðåäíàçíà÷åí äëÿ ðóêîâîäñòâ
man (åãî èìåíåì ÿâëÿåòñÿ íîìåð òåêóùåé âåðñèè Perl), à âòîðîé
íåïîñðåäñòâåííî äëÿ ìîäóëåé (site_perl). Â ýòîì ïîäêàòàëîãå (íà îäèí
óðîâåíü íèæå) íàõîäÿòñÿ ðàçëè÷íûå êàòàëîãè, â êîòîðûõ ñãðóïïèðîâà-
íû óñòàíîâëåííûå ìîäóëè. Êðîìå òîãî, çäåñü æå ïðèñóòñòâóåò êàòàëîã
i386-freebsd, ñîäåðæàùèé ïðåêîìïèëèðîâàííûé êîä íà ÿçûêå Ñ, êîòîðûé
èñïîëüçóåòñÿ íåêîòîðûìè ìîäóëÿìè Perl äëÿ ïîâûøåíèÿ ïðîèçâîäèòåëü-
íîñòè (íàïðèìåð, â ñëîæíûõ ìàòåìàòè÷åñêèõ àëãîðèòìàõ).
Ìîäóëè ñîáðàíû â ãðóïïû è èìåíóþòñÿ ñëåäóþùèì îáðàçîì: ïðå-
ôèêñ, äâîéíîå öâîåòî÷èå (::) è èìÿ ìîäóëÿ. Íàïðèìåð, Net::Telnet ýòî
íàçâàíèå ìîäóëÿ Perl, ñîäåðæàùåãî ñðåäñòâà äëÿ ðàáîòû ñ ïðîòîêîëîì
Telnet, à Net::DNS ôóíêöèè äëÿ ïîèñêà èìåí ñåðâåðîâ. Äâà ýòèõ ìî-
äóëÿ íàõîäÿòñÿ â êàòàëîãå /usr/local/lib/perl5/site_perl/5.005 â ïîäêàòà-
ëîãå Net â ôàéëàõ Telnet.pm è DNS.pm.
Ýòîò êàòàëîã âêëþ÷åí â ïóòè ïîèñêà Perl. Äëÿ èñïîëüçîâàíèÿ ìî-
äóëÿ â ñöåíàðèè äîñòàòî÷íî âîñïîëüçîâàòüñÿ îïåðàòîðîì use:
use Net::Telnet;
Òåïåðü ëþáîé ôóíêöèåé èç ýòîãî ìîäóëÿ ìîæíî ïîëüçîâàòüñÿ òàê
æå, êàê åñëè áû îíà áûëà îïðåäåëåíà â ñàìîì ñöåíàðèè, òî åñòü óêàçàâ
ïåðåä åå èìåíåì àìïåðñàíò &.
Êàê æå îïðåäåëèòü, êàêèå ôóíêöèè ïðèñóòñòâóþò â ìîäóëå? Äëÿ
ýòîãî ñóùåñòâóåò óòèëèòà perldoc. Îíà ðàáîòàåò ïîäîáíî man, è, åñëè
ìîäóëè óñòàíîâëåíû ïðàâèëüíî (íàïðèìåð, èç íàáîðà ïîðòîâ), îçíàêî-
ìèòüñÿ ñ äîêóìåíòàöèåé ìîæíî, óêàçàâ â êîìàíäíîé ñòðîêå èìÿ ìîäóëÿ.
 äîêóìåíòàöèè òàêîãî òèïà, êàê ïðàâèëî, ñîäåðæèòñÿ ïîëåçíûé è òî÷-
íûé ïðîòîòèï êîäà, êîòîðûé ìîæíî èñïîëüçîâàòü â ñöåíàðèÿõ, à òàêæå
ïîëíûé ñïèñîê ôóíêöèé ìîäóëÿ.
Ñïðàâî÷íûå ìàòåðèàëû îãðîìíîãî îáúåìà óñòàíàâëèâàþòñÿ âìåñòå
ñ Perl èíòåðïðåòàòîðîì. Íàáðàâ man perl âû óâèäèòå ñïèñîê îòäåëüíûõ
146
5 Ëàáîðàòîðíàÿ ðàáîòà 5.
Àäìèíèñòðèðîâàíèå FreeBSD
Áèò Çíà÷åíèå
0 íåò äîñòóïà
1 äîñòóï íà âûïîëíåíèå (äëÿ êàòàëîãîâ ïîèñê)
2 äîñòóï íà çàïèñü
4 äîñòóï íà ÷òåíèå
Ðåæèì Çíà÷åíèå
755 ÷òåíèå/çàïèñü/âûïîëíåíèå äëÿ âëàäåëüöà, ÷òåíèå/âûïîë-
íåíèå äëÿ ãðóïïû è îñòàëüíûõ
644 ÷òåíèå/çàïèñü äëÿ âëàäåëüöà, òîëüêî ÷òåíèå äëÿ ãðóïïû è
îñòàëüíûõ
600 ÷òåíèå/çàïèñü äëÿ âëàäåëüöà, äëÿ ãðóïïû è îñòàëüíûõ
äîñòóïà íåò
5.4.1 cron
- hour(÷àñû) 0-23
5.4.2 at
ê âàøåé ñèñòåìå.
Äëÿ ïîëüçîâàòåëåé Windows, ñóùåñòâóåò òàêîå ðåøåíèå, êàê ïðî-
ãðàììà putty. Îíà ïîçâîëÿåò ïîäêëþ÷èòüñÿ ñ ìàøèíû ïîä óïðàâëåíèåì
Windows ê ñåðâåðàì ñ ðàáîòàþùèì ssh-ñåðâåðîì. Íà äèñêå Free316.iso,
Âû íàéäåòå ýòó ïðîãðàììó.
SSH ñåðâåð òàê æå çàìåíÿåò ïðîòîêîë RCP (remote cp, remote
copy ) íà SCP (secure copy ), êîòîðûé ïðåäñòàâëÿåò ñàìûé ïðîñòîé îáìåí
ôàéëàìè ìåæäó ñèñòåìàìè ïîäêëþ÷åííûìè ïî ñåòè.  ëþáîé UNIX
ñèñòåìå ñóùåñòâóåò ïðîãðàììà scp, êîòîðàÿ ïîçâîëÿåò êîïèðîâàòü ôàéë
íà óäàëåííûé êîìïüþòåð:
$scp le1 user@host.com
Çàïðàøèâàåò ïàðîëü, êîòîðûé èìååò ïîëüçîâàòåëü ñ èìåíåì user
íà êîìïüþòåðå host.com è êîïèðóåò le1 èç òåêóùåé äèðåêòîðèè â
äîìàøíþþ äèðåêòîðèþ ïîëüçîâàòåëÿ user êîìïüþòåðà host.com.
$scp user@host.com:/directory1/le1 le1
Çàïðàøèâàåò ïàðîëü, êîòîðûé èìååò ïîëüçîâàòåëü ñ èìåíåì user íà
êîìïüþòåðå host.com è êîïèðóåò le1 èç êàòàëîãà directory1 êîìïüþ-
òåðà host.com. Ðàçóìååòñÿ êàê è ëþáàÿ äðóãàÿ ïðîãðàììà FreeBSD, scp
èìååò îãðîìíîå êîëè÷åñòâî îïöèé. Íàïðèìåð íå âñåãäà åñòü âîçìîæíîñòü
îáðàòèòüñÿ ïî èìåíè êîìïüþòåðà èëè sshd ìîæåò ðàáîòàòü íà äðóãîì
ïîðòó.
$scp -p 5022 -r /home/user/mysite user@92.68.56.2:/var/www/
Áîëåå óäîáíûé ñïîñîá êîïèðîâàíèÿ ôàéëîâ, ïðåäîñòàâëÿåò ôàéëî-
âûé ìåíåäæåð Midnight Commander. Îí ïîçâîëÿåò ñîçäàòü shell ñîåäèíå-
íèå è óïðàâëÿòü ôàéëàìè íà óäàëåííîì êîìïüþòåðå. Äëÿ ïîëüçîâàòåëåé
Windows åñòü êîíñîëüíàÿ ïðîãðàììà pscp àíàëîã scp êîìàíäû â UNIX
è áîëåå ïðèâû÷íûé ãðàôè÷åñêèé ôàéëîâûé ìåíåäæåð WinSCP. Âñå ýòè
ïðîãðàììû Âû íàéäåòå íà äèñêå.
187
- Çõõ Ïåðåíàïðàâëåíèå
188
6.3.3 PHP