Comenzi UNIX esențiale: Redirecționare, Find, Grep și Variabile

Classified in Computers

Written on in English with a size of 3.2 KB

Redirecționarea comenzilor UNIX

  • comanda < fis_in — datele de intrare pentru comandă vor fi preluate din fis_in.
  • comanda > fis_out — datele de ieșire vor fi puse în fis_out cu suprascriere.
  • comanda >> fis_out — datele de ieșire vor fi puse în fis_out cu adăugare.
  • comanda1 | comanda2 — datele pentru comanda 2 vor fi cele rezultate din comanda 1.

Comanda FIND: Căutare după nume

Exemplu: find / -name *.c

  • Tipuri fișier (-type): b - block, c - character, d - directory, f - file, p - FIFO, l - symbolic link.
  • Permisiuni (-perm 664): 1 = Ausführung (execuție), 2 = Schreiben (scriere), 4 = Lesen (citire). Există și 0 = keine Erlaubnis (fără permisiune).
  • / — căutare globală.
  • . — căutare sub directorul curent.

Parametri și argumente în Bash

$#întoarce numărul argumentelor comenzii
$*indică toate argumentele, privite ca un singur șir
$@indică toate argumentele, ca succesiune de șiruri
$-indică argumentul ce conține opțiunile
$?întoarce codul de terminare al comenzii precedente
$!indică PID-ul ultimului proces lansat în background
$$indică PID-ul procesului părinte

Comanda Cut

cut [ -b lista | -c lista | -f lista [-d delim]? ] [ fis ]

Comanda GREP

  • grep "John" names.txt (afișează liniile care conțin "John", dar și "Johnnnn")
  • grep -w "John" names.txt (afișează doar liniile care au "John" ca întreg cuvant)
  • grep -i "John" names.txt (ignorie majusculele/minusculele - case insensitive)
  • grep -n "John" names.txt (afișează numărul liniilor)
  • grep -win "John" ./*.txt (caută în toate fișierele care se termină în .txt în directorul de lucru curent, dar nu și în sub directoarele acestuia)
  • -r — permite căutarea recursivă prin toate fișierele unui director.
  • -l — afișează doar fișierele care conțin o potrivire.
  • -c — afișează numărul de potriviri.

Exemple de scripturi Bash

Caută în toate fișierele și afișează conținutul celor care conțin cifra 4

#!/bin/bash
for file in $(grep -lr "4" dir);
do
    cat $file
done

".*" - se potrivește cu orice

cd $1
for file in $(grep -lr ".*" ./*);
do
   if [[ $file == *.txt ]]
   then
   cat $file
   fi
done

Related entries: