Linux команди и умения за командни обвивки
grep: Търсене в Linux като професионалист
grep оцелява при всяко опресняване на веригата инструменти, защото работата никога не се променя: намерете важните редове в текста, който расте по-бързо, отколкото някой го почиства. Истинската му сила е речникът на флага, който превръща търсенето в отговор: заобикалящ контекст, списъци с имена на файлове, обърнати съвпадения и кодове за изход, на които скриптът на обвивката може да се разклони. Когато сървърът се държи зле, разследването започва с grep и по-често, отколкото някой признава, свършва дотук.
Ключови точки
- Търсете рекурсивно с цел: grep -rni 'fail2ban' /var/log --include='*.log' пропуска двоични файлове и компресирани архиви самостоятелно; гол grep -r над /var/log учи този урок по бавния начин.
- Контекстът прави съвпаденията четими: -A 3 показва редове след, -B 3 преди, -C 5 и двата; -l изброява само имена на файлове, -c брои съвпадения за файл и -L обръща списъка в това, което липсва.
- Кодовете за изход са част от договора: 0 означава съвпадение, 1 означава липса на съвпадение, 2 означава грешка; скрипт, който изпълнява grep -q и игнорира това разграничение, третира успеха и мълчанието идентично.
- Верижният файл изброява безопасно null: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; изпуснете сдвояването на Z и -0 и първото име на файл с интервал прекъсва конвейера.
- Използвайте -E като ниво на регулярни изрази по подразбиране за четимо редуване и достигнете до -P (lookarounds, \d класове) само когато приемете, че е разширение на GNU BSD grep няма да носи.
- -F третира шаблона като буквален текст: по-бързо и имунизирано срещу метасимволите на регулярните изрази, промъкващи се от променливи, поставени направо от билета.
- --exclude-dir=.git и --exclude-dir=node_modules предпазват рекурсивните търсения от директории, които съществуват само за да ги забавят; изписвайте имената изрично в скриптове, тъй като разширяването на фигурни скоби е удобство на bash, а не функция на grep.
- Поддържайте навиците разделени: --color=auto за интерактивен комфорт, без цвят в скриптовете (екраниращите последователности повреждат регистрационните файлове) и -n (номера на редове) включени, така че следващият човек да може да намери мястото, което сте поставили.
Бележка от терен
Веднъж пуснах гол grep -r в цялата лог ферма на клиент в 2 часа сутринта и получих четиридесет минути мълчание за проблемите си; добавянето на --include='*.log' и -l приключи билета на място. Навиците за включване и изход на кода вече влизат преди шаблона.
Често задавани въпроси
Защо grep понякога отпечатва „съвпадения на двоичен файл“ вместо моя ред?
NUL байт близо до съвпадението кара GNU grep да третира файла като двоичен; добавете -a, за да принудите текстовия режим или -I, за да пропуснете изцяло двоичните файлове, което е правилното по подразбиране за директории със смесени журнали.
Трябва ли вместо това да използвам ripgrep?
ripgrep е по-бърз и пропуска двоични и скрити файлове по подразбиране, но grep съществува във всяка кутия, в която някога ще влизате SSH, включително спасителни изображения. Първо научете grep; посегнете към rg, където е инсталиран.
Как да търся ротирани, компресирани регистрационни файлове?
zgrep търси .gz файлове прозрачно и zstdgrep обхваща по-новите компресори, към които е превключена ротация; вчерашната игла обикновено живее в една от тях, така че инструментите се считат за основна хигиена.
Как да съпоставя дума, но не и по-дълга дума, която я съдържа?
Използвайте -w за съвпадение на цяла дума и -x за съвпадение на цял ред; когато моделите се нуждаят от части от думи, символните класове като [Ss]erver дават прецизен контрол без изглаждане на малки и големи букви навсякъде другаде.
Как Kinetikatech помага с linux команди и умения за командни обвивки
Предложението е просто: Командите и скриптовите навици, които решават дали администраторът управлява сървър или се бори с него: търсене, трансформиране, прехвърляне и надзор на текст и процеси с инструментите, които се намират във всяка основна инсталация. Поверете на нашата услуга Сигурност на Linux сървъра и Сървърна администрация и имате пълно покритие: сериозна оценка, чисто внедряване, непрекъснат мониторинг.