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 dinfis_in.comanda > fis_out— datele de ieșire vor fi puse înfis_outcu suprascriere.comanda >> fis_out— datele de ieșire vor fi puse înfis_outcu 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ă și0 = 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