Впмее рпмоще учедеойс п UNIXe Ьфпф фелуф рпдзпфпчмео ОРП "ЛМПФП"   ПЗМБЧМЕОЙЕ 1. Учедеойс п ртпгеууби й уйуфенощи чщъпчби . . . . . . . . 2. Бфтйвхфщ ртпгеуупч . . . . . . . . . . . . . . . . . . . 2.1. Обумедхенще жбкмщ . . . . . . . . . . . . . . 2.2. Йдеофйжйлбфпт рпмшъпчбфемс (UID) й йдеофйжй- лбфпт зтхррщ (GID) . . . . . . . . . . . . . . 3. Лпнбодщ UNIXб . . . . . . . . . . . . . . . . . . . . . 3.1. Лпофелуфощк рпйул й ртепвтбъпчбойе фелуфб . . 3.2. Бтйжнефйюеулйк същл дмс чщюйумеойк у ртпйъ- чпмшопк фпюопуфша . . . . . . . . . . . . . . 3.3. Йънеоеойе ртбч дпуфхрб л жбкмбн . . . . . . . 3.4. Утбчоеойе упдетцйнпзп дчхи жбкмпч . . . . . . 3.5. Рпуфтпюопе утбчоеойе дчхи фелуфпчщи жбкмпч . . 3.6. Ртпуфще бтйжнефйюеулйе чщюйумеойс у ртпйъчпмш- опк фпюопуфша . . . . . . . . . . . . . . . . 3.7. Чщчеуфй бтзхнеофщ лпнбодопк уфтплй об уфбо- дбтфощк чщчпд . . . . . . . . . . . . . . . . 3.8. Тбъмпцеойе гемпзп юйумб об ртпуфще упнопцйфемй 3.9. Пртедемеойе фйрб жбкмб . . . . . . . . . . . . 3.10. Рпйул жбкмпч . . . . . . . . . . . . . . . . 3.11. Лпофелуфощк рпйул ч фелуфпчпн жбкме . . . . . 3.12. Пртедемеойе йдеофйжйлбфптб рпмшъпчбфемс й йдеофйжйлбфптб зтхррщ . . . . . . . . . . . . 3.13. Бчбтйкопе ъбчетыеойе ртпгеууб . . . . . . . . 3.14. Йожптнбгйс п упуфпсойй ртпгеуупч . . . . . . 3.15. Уптфйтпчлб й/ймй умйсойе жбкмпч . . . . . . . 3.16 Рпдуюеф лпмйюеуфчб уйнчпмпч, умпч й уфтпл ч жбкме . . . . . . . . . . . . . . . . . . . .   1. Учедеойс п ртпгеууби й уйуфенощи чщъпчби. Уйуфеноще чщъпчщ - ьфп йофетжеку нецдх ртпзтбннбнй й сдтпн UNIXб. Сдтп UNIXб пвеуреюйчбеф тбъдемеойе ртпгеууптб нецдх чщ- рпмосаэйнйус ртпзтбннбнй, пухэеуфчмсеф хртбчмеойе рбнсфша й дтхзйнй хуфтпкуфчбнй, тебмйъхеф жбкмпчха уйуфенх. Уйуфеноще чщ- ъпчщ нпзхф йурпмшъпчбфшус чуенй веъ йулмаюеойс ртпзтбннбнй. Ртпзтбннб, обипдсэбсус ч уфбдйй чщрпмоеойс, объщчбефус ртпгеуупн. Фбл, shell, пцйдбаэйк ччпдб лпнбодщ, счмсефус ртп- геуупн. Чуе лпнбодщ UNIXб (лтпне чуфтпеоощи лпнбод shellб) счмсаф- ус пвщюощнй ртпзтбннбнй. Рпьфпнх, рпмхюйч лпнбодх, ое счмсаэха- ус чуфтпеоопк, shell дпмцео чщъчбфш об чщрпмоеойе ртпзтбннх й ретедбфш ек бтзхнеофщ йъ лпнбодопк уфтплй. Дмс ьфпзп shell де- мбеф умедхаэее: по тбъдемсефус об дче лпрйй (йурпмшъхс уйуфен- ощк чщъпч fork), пфмйюбаэйеус мйыш фен, юфп лбцдбс нпцеф прте- демйфш, лен поб счмсефус: ртпгеуупн-ртедлпн ймй ртпгеуупн-рп- фпнлпн. Ртй ьфпн ртпгеуух-рпфпнлх дпуфбафус рп обумедуфчх чуе бфтйвхфщ ртпгеууб-ртедлб: пфлтщфще жбкмщ, ретенеооще плтхцеойс, фелхэбс дйтелфптйс й дт. Ъбфен ртпгеуу-ртедпл ретеипдйф ч упу- фпсойе пцйдбойс ъбчетыеойс ртпгеууб-рпфпнлб (йурпмшъхс уйуфен- ощк чщъпч wait), еумй фпмшлп ртпгеуу-рпфпнпл ое вщм ъбрхэео буйоитпооп. Ртпгеуу-рпфпнпл йъдбеф уйуфенощк чщъпч exec, рп лп- фптпнх сдтп UNIXб рпднеосеф ртпзтбннх, пртедемсаэха рпчедеойе ртпгеууб, й ретедбеф ек хртбчмеойе й урйупл бтзхнеофпч. Обумедпчбойе бфтйвхфпч пв®суосеф, рпюенх фбл мезлп нпцоп ретеобъобюйфш уфбодбфощк ччпд-чщчпд. Ретед фен, лбл ретедбфш хртбчмеойе опчпк ртпзтбнне, shell (ртпгеуу-ртедпл) ретеобъобюб- еф учпк уфбодбтфощк ччпд-чщчпд, лпфптщк й дпуфбоефус опчпк ртпзтбнне. Ъбчетыйч чщрпмоеойе, ртпгеуу-рпфпнпл ртпйъчедеф "убнпхвйк- уфчп" (йъдбч дмс ьфпзп уйуфенощк чщъпч exit). Ртй ьфпн чуе пфл- тщфще ч оен жбкмщ вхдхф ъблтщфщ й убн по ртелтбфйф ухэеуфчпчб- ойе. Еумй ъбчетыймус ртпгеуу, х лпфптпзп вщмй рпфпнлй, фп ьфй рпфпнлй уфбохф рпфпнлбнй "чуепвэезп ртедлб", ф.е. ртпгеууб, ъб- рхэеоопзп ртй чипде ч уйуфенх. Ъбчетыеойе ртпгеууб-рпфпнлб ртй- чпдйф л ртпвхцдеойа ртпгеууб-ртедлб, лпфптщк рпмхюбеф йожптнб- гйа п фпн, лпфптщк йъ ртпгеуупч-рпфпнлпч ъбчетыйм учпе ухэеуф- чпчбойе й лпд езп ъбчетыеойс. Рпуме ьфпзп ртпгеуу-ртедпл хойю- фпцйф чуе умедщ ухэеуфчпчбойс ртпгеууб-рпфпнлб й ртпдпмцйф чщ- рпмоеойе учпек ртпзтбннщ. Лбцдщк ртпгеуу ртй езп рптпцдеойй рпмхюбеф хойлбмшощк оп- нет, объщчбенщк PID (process ID). Опнет езп ртпгеууб-ртедлб - PPID (parent PID). Ьфй опнетб нпцоп рпмхюйфш, чпурпмшъпчбчыйуш лпнбодпк ps (ун. 3.14).   2. Бфтйвхфщ ртпгеуупч. Ртй рптпцдеойй опчпзп ртпгеууб, рпумедойк обумедхеф пф ртпгеууб-ртедлб впмшыйоуфчп бфтйвхфпч. Л ойн пфопусфус пфлтщфще жбкмщ, ретенеооще плтхцеойс, фелхэбс дйтелфптйс, йдеофйжйлбфпт рпмшъпчбфемс й йдеофйжйлбфпт зтхррщ й ф.д. 2.1. Обумедхенще жбкмщ. Чуе жбкмщ, лпфптще вщмй пфлтщфщ ч ртпгеууе, йъдбчыен уйу- фенощк чщъпч fork, вхдхф хобумедпчбощ рпфпнлпн. Еумй лблпк-мй- вп йъ ьфйи ртпгеуупч теыйф ъблтщфш пдйо йъ фблйи жбкмпч, фп дпуфхрб л жбкмх мйыйфус фпмшлп по убн. Жбкм нпцеф вщфш дпуфхр- ощн й впмее юен дчхн ртпгеуубн-тпдуфчеоойлбн, еумй рптпцдеоп впмее пдопзп ртпгеууб-рпфпнлб. Ртй ьфпн чуе пой тбъдемсаф едйоуфчеоощк хлбъбфемш об жбкм. 2.2. Йдеофйжйлбфпт рпмшъпчбфемс (UID). й йдеофйжйлбфпт зтхррщ (GID) Дмс лбцдпзп ртпгеууб пртедемеощ ртбчб дпуфхрб л тбъмйюощн жбкмбн у рпнпэша йдеофйжйлбфптб рпмшъпчбфемс й йдеофйжйлбфптб зтхррщ, лпфптще йнееф рпмшъпчбфемш, ъбрхуфйчыйк ртпгеуу (хъобфш йи нпцоп лпнбодпк id (ун. 3.12)). Ьфй йдеофйжйлбфптщ счмсафус гемщнй юйумбнй й йи хуфбопчлб ртпйъчпдйфус ч нпнеоф чипдб ч уйуфенх. Йдеофйжйлбфпт рпмшъпчбфемс й йдеофйжйлбфпт зтхррщ, ху- фбопчмеооще дмс ртпгеууб, ретедбафус йн рп обумедуфчх чуен рп- фпнлбн. Об убнпн деме у лбцдщн ртпгеуупн, лтпне декуфчхаэезп йдео- фйжйлбфптб рпмшъпчбфемс й декуфчхаэезп йдеофйжйлбфптб зтхррщ, учсъбощ еэе тебмшощк йдеофйжйлбфпт рпмшъпчбфемс й тебмшощк йдеофйжйлбфпт зтхррщ. Ретчще дчб йурпмшъхафус ртй ртпчетле тбъ- теыеойс об дпуфхр л жбкмбн, б чфптще дчб пртедемсаф рпмшъпчбфе- мс, пф йнеой лпфптпзп чщуфхрбеф ртпгеуу. Ч впмшыйоуфче умхюбеч ьфй йдеофйжйлбфптщ упчрбдбаф. Пдоблп нпзхф вщфш хуфбопчмеощ фблйе лпдщ ъбэйфщ жбкмб, юфп ртй пвтбэе- ойй л оенх (обрт. mail, rmdir) ретехуфбобчмйчбефус мйвп тебмш- ощк йдеофйжйлбфпт рпмшъпчбфемс, мйвп тебмшощк йдеофйжйлбфпт зтхррщ, мйвп й фпф й дтхзпк, й, фблйн пвтбъпн, рпмшъпчбфемш рп- мхюбеф чпънпцопуфш ртпйъчпдйфш декуфчйс пф йнеой рпмшъпчбфемс у впмшыйнй ртбчбнй.   3. Лпнбодщ UNIXб. awk - лпофелуфощк рпйул й ртепвтбъпчбойе фелуфб bc - бтйжнефйюеулйк същл дмс чщюйумеойк у ртпйъчпмшопк фпюопуфша chmod - йънеоеойе ртбч дпуфхрб л жбкмбн cmp - утбчоеойе упдетцйнпзп дчхи жбкмпч comm - рпуфтпюопе утбчоеойе дчхи фелуфпчщи жбкмпч dc - ртпуфще бтйжнефйюеулйе чщюйумеойс у ртпйъчпмшопк фпю- опуфша echo - чщчеуфй бтзхнеофщ лпнбодопк уфтплй об уфбодбтфощк чщ- чпд factor - тбъмпцеойе гемпзп юйумб об ртпуфще упнопцйфемй file - пртедемеойе фйрб жбкмб find - рпйул жбкмпч grep - лпофелуфощк рпйул ч фелуфпчпн жбкме id - пртедемеойе йдеофйжйлбфптб рпмшъпчбфемс й йдеофйжйлб- фптб зтхррщ kill - бчбтйкопе ъбчетыеойе ртпгеууб ps - йожптнбгйс п упуфпсойй ртпгеуупч sort - уптфйтпчлб й/ймй умйсойе жбкмпч wc - рпдуюеф лпмйюеуфчб уйнчпмпч, умпч й уфтпл ч жбкме 3.1. Лпофелуфощк рпйул й ртепвтбъпчбойе фелуфб. Жптнбф лпнбодщ: awk [ -Fc ] [ -f ] [ <ртпз> ] [ <рбтбнефтщ> ] [ <жбкмщ> ] awk улбойтхеф лбцдщк чипдопк жбкм ч рпйуле уфтпл, хдпчмеф- чптсаэйи лблпнх-мйвп йъ ыбвмпопч, пртедемеоощи ч <ртпз>. Ыбвмп- ощ нпзхф мйвп вщфш ъбдбощ оерпутедуфчеооп ч лбюеуфче <ртпз>, мйвп вщфш ъбрйубощ ч жбкм progfile й пвтбвпфбощ лпнбодпк awk -f progfile [ <жбкмщ> ] Еумй ыбвмпощ хлбъбощ ч лпнбодопк уфтпле, фп пой дпмцощ вщфш ъблмаюеощ ч пдйобтоще лбчщюлй ('). awk нпзхф вщфш ретедбощ рб- тбнефтщ ч жптне x=... y=... й ф.д. Ртйнетщ ун. ч лпоге прйуб- ойс. Жбкмщ юйфбафус ч хлбъбоопн рптсдле. Еумй ое хлбъбоп ой пд- опзп жбкмб, фп уфтплй ччпдсфус йъ уфбодбтфопзп ччпдб. Жбкм у йнеоен "-" пвпъобюбеф уфбодбтфощк ччпд. Ччпд дмс awk демйфус об ъбрйуй, тбъдемсенще урегйбмшощн тбъдемйфемен. Рп хнпмюбойа ьфп , й фпздб awk пвтбвб- фщчбеф ччпд рпуфтпюоп. Тбъдемйфемш ъбрйуек нпцоп йънеойфш, ре- тепртедемйч ретенеооха RS. Лбцдбс ъбрйуш демйфус об рпмс, пзтбойюеооще тбъдемйфемснй рпмек. Рп хнпмюбойа ьфп ртпвемщ. Ьфпф тбъдемйфемш нпцоп йъне- ойфш, хуфбопчйч ретенеооха FS тбчопк уйнчпмх c ймй хлбъбч жмбз -Fc. Ыбвмпощ лпнбодопк уфтплй дпуфхрощ рп йнеобн $1, $2, ...; $0 - чус чипдобс уфтплб. Еумй тбъдемйфемш ъбрйуек охмечпк, фп об убнпн деме йн счмсефус рхуфбс уфтплб. Дмс лбцдпзп пвтбъгб, хлбъбоопзп ч <ртпз>, пртедемсефус декуфчйе. Хлбъбоопе декуфчйе вхдеф ртпйъчедеоп у лбцдпк уфтп- лпк, ймй рпмен чохфтй оее, лпфптбс хдпчмефчптсеф ьфпнх ыбвмпох. Претбфпт <пвтбъег-декуфчйе> йнееф чйд: <ыбвмпо> { <декуфчйе> } Лбцдбс уфтплб ртпчетсефус об упчрбдеойе у лбцдщн ыбвмпопн. Ртй лбцдпн упчрбдеойй чщрпмосафус чуе хлбъбооще декуфчйс. Рпуме утбчоеойс уп чуенй пвтбъгбнй ччпдйфус умедхаэбс уфтплб й ртп- геуу утбчоеойс рпчфптсефус. Нпцеф вщфш прхэео мйвп ыбвмпо, мйвп декуфчйе, оп ое пвб чнеуфе. Еумй дмс дбоопзп ыбвмпоб ое хлбъбощ декуфчйс, фп уфтплб ртпуфп лпрйтхефус ч чщчпд. Еумй дмс декуф- чйс ое пртедемео ыбвмпо, фп поп вхдеф чщрпмосфшус дмс лбцдпк чипдопк уфтплй. Уфтплй, ое хдпчмефчптсаэйе ой пдопнх пвтбъгх, йзоптйтхафус. Декуфчйе еуфш рпумедпчбфемшопуфш претбфптпч. Фбл лбл ыбв- мпощ й декуфчйс нпзхф вщфш прхэеощ, фп, юфпвщ тбъмйюбфш йи ч ртпзтбнне, рпумедойе обдп втбфш ч жйзхтоще улпвлй. Претбфпт еуфш пдоб йъ лпоуфтхлгйк: if ( <хумпчйе> ) <претбфпт> [ else <претбфпт> ] while ( <хумпчйе> ) <претбфпт> for ( <чщтбцеойе>; <хумпчйе>; <чщтбцеойе> ) <претбфпт> break continue [ <претбфпт> ] ... <ретенеообс> = <чщтбцеойе> print [ <урйупл чщтбцеойк> ] [ > <чщтбцеойе> ] printf <жптнбф> [ , <урйупл чщтбцеойк> ] [ > <чщтбцеойе> ] next (ртпрхуфйфш пуфбчыйеус ыбвмпощ й ретекфй л умедхаэек уфтпле) exit (ртпрхуфйфш пуфбчыйеус уфтплй) Претбфптщ ъбчетыбафус фпюлпк у ъбрсфпк, ймй ртбчпк улпвлпк. Рхуфпк <урйупл чщтбцеойк> пъобюбеф чуа уфтплх. Чщтбцеойс уфтпсфус йъ уфтплпчщи ймй юйумпчщи чемйюйо у рпнпэша претбгйк +, -, *, /, % й лполбфеобгйй (пвпъобюбефус ртпвемпн). Ч чщтбцеойси фблце нпцоп йурпмшъпчбфш претбфптщ същлб C: ++, --, +=, -=, *=, /=, %=. Ретенеооще йойгйбмйъйтхафус рхуфпк уфтплпк. Ретенеооще нпзхф фблце вщфш ьменеофбнй нбууйчб (пвпъ- обюбефус x[i]) ймй рпмснй. Йоделущ нбууйчб ое пвсъбощ вщфш ге- мщнй. Лпоуфбофоще уфтплй дпмцощ вщфш ъблмаюеощ ч дчпкоще лбчщю- лй ("). Претбфпт print чщчпдйф учпй бтзхнеофщ ч уфбодбтфощк чщчпд (ймй ч жбкм, еумй пртедемеоб юбуфш '> <чщтбцеойе>'), тбъдемсс йи фелхэйн тбъдемйфемен рпмек й ъбчетыбс лбцдха ъбрйуш фелхэйн тбъдемйфемен ъбрйуек. Претбфпт printf дембеф фп це убнпе, оп рпд хртбчмеойен жптнбфб (жптнбф упчрбдбеф у жптнбфпн жхолгйй printf същлб C). Чуфтпеообс жхолгйс length чпъчтбэбеф дмйох учпезп бтзхнео- фб, тбуунбфтйчбс езп лбл уфтплх; еумй бтзхнеоф прхэео, фп чпъч- тбэбефус дмйоб фелхэек уфтплй. Пртедемеощ фблце умедхаэйе чуфтпеооще жхолгйй: exp, log, sqrt й int (int чпъчтбэбеф гемха юбуфш учпезп бтзхнеофб). Жхолгйс substr(s, m, n) чпъчтбэбеф n-уйнчпмшоха рпдуфтплх уфтплй s, обюйобс у рпъйгйй m. Жхолгйс sprintf(<жптнбф>, <чщтбцеойе>, <чщтбцеойе>, ...) ртепвтбъхеф чщтбцеойс ч уппфчефуфчйй у хлбъбоощн жптнбфпн (ун. printf) й чпъчтбэбеф рпмхюеооха уфтплх. Ыбвмпо - ьфп мпзйюеулбс лпнвйобгйс (у рпнпэша !, || ,&& й улпвпл) тезхмстощи чщтбцеойк (ун. grep (egrep)), ъблмаюеоощи ч умьый (/), й пфопуйфемшощи чщтбцеойк (ун. ойце). Пфдемшопе те- зхмстопе чщтбцеойе ч ыбвмпое пфопуйфус лп чуек уфтпле. Тезхмст- още чщтбцеойс нпзхф вщфш й ч пфопуйфемшощи чщтбцеойси. Ыбвмпо нпцеф упуфпсфш йъ дчхи пвтбъгпч, тбъдемеоощи ъбрсфпк; ртй ьфпн хлбъбооще декуфчйс чщрпмосафус дмс чуеи уфтпл нецдх уфтплпк, хдпчмефчптсаэек ретчпнх ыбвмпох, й уфтплпк, хдпчмефчптсаэек чфптпнх ыбвмпох. Пфопуйфемшопе чщтбцеойе - ьфп пдоб йъ умедхаэйи лпоуфтхл- гйк: <чщтбцеойе> <прет_утбчо> <тезхм_чщтбцеойе> <чщтбцеойе> <прет_пфопыеойс> <чщтбцеойе> зде <прет_пфопыеойс> - мавбс йъ ыеуфй претбгйк пфопыеойс същлб C, <прет_утбчо> - ьфп ~ (упдетцйфус) ймй !~ (ое упдетцйфус). <Хумпчйе> - ьфп бтйжнефйюеулпе чщтбцеойе, пфопуйфемшопе чщтбцеойе ймй йи мпзйюеулбс лпнвйобгйс. Дмс чщрпмоеойс лблйи-мйвп декуфчйк ретед ретчпк ймй рпуме рпумедоек уфтплй пртедемеощ урегйбмшоще ыбвмпощ BEGIN й END. Обртйнет, дмс йурпмшъпчбойс уйнчпмб c ч лбюеуфче тбъдемйфемс рпмек нпцоп мйвп ъбрхуфйфш ртпзтбннх у жмбзпн -Fc, мйвп хлбъбфш BEGIN { FS = c } Пуфбмшоще урегйбмшоще ретенеооще: NF - лпмйюеуфчп рпмек ч фелхэек ъбрйуй NR - рптсдлпчщк опнет фелхэек ъбрйуй FILENAME- йнс жбкмб, йъ лпфптпзп ч дбоощк нпнеоф ртпйъ- чпдйфус ччпд OFS - тбъдемйфемш рпмек ртй чщчпде (рп хнпмюбойа - ртпвем) ORS - тбъдемйфемш ъбрйуек ртй чщчпде (рп хнпмюбойа ) OFMT - жптнбф чщчпдб юйуем (рп хнпмюбойа %.6g) Ртйнетщ. 1) Чщчеуфй уфтплй жбкмб first, ч лпфптщи впмее 72 уйнчпмпч awk 'length > 72' first 2) Чщчеуфй ретчще дчб рпмс жбкмб second ч пвтбфопн рптсдле awk '{ print $2, $1 }' second 3) Умпцйфш юйумб, уфпсэйе ч ретчпн уфпмвге жбкмб third, й чщ- чеуфй ухннх й утедоее Ретчщк чбтйбоф: Ч жбкме prog: { s += $1 } END { print "sum is", s, "average is", s/NR } Лпнбодобс уфтплб: awk -f prog third Чфптпк чбтйбоф: awk '{ s += $1 } END { print "sum -",s,"average -",s/NR }' third 4) Чщчеуфй рпмс жбкмб fourth ч пвтбфопн рптсдле awk '{ for (i = NF; i > 0; --i) print $i }' fourth 5) Чщчеуфй чуе уфтплй жбкмб fifth, обипдсэйеус нецдх рбтбнй start/stop awk '/start/,/stop/' fifth 6) Чщчеуфй фе уфтплй жбкмб sixth, х лпфптщи ретчпе рпме ое упч- рбдбеф у ретчщн рпмен ртедщдхэек уфтплй awk '$1 != prev { print; prev = $1 }' sixth 7) Тбуреюбфбфш жбкм seventh, чуфбчмсс опнет уфтбойгщ, обюйобс у рсфпк, рпуме умпчб "Page" Ч жбкме program: /Page/ { $2 = n++; } { print } Лпнбодобс уфтплб: awk -f program n=5 seventh 3.2. Бтйжнефйюеулйк същл дмс чщюйумеойк. у ртпйъчпмшопк фпюопуфша Жптнбф лпнбодщ: bc [ -c ] [ -l ] [ <жбкм> ... ] bc - йофетблфйчощк ртпгеуупт дмс C-рпдпвопзп същлб, рпъчп- мсаэезп ртпйъчпдйфш бтйжнефйлх оепзтбойюеоопк фпюопуфй. Ччпд ртпйъчпдйфус йъ хлбъбоощи жбкмпч, б ъбфен уп уфбодбтфопзп ччп- дб. Жмбз -l пъобюбеф рпдлмаюеойе нбфенбфйюеулпк вйвмйпфелй дмс претбгйк ртпйъчпмшопк фпюопуфй. Ойце прйущчбефус уйофблуйу същлб bc. L пъобюбеф мавха йъ вхлч [a-z], E - чщтбцеойе, S - претбфпт. Лпннеофбтйй уфтплй, ъблмаюеооще ч /* й */. Йнеоб ртпуфбс ретенеообс: L ьменеоф нбууйчб: L [ E ] умпчб "ibase","obase","scale" Дтхзйе претбодщ юйумб ртпйъчпмшопк дмйощ, чпънпцоп уп ъоблпн й деусфйю- опк фпюлпк ( E ) sqrt ( E ) length ( E ) лпмйюеуфчп ъобюбэйи деусфйюощи гйжт scale ( E ) лпмйюеуфчп деусфйюощи гйжт рпуме ъбрс- фпк L ( E, ..., E ) Претбгйй + - * / % ^ (% - пуфбфпл, ^ - чпъчедеойе ч уфереош) ++ -- (хчемйюеойе й хнеошыеойе об 1; ртежйлу- още й рпуфжйлуоще) == <= >= != <> = =+ =- =* =/ =% Претбфптщ E { S; ... ; S } if ( E ) S while ( E ) S for ( E; E; E ) S рхуфпк претбфпт break quit Пртедемеойе жхолгйй define L ( L, ..., L ) { auto L, ..., L S; ...; S return ( E ) } Жхолгйй, пртедемеооще ч -l вйвмйпфеле: s(x) - sin(x) c(x) - cos(x) e(x) - exp(x) l(x) - ln(x) a(x) - arctan(x) j(n,x) - жхолгйс Веууемс Чуе бтзхнеофщ жхолгйсн ретедбафус рп ъобюеойа. Ъобюеойе претбфптб, счмсаэезпус чщтбцеойен, реюбфбефус, еумй по ое счмсефус юбуфша претбфптб ртйучбйчбойс. Претбфптщ нпзхф тбъдемсфшус лбл ; фбл й . Ртйучбйчбойе scale пртедемсеф фпюопуфш чщрпмоеойс претбгйк. Ртйучбйчбойе ibase й obase пртедемсеф уйуфенх уюйумеойс дмс ччпдб й чщчпдб уппф- чефуфчеооп. Пдоб й фб це вхлчб нпцеф вщфш пдопчтенеооп йурпмшъпчбоб лбл йнс ртпуфпк ретенеоопк, йнс нбууйчб й йнс жхолгйй. Чуе ре- тенеооще счмсафус змпвбмшощнй. Ретенеооще, прйубооще лбл "auto", упъдбафус ртй чипде ч жхолгйа. Ртй йурпмшъпчбойй нбууй- чпч ч лбюеуфче бтзхнеофпч жхолгйк ймй ртй прйубойй йи лбл бчфп- нбфйюеулйи, ъб йнеоен нбууйчб нпзхф умедпчбфш рхуфще лчбдтбфоще улпвлй. bc - ртертпгеуупт дмс dc, лпфптщк по ъбрхулбеф бчфпнбфй- юеулй, еумй фпмшлп ое хлбъбо жмбз -c (фпмшлп лпнрймсгйс). Ртйнет. Чщчеуфй sqrt(x) дмс ретчщи 10 гемщи юйуем. /* пртедемсефус фпюопуфш чщюйумеойк */ scale = 20 /* пртедемсефус жхолгйс */ define r(a) { auto x,y y = a + 1 x = y + 1 while ( y < x ) { x = y y = 0.5 * ( x + a / x ) } return (y) } /* чщюйумсефус ъобюеойе */ for ( i = 1; i <= 10; i++ ) r(i) /* чщипд */ quit Ъбнеюбойс. Претбфпт for дпмцео йнефш чуе фтй E. Quit йофетртефйтхефус ртй ччпде, б ое ртй чщрпмоеойй. 3.3. chmod Йънеоеойе ртбч дпуфхрб л жбкмбн. Жптнбф лпнбодщ: chmod ртбчб жбкмщ Тецйн дпуфхрб л хлбъбоощн жбкмбн йънеосефус ч уппфчефуфчйй у хлбъбоощнй ртбчбнй. Ртбчб нпзхф вщфш хлбъбощ ч бвупмафопн ймй ч уйнчпмшопн чйде. Бвупмафощк чйд - чпушнетйюопе юйумп, счмсаэееус мпзйюеулйн ЙМЙ умедхаэйи тецйнпч: 04000 - ртй чщрпмоеойй ретехуфбопчйфш UID рпмшъпчбфе- мс об UID жбкмб 02000 - ртй чщрпмоеойй ретехуфбопчйфш GID рпмшъпчбфе- мс об GID жбкмб 00400 - дпуфхрео дмс юфеойс чмбдемшген 00200 - дпуфхрео дмс ъбрйуй чмбдемшген 00100 - дпуфхрео дмс чщрпмоеойс чмбдемшген 00040 - дпуфхрео дмс юфеойс юмеобнй зтхррщ 00020 - дпуфхрео дмс ъбрйуй юмеобнй зтхррщ 00010 - дпуфхрео дмс чщрпмоеойс юмеобнй зтхррщ 00004 - дпуфхрео дмс юфеойс ртпюйнй рпмшъпчбфемснй 00002 - дпуфхрео дмс ъбрйуй ртпюйнй рпмшъпчбфемснй 00001 - дпуфхрео дмс чщрпмоеойс ртпюйнй рпмшъпчбфемснй Обртйнет, юфпвщ хуфбопчйфш ртбчб, рпъчпмсаэйе чмбдемшгх юйфбфш й рйубфш ч жбкм, б юмеобн зтхррщ й ртпюйн рпмшъпчбфемсн фпмшлп юйфбфш, обдп умпцйфш 0400, 0200, 0040 й 0004. Фблйн пв- тбъпн лпнбодб вхдеф йнефш чйд: chmod 644 file Уйнчпмшощк чйд: [ <лпнх> ] <прет> <ртбчп> Юбуфш <лпнх> еуфш лпнвйобгйс вхлч u (чмбдемег), g (зтхррб) й o (ртпюйе). Еумй юбуфш <лпнх> прхэеоб ймй хлбъбоп a, фп ьфп ьлчйчбмеофоп ugo. <прет> нпцеф вщфш: + - тбътеыйфш ртбчп дпуфхрб, - - ъбрте- фйфш ртбчп дпуфхрб, = - ъбртефйфш чуе ртбчб дпуфхрб дмс хлбъбо- ощи лбфезптйк рпмшъпчбфемек. <ртбчп> - мавбс лпнвйобгйс йъ вхлч r (юйфбфш), w (рйубфш), x (чщрпмосфш), s (хуфбобчмйчбфш UID ймй GID). Прхуфйфш юбуфш <ртбчп> нпцоп фпмшлп еумй <прет> еуфш = дмс ъбртеэеойс чуеи ртбч. Еумй обдп удембфш впмее пдопзп хлбъбойс пв йънеоеойй ртбч, фп, ртй йурпмшъпчбойй уйнчпмшопзп урпупвб ъбдбойс ртбч дпуфхрб, ч <ртбчб> ое дпмцоп вщфш ртпвемпч, б хлбъбойс дпмцощ тбъдемсфш- ус ъбрсфщнй. Обртйнет, лпнбодб chmod u+w,go+x file дпвбчйф дмс чмбдемшгб ртбчп рйубфш ч жбкм, б дмс юмеопч зтхррщ й ртпюйи рпмшъпчбфемек - ртбчп чщрпмосфш жбкм. Ртбчб хуфбобчмй- чбафус ч хлбъбоопк рпумедпчбфемшопуфй (умечб обртбчп). Йънеойфш ртбчб дпуфхрб л жбкмх нпцеф фпмшлп езп чмбдемег (ймй ухретрпмшъпчбфемш). Дмс ртпунпфтб ртбч дпуфхрб й лпофтпмс ртй йи йънеоеойй йурпмшъхкфе лпнбодх ls -l file (ртбчб ретехуфбопчлй UID й GID пфнеюбафус вхлчпк s об неуфе уп- пфчефуфчхаэек вхлчщ x: нбмеошлпк вхлчпк s, еумй уппфчефуфчхаэбс лбфезптйс рпмшъпчбфемек йнееф ртбчп x, й впмшыпк S - еумй ое йнееф). Ртйнетщ. Рхуфш жбкм file йнееф ртбчб: -rw-rw-rw-, фп еуфш дпуфхрео чуен об юфеойе й ъбрйуш. 1) Ъбртефйфш ъбрйуш ч жбкм дмс ртпюйи рпмшъпчбфемек chmod o-w file ( -rw-rw-r-- ) 2) Удембфш жбкм чщрпмосенщн chmod +x file ( -rwxrwxr-x ) 3) Мйыйфш юмеопч зтхррщ чуеи ртбч об дпуфхр л жбкмх, ъб йулма- юеойен юфеойс chmod g=+r file ( -rwx-w-r-x ) 4) Тбътеыйфш ретехуфбобчмйчбфш UID рпмшъпчбфемс об UID жбкмб chmod u+s file ( -rws-w-r-x ) 3.4. Утбчоеойе упдетцйнпзп дчхи жбкмпч. Жптнбф лпнбодщ: cmp [-l] [-s] file1 file2 Утбчойчбафус жбкмщ file1 й file2 (еумй file1 ъбнеоео ъоб- лпн -, фп йурпмшъхефус уфбодбтфощк ччпд). Рп хнпмюбойа, cmp ое дбеф ойлблйи уппвэеойк, еумй жбкмщ упчрбдбаф; еумй жбкмщ пфмй- юбафус, фп уппвэбафус опнет уфтплй й рпъйгйс ч оек, ч лпфптпк обипдйфус ретчщк оеупчрбдбаэйк уйнчпм. Еумй пдйо йъ жбкмпч сч- мсефус обюбмпн дтхзпзп, фп чщдбефус уппвэеойе: cmp: EOF on <йнс жбкмб> зде <йнс жбкмб> - впмее лптпфлйк жбкм. Объобюеойе лмаюек: -l - чщчеуфй опнет вбкфб (деусфйюопе) й тбъмйюбаэйеус вбк- фщ (чпушнетйюопе) дмс лбцдпзп оеуппфчефуфчйс -s - ойюезп ое реюбфбфш, б фпмшлп четохфш лпд чпъчтбфб: еумй жбкмщ упчрбдбаф - 0, еумй тбъмйюбафус - 1, еумй ртпрхэео бтзхнеоф ймй дпуфхр дмс юфеойс л пдопнх йъ жбкмпч ъбртеэео - 2. 3.5. Рпуфтпюопе утбчоеойе дчхи фелуфпчщи жбкмпч. Жптнбф лпнбодщ: comm [ - [ 123 ] ] file1 file2 Comm юйфбеф жбкмщ file1 й file2 й чщчпдйф теъхмшфбфщ ч фтй лпмполй: 1. Уфтплй, йнеаэйеус фпмшлп ч file1 2. Уфтплй, йнеаэйеус фпмшлп ч file2 3. Уфтплй, йнеаэйеус ч пвпйи жбкмби Ъобл - об неуфе йнеой жбкмб пъобюбеф уфбодбтфощк ччпд. Жмбзй 1,2 ймй 3 рпдбчмсаф чщчпд уппфчефуфчхаэйи лпмпопл. Фбл, comm -12 чщчпдйф уфтплй, пвэйе дмс дчхи жбкмпч; comm -23 - йнеаэйеус фпмшлп ч file1, оп пфухфуфчхаэйе ч file2; comm -123 ое чщчпдйф ойюезп. 3.6. Ртпуфще бтйжнефйюеулйе чщюйумеойс у ртпйъчпмшопк фпюопуфша. Жптнбф лпнбодщ: dc [ жбкм ] dc - рблеф дмс бтйжнефйюеулйи чщюйумеойк у ртпйъчпмшопк фпюопуфша. Пвщюоп по претйтхеф ч деусфйюопк уйуфене у гемщнй, пдоблп нпцоп ъбдбфш уйуфенщ уюйумеойс дмс ччпдб, дмс чщчпдб, фпюопуфш чщюйумеойк. Пвэбс уфтхлфхтб dc - уфелпчщк лбмшлхмсфпт, йурпмшъхаэйк пвтбфоха рпмшулха ъбрйуш. Еумй бтзхнеоф хлбъбо, фп уобюбмб ччпд ртпйъчпдйфус йъ жбкмб, б рпфпн йъ уфбодбтфопзп ччпдб. bc, ртертпгеуупт дмс dc, рпддетцйчбеф йожйлуоха опфбгйа й C-рпдпвощк уйофблуйу дмс пртедемеойс жхолгйк й хртбчмсаэйи уфтхлфхт ч ртпзтбннби (ун. 3.2). dc тбурпъобеф умедхаэйе лпоуфтхлгйй: <юйумп> - ъобюеойе юйумб рпнеэбефус ч уфел. <юйумп> - оертетщч- обс уфтплб гйжт 0-9. Ч обюбме ее нпцеф уфпсфш ъобл рпдюетлйчбойс (_) дмс ччпдб пфтйгбфемшопзп юйумб. <юйумп> нпцеф упдетцбфш деусфйюоха фпюлх. +-/*%^ - четиойе дчб юйумб уфелб улмбдщчбафус (+), чщюйфбафус (-), хнопцбафус (*), ветефус пуфбфпл (%) ймй чфптпе пф четыйощ юйумп чпъчпдйфус ч уфереош, пртедемсенха юйумпн, обипдсэйнус ч четыйое уфелб. Пвб претбодб йъчмелбафус йъ уфелб й теъхмшфбф рпнеэбефус пвтбфоп ч уфел. Рплбъбфемш уфереой дпмцео вщфш гемщн юйумпн. sx - йъчмелбефус четыйоб уфелб й рпнеэбефус ч тезйуфт у йнеоен x, зде x - мавпк уйнчпм. Еумй хлбъбоп S, фп x тбуунбфтйчбефус лбл уфел й теъхмшфбф рпнеэбефус ч езп четыйох. lx - ъобюеойе, итбосэееус ч тезйуфте x, рпнеэбефус ч уфел. Тезйуфт x ое неосефус. Йъобюбмшоп чуе тезйуфтщ йойгй- бмйъйтхафус охмен. Еумй хлбъбоп L, фп тезйуфт тбуу- нбфтйчбефус лбл уфел й езп четыйоб йъчмелбефус й рп- неэбефус ч змбчощк уфел. d - четыйоб уфелб хдчбйчбефус p - чщчпдйфус четыйоб уфелб (ое йънеоссуш). P йъчмелбеф четыйох уфелб й чщчпдйф ее лбл уфтплх. f - реюбфбеф чуе ьменеофщ уфелб. q - ъбчетыбеф тбвпфх ртпзтбннщ. x - четыйоб уфелб тбуунбфтйчбефус лбл лпнбодб дмс dc й чщрпмосефус X - четыйоб уфелб ъбнеосефус лпмйюеуфчпн гйжт ч оек рпуме ъбрсфпк [ ... ] - уфтплб, ъблмаюеообс ч улпвлй, рпнеэбефус ч четыйох уфелб. x =x -дчб четиойи ьменеофб уфелб йъчмелбафус й утбчойчбаф- ус. Еумй пой хдпчмефчптсаф хлбъбоопнх хумпчйа, фп уп- детцйнпе тезйуфтб x тбуунбфтйчбефус лбл лпнбодб dc й чщрпмосефус. v - четиойк ьменеоф уфелб ъбнеосефус лчбдтбфощн лптоен йъ оезп. Еумй по вщм гемщн, фп лптеош фблце плтхзмсефус. ! - пуфбмшобс юбуфш уфтплй йофетртефйтхефус лбл лпнбодб shellб c - пюйуфйфш уфел i - четыйоб уфелб йъчмелбефус й йурпмшъхефус лбл пуопчб- ойе уйуфенщ уюйумеойс ртй ччпде. I рпнеэбеф йурпмшъх- енпе ртй ччпде пуопчбойе уйуфенщ уюйумеойс ч четыйох уфелб. o - четыйоб уфелб йъчмелбефус й йурпмшъхефус лбл пуопчб- ойе уйуфенщ уюйумеойс ртй чщчпде. O рпнеэбеф йурпмш- ъхенпе ртй чщчпде пуопчбойе уйуфенщ уюйумеойс ч чет- ыйох уфелб. k - йъчмелбефус четыйоб уфелб й йурпмшъхефус лбл оепфтй- гбфемшощк нбуыфбвощк нопцйфемш: лпмйюеуфчп ъоблпч рпуме ъбрсфпк ртй чщчпде, ртй хнопцеойй, демеойй й чпъчедеойй ч уфереош. z - ч уфел рпнеэбефус лпмйюеуфчп езп ьменеофпч Z - юйумп ч четыйое уфелб ъбнеосефус езп дмйопк (веъ хюе- фб деусфйюопк фпюлй й ъоблб нйоху). ? - уп уфбодбтфопзп ччпдб ччпдйфус пдоб уфтплб й йурпмос- ефус. Ртйнет. Чщчеуфй ретчще 10 ъобюеойк n! [la1+dsa*pla10>y]sy 0sa1 lyx Уппвэеойс x is unimplemented - x - чпушнетйюопе ъобюеойе stack empty - ч уфеле неошые ьменеофпч, юен фтевх- ефус Out of pushdown - уфел ретерпмоео Nesting Depth - умйылпн впмшыпк хтпчеош чмпцеоопуфй 3.7. Чщчеуфй бтзхнеофщ лпнбодопк уфтплй об уфбодбтфощк чщчпд. Лпнбодб echo чщчпдйф об уфбодбтфощк чщчпд учпй бтзхнеофщ, тбъдемсс йи ртпвембнй й ъблбоюйчбс уфтплх . Лтпне фп- зп, рпддетцйчбафус умедхаэйе дпзпчптеоопуфй: \b - хуфбопчйфш лхтупт ч мечщк четиойк хзпм ьлтбоб \c - ое ъблбоюйчбфш уфтплх \f - лпоег уфтбойгщ \n - ретечпд уфтплй \r - чпъчтбф лбтефлй \\ - вьлумеы \0xx - пф пдопк дп фтеи чпушнетйюощи гйжт, у 0 ч об- юбме, ртедуфбчмсаэйе лпд ASCII уйнчпмб 3.8. Тбъмпцеойе гемпзп юйумб об ртпуфще упнопцйфемй. Жптнбф лпнбодщ: factor [ <юйумп> ] Ртй ъбрхуле веъ бтзхнеофпч ччпдйф юйумб йъ уфбодбтфопзп ччпдб. Нблуйнбмшоп дпрхуфйнпе юйумп - 2ѓµѓ¶ (~ 7.2*10ѓ±ѓ¶). Ччпд пфтйгбфемшощи юйуем ртйчпдйф л уппвэеойа: Ouch! б оеюйумпчщи уйнчпмпч л ъбчетыеойа ртпзтбннщ. Чтенс чщюйумеойк ртпрптгйпобмшоп лптоа йъ юйумб й нблуй- нбмшоп, еумй юйумп счмсефус ртпуфщн ймй лчбдтбфпн ртпуфпзп. 3.9. Пртедемеойе фйрб жбкмб. Жптнбф лпнбодщ: file [ -f ffile ] <бтзхнеоф> ... Лпнбодб file ртпчпдйф уетйа феуфпч дмс лбцдпзп бтзхнеофб, уюйфбс езп йнеоен жбкмб, рщфбсуш лмбууйжйгйтпчбфш езп. Еумй жбкм фелуфпчщк, фп file рщфбефус рп ретчщн 512 вбкфбн пртеде- мйфш същл ртпзтбннйтпчбойс. Ртй ъбдбойй жмбзб -f умедхаэйк ъб ойн жбкм дпмцео упдет- цбфш урйупл жбкмпч, рпдмецбэйи йуумедпчбойа. 3.10. Рпйул жбкмпч. Жптнбф лпнбодщ: find <урйупл рпйулб> <чщтбцеойе> Find телхтуйчоп ртпунбфтйчбеф дйтелфптйй дмс лбцдпзп ьме- неофб урйулб рпйулб, пфщулйчбс жбкмщ, хдпчмефчптсаэйе мпзйюеу- лпнх <чщтбцеойа>, ъбрйубоопнх у рпнпэша ртйчедеоощи ойце ртйнй- фйчпч. Ч йи прйубойси n йурпмшъхефус лбл гемпе деусфйюопе юйу- мп, +n пъобюбеф впмшые, юен n, -n - неошые, юен n. -name <жбкм> йуфйоб, еумй фелхэйк жбкм хдпчмефчптсеф ыбвмпох <жбкм> -perm onum йуфйоб, еумй лпд ъбэйфщ жбкмб ч фпюопуфй тбчео onum (ун. chmod) -type c йуфйоб, еумй фйр жбкмб c, зде c - b, c, d, p, ймй f - вмпл- ймй уйнчпмшопптйеофйтпчбоощк уре- гйбмшощк жбкм, дйтелфптйс, лбобм (pipe) ймй пвщюощк жбкм -links n йуфйоб, еумй жбкм йнееф n учсъек -user uname йуфйоб, еумй UID жбкмб упчрбдбеф у uname -group gname йуфйоб, еумй GID жбкмб упчрбдбеф у gname -size n[c] йуфйоб, еумй жбкм ъбойнбеф n вмплпч (рп 512 вбкф). Еумй хлбъбоб вхлчб c, фп тбънет жбкмб ъбдбефус ч уйнчпмби -atime n йуфйоб, еумй жбкм ое юйфбмус ч рпумедойе n доек -mtime n йуфйоб, еумй жбкм ое нпдйжйгйтпчбмус ч рпумед- ойе n доек -ctime n йуфйоб, еумй ртбчб дпуфхрб л жбкмх ое неосмйуш ч рпумедойе n доек -exec cmd йуфйоб, еумй рпуме чщрпмоеойс лпнбодщ cmd чпъч- тбэбефус охмечпк лпд чпъчтбфб. Cmd нпцеф ъблбо- юйчбфшус фпюлпк у ъбрсфпк, лпфптбс дпмцоб вщфш ьлтбойтпчбоб. Бтзхнеоф лпнбодщ {} ъбнеосефус йнеоен фелхэезп жбкмб -ok cmd фп це, юфп й exec, ъб йулмаюеойен фпзп, юфп ретед чщрпмоеойен cmd ъбртбыйчбефус рпдфчетцде- ойе й cmd чщрпмосефус фпмшлп ртй пфчефе y -print чуездб йуфйоб; чщчпдйф йнс жбкмб (чщтбцеойе) йуфйоб, еумй йуфйооп ъблмаюеоопе ч улпвлй чщтб- цеойе (улпвлй дпмцощ вщфш ьлтбойтпчбощ) Ртйнйфйчщ нпзхф лпнвйойтпчбфшус у рпнпэша умедхаэйи претб- гйк (ч рптсдле хнеошыеойс ртйптйфефб): 1) Пфтйгбойе (! - хобтобс претбгйс NOT) 2) Лполбфеобгйс (претбгйс AND, пвпъобюбефус ртпвемпн) 3) Чщвпт (-п - претбгйс OR) Ртйнет. Хдбмйфш чуе жбкмщ у йнеобнй a.out ймй *.o, лпфптще ое пфлтщчбмйуш ч феюеойе оедемй: find / \( -name a.out -o -name '*.o' \) -atime +7 -exec rm {} \; 3.11. Лпофелуфощк рпйул ч фелуфпчпн жбкме. Лпофелуфощк рпйул ч фелуфпчпн жбкме чщрпмосаф фтй ртпзтбн- нщ: grep, egrep й fgrep. Жптнбф лпнбод: grep [ жмбзй ] чщтбцеойе [ жбкмщ ] egrep [ жмбзй ] [ чщтбцеойе ] [ жбкмщ ] fgrep [ жмбзй ] [ уфтплй ] [ жбкмщ ] Лпнбодщ ртпунбфтйчбаф чипдоще жбкмщ (рп хнпмюбойа уфбо- дбтфощк ччпд) ч рпйуле уфтпл, хдпчмефчптсаэйи ыбвмпох. Пвщюоп, лбцдбс обкдеообс уфтплб лпрйтхефус ч уфбодбтфощк чщчпд. Ыбвмпощ дмс grep нпзхф вщфш фпмшлп тезхмстощнй чщтбцеойснй (ун. "Йо- фетртефбфпт лпнбодопзп същлб shell); по йурпмшъхеф лпнрблфощк оедефетнйойтпчбоощк бмзптйфн. egrep йурпмшъхеф вщуфтщк дефетнй- ойтпчбоощк бмзптйфн й рпддетцйчбеф ч лбюеуфче ыбвмпопч впмее упчетыеооще тезхмстоще чщтбцеойс. Ыбвмпощ ч унщуме fgrep счмс- афус уфтплпчщнй лпоуфбофбнй; fgrep вщуфт й лпнрблфео. Ртпзтбннбнй пвтбвбфщчбафус умедхаэйе жмбзй: -v чщчпдсфус чуе уфтплй, лтпне хдпчмефчптсаэйи ыбвмпох -x чщчпдсфус фпмшлп хдпчмефчптсаэйе ыбвмпох уфтплй (фпмшлп дмс fgrep) -c чщчпдйфус фпмшлп лпмйюеуфчп хдпчмефчптсаэйи ыбвмпох уфтпл -i ртй утбчоеойй уюйфбфш впмшыйе й нбмеошлйе вхлчщ упчрб- дбаэйнй -l чщчпдйфш фпмшлп йнеоб жбкмпч, ч лпфптщи еуфш хдпчмефчп- тсаэйе ыбвмпох уфтплй -n ретед лбцдпк уфтплпк уфбчйфш ее опнет ч жбкме -b ретед лбцдпк уфтплпк уфбчйфш опнет вмплб, ч лпфптпн поб обкдеоб. Ьфп йурпмшъхефус дмс пртедемеойс вмплб об дйу- ле рп лпофелуфх -s рпдбчмсфш уппвэеойс пв пыйвлби, фйрб "оеухэеуфчхаэйк" ймй "ъблтщфщк дмс юфеойс жбкм" (фпмшлп дмс grep) -e чщтбцеойе фп це убнпе, юфп й пдйопюощк бтзхнеоф <чщтбцеойе>, оп хдпвоп, еумй <чщтбцеойе> обюйобефус уп ъоблб - (ое тб- впфбеф у grep) -f жбкм тезхмстопе чщтбцеойе (egrep) ймй урйупл уфтпл (fgrep) юйфбафус йъ жбкмб Чп чуеи умхюбси, йнс жбкмб, ч лпфптпн еуфш хдпчмефчптсаэйе ыбвмпох уфтплй, чщчпдйфус. Дмс ьлтбойтпчбойс уйнчпмпч $, *, [, ^, |, (, ) й \ мхюые чуезп ъблмаюбфш <чщтбцеойе> ч пдйобтоще лбчщюлй '...'. fgrep йэеф уфтплй, упдетцеэйе пдох йъ <уфтпл>. egrep тбуунбфтйчбеф тезхмстоще чщтбцеойс фбл це, лбл й shell (ун.) (лтпне \( й \) ), оп, лтпне фпзп: 1. Тезхмстопе чщтбцеойе, ъблбоюйчбаэееус ъоблпн +, пъобюбеф пд- оп ймй впмее чипцдеойе езп ч тезхмстопе чщтбцеойе. 2. Тезхмстопе чщтбцеойе, ъблбоюйчбаэееус ъоблпн ?, пъобюбеф пд- оп ймй ой пдопзп чипцдеойе езп ч тезхмстопе чщтбцеойе. 3. Дчб тезхмстощи чщтбцеойс, тбъдемеооще ъоблпн | ймй , хдпчмефчптсаф уфтпле, лпфптпк хдпчмефчптсеф пдйо йъ ойи. 4. Тезхмстопе чщтбцеойе дмс зтхррйтпчбойс нпцеф ъблмаюбфшус ч улпвлй. egrep ое пвтбвбфщчбеф лпоуфтхлгйй фйрб [a-z]. Еумй вщмб рпмхюеоб ипфс вщ пдоб уфтплб, хдпчмефчптсаэбс ыбвмпох, чпъчтбэбефус лпд ъбчетыеойс 0, еумй ое обкдеоп ой пд- опк фблпк уфтплй - 1, ртй обмйюйй уйофблуйюеулйи пыйвпл ймй ртй обмйюйй жбкмб, оедпуфхропзп дмс юфеойс, (дбце еумй вщмй обкдеощ хдпчмефчптсаэйе ыбвмпох уфтплй) - 2. 3.12. Пртедемеойе йдеофйжйлбфптб рпмшъпчбфемс й. йдеофйжйлбфптб зтхррщ Жптнбф лпнбодщ: id Лпнбодб id чщдбеф об уфбодбтфощк чщчпд уппвэеойе, упдетцб- эее UID, GID й уппфчефуфчхаэйе фелуфпчще йнеоб дмс фелхэезп ртпгеууб. 3.13. Бчбтйкопе ъбчетыеойе ртпгеууб. Жптнбф лпнбодщ: kill [ -<опнет уйзобмб> ] pid ... kill рпущмбеф уйзобм 15 хлбъбоопнх ртпгеуух. Фблйн урпуп- впн пвщюоп нпцоп ъбчетыйфш ртпгеуу, лпфптщк ое пфмбчмйчбеф ймй ое йзоптйтхеф уйзобмщ. Опнетб ртпгеуупч нпцоп хъобфш рп лпнбоде ps (ун. 3.14). Опнет буйоитпооп ъбрхэеоопзп ртпгеууб уппвэбефус shellпн ртй езп ъбрхуле. Ртпгеуу, лпфптпнх рпущмбефус уйзобм, дпмцео ртйобдмецбфш рпмшъпчбфема. Еумй опнет уйзобмб хлбъбо счоп, фп чнеуфп уйзобмб 15 рпущмбефус по. Лпнбодб kill -9 ... хвйчбеф ртпгеуу, еумй, лпоеюоп, дмс хвйкуфчб ичбфбеф ртбч. (П опнетби уйзобмпч ун. "Йофетртефбфпт лпнбодопзп същлб shell") 3.14. Йожптнбгйс п упуфпсойй ртпгеуупч. Жптнбф лпнбодщ: ps [ жмбзй ] ps чщчпдйф йожптнбгйа пв блфйчощи ртпгеууби. Рп хнпмюбойа, йожптнбгйс дбефус фпмшлп п ртпгеууби, буупгййтпчбоощи у дбоощн фетнйобмпн. Лпнбодпк ps пвтбвбфщчбафус умедхаэйе жмбзй: -e чщчпуфй йожптнбгйа пвп чуеи ртпгеууби -f зеоетйтпчбфш рпмощк мйуфйоз -l зеоетйтпчбфш мйуфйоз ч дмйоопн жптнбфе -t <фетнйобм> чщчпдйфш йожптнбгйа фпмшлп п ртпгеууби, учсъбоощи у <фетнйобмпн> ( <фетнйобм>, ьфп tty° ймй console) -p <ртпгеуу> чщчпдйфш йожптнбгйа фпмшлп пв хлбъбоопн ртпгеууе -u чщчпдйфш йожптнбгйа фпмшлп п ртпгеууби, юек UID ймй чипдопе йнс рпмшъпчбфемс хлбъбоп -g чщчпдйфш йожптнбгйа фпмшлп п ртпгеууби, GID лпфптщи хлбъбоп Ойце ртйчпдсфус ъбзпмпчлй лпмпопл мйуфйозб й пв®суосефус йи упдетцйнпе; вхлчщ l й f пъобюбаф, рпсчмсефус мй ьфб лпмполб ртй дмйоопн ймй рпмопн жптнбфе мйуфйозб; all пъобюбеф, юфп дбо- обс лпмполб чщчпдйфус ртй мавщи ъобюеойси лмаюек. F (l) жмбзй (чпушнетйюоще), ухннб лпфптщи дбеф умедх- аэйе учедеойс п ртпгеууе: 01 ч рбнсфй 02 уйуфенощк ртпгеуу 04 ч пцйдбойй ъбчетыенйс ччпдб-чщчпдб ртпгеуу жйлуйтпчбо ч рбнсфй 10 учпррйтпчбо 20 фтбууйтхефус дтхзйн ртпгеуупн 40 дтхзйе жмбзй фтбууйтпчлй S (l) Уфбфху ртпгеууб: 0 ое ухэеуфчхеф S урсэйк ртпгеуу W цдхэйк ртпгеуу R чщрпмосаэйкус ртпгеуу I чщрпмосефус ртетщчбенщк уйуфенощк чщъпч Z ъбчетыеоощк ртпгеуу T пуфбопчмеоощк (stopped) ртпгеуу X ртпгеуу ъблбюйчбефус ч рбнсфш UID (f,l) UID чмбдемшгб ртпгеууб; йнс чипдб ч уйуфенх чщ- чпдйфус ртй хлбъбойй пргйй -f PID (all) опнет ртпгеууб PPID (f,l) опнет ртпгеууб-ртедлб C (f,l) йурпмшъпчбойе ртпгеууптб дмс рмбойтпчбойс STIME (f) чтенс ъбрхулб ртпгеууб PRI (l) ртйптйфеф ртпгеууб; впмшыее юйумп пъобюбеф неошыйк ртйптйфеф NI (l) рпртбчлб л ртйптйфефх ADDR (l) бдтеу ртпгеууб ч рбнсфй (хлбъбфемш об фбвмйгх уезнеофпч), еумй ртпзтбннб теъйдеофобс, йобюе дйулпчщк бдтеу SZ (l) тбънет пвтбъб ъбдбюй ч вмплби WCHAN (l) упвщфйе, йъ-ъб лпфптпзп пцйдбеф ртпгеуу; дмс чщрпмосаэйиус ртпгеуупч ое хлбъщчбефус TTY (all) фетнйобм, у лпфптпзп вщм ъбрхэео ртпгеуу TIME (all) чтенс чщрпмоеойс ртпгеууб CMD (all) йнс ртпзтбннщ; еумй хлбъбо жмбз -f, фп чщчпдйф- ус рпмопе йнс Ртпгеуу йнеаэйк ртедлб й ъбчетыйчыйкус, оп еэе пцйдбенщк ьфйн ртедлпн, пвпъобюбефус . Ртй хлбъбойй жмбзб -f ps рщфбефус пртедемйфш йнс й бтзх- неофщ, у лпфптщнй ртпгеуу вщм упъдбо ч рбнсфй ймй пвмбуфй учпр- рйозб. Еумй ьфп ое хдбефус, йнс ртпгеууб ъблмаюбефус ч лчбдтбф- още улпвлй. 3.15. Уптфйтпчлб й/ймй умйсойе жбкмпч. Жптнбф лпнбодщ: sort [ - cmu ] [ -ooutput ] [ -ykmem ] [ -zrecsz ] [ -dfiMnr ] [ -btx ] [ +pos1 [ -pos2 ]] [ files ] Sort уптфйтхеф уфтплй чуеи хлбъбоощи жбкмпч пдопчтенеооп й чщчпдйф теъхмшфбф об уфбодбтфощк чщчпд. Еумй йнеоб жбкмпч ое хлбъбощ, ймй еумй ч лбюеуфче йнеой жбкмб хлбъбо -, йожптнбгйс рпуфхрбеф йъ уфбодбтфопзп ччпдб. Утбчоеойс ртпйъчпдсфус об пуопче пдопзп ймй впмее рпмек, рпмхюбенщи йъ лбцдпк ччпдйнпк уфтплй. Рп хнпмюбойа, фблпе рпме пдоп й йн счмсефус убнб уфтплб; уфтплй хрптсдпюйчбафус мелуй- лпзтбжйюеулй ч уппфчефуфчйй у лпдбнй обвптб уйнчпмпч ASCII. Умедхаэйе жмбзй йънеосаф рптсдпл тбвпфщ: -c ртпчетйфш, счмсефус мй чипдопк жбкм хце пфуптфйтпчбоощн упзмбуоп ъбдбоощн ртбчймбн -m фпмшлп умйфш жбкмщ; уюйфбфш йи хце пфуптфйтпчбоощнй -u йъ чуеи упчрбдбаэйи уфтпл чщчпдйфш фпмшлп пдох -ooutput хлбъбоопе йнс счмсефус йнеоен жбкмб, ч лпфптщк обдп обртбчйфш чщчпд; ьфпф жбкм нпцеф упчрбдбфш у пдойн йъ жбкмпч ччпдб. Нецдх -o й output нпзхф вщфш ртпвемщ -ykmem рп хнпмюбойа sort йурпмшъхеф пртедемеоощк уйуфенпк пв®- ен рбнсфй; ртй ъбдбойй ьфпзп жмбзб вхдеф йурпмшъпчбоп kmem лймпвбкф. Еумй ьфп юйумп впмшые ймй неошые рте- демшоп дпрхуфйнщи ъобюеойк, фп вхдеф хуфбопчмеоп уппф- чефуфчхаэее ртедемшопе ъобюеойе. Фбл, -y0 збтбофйтхеф йурпмшъпчбойе нйойнбмшопзп пв®енб рбнсфй. Рп дпзпчптео- опуфй, -y (веъ бтзхнеофпч) хуфбобчмйчбеф нблуйнбмшощк пв®ен рбнсфй -zrecsz ртй дмйое уфтплй впмшые, юен ртйосфп ч уйуфене, чщрпм- оеойе sort ъбчетыбефус бчбтйкоп. Чп йъвецбойе ьфпзп нпцоп хлбъбфш нблуйнбмшоха дмйох уфтплй recsz ч вбкфби. Умедхаэйе жмбзй хуфбобчмйчбаф урпупв хрптсдпюеойс уфтпл: -d "умпчбтощк" рптсдпл: ртй утбчоеойй счмсафус ъобюйнщнй фпмшлп вхлчщ, гйжтщ й ртпвемщ -f ртепвтбъпчщчбфш ртпрйуоще вхлчщ ч уфтпюоще -i йзоптйтпчбфш уйнчпмщ у лпдбнй, ое мецбэйнй ч ртедемби 040-0176 -M ртепвтбъпчбфш ретчще фтй уйнчпмб ч ртпрйуоще й утбчойфш йи у хумпчйен фпзп, юфп "JAN" < "FEB" < ... < "DEC". Пуфбмшоще ъобюеойс ьфйи рпмек уюйфбфш неошыйнй "JAN". Ьфпф жмбз рпдтбъхнечбеф жмбз -b (ун. дбмее) -n уфтплй юйуем, чпънпцоп упдетцбэйе ртпвемщ, ъобл -, де- усфйюоха фпюлх, уптфйтхафус рп ъобюеойсн ьфйи юйуем. Ьфпф жмбз рпдтбъхнечбеф жмбз -b (ун. дбмее) -r пвтбфощк рптсдпл уптфйтпчлй Ъбрйуш +pos1 -pos2 пъобюбеф, юфп рпме утбчоеойс вхдеф об- юйобфшус ч рпъйгйй pos1 й лпоюбфшус ч рпъйгйй pos2. Еумй -pos2 прхэеоп, фп рпдтбъхнечбефус лпоег уфтплй. Хлбъбойе pos1 й pos2 члмаюбеф ч уевс рпосфйе рпмс - нйой- нбмшопк рпумедпчбфемшопуфй уйнчпмпч, ъбчетыбаэекус тбъдемйфемен рпмек ймй . Рп хнпмюбойа, фблйн тбъдемйфемен уюйфбеф- ус ретчщк чуфтеюеоощк ртпвем ч рпумедпчбфемшопуфй ртпвемпч. Чуе пуфбмшоще ртпвемщ йъ ьфпк рпумедпчбфемшопуфй уюйфбафус чипдсэй- нй ч умедхаэее рпме (обртйнет, чуе ртпвемщ ч обюбме уфтплй чип- дсф ч ретчпе рпме). Тбъдемйфемй рпмек нпзхф вщфш ъбдбощ умедха- эйнй жмбзбнй: -tx йурпмшъпчбфш ч лбюеуфче тбъдемйфемс рпмек уйнчпм x; лбцдпе чипцдеойе x счмсефус ъобюйнщн (ф.е. xx тбъдемсаф рпме охмечпк дмйощ) -b йзоптйтпчбфш чедхэйе ртпвемщ ртй пртедемеойй обюбмб й лпогб рпмс утбчоеойс Pos1 й pos2 йнеаф жптнх: m.n й, чпънпцоп, рпуме лбцдпзп умедхаф жмбзй bdfinr. +m.n пъобюбеф (n+1)щк уйнчпм ч (m+1)пн рпме. Ртпрхэеоопе .n пъобюбеф .0. Еумй хлбъбо жмбз -b, фп n пфуюйфщчбефус пф ретчпзп оертпвемб ч (m+1)пн рпме; +m.0b пъоб- юбеф ретчщк оертпвем ч (m+1)пн рпме. -m.n пъобюбеф nщк уйнчпм (члмаюбс тбъдемйфемй рпмек) рпуме рпумедоезп уйнчпмб mпзп рпмс. Еумй n прхэеоп, фп рпдтбъхнечбефус .0, пъобюбс рпумедойк уйнчпм mпзп рпмс. Еумй хлбъбо жмбз -b, фп n пфуюйфщчбефус пф рпумедое- зп чедхэезп ртпвемб ч (m+1)пн рпме; -m.1b пъобюбеф ретчщк ое- ртпвем ч (m+1)пн рпме. Еумй хлбъбощ оеулпмшлп рпмек утбчоеойс, фп впмее рпъдойе ое йурпмшъхафус дп хрптсдпюеойс рп впмее тбоойн. Еумй уфтплй йнеаф пдйоблпчще рпмс утбчоеойс, фп пой хрптсдпюйчбафус у хюе- фпн чуеи уйнчпмпч. Ртйнетщ. 1. Хрптсдпюйфш упдетцйнпе infile рп чфптпнх рпма ч лбюеуфче рп- мс утбчоеойс sort +1 -2 infile 2. Хрптсдпюйфш ч пвтбфопн рптсдле упдетцйнпе infile1 й infile2, рпнеуфйч теъхмшфбф ч outfile. Хрптсдпюеойе ртпйъчпдйфш рп ретчпнх уйнчпмх чфптпзп рпмс sort -r -o outfile +1.0 -1.2 infile1 infile2 3. Хрптсдпюйфш ч пвтбфопн рптсдле упдетцйнпе infile1 й infile2 рп ретчпнх пфмйюопнх пф ртпвемб уйнчпмх чфптпзп рпмс sort -r +1.0b -1.1b infile1 infile2 4. Тбуреюбфбфш жбкм passwd, пфуптфйтпчбч езп рп юйумпчщн ъобюе- ойсн UID (фтефше рпме, тбъдемйфемш рпмек - :) sort -t: +2n -3 /etc/passwd 5. Тбуреюбфбфш уфтплй хце пфуптфйтпчбоопзп жбкмб infile, чщчпдс мйыш ретчха йъ уфтпл у пдйоблпчщнй фтефшйнй рпмснй sort -um +2 -3 infile 3.16. Рпдуюеф лпмйюеуфчб уйнчпмпч, умпч й уфтпл ч жбкме. Жптнбф лпнбодщ: wc [ -lwc ] [ <жбкм> ... ] wc рпдуюйфщчбеф уфтплй, умпчб й уйнчпмщ, юйфбс йи йъ хлб- ъбоощи жбкмпч ймй йъ уфбодбтфопзп ччпдб, еумй йнеоб жбкмпч ое хлбъбощ. Фблце рпдуюйфщчбефус пвэйк йфпз дмс чуеи хлбъбоощи жбкмпч. Умпчп - ьфп нблуйнбмшобс уфтплб уйнчпмпч, ое упдетцбэбс ртпвемпч й . Жмбзй l, w й c нпзхф йурпмшъпчбфшус ч мавпк лпнвйобгйй, хлбъщчбс, юфп дпмцощ чщчпдйфшус лпмйюеуфчп уфтпл, умпч ймй уйн- чпмпч уппфчефуфчеооп. Рп хнпмюбойа йурпмшъхефус обвпт -lwc. Еумй ч лпнбодопк уфтпле хлбъбощ йнеоб жбкмпч, фп пой чщчп- дсфус рпуме уппфчефуфчхаэйи ухнн.