Se sei un utente Windows o un utente non esperto di OSX, probabilmente utilizzi una GUI per trovare i file. Potresti anche trovare l'interfaccia limitata, frustrante o entrambi e aver imparato a eccellere nell'organizzazione delle cose e nel ricordare l'ordine esatto dei tuoi file. Puoi farlo anche in Linux, ma non è necessario.
Una delle cose migliori di Linux è che offre una varietà di modi per fare le cose. Puoi aprire qualsiasi file manager e ctrl
+f
, puoi utilizzare il programma in cui ti trovi per aprire i file manualmente, oppure puoi semplicemente iniziare a digitare lettere e filtrerà l'elenco della directory corrente.
Ma cosa succede se non sai dove si trova il tuo file e non vuoi cercare l'intero disco? Linux è ben attrezzato per questo e una varietà di altri casi d'uso.
Trovare le posizioni dei programmi in base al nome del comando
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Il file system Linux può sembrare scoraggiante se sei abituato a mettere le cose dove vuoi. Per me, una delle cose più difficili a cui abituarsi è stata trovare dove dovrebbero vivere i programmi.
Ad esempio, which bash
di solito restituirà /bin/bash
, ma se scarichi un programma e non appare nei tuoi menu, il which
comando può essere un ottimo strumento.
Un'utilità simile è locate
comando, che trovo utile per trovare i file di configurazione. Non mi piace digitare i nomi dei programmi perché quelli semplici come locate php
spesso offrono molti risultati che devono essere ulteriormente filtrati.
Per ulteriori informazioni su locate
e which
, vedi man
pagine:
man which
man locate
Trova
Il find
l'utilità offre funzionalità molto più avanzate. Di seguito è riportato un esempio di uno script che ho installato su un numero di server che amministra per garantire che uno specifico modello di file (noto anche come glob) esista per soli cinque giorni e tutti i file più vecchi di quello vengano eliminati. (Dall'ultima modifica, viene utilizzato un decimale per contabilizzare fino a 240 minuti di differenza.)
find ./backup/core-files*.tar.gz -mtime +4.9 -exec rm {} \;
Il find
l'utilità ha molti casi d'uso avanzati, ma la più comune è l'esecuzione di comandi sui risultati senza concatenare e filtrare i file per tipo, creazione e data di modifica.
Un altro uso interessante di find
è trovare tutti i file con autorizzazioni eseguibili. Questo può aiutare a garantire che nessuno stia installando bitcoin miner o botnet sui tuoi costosi server.
find / -perm /+x
Per ulteriori informazioni su find
, vedi man
pagina utilizzando man find.
Grep
Vuoi trovare un file in base al suo contenuto? Linux lo ha coperto. Puoi usare molte utilità Linux per cercare in modo efficiente i file che corrispondono a un modello, ma grep
è uno che uso spesso.
Si supponga di avere un'applicazione che fornisce messaggi di errore con un riferimento al codice e una traccia dello stack. Li trovi nei tuoi registri. Grepping non è sempre l'ideale, ma io ho sempre grep -R
se il problema riguarda un valore fornito.
Un numero crescente di IDE sta implementando funzioni di ricerca, ma se stai accedendo a un sistema remoto o per qualsiasi motivo non hai una GUI, o se vuoi scorrere sul posto, usa: grep -R {searchterm}
o su sistemi che supportano egrep
alias; aggiungi semplicemente -e
flag per comandare egrep -r {regex-pattern}
.
Ho usato questa tecnica durante l'applicazione di patch a dhcpcd5
in Raspbian l'anno scorso in modo da poter continuare a gestire un punto di accesso di rete sulle versioni Debian più recenti della Raspberry Pi Foundation.
Quali suggerimenti ti aiutano a cercare file in modo più efficiente su Linux?