- 1. Cos'è il comando GREP
- 2. Esempi di utilizzo del comando Grep
- 3. Come usare il comando Grep Linux in modo ricorsivo
- 4. Come utilizzare il comando Grep Linux per eseguire ricerche di parole
- 5. Come usare il comando Grep Linux per contare le parole
- 6. Come forzare la ricerca inversa comando Grep Linux
- 7. Come usare UNIX / Linux Pipes insieme al comando Grep
- 8. Come elencare solo i nomi di file che corrispondono a Grep
- 9. Come utilizzare e installare il comando Tree in Linux
- 10. Come lavorare con i file usando il comando Tree in Linux
- 11. Parametri da usare con il comando Tree in Linux
Uno dei sistemi operativi più versatili da gestire tramite terminale è senza dubbio Linux in una qualsiasi delle sue distribuzioni disponibili e questo grazie all'integrazione di numerosi comandi disponibili nella sua console. Non importa se utilizziamo un sistema basato su terminale (come le versioni server) o un ambiente basato su GUI (come le versioni desktop), in tutte il terminale e i suoi comandi saranno sempre una fonte affidabile di gestione e sostegno.
All'interno delle nostre attività quotidiane c'è la creazione e la modifica di cartelle e file, che possono essere numerosi a seconda del ruolo svolto. Questo ad un certo punto del supporto è normale che in un modo o nell'altro influisca negativamente sulla ricerca degli elementi non solo per il numero di file ma anche per la posizione in cui sono ospitati.
Per aiutare a gestire questi tipi di attività in un modo molto più semplice, abbiamo due comandi essenziali sia per la ricerca che per la visualizzazione di oggetti in Linux e sono i comandi Grep e Tree. Solvetic spiegherà in dettaglio il loro utilizzo e come applicarli in modo completo nella distribuzione Linux che utilizziamo.
1. Cos'è il comando GREP
Cos'è il comando GrepGrep è un comando sviluppato per eseguire attività di ricerca di testo, Grep si occupa di cercare nel file che indichiamo le righe in cui viene rilevata una corrispondenza con le parole o la stringa che assegniamo durante l'esecuzione di questo. Il suo nome deriva dall'editor UNIX g/re/p. Durante l'esecuzione di Grep sarà possibile indicare un nome di un file oppure si potrà uscire dallo standard input, quindi Grep si occuperà di generare le linee di corrispondenza.
Variabili GrepCi sono tre (3) variabili gestite durante il processo Grep che sono:
- -G, --basic-regexp: questo è responsabile dell'interpretazione del pattern come un'espressione regolare di base, è il valore predefinito.
- -E, --extended-regexp: questa opzione valida il modello come un'espressione regolare estesa.
- -F, --fixed-strings: con questa opzione il pattern viene interpretato come un elenco di stringhe di caratteri fisse, separate da interruzioni di riga dove verrà trovata la corrispondenza in ognuna di esse.
Il comando Grep (Global Regular Expression Print) è un comando che ci permetterà di analizzare il sistema per trovare le corrispondenze e una volta rilevate, procedere alla stampa dei risultati in modo che sia possibile gestire centralmente questi risultati.
Sintassi GrepLa sintassi per l'utilizzo del comando Grep è la seguente:
grep (Opzione) Modello (file)
Parametri del comando GrepEsistono una serie di parametri che possiamo utilizzare con il comando grep per ottenere i migliori risultati, questi sono:
- -E, --extended-regexp: i pattern sono intesi come espressioni regolari
- -F, --fixed-strings: i pattern sono stringhe
- -G, --basic-regexp: i pattern sono espressioni regolari di base
- -P, --perl-regexep: i pattern sono espressioni Perl
- -e, regexp = PATTERNS: Cerca i modelli per le corrispondenze
- -F. -file (File): usa i modelli come file
- -i, --ignore-case: ignora le maiuscole
- -w, --word-regexp: trova tutte le stesse parole
- -x, --line-regexp: trova tutte le righe
- -s, --no-messages: rimuove i messaggi di errore
- -v, --invert-match: seleziona le righe che non corrispondono ai criteri di ricerca
- -V, --version: mostra la versione di grep utilizzata
- -m, --max-count = NUM: interrompe la ricerca dopo un numero specificato di righe
- -b, --byte-offset = Visualizza l'offset di byte accanto alle righe di output
- -n, --line-number: stampa il numero di righe
- -H, --with-filename: mostra il nome del file sulle righe di output
- -q, --quiet: sopprime tutti i risultati
- -d, --directories = Azione: indica come vengono gestite le directory
- -l, --files-senza-match = Stampa solo i nomi dei file escluse le righe
- -c, --count: stampa le righe selezionate per file
Non ho il comando GrepIl comando grep è di default nelle distribuzioni Linux, ma se per qualche motivo non lo hai, puoi installarlo con i seguenti comandi:
sudo apt-get install grep (Debian e Ubuntu) sudo yum install grep (Redhat, CentOS e Fedora)
Passo 1
La sintassi generale, che può contenere più parametri, è la seguente:
grep [-AB] num] [-CEFGVbchiLlnqsvwxyUu] [[-e] modello | -f file] [--extended-regexp] [--fixed-strings] [--basic-regexp] [--regexp = PATTERN] [--file = FILE] [--ignore-case] [--word -regexp] [--line-regexp] [--line-regexp] [--no-messages] [--invert-match] [--version] [--help] [--byte-offset] [- -line-number] [--with-filename] [--no-filename] [--quiet] [--silent] [--files-senza-match] [--files-with-matcces] [- count ] [--before- context = NUM] [--after-context = NUM] [--context] [--binary] [--unix-byte-offsets] file …Passo 2
Vedremo alcuni esempi di utilizzo di Grep prima di conoscerne i parametri. Se vogliamo cercare nella directory / etc / passwd tutto ciò che riguarda un particolare utente, possiamo eseguire quanto segue:
grep "utente" / etc / passwdPassaggio 3
Il risultato sarà il seguente:
Passaggio 4
Sarà inoltre possibile forzare il comando Grep ad ignorare le lettere maiuscole e minuscole, ovvero consentire la corrispondenza solvetic, Solvetic o SOLVETIC insieme a tutte le combinazioni utilizzando il parametro -i:
grep -i "solvetico" / etc / passwd
Passaggio 5
Questa opzione può essere eseguita anche usando il comando cat in questo modo:
cat / etc / passwd | grep -i "solvetico"
2. Esempi di utilizzo del comando Grep
L'utilizzo dei comandi nei sistemi operativi Linux è un compito obbligatorio per tutti gli amministratori IT e gli utenti poiché grazie ad essi possiamo svolgere centinaia di compiti amministrativi, informativi e di supporto. Esistono numerosi comandi, ognuno con i propri criteri e funzioni, ma uno di questi è speciale per la ricerca di testo in file situati in directory o cartelle è il comando Grep.
Ora vedremo come usare il comando Grep in Linux.
Come usare Grep in generalePer capire come funziona Grep, cercheremo nella directory /etc/passwd tutti i risultati associati al nostro utente:
grep solvetic / etc / passwdDi conseguenza vedremo quanto segue:
Come ulteriore punto, ricordiamo che è possibile dire a grep di ignorare le lettere maiuscole e minuscole all'interno dei risultati, per questo eseguiamo quanto segue:
grep -i "solvetico" / etc / passwd
Grep è ideale per la ricerca di termini specifici in file conosciuti, ad esempio, eseguiamo la seguente ricerca:
grep Solvetic Solvetic.txtDi conseguenza vedremo le righe in cui viene ripetuta quella parola:
Possiamo cercare questo stesso termine in diversi file contemporaneamente, per questo useremo la seguente riga:
grep Solvetic Solvetic.txt Solvetic1.txt
Un modo più breve per farlo è eseguire quanto segue:
grep solvetico *. *
Come usare grep per reindirizzare i risultati a un file su LinuxQuesto è utile nei casi in cui dobbiamo eseguire attività di amministrazione sui file in un secondo momento, quindi è possibile reindirizzare l'output del comando grep su un file specifico, ad esempio, faremo quanto segue:
grep Solvetic Solvetic.txt> Solvetic2.txtDi conseguenza vedremo che il file di testo richiesto è stato creato:
INGRANDIRE
Come usare grep per cercare le directoryGrazie al parametro -r potremo cercare un valore nelle sottodirectory disponibili, eseguiremo quanto segue:
grep -r Solvetico / home / solveticoQuesto cercherà nell'intera home directory il termine che evidenzia i risultati rilevati:
Come usare grep per visualizzare il numero di rigaPer attività di auditing o di supporto avanzato, è ideale visualizzare il numero della riga in cui si trova il modello di ricerca, per questo possiamo utilizzare il parametro -n come segue. Lì troviamo il numero della riga in cui si trova ciascun valore.
grep -n Solvetic Solvetic.txt
Come usare grep per evidenziare i risultatiPoiché sappiamo che il testo può creare confusione molte volte, una soluzione è evidenziare i criteri di ricerca che focalizzano la nostra vista direttamente su quella riga, per questo utilizzeremo il parametro colore in questo modo:
grep -color Solvetic Solvetic.txt
Come usare grep per visualizzare le linee che iniziano o finiscono con il motivo indicatoÈ possibile che vogliamo vedere solo i risultati delle righe che iniziano o finiscono con un criterio di ricerca, per questo, se vogliamo cercare le righe che iniziano, utilizzeremo la seguente riga:
grep Solvetic Solvetic.txt
Ora, per visualizzare le righe che terminano utilizzeremo quanto segue:
grep Solvetic $ Solvetic.txt
Come usare grep per stampare tutte le righe senza vedere quali corrispondono?Se vogliamo vedere tutte le righe tranne quelle in cui viene cercato il valore, dobbiamo usare il parametro -v in questo modo:
grep -v Solvetic Solvetic.txt
Come usare grep con altri comandiGrep, come molti comandi Linux, può essere utilizzato contemporaneamente ad altri comandi per risultati più chiari, ad esempio, se vogliamo distribuire processi HTTP utilizzeremo grep insieme a ps come segue:
ps -ef | grep http
Come usare grep per contare quanto una parola viene ripetuta in un fileSe vogliamo sapere quante volte un pattern viene ripetuto in un determinato file, utilizzeremo il parametro -c:
grep -c Solvetic Solvetic.txt
Come usare grep per fare una ricerca inversaAnche se sembra strano, questo non è altro che visualizzare le parole che non stiamo specificando nel risultato, lo otteniamo con il parametro -v:
grep -v Solvetic Solvetic2.txt
Come usare grep per visualizzare i dettagli dell'hardwareAbbiamo visto prima che possiamo combinare grep con altri comandi per visualizzare un risultato, beh, se vogliamo ottenere dettagli hardware specifici possiamo usare cat con grep in questo modo:
cat / proc / cpuinfo | grep -i 'Modello'
Abbiamo appreso a livello globale l'uso che ci offre il comando grep per accedere a risultati molto più specifici dei criteri di ricerca in Linux.
3. Come usare il comando Grep Linux in modo ricorsivo
Passo 1
Grep ci dà la possibilità di eseguire una ricerca ricorsiva, cioè che questa ricerca legge tutti i file in ogni directory per una stringa specifica, ad esempio l'indirizzo IP del computer, possiamo eseguire una delle seguenti opzioni:
grep -r "192.168.0.25" / etc / o grep -R "192.168.0.25" / etc /
NotaLì possiamo inserire l'indirizzo IP corrente dell'apparecchiatura in uso.
Passo 2
Possiamo anche eseguire lo stesso con l'IP 192.168.1.5 che il sistema utilizza per gli output standard:
Passaggio 3
Possiamo notare che con entrambi gli indirizzi IP viene visualizzata una riga separata preceduta dal nome del file in cui è stato rilevato, se vogliamo eliminare l'inclusione di questo valore sarà possibile sopprimerlo utilizzando l'opzione -h come questo:
grep -h -R "192.168.1.5" / etc / o grep -hR "192.168.1.5" / etc /
NotaQuesto comando deve essere eseguito come root o anteponendo sudo al comando.
4. Come utilizzare il comando Grep Linux per eseguire ricerche di parole
Passo 1
Grep è utile per cercare termini in un determinato file, quindi il risultato visualizzerà in modo evidenziato ogni riga in cui si trova il termine di ricerca, così come le parole (non evidenziate) che accompagnano il termine di ricerca, la sintassi da utilizzare è il seguente. In questo caso sono state rilevate 3 corrispondenze nel file Solvetic1.
grep -w file "parola"
Passo 2
Nel caso di voler cercare due termini in un file, dobbiamo eseguire la seguente sintassi utilizzando il comando egrep. Come possiamo vedere, le parole cercate verranno evidenziate nel risultato.
egrep -w 'term1 | term2' file
5. Come usare il comando Grep Linux per contare le parole
Passo 1
Un'altra delle opzioni pratiche di Grep è la possibilità di sapere quante volte viene ripetuta una parola in un file specifico, questo si ottiene grazie al parametro -c in questo modo:
grep -c file 'parola'
Passo 2
In alternativa possiamo utilizzare il parametro -n per far precedere ogni riga di output dal numero della riga in cui è inserita nel file selezionato:
grep -n file 'parola'
6. Come forzare la ricerca inversa comando Grep Linux
Con la ricerca inversa intendiamo che il comando Grep visualizzerà solo i risultati di quelle righe che non contengono la parola definita, ciò si ottiene con il parametro -v in questo modo:
grep -v file "termine"
7. Come usare UNIX / Linux Pipes insieme al comando Grep
Passo 1
Il comando Grep in Linux può essere combinato con le shell pipe UNIX, ad esempio, se vogliamo elencare il nome dei dispositivi del disco rigido eseguiremo la seguente riga:
dmesg | egrep '(s | h) d [a-z]'
Passo 2
Lì i risultati verranno visualizzati con tutte le rispettive informazioni. Per visualizzare il modello di CPU eseguiamo:
cat / proc / cpuinfo | grep -i 'Modello'
Passaggio 3
Per questo stesso risultato possiamo anche eseguire quanto segue:
grep -i 'Modello' / proc / cpuinfoPassaggio 4
Uno degli usi più speciali del comando Grep o egrep è la capacità di filtrare l'output dei comandi tradizionali come yum, dpkg, apt o apt-get. Ad esempio, possiamo eseguire la seguente riga per trovare immagini Linux con dpkg:
dpkg --list | grep linux-image
Passaggio 5
Sarà possibile eseguire la ricerca con apt:
apt cerca maria | egrep 'server | client'
8. Come elencare solo i nomi di file che corrispondono a Grep
A questo scopo possiamo utilizzare l'opzione -l per elencare il nome del file in cui il suo contenuto verrà evidenziato in questo modo:
grep -l 'termine' * .cParametri del comando GrepSuccessivamente, vedremo le varie variabili che Grep ci offre per la sua gestione in Linux:
- -num: Con questa opzione, le righe corrispondenti saranno accanto ai numeri di riga precedenti e successivi.
- -A num, --after-context = NUM: Visualizza il numero di righe di contesto dopo che corrispondono a quelle indicate.
- -B num, --before-context = NUM: Usando questa opzione verranno visualizzate le righe di contesto prima di quelle che corrispondono alla ricerca.
- -V, --version: visualizza il numero di versione di grep utilizzato.
- -b, --byte-offset: questo parametro visualizza l'offset in byte dall'inizio del file di input prima di ogni riga del suo output.
- -c, --count: conta il numero di righe che corrispondono al termine specificato.
- -h, --no-filename: sopprime la stampa dei nomi dei file nell'output.
- i, --ignore-case: non tiene conto se le lettere sono maiuscole o minuscole.
- -L, --files-senza-match: questa opzione mostra il nome di ogni file di input in cui non viene trovata alcuna corrispondenza.
- -l, --files-with-matches: mostra il nome di ogni file di input che può generare un risultato.
- -n, --line-number: associa ogni riga di output con il rispettivo numero di riga nel file di ricerca.
- -q, --quiet: attiva la modalità silenziosa che sopprime l'output normale e la ricerca termina alla prima corrispondenza.
- -s, --silent: elimina i messaggi di errore.
- -v, --invert-match: questa opzione inverte la direzione di ricerca, ovvero visualizzerà i risultati che non corrispondono al termine di ricerca.
- w, --word-regexp: questo parametro seleziona solo le righe che contengono corrispondenze che compongono parole intere.
- -x, --line-regexp: questa opzione seleziona solo le corrispondenze che consistono nell'intera riga.
9. Come utilizzare e installare il comando Tree in Linux
Ora parleremo un po' del comando Albero, come indica il nome, è stato sviluppato per mostrare le directory di sistema sotto forma di albero, facilitando così la loro gestione.
Il comando Tree agisce con un comando ricorsivo di elenco delle directory che risulta nel formato ad albero disegnato con una serie di colori solo se la variabile d'ambiente LS_COLORS è impostata e l'output è tty, nel caso non siano assegnati argomenti, questo comando elencherà i file in la directory corrente.
Passo 1
La sua sintassi generale è la seguente:
tree [-acdfghilnpqrstuvxACDFQNSUX] [-L livello [-R]] [-H baseHREF] [-T titolo] [-o nome file] [--nolinks] [-P pattern] [-I pattern] [--inodes] [ --device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit #] [--si] [--prune] [--du] [--timefmt format ] [--matchdirs] [-] [directory…]Passo 2
Il primo passaggio consiste nell'installare il comando Tree eseguendo il comando seguente:
sudo apt install tree
Passaggio 3
Una volta installato eseguiamo direttamente il comando "tree" per elencare la directory corrente in formato albero:
10. Come lavorare con i file usando il comando Tree in Linux
Visualizza i file nascosti con TreePer impostazione predefinita, il comando Tree non visualizzerà i file nascosti per motivi di sicurezza, se vogliamo visualizzarli nel risultato, sarà possibile aggiungere il parametro -a a questo scopo:
albero -a
INGRANDIRE
Visualizza solo le directory con TreeNel caso in cui si desideri che Tree generi solo le voci della directory, sarà possibile farlo utilizzando il parametro -d in questo modo:
albero -d
INGRANDIRE
Visualizza il percorso completo dei file con TreeIl comando Tree ci dà la possibilità di stampare il prefisso del percorso completo per i file nella directory utilizzando il parametro -f:
albero -f
INGRANDIRE
Controlla la dimensione del risultato con TreeIn alcuni casi è possibile che il risultato generato sia estremamente lungo, tree ci permette di controllare la profondità dell'albero delle directory per il suo output, per questo dobbiamo usare il parametro -L che richiede un valore numerico che indichi la profondità della directory consentita:
albero -d -L 2
INGRANDIRE
Usa nomi selettivi con TreeCon il parametro -l sarà possibile escludere determinate parole dai risultati generati da Tree, ad esempio possiamo eseguire la seguente riga per generare risultati, ma senza il termine Android:
albero -d -I * Android
INGRANDIRE
11. Parametri da usare con il comando Tree in Linux
Parametri da usare con TreeSuccessivamente, Solvetic spiegherà i parametri disponibili da utilizzare con Tree:
- -a: stampa tutti i file, ricorda che per impostazione predefinita l'albero non stampa i file nascosti.
- -d: elenca solo le directory.
- -l: continua i collegamenti simbolici se puntano a directory, fingendo di essere directory.
- -f: stampa il prefisso del percorso completo degli oggetti.
- -x: rimane solo nel file system corrente.
- -L Level: permette di definire la profondità massima di visualizzazione dell'albero delle directory nel risultato.
- -R: Agisce in modo ricorsivo attraversando l'albero nelle directory di ogni livello e in ognuna di esse verrà eseguito. di nuovo l'albero aggiungendo `-o 00Tree.html '.
- -P pattern: elenca solo i file che corrispondono al pattern jolly.
- -I pattern: non elenca i file che corrispondono al pattern jolly.
- --matchdirs. Questa opzione specifica un modello di corrispondenza che consente di applicare il modello solo ai nomi delle directory.
- --prune: questo parametro rimuove le directory vuote dall'output.
- --noreport: Salta la stampa del report di file e directory alla fine dell'elenco dell'albero eseguito.
Opzioni generali dell'alberoQueste sono le opzioni generali dell'albero disponibili, ma abbiamo anche parametri esclusivi per i file, questi sono:
- -q: stampa i caratteri non stampabili nei nomi dei file.
- -N: stampa caratteri non stampabili.
- -Q: La sua funzione è di assegnare i nomi dei file tra virgolette.
- -p: stampa il tipo di file e i permessi per ogni file nella directory.
- -u: stampa il nome utente o l'UID del file.
- -s: stampa la dimensione di ogni file in byte e il suo nome.
- -g Stampa il nome del gruppo, o GID del file.
- -h: la sua funzione è quella di stampare la dimensione di ogni file in un modo leggibile dall'uomo.
- --du: Agisce su ogni directory generando un report sulla sua dimensione, incluse le dimensioni di tutti i suoi file e sottodirectory.
- --si: utilizza potenze di 1000 (unità SI) per visualizzare la dimensione del file.
- -D: Stampa la data dell'ultima modifica dei file.
- -F: Il tuo compito è aggiungere un `/ 'per le directory, un` =' per i file socket, un `* 'per i file eseguibili, un`>' per le porte (Solaris) e un `| ' per FIFO.
- --inodes: stampa il numero di inode del file o della directory.
- --device: stampa il numero del dispositivo a cui appartiene il file o la directory nell'output.
- -v: ordina l'output per versione.
- -U: Non ordina i risultati.
- -r: ordina l'output in ordine inverso.
- -t: ordina i risultati in base all'ora dell'ultima modifica anziché in ordine alfabetico.
- -S: attiva i grafici a linee CP437
- -n: disabilita la colorazione del risultato.
- -C: Attiva la colorazione.
- -X: attiva l'output XML.
- -J: attiva l'output JSON.
- -H baseHREF: attiva l'output HTML, inclusi i riferimenti HTTP.
- --help: consente di accedere alla guida dell'albero.
- --version: Visualizza la versione utilizzata del comando Albero.
Con l'uso di questi due comandi è stato possibile amministrare in modo molto più completo ogni attività da eseguire sui file in Linux, integrando le attività di ricerca o gestione su di essi e accedendo a risultati completi secondo necessità.