Linux

Server Web 147 Solutii

Comanda awk linux

Printre numeroasele unelte de procesare a textului disponibile în shell-ul Linux, awk se remarcă prin puterea și versatilitatea sa.
Dezvoltat inițial în anii 1970 de Aho, Weinberger și Kernighan, awk este mai mult decât o comandă – este un limbaj complet de programare conceput pentru procesarea și analiza fișierelor text.

Comanda awk

awk funcționează pe fișiere și fluxuri ca o secvență de înregistrări și câmpuri.
Implicit, o înregistrare este definită ca un rând, iar câmpurile sunt separate prin spațiu alb, deși ambele pot fi redefinite.

Sintaxa de bază a comenzii awk este:

awk 'pattern {action}' fisier
  • Pattern: Specifică momentul când trebuie realizată acțiunea. Dacă este omis, acțiunea se aplică pentru fiecare linie.
  • Acțiune: Un set de comenzi care sunt executate atunci când pattern-ul este potrivit. Acțiunile sunt închise în acolade {}.

Afisarea primei coloane dintr-un fișier

Comanda de mai jos va afisa primul câmp din fiecare înregistrare (de obicei, primul cuvânt din fiecare linie) din fișierul fisier.txt:

awk '{print $1}' fisier.txt

Suma și media unei coloane

Această comandă calculează suma și media valorilor din a doua coloană a fișierului fisier.txt:

awk '{sum+=$2; count++} END {print "Sum =", sum; print "Average =", sum/count}' fisier.txt

Filtrare pe baza unei condiții

Această comandă va afișa liniile din fișierul fisier.txt unde al treilea câmp este mai mare de 100:

awk '$3 > 100' fisier.txt

Întrebări frecvente

  1. Cum schimb separatorul de câmpuri în awk?
    Folosește opțiunea -F urmată de separatorul dorit. De exemplu:

    awk -F, '{print $2}' fisier.csv

    Aceasta va afișa al doilea câmp dintr-un fișier CSV.

  2. Poate awk să proceseze mai multe fișiere simultan?
    Da, awk poate procesa mai multe fișiere secvențial. De exemplu:

    awk '{print}' fisier1.txt fisier2.txt

    Va procesa fisier1.txt și fisier2.txt consecutiv.

  3. Cum pot integra variabilele shell-ului în awk?
    Poți transmite variabilele shell-ului către awk folosind opțiunea -v. De exemplu:

    var="value"; awk -v awkVar="$var" '{print awkVar}' fisier.txt

    Aceasta va afișa valoarea variabilei shell var pentru fiecare linie din fișierul fisier.txt.

  4. Este posibil să modific un fișier direct folosind awk?
    Nu, awk nu suportă editarea în loc, precum sed -i. Totuși, poți realiza acest lucru redirecționând ieșirea awk într-un fișier temporar și apoi redenumindu-l în fișierul original.

  5. Poate awk fi folosit pentru procesări complexe de text?
    Absolut! Deși awk este simplu pentru sarcini de bază, este suficient de puternic pentru procesări complexe de text. Suportă array-uri, funcții și expresii regulate, ceea ce îl face potrivit pentru diverse sarcini de manipulare a textului.

[mai mult...]

Cum whitelistezi un IP in Fail2Ban?

Fail2Ban este utilizat pentru a proteja serverele impotriva atacurilor brute-force. Fail2Ban foloseste iptables pentru a bloca atacatorii, asa ca, daca dorim sa adaugam o adresa IP permanenta care sa nu fie blocata, trebuie sa o adaugam in fisierul de configurare.

Mai intai, editeaza fisierul de configurare:

nano /etc/fail2ban/jail.local

Daca nu ai fisierul jail.local, editeaza fisierul jail.conf in schimb:

nano /etc/fail2ban/jail.conf

Apoi, cauta linia:

ignoreip =

Adauga acum toate adresele IP pe care le vrei sa le excluzi. Fiecare adresa IP sau interval de adrese IP trebuie separat printr-un spatiu. De exemplu: 192.168.0.1 192.168.5.0/32

Exemplu:

ignoreip = 192.168.0.1 192.168.5.0/32

Linia ar trebui sa fie adaugata in sectiunea [DEFAULT] a fisierului.

Salveaza fisierul si reporneste Fail2Ban:

service fail2ban restart
[mai mult...]

Comanda tty in Linux – explicatie si exemple

Comanda tty (prescurtare de la “teletypewriter”) este utilizata pentru a afisa numele fisierului terminalului conectat la intrarea standard. Practic, aceasta comanda indica ce terminal este utilizat, returnand o cale precum /dev/tty1 sau /dev/pts/2.

Aceasta comanda este utila in scripting si gestionarea sesiunilor de terminal, ajutand utilizatorii si administratorii de sistem sa identifice terminalul activ si sa se asigure ca comenzile si iesirile sunt directionate corect.

Formatul comenzii este simplu:

tty [OPTION]...

Potrivit paginii de manual, aceasta comanda afiseaza numele fisierului terminalului conectat la intrarea standard.

Tty este o prescurtare pentru teletype, dar este mai cunoscut sub denumirea de terminal. Este un dispozitiv (implementat software in prezent) care permite interactiunea cu sistemul, transmitand datele introduse si afisand iesirea generata de sistem.

Exista mai multe tipuri de tty:

  • Consola grafica (accesibila cu Ctrl+Alt+Fn)
  • Emulatori de terminal precum Gnome Terminal (rulat intr-o sesiune X)

Cum functioneaza comanda tty?

Utilizarea este simpla: ruleaza comanda tty, iar aceasta va afisa numele terminalului conectat la iesirea standard.

tty

Exemplu de output pe un sistem:

/dev/pts/19

Daca comanda este executata intr-un mediu care nu este un terminal, va afisa mesajul:

not a tty

Cum fac tty sa returneze doar codul de iesire?

Optiunea -s face comanda tty sa nu produca output, returnand doar codul de iesire.

tty -s

Codurile de iesire:

  • 0 – daca intrarea standard este un terminal
  • 1 – daca intrarea standard nu este un terminal
  • 2 – daca au fost furnizate argumente gresite
  • 3 – daca a aparut o eroare de scriere.
[mai mult...]