5 alternative moderne ai vecchi strumenti da riga di comando di Linux

Utilizzando alternative più moderne insieme ai vecchi strumenti da riga di comando, puoi divertirti di più e persino migliorare la tua produttività.

5 alternative moderne ai vecchi strumenti da riga di comando di Linux

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) è simile a du, ma con un'interfaccia interattiva basata sulla libreria curses. ncdu visualizza la struttura delle directory che occupa la maggior parte dello spazio su disco.

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

htop è un visualizzatore di processi interattivo simile a top, ma fuori dagli schemi fornisce una piacevole esperienza utente. Per impostazione predefinita, htop visualizza le stesse informazioni di top, ma in modo più visivo e colorato.

Per impostazione predefinita, htop si presenta così:

5 alternative moderne ai vecchi strumenti da riga di comando di Linux
A differenza dell'alto:

5 alternative moderne ai vecchi strumenti da riga di comando di Linux
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à Progetto di pagine tldr.

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 pagina del progetto jq o in tldr.

5. fd vs trova

fd è un'alternativa semplificata all'utilità di ricerca. Fd non intende sostituirlo completamente: ha le impostazioni più comuni installate per impostazione predefinita, definendo l'approccio generale al lavoro con i file.

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 server virtuali con processori AMD EPYC, Frequenza core della CPU fino a 3.4 GHz. La configurazione massima ti consentirà di divertirti alla grande: 128 core CPU, 512 GB RAM, 4000 GB NVMe. Affrettati ad ordinare!

5 alternative moderne ai vecchi strumenti da riga di comando di Linux

Fonte: habr.com

Aggiungi un commento