Alcuni comandi del terminale combinati hanno sostituito le app Linux che stavo usando per la ricerca, i log e l'utilizzo del disco
Per diversi anni, sono stato il tipo con una dozzina di app GUI sul mio desktop Linux. Tutte avevano uno scopo: una per la ricerca di file, una per la visualizzazione dei log e un'altra per l'utilizzo del disco. Continuamente passavo da una finestra all'altra per eseguire diverse parti del mio flusso di lavoro.
Tuttavia, tutto è cambiato nel momento in cui ho iniziato a concatenare comandi di terminale di base come grep, find, du, jq e sort. È stato un aggiornamento prezioso per il mio flusso di lavoro, migliorando la mia efficienza e riducendo il tempo trascorso a passare tra le applicazioni GUI. Ti guiderò attraverso le combinazioni esatte che utilizzo e come mi hanno aiutato.
La ricerca è diventata più veloce
Find e grep hanno cambiato il modo in cui cerco i file
Ho sempre creduto che la ricerca dei file dovrebbe essere un compito completamente separato. Questo mi ha reso comodo aprire il mio gestore di file, cercare e poi aprire un'app diversa per cercare all'interno dei file successivamente. Funziona, ma il problema è l'inefficienza.
Capire che le ricerche nel terminale non si fermano alla semplice individuazione dei file ha cambiato tutto per me. Con find, posso localizzare i file .conf all'interno di un progetto specifico e passare i risultati a grep per trovare percorsi obsoleti. Finché ho usato il terminale, queste ricerche apparentemente separate non richiedevano l'apertura di una seconda applicazione e bastava un semplice comando come questo:
find ~/Projects -name "*.conf" | xargs grep -l "localhost"Aggiungere -l al comando grep (ad esempio xargs grep -l "localhost") restituisce solo i nomi dei file invece di ogni riga corrispondente.
Mi sono reso conto che potevo applicare questo approccio per individuare ogni ISO, vecchio screenshot, backup dimenticato e ogni tipo di ingombro. Anche quando erano sparsi in diverse directory, non avevo bisogno di cercare cartella per cartella.
Credo ancora che, per la navigazione occasionale, ci sia un argomento a favore degli strumenti di ricerca GUI. Tuttavia, essi dipendono ancora dall'indicizzazione tramite strumenti come Baloo. La differenza è che find cerca direttamente nel filesystem, quindi funziona anche quando l'indicizzazione non è configurata.
Detto ciò, ciò che ha reso questo più prezioso è stato che potevo integrare la ricerca in flussi di lavoro più ampi, poiché i risultati potevano essere immediatamente utilizzati da altri comandi. Questo rende il terminale il posto più semplice per ottenere risposte su un sistema Linux.
I registri finalmente avevano senso
Filtrare i log in tempo reale era meglio che guardare le dashboard
L'esperienza mi ha mostrato che uno dei momenti peggiori per navigare nei menu all'interno di un visualizzatore di log GUI è dopo che un servizio si interrompe. È stato questo che ha fatto davvero iniziare a funzionare le pipeline del terminale per me.
Sono passato dall'aprire app dedicate all'utilizzo del terminale. Ho iniziato a guardare i log in tempo reale con tail -f, filtrando i risultati con grep e usando awk per estrarre solo ciò che è importante. All'inizio sembrava lavoro extra, ma dopo aver fissato una parete di output del log, ha iniziato a avere senso. Per esempio, con il comando qui sotto, guardo continuamente il log di autenticazione del sistema e stampo istantaneamente solo le righe che mostrano tentativi di password falliti.
tail -f /var/log/auth.log | grep "Failed password"Questo comando è stato il mio punto di riferimento per i tentativi di accesso SSH falliti e gli errori in tempo reale dei container Docker.
GNOME Logs legge dallo stesso flusso journald a cui accede il terminale: la differenza è nella presentazione, non nelle informazioni.
Usare il terminale ha reso le sessioni di troubleshooting molto più calme perché gran parte del rumore è nascosta, e puoi facilmente individuare guasti ripetuti, codici di errore specifici e schemi di temporizzazione.
I problemi di archiviazione sono diventati più chiari
tu mi hai mostrato quali analizzatori GUI hanno ritardato
Un pacchetto Linux può fallire durante un aggiornamento se si esaurisce lo spazio di archiviazione, e non sempre fornisce avvisi. Baobab era il mio analizzatore visivo dell'uso del disco; scansiona e genera una mappa visiva. Il problema era che, sebbene fornisse informazioni accurate, di solito dovevo aspettare la visualizzazione prima di poter intraprendere qualsiasi altra azione. Ma un singolo comando du ha cambiato completamente questo.
du -h --max-depth=1 ~/ | sort -hr | head -10Mi mostra le dieci cartelle più grandi nella mia directory home, ordinate in ordine decrescente (formato leggibile dall'uomo), e i risultati arrivano quasi subito dopo aver premuto Invio.
Sostituisci ~/ con / ed esegui con sudo per controllare l'intero sistema (tieni presente che /proc, /sys, e /dev appariranno ma non contengono dati reali su disco).
Potresti trovare il suo output grezzo inizialmente poco familiare, ma i modelli delle cartelle diventano rapidamente riconoscibili. È un output testuale, e ottieni risultati senza un server di visualizzazione, rendering o ritardo.
Il baobab fornisce le stesse informazioni, ma io avrei finito prima che la sua mappa visiva a disco terminasse il caricamento.
jq ha sostituito le schede del browser
Ho smesso di incollare JSON nei siti web di formattazione
Non sono così orgoglioso del mio vecchio flusso di lavoro per gestire le risposte API. Comportava copiare il JSON, aprire un sito di formattazione, incollare il JSON e infine scorrere per trovare un campo. Potrebbe non sembrare fuori luogo, ma quando devi farlo più volte al giorno, diventa una frizione accumulata.
Questo era il flusso di lavoro che ho completamente sostituito con jq. Con filtri di base, estraevo nomi utente, timestamp o codici di stato tutto dal terminale. Ad esempio, con il comando qui sotto, recupero un profilo GitHub ed estraggo solo il nome utente:
curl -s https://api.github.com/users/octocat | jq '.login'Quando combino curl con jq, l'output di un comando diventa l'input dell'altro, e ottengo questo senza salvare file, cambiare finestra o aprire nulla di nuovo. È diventato un modo efficiente per pulire i log JSON rumorosi.
Sebbene questo rappresentasse un reale aumento di efficienza, dopo un po', aprire una scheda del browser per leggere il JSON ha iniziato a sembrare la via più lunga.
Il vero miglioramento è stato pensare in termini di pipeline
Spesso vediamo il terminale come lo strumento potente a cui si arriva dopo anni di utilizzo di Linux. Questo modo di pensare potrebbe rallentarci più del necessario. Si trattava più di fare una domanda diversa che di memorizzare comandi.
Sono passato da "quale app gestisce questo?" a "cosa voglio che accada a questi dati?" Questo è un cambiamento significativo per i flussi di lavoro quotidiani perché le pipeline quasi sembrano scriversi da sole se inizi a vedere una ricerca di file, un flusso di log o una risposta JSON come dati che puoi modellare.
Detto ciò, non devi sostituire ogni app in una volta sola; di solito funziona meglio aggiornare un flusso di lavoro alla volta.








