Utilizzando alternative più moderne insieme ai vecchi strumenti da riga di comando, puoi divertirti di più e persino migliorare la tua produttività.
Nel nostro lavoro quotidiano su Linux/Unix utilizziamo molti strumenti da riga di comando, ad esempio du per monitorare l'utilizzo del disco e le risorse di sistema. Alcuni di questi strumenti esistono da molto tempo. Ad esempio, top è apparso nel 1984 e la prima versione di du risale al 1971.
Nel corso degli anni questi strumenti sono stati modernizzati e portati su diversi sistemi, ma in generale non si sono allontanati molto dalle prime versioni, anche il loro aspetto e la loro usabilità non sono cambiati molto.
Questi sono ottimi strumenti di cui molti amministratori di sistema hanno bisogno. Tuttavia, la comunità ha sviluppato strumenti alternativi che offrono ulteriori vantaggi. Alcuni di essi hanno semplicemente un'interfaccia moderna e bella, mentre altri migliorano notevolmente l'usabilità. In questa traduzione parleremo di cinque alternative agli strumenti standard da riga di comando di Linux.
1. ncdu contro du
Utilizzo del disco NCurses (
ncdu analizza il disco e quindi visualizza i risultati ordinati in base alle directory o ai file utilizzati più frequentemente, ad esempio:
ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
96.7 GiB [##########] /libvirt
33.9 GiB [### ] /.crc
7.0 GiB [ ] /Projects
. 4.7 GiB [ ] /Downloads
. 3.9 GiB [ ] /.local
2.5 GiB [ ] /.minishift
2.4 GiB [ ] /.vagrant.d
. 1.9 GiB [ ] /.config
. 1.8 GiB [ ] /.cache
1.7 GiB [ ] /Videos
1.1 GiB [ ] /go
692.6 MiB [ ] /Documents
. 591.5 MiB [ ] /tmp
139.2 MiB [ ] /.var
104.4 MiB [ ] /.oh-my-zsh
82.0 MiB [ ] /scripts
55.8 MiB [ ] /.mozilla
54.6 MiB [ ] /.kube
41.8 MiB [ ] /.vim
31.5 MiB [ ] /.ansible
31.3 MiB [ ] /.gem
26.5 MiB [ ] /.VIM_UNDO_FILES
15.3 MiB [ ] /Personal
2.6 MiB [ ] .ansible_module_generated
1.4 MiB [ ] /backgrounds
944.0 KiB [ ] /Pictures
644.0 KiB [ ] .zsh_history
536.0 KiB [ ] /.ansible_async
Total disk usage: 159.4 GiB Apparent size: 280.8 GiB Items: 561540
Puoi navigare tra le voci utilizzando i tasti freccia. Se premi Invio, ncdu visualizzerà il contenuto della directory selezionata:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
È possibile utilizzare questo strumento, ad esempio, per determinare quali file occupano più spazio su disco. È possibile passare alla directory precedente premendo il tasto freccia sinistra. Con ncdu puoi eliminare i file premendo il tasto d. Chiede conferma prima dell'eliminazione. Se desideri disabilitare la funzione di eliminazione per evitare la perdita accidentale di file importanti, utilizza l'opzione -r per abilitare la modalità di accesso di sola lettura: ncdu -r.
ncdu è disponibile per molte piattaforme e distribuzioni Linux. Ad esempio puoi usare dnf per installarlo su Fedora direttamente dai repository ufficiali:
$ sudo dnf install ncdu
2. htop contro top
Per impostazione predefinita, htop si presenta così:
A differenza dell'alto:
Inoltre, htop visualizza nella parte superiore le informazioni generali sul sistema e nella parte inferiore un pannello per l'esecuzione dei comandi utilizzando i tasti funzione. È possibile configurarlo premendo F2 per aprire la schermata di configurazione. In Impostazioni puoi modificare i colori, aggiungere o rimuovere metriche o modificare le opzioni di visualizzazione del pannello di panoramica.
Sebbene sia possibile ottenere un'usabilità simile modificando le impostazioni delle ultime versioni di top, htop fornisce comode configurazioni predefinite, che lo rendono più pratico e facile da usare.
3. tldr contro uomo
Lo strumento da riga di comando tldr visualizza informazioni di aiuto semplificate sui comandi, principalmente esempi. È stato sviluppato dalla comunità
Vale la pena notare che tldr non sostituisce man. È ancora lo strumento di output della pagina man canonico e più completo. Tuttavia in alcuni casi l’uomo è superfluo. Quando non hai bisogno di informazioni complete su un comando, stai solo cercando di ricordarne gli usi di base. Ad esempio, la pagina man del comando curl contiene quasi 3000 righe. La pagina tldr per curl è lunga 40 righe. Il suo frammento assomiglia a questo:
$ tldr curl
# curl
Transfers data from or to a server.
Supports most protocols, including HTTP, FTP, and POP3.
More information: <https://curl.haxx.se>.
- Download the contents of an URL to a file:
curl http://example.com -o filename
- Download a file, saving the output under the filename indicated by the URL:
curl -O http://example.com/filename
- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:
curl -O -L -C - http://example.com/filename
- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Send a request with an extra header, using a custom HTTP method:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Send data in JSON format, specifying the appropriate content-type header:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUT
TLDR significa “troppo lungo; non ha letto": cioè qualche testo è stato ignorato a causa della sua eccessiva verbosità. Il nome è appropriato per questo strumento perché le pagine man, sebbene utili, a volte possono essere troppo lunghe.
Per Fedora, tldr è stato scritto in Python. Puoi installarlo utilizzando dnf manager. In genere, lo strumento richiede l'accesso a Internet per funzionare. Ma il client Python di Fedora consente a queste pagine di essere scaricate e memorizzate nella cache per l'accesso offline.
4.jq contro sed/grep
jq è un processore JSON per la riga di comando. È simile a sed o grep, ma è progettato specificamente per funzionare con i dati JSON. Se sei uno sviluppatore o un amministratore di sistema che utilizza JSON nelle attività quotidiane, questo è lo strumento che fa per te.
Il vantaggio principale di jq rispetto agli strumenti di elaborazione testo standard come grep e sed è che comprende la struttura dei dati JSON, consentendoti di creare query complesse in un'unica espressione.
Ad esempio, stai cercando di trovare i nomi dei contenitori in questo file JSON:
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"labels": {
"app": "myapp"
},
"name": "myapp",
"namespace": "project1"
},
"spec": {
"containers": [
{
"command": [
"sleep",
"3000"
],
"image": "busybox",
"imagePullPolicy": "IfNotPresent",
"name": "busybox"
},
{
"name": "nginx",
"image": "nginx",
"resources": {},
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Never"
}
}
Esegui grep per trovare il nome della stringa:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep ha restituito tutte le righe contenenti la parola nome. Puoi aggiungere qualche altra opzione a grep per limitarlo e utilizzare alcune manipolazioni delle espressioni regolari per trovare i nomi dei contenitori.
Per ottenere lo stesso risultato utilizzando jq, basta scrivere:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Questo comando ti darà i nomi di entrambi i contenitori. Se stai cercando solo il nome del secondo contenitore, aggiungi l'indice dell'elemento dell'array all'espressione:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Poiché jq conosce la struttura dei dati, produce gli stessi risultati anche se il formato del file cambia leggermente. grep e sed potrebbero non funzionare correttamente in questo caso.
jq ha molte funzioni, ma per descriverle è necessario un altro articolo. Per ulteriori informazioni contattare
5. fd vs trova
Ad esempio, durante la ricerca di file in una directory del repository Git, fd esclude automaticamente i file e le sottodirectory nascosti, inclusa la directory .git, e ignora anche i caratteri jolly dal file .gitignore. Nel complesso, accelera le ricerche restituendo risultati più pertinenti al primo tentativo.
Per impostazione predefinita, fd esegue una ricerca senza distinzione tra maiuscole e minuscole nella directory corrente, con output a colori. La stessa ricerca utilizzando il comando trova richiede l'immissione di parametri aggiuntivi nella riga di comando. Ad esempio, per trovare tutti i file .md (o .MD) nella directory corrente, dovresti scrivere un comando find come questo:
$ find . -iname "*.md"
Per fd assomiglia a questo:
$ fd .md
Ma in alcuni casi fd richiede anche opzioni aggiuntive: ad esempio, se vuoi includere file e directory nascosti, devi usare l'opzione -H, anche se di solito non è richiesta durante la ricerca.
fd è disponibile per molte distribuzioni Linux. In Fedora può essere installato in questo modo:
$ sudo dnf install fd-find
Non devi rinunciare a nulla
Stai utilizzando i nuovi strumenti da riga di comando di Linux? Oppure ti siedi esclusivamente su quelli vecchi? Ma molto probabilmente hai una combo, giusto? Per favore condividi la tua esperienza nei commenti.
Sui diritti della pubblicità
Molti dei nostri clienti ne hanno già apprezzato i vantaggi server epici!
Essa
Fonte: habr.com