NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
SV

Linux-kommandon och skalfärdigheter

grep: Söka Linux som en professionell

grep överlever varje uppdatering av verktygskedjan eftersom jobbet aldrig ändras: hitta de rader som betyder något inuti text som växer snabbare än någon annan rensar upp den. Dess verkliga kraft är flaggvokabulären som förvandlar en sökning till ett svar: omgivande sammanhang, filnamnslistor, inverterade matchningar och utgångskoder som ett skalskript kan förgrena sig på. När en server missköter sig börjar utredningen med grep, och oftare än någon erkänner slutar den också där.

Nyckelpunkter

  1. Sök rekursivt med syfte: grep -rni 'fail2ban' /var/log --include='*.log' hoppar över binärfiler och komprimerade arkiv på egen hand; en blott grep -r över /var/log lär ut den lektionen på det långsamma sättet.
  2. Kontext gör matchningar läsbara: -A 3 visar linjer efter, -B 3 före, -C 5 båda; -l listar bara filnamn, -c räknar matchningar per fil och -L inverterar listan till det som saknas.
  3. Avslutskoder är en del av kontraktet: 0 betyder matchad, 1 betyder ingen matchning, 2 betyder fel; ett skript som kör grep -q och ignorerar den distinktionen behandlar framgång och tystnad identiskt.
  4. Kedjefilslistor null-safely: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; släpp Z- och -0-parningen och det första filnamnet med ett mellanslag bryter pipelinen.
  5. Använd -E som standardnivå för regex för läsbar alternering och nå -P (lookarounds, \d-klasser) endast när du accepterar att det är en GNU-tillägg som BSD grep inte kommer att bära.
  6. -F behandlar mönstret som bokstavlig text: snabbare och immun mot regex-metakaraktärer som smyger sig in från variabler som klistras in direkt från en biljett.
  7. --exclude-dir=.git och --exclude-dir=node_modules håller rekursiva sökningar borta från kataloger som bara finns för att sakta ner dem; stava namn explicit i skript eftersom expansion av klammer är en bash-bekvämlighet, inte en grep-funktion.
  8. Håll vanorna åtskilda: --color=auto för interaktiv komfort, ingen färg i skript (escape-sekvenser korrupta loggar) och -n (radnummer) på så att nästa person kan hitta platsen du klistrade in.

Fältnotis

Jag körde en gång en ren grep -r över en klients hela timmergård klockan 02.00 och fick fyrtio minuters tystnad för mina besvär; lägga till --include='*.log' och -l avslutade biljetten på plats. Inkluderings- och exit-kodvanorna går nu in innan mönstret gör det.

Vanliga frågor

Varför skriver grep ibland ut "binära filmatchningar" istället för min rad?

En NUL-byte nära matchningen gör att GNU grep behandlar filen som binär; lägg till -a för att tvinga textläge eller -I för att hoppa över binärer helt, vilket är rätt standard på blandade loggkataloger.

Ska jag använda ripgrep istället?

ripgrep är snabbare och hoppar över binära och dolda filer som standard, men grep finns på varje ruta du någonsin kommer att SSH i, inklusive räddningsbilder. Lär dig grep först; nå för rg där den råkar vara installerad.

Hur söker jag i roterade, komprimerade loggar?

zgrep söker transparent i .gz-filer och zstdgrep täcker de nyare kompressorernas rotation växlade till; gårdagens nål brukar leva inuti en av dessa, så verktygen räknas som grundläggande hygien.

Hur matchar jag ett ord men inte ett längre ord som innehåller det?

Använd -w för helordsmatchning och -x för helradsmatchning; när mönster behöver delar av ord ger teckenklasser som [Ss]erver exakt kontroll utan att skifta skiftläge överallt annars.

Så hjälper Kinetikatech dig med linux-kommandon och skalfärdigheter

Vi har hanterat det här hundratals gånger: Kommandon och skriptvanor som avgör om en administratör driver en server eller bekämpar den: sök, transformera, överföra och övervaka text och processer med verktygen som finns i varje basinstallation. Med Linux-serversäkerhet och Serverhantering får du hela kedjan, vi bedömer, vi genomför, vi håller koll dygnet runt och vi tar befälet inom 30 minuter när det spelar roll.

Prata med en ingenjör

Serverproblem? Hackad webbplats? Långsam sida?

Kritiska incidenter besvaras inom 30 minuter — dygnet runt, 7 dagar i veckan.

Begär akutsupport support@kinetikatech.com