Већина почетничких корисника Уник-система, посебно Линук, нису упознати са основним операторима командне линије који се користе у овом ОС-у. Погледајмо ближе функције и употребу оператора финд и греп.
Коришћење команди Финд и Греп у Линуку.
ФИНД
Линук финд команда је услужни програм командне линије за прелазак хијерархије датотека. Може се користити за претраживање датотека и директорија и обављање накнадних операција с њима. Подржава претраживање према датотеци, мапи, имену, датуму креирања, датуму промјене, власнику и дозволама. Користећи -екец, могу се извршити друге УНИКС команде за пронађене датотеке или фасцикле. Синтакса:
$ финд [где започети претрагу] [израз одређује шта пронаћи] [-оптионс] [шта пронаћи]
Опције:
- -екец - тражена датотека која испуњава горе наведене критеријуме и враћа 0 као излазно стање за успјешно извршавање команди;
- -ок - ради исто као и -екец, осим што се прво тражи од корисника;
- -инум Н - претраживање са бројем "Н";
- -линкс Н - претраживање са линковима "Н";
- -наме демо - тражи датотеке наведене у "демо";
- -невер филе - тражи датотеке које су модификоване / креиране након “филе”;
- -перм октални - претражи ако је резолуција октална;
- -принт - показати пут до пронађених докумената користећи друге критеријуме;
- - празна - потрага за празним документима и директоријима;
- -сизе + Н / Н - блокови претраге "Н"; "Н" и "ц" се могу користити за мерење величине у знаковима; “+ Н” означава већу величину “Н” блокова, а “Н” значи мању величину “Н” блокова;
- -усер наме - тражи документе који припадају корисничком имену или идентификатору "наме";
- (екпр) - Труе ако је "екпр" тачно; Користи се за групирање критерија у комбинацији са ОР или АНД.
Греп
Наредба греп се користи за претраживање датотека. Функција означава “глобално штампање регуларних израза” и једна је од најмоћнијих и најчешће коришћених команди у Линуку. Наредба претражује једну или више улазних датотека које одговарају наведеном узорку и сваку одговарајућу линију пише у стандардни излаз. Ако ниједна датотека није наведена, наредба се чита са стандардног улаза, што је обично излаз друге наредбе. У овом чланку ћемо вам показати како да унесете команду, са практичним примерима и детаљним објашњењима најчешћих ГНУ греп опција.
Синтакса команде
Пре него што почнемо да користимо команду, почнимо са прегледом основне синтаксе. Изрази корисности имају следећи облик:
[ОПЦИЈЕ] ПАТТЕРН [ФИЛЕ ...]
Ставке у угластим заградама нису обавезне.
- ОПЦИЈЕ - нула или више избора. Тим пружа бројне опције које контролишу његово понашање.
- ПАТТЕРН - Узорак претраге.
- ФИЛЕ - нула или више имена улазних датотека.
Како уписати наредбу за претраживање датотека
Главна сврха команде је да тражи текст у датотеци. На пример, да бисте приказали из датотеке / етц / пассвд која садржи линију басх, можете користити следећу команду:
$ греп басх / етц / пассвд
Излаз треба да изгледа овако:
роот 0: 0: роот: / роот: / бин / басх
домаин1000: 1000: домаин: / хоме / домаин: / бин / басх
Ако стринг садржи размаке, потребно је да их ставите у једноструке или двоструке наводнике:
$ "Гноме Дисплаи Манагер" / етц / пассвд
Инвертирај (ек)
Да бисте приказали линије које не одговарају узорку, унесите параметар –в (или –инверт-матцх). На пример, да бисте приказали датотеку која не садржи нологин из датотеке / етц / пассвд, можете да унесете следећу команду:
$ -в нологин / етц / пассвд
Излаз:
роот 0: 0: роот: / роот: / бин / басх
цолорд 124: 124 :: / вар / либ / цолорд: / бин / фалсе
гит 994: 994: гит даемон усер: /: / уср / бин / гит-схелл
линукизе 1000: 1000: линукизе: / хоме / линукизе: / бин / басх
Како користити наредбу за претраживање у излазу
Уместо тога, ако наведете улазне датотеке, можете преусмерити излаз друге команде, а затим приказати само линије које одговарају наведеном узорку. На пример, да бисте сазнали који процеси се извршавају на вашем систему као корисник ввв података, можете користити следећу команду:
$ пс -еф | ввв-дата
Излаз:
ввв-дата 18247 12675 4 16:00? 00:00:00 пхп-фпм: поол ввв
роот 18272 17714 0 16:00 птс / 0 00:00:00 - боја = ауто - искључи - дир = .бзр - искључи - дир = ЦВС - искључи - дир = .гит - искључи - дир =. = .свн ввв-дата
ввв-дата 31147 12770 0 Оцт22? 00:05:51 нгинк: радни процес
ввв-дата 31148 12770 0 Оцт22? 00:00:00 процес нгинк: цацхе манагер
Такође можете комбиновати више канала у тим. Као што се може видети на излазу изнад, ту је и линија која садржи процес. Ако не желите да се ова линија прикаже, пошаљите излаз другој инстанци, као што је приказано испод.
$ пс -еф | ввв-дата | греп -в греп
Излаз:
ввв-дата 18247 12675 4 16:00? 00:00:00 пхп-фпм: поол ввв
роот 18272 17714 0 16:00 птс / 0 00:00:00 - боја = ауто - искључи - дир = .бзр - искључи - дир = ЦВС - искључи - дир = .гит - искључи - дир =. = .свн ввв-дата
ввв-дата 31147 12770 0 Оцт22? 00:05:51 нгинк: радни процес
ввв-дата 31148 12770 0 Оцт22? 00:00:00 процес нгинк: цацхе манагер
Рецурсиве сеарцх
Да бисте рекурзивно претражили узорак, унесите –р (или –рецурсиве) опцију. Ово ће вам омогућити да претражујете све датотеке у наведеном директоријуму, прескачући симболичке везе које се рекурзивно дешавају. Да бисте прошли све симболичке везе, користите опцију –р (или –дереференце-рецурсиве). У следећем примеру тражимо домаин.цом у свим датотекама у директоријуму / етц:
$ -р домаин.цом / етц
Команда ће одштампати одговарајућа поља са префиксом за путању до датотеке.
/етц/хостс:127.0.0.1 ноде2.домаин.цом /етц/нгинк/ситес-аваилабле/домаин.цом: сервер_наме домаин.цом ввв.домаин.цом;
Ако умјесто –р користите опцију –Р, наредба ће слиједити све симболичке везе:
$ -Р домаин.цом / етц
Обратите пажњу на задње поље за излаз. Ово није одштампано у горњем примеру, јер су датотеке у Нгинк директоријуму са омогућеним локацијама симболичне везе ка конфигурационим датотекама унутар директоријума доступних за сајтове.
Излаз:
/етц/хостс:127.0.0.1 ноде2.домаин.цом
/етц/нгинк/ситес-аваилабле/домаин.цом: сервер_наме домаин.цом ввв.домаин.цом;
/етц/нгинк/ситес-енаблед/домаин.цом: сервер_наме домаин.цом ввв.домаин.цом;
Прикажи само име датотеке
Да бисте потиснули подразумевани излаз и одштампали само имена датотека које садрже упарени узорак, можете да унесете опцију –л (или —филес-витх-матцхес). На пример, да бисте претражили све датотеке које завршавају у .цонф у тренутном радном именику и да бисте штампали само имена датотека који садрже тип домена.цом, откуцајте:
$ -Л домаин.цом * .цонф
Излаз ће изгледати овако:
тмук.цонф
хапроки.цонф
Опција -л се обично користи заједно са рекурзивном -Р опцијом:
$ -Рл домаин.цом / тмп
Цасе инсенситивити
По подразумеваној вредности, команда је осетљива на велика и мала слова, што значи да се велика и мала слова третирају као различита. Да бисте игнорисали случај приликом претраживања, унесите опцију –и (или –игноре-цасе). На пример, ако тражите Зебру без икакве опције, следећа команда неће приказати ниједан излаз, тј. постоје подударања.
$ Зебра / уср / схаре / речи
Али ако извршите претрагу без обзира на величину слова, користите опцију –и, она ће одговарати и великим и малим словима:
$ греп -и Зебра / уср / схаре / речи
Ознака "Зебра" одговара "Зебра", "ЗЕбрА" или било којој другој комбинацији великих и малих слова.
Излаз:
зебра
зебра'с
зебрас
Тачно подударање
Када претражује, гну ће такође штампати гну, у који се убацују веће речи, као што су цигнус или магнум.
$ гну / уср / схаре / речи
Излаз:
цигнус
гну
интеррегнум
лгну9д
лигнум
магнум
магнусон
спхагнум
вингнут
Да бисте вратили само оне изразе у којима је специфицирано поље цела реч (не затворена речима), можете да користите опцију –в (или —ворд-регекп).
ВАЖНО. Карактери речи укључују алфанумеричке знакове (аз, АЗ и 0-9) и подвлаке (_). Сви остали знакови се третирају као невербални знакови.Ако покренете исту команду као горе, укључујући и -в опцију, команда ће вратити само оне које укључују гну као посебну реч.
$ греп -в гну / уср / схаре / речи
Излаз: гну
Прикажи бројеве
Да бисте приказали број редова који садрже узорак, користите параметар –н (или –лине-нумбер). Коришћењем ове опције ће се штампати подударања са стандардним излазом са префиксом броја у којем је пронађен. На пример, да бисте из датотеке / етц / сервицес која садржи басх префикс са одговарајућим бројем, приказали следећу команду:
$ греп -н 10000 / етц / сервицес
Излаз испод показује да су утакмице на 10423 и 10424.
Излаз:
10423: ндмп 10, 000 / тцп
10424: ндмп 10000 / удп
Бројање
Да бисте одштампали број одговарајућих линија на стандардни излаз, користите параметар –ц (или –цоунт). У доле наведеном примјеру бројимо број рачуна који имају схелл / уср / бин / зсх.
$ греп -ц '/ уср / бин / зсх' / етц / пассвд
Излаз: 4
Неколико редова (узорака)
Оператор ОР може комбиновати два или више узорака претраге. По подразумеваној вредности, команда интерпретира образац као главни регуларни израз, у коме мета-знакови губе своје посебно значење, а њихове верзије са обрнутом цртом треба да се користе. У доњем примеру, претражујемо све појаве фаталних, грешака и критичних речи у датотеци дневника грешака Нгинк:
$ греп 'фатал \ _ грешка \ _ |
Ако користите опцију проширеног регуларног израза –Е (или —ектендед-регекп), израз не треба да се скида, као што је приказано испод:
$ греп -Е 'фатална | грешка | критична' /вар/лог/нгинк/еррор.лог
Регуларни израз
ГНУ Греп има два сета функција регуларног израза - Басиц и Ектендед. Подразумевано, функција интерпретира образац као основни регуларни израз, да би се пребацила на проширене регуларне изразе, потребно је да користите опцију –Е. Када користите регуларне изразе у главном моду, сви остали знакови, осим мета-знакова, су заправо регуларни изрази који одговарају једни другима. Испод је листа најчешће коришћених мета-знакова:
- Користите знак ^ (знак карата) да се подудара са изразом на почетку реда. У следећем примеру, ^ кенгур ће се поклапати само ако се појави на самом почетку: $ греп "^ кангароо" филе.ткт
- Користите симбол $ (долар) који одговара изразу на крају. У следећем примеру, кенгур $ ће се слагати само ако се нађе на самом крају: греп "кангароо $" филе.ткт
- Користите симбол. (тачка) да би се подударао са било којим знаком. На пример, да би се повезало све што почиње са кан од два знака и завршава са роо, можете користити следећи образац: $ греп "кан..роо" филе.ткт
- Користите [] (заграде) да бисте ускладили било који појединачни знак у заградама. На пример, пронађите оне које садрже акценат или "нагласак", можете користити следећи образац: $ греп "ацце [нп] т" филе.ткт
Да бисте избегли посебно значење наредног знака, користите знак (бацксласх).
Проширени регуларни изрази
Да би образац протумачио као проширени регуларни израз, користите параметар –Е (или –ектендед-регекп). Проширени регуларни изрази укључују све основне мета-знакове, као и додатне мета-знакове за креирање сложенијих и моћнијих образаца претраживања. У наставку су наведени неки примјери:
- Подесите и издвојите све адресе е-поште из ове датотеке: $ греп -Е -о "[А-За-з0-9 ._% + -] [А-За-з0-9 .-] + [А-За-з] {2.6} б 'филе.ткт
- Мапирајте и издвојите све важеће ИП адресе из овог фајла: $ греп -Е -о '(25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0] (25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ Т 5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) (25 [0-5] | 2 [0-4] [0-9] 9] | [01]? [0-9] [0-9]?) Датотека.ткт
Опција -о се користи за штампање само утакмица.
Штампајте пре одбројавања
Да бисте одштампали одређени број линија пре подударања, користите параметар –Б (или —пре-контекст). На пример, да бисте приказали 5 линија почетног контекста пре подударања, можете користити следећу команду: $ греп -А 5 роот / етц / пассвд
Штампајте после претраге
Да бисте одштампали одређени број редова након подударања, користите параметар –А (или – после-контекста). На пример, да бисте приказали 5 линија коначног контекста након подударања низова, можете користити следећу команду: $ греп -Б 5 роот / етц / пассвд
То је све неопходно за пуну употребу информација о командама. Ако већ користите Линук и можете дати било какве савјете почетницима, подијелите коментаре према овом чланку.