GNU/Linux >> Linux Esercitazione >  >> Linux

20 comandi Linux di una riga da aggiungere alla tua cassetta degli attrezzi

Molti utenti Linux hanno sperimentato un duraturo senso di realizzazione dopo aver composto un comando particolarmente intelligente che realizza più azioni in una sola riga o che riesce a fare in una riga ciò che di solito richiede 10 clic e altrettante finestre in un'interfaccia utente grafica (GUI). Oltre ad essere leggenda, le battute sono ottimi esempi del perché il terminale è considerato uno strumento così potente.

Entro la fine di questo articolo, avrai:

  • Un elenco di 20 comandi che semplificheranno le tue attività quando lavori su Linux
  • Una comprensione delle possibilità di combinare comandi semplici per creare comandi più potenti
  • Più divertente di quanto ti aspetteresti eseguire questi comandi

Senza alcun ordine di importanza specifico, queste sono le nostre prime 20 battute per il terminale Linux. Anche se abbiamo diviso alcuni dei comandi più lunghi con il \ simbolo per una più facile leggibilità, puoi inserirli tutti su un'unica riga nel tuo terminale perché, in fondo, sono a una riga.

1. Applica un comando su file con nomi diversi

La shell {} l'operatore è ottimo per questo. Ecco un esempio con tre directory racchiuse in {} :

$ mkdir -p -v /home/josevnz/tmp/{dir1,anotherdir,similardir}

2. Modifica un file sul posto

Vuoi sostituire una stringa su uno o più file senza utilizzare un editor? Certo, sed in soccorso:

$ sed -i 's#ORIGINAL_VALLUE#NEW_VALUE#g' myfile1 myfile2

Ma aspetta, gli amanti del Perl ti diranno che possono fare lo stesso:

$ perl -p -i -e 's#ORIGINAL#NEW_VALUE#' myfile1 myfile2

3. Condividi rapidamente un file utilizzando un server web

Alzi la mano chi non l'ha usato almeno una volta per condividere rapidamente una directory:

$ cd $mydir && python3 -m http.server 8888

4. Trova gli errori con journalctl

A volte le cose si rompono. Puoi trovare gli errori più recenti utilizzando una combinazione di journalctl , insieme ai classici strumenti sort e uniq :

$ journalctl --no-pager --since today \
--grep 'fail|error|fatal' --output json|jq '._EXE' | \
sort | uniq -c | sort --numeric --reverse --key 1

898172 "/usr/bin/dockerd"
    752 "/usr/local/sbin/node_exporter"
     30 "/usr/bin/gnome-shell"
     26 "/usr/bin/cat"
     22 "/usr/libexec/gsd-media-keys"
[...]

In questo caso, sembra che il demone Docker sia infelice.

[ Scarica questo eBook per prepararti al tuo esame a distanza Red Hat. ]

5. Effettua un backup tramite trasferimento di file crittografato

Usa ssh e tar per eseguire backup sicuri. Si uniscono come burro di arachidi e gelatina:

$ tar --create --directory /home/josevnz/tmp/ --file - *| \
ssh raspberrypi "tar --directory /home/josevnz \
--verbose --list --file -"

Puoi aggiungere sapore al processo di backup con compressione e crittografia, proprio come aggiungere ingredienti al tuo sandwich.

6. Scrivi file istantanei

Questo è un ottimo trucco quando devi scrivere documenti multilinea:

$ cat<<DOC>/my/new/file
Line1
Line2
A $VARIABLE
DOC

Puoi anche solo cat > file e quando hai finito di modificare, inserisci semplicemente il carattere EOF (Ctrl+D ):

[josevnz@dmaf5 temp]$ cat > testfile
This is a test
multiple lines
and here we go
[josevnz@dmaf5 temp]$ 

7. Cerca un file, includi alcune estensioni ed escludi altri

Questo esempio usa grep modo per cercare file specifici. È abbastanza veloce e facile da ricordare:

$ grep -R 'import' --include='*.java' --color MySourceCodeDir

Oppure puoi provare il find modo (usa xargs per gestire correttamente un gran numero di partite):

$ find MySourceCodeDir/ -name '*.java' -type f -print| xargs \
grep --color 'import

Perché find , potresti chiedere? Puoi combinare find con -exec per eseguire prima le azioni sui tuoi file e poi passare i risultati al filtro. Le possibilità di elaborazione qui sono infinite.

8. Monitora la memoria senza top o htop

Questo sta quasi barando. Ripete un comando, come free , ogni cinque secondi ed evidenzia le differenze:

$ watch -n 5 -d '/bin/free -m'

9. Visualizza le dimensioni della partizione del disco

Usa lsbk (blocco elenco) e jq (per manipolare un JSON sulla riga di comando) per visualizzare le informazioni sulla partizione:

$ lsblk --json | jq -c '.blockdevices[]|[.name,.size]'
["loop0","55.5M"]
["loop1","156M"]
["loop2","32.3M"]
["zram0","4G"]
["nvme0n1","476.9G"]

10. Visualizza rapidamente un tipo di file

Il Che cos'è la funzione viene chiamata con wi . Ti dice rapidamente il tipo di file.

Per controllare un singolo file:

$ function wi { test -n "$1" && stat --printf "%F\n" "$1"; }

Per controllare più file:

$ function wi { test "$#" -gt 0 && stat --printf "%n: %F\n" "$@"; }

NOTA :le funzioni sono superiori e possono svolgere lo stesso lavoro di un alias.

11. Visualizza la dimensione di un RPM installato

Se hai un sistema basato su RPM, prima o poi, formatterai le tue query. Ecco un esempio:

$ rpm --queryformat='%12{SIZE} %{NAME}\n' \
-q java-11-openjdk-headless

[ Allenati e prova i nostri ultimi corsi ed esami di Red Hat Training &Certification:percorso di competenze Red Hat Enterprise Linux. ]

12. Visualizza la dimensione totale di un gruppo di file

In questo caso, il find Il comando funge da filtro, visualizza la dimensione di ciascun file in byte e, infine, mostra la dimensione totale:

$ t=0; for n in $(find ~/Documents -type f -name '*.py' -print | xargs \
stat --printf "%s "); do ((t+=n)); done; echo $t

Oppure, se vuoi una funzione (migliore), prova questo approccio:

$ function size { t=0; test -d "$1" && for n in $(find $1 \
-type f -name '*.py' -print| \
xargs stat --printf "%s "); do ((t+=n)); done; echo $t; }

size $mydir

13. Aggiorna tutti i repository Git su una directory

Sai già quanto è utile Git. Ecco un trucco per essere più efficienti con i tuoi aggiornamenti:

$ for i in */.git; do cd $(dirname $i); git pull; cd ..; done

14. Esponi una directory web utilizzando i contenitori

I container sono fondamentali oggi. Questo one-liner espone una directory tramite Podman:

$ podman run --rm -v .:/usr/share/nginx/html:ro,Z \
-p 30080:80 -d nginx

15. Controlla il tempo

Usa questa funzione per scoprire se hai bisogno di una giacca oggi:

weather() { curl -s --connect-timeout 3 -m 5 http://wttr.in/$1; }

16. Visualizza i primi 10 indirizzi IP che colpiscono un server web

Ecco un'attività che gli amministratori Web possono utilizzare frequentemente con Nginx (potrebbe funzionare anche con Apache) per acquisire i primi 10 indirizzi di protocollo Internet che colpiscono un server Web dal registro di accesso:

$ cat /var/log/nginx/access.log | cut -f 1 -d ' ' | sort | \
uniq -c | sort -hr | head -n 10

17. Round fluttua in Bash con l'aiuto di Python

Puoi fare cose piuttosto interessanti con Python, ma questo esempio arrotonda semplicemente i numeri:

$ echo "22.67892" | python3 -c "print(f'{round(float(input()))}')"
23

18. Esegui una mini calcolatrice

Questa funzione definisce una calcolatrice rapida sulla riga di comando con precisione variabile (il valore predefinito è 2). Usa bc. Crea la funzione in questo modo:

$ function qqbc() { echo "scale=${2:-2}; $1" | bc -l

Quindi, esegui un rapido calcolo:

$ qqbc "2/3"
.66

Nel caso abbiate bisogno di ulteriore precisione, basta definire un secondo parametro:

$ qqbc "2/3" 4
.6666

Questo strumento si chiama qqbc perché è un miglioramento della vecchia funzione qbc .

19. Converti un CSV in JSON

Questo trucco è una modifica di questa popolare ricetta per convertire i file CSV nel formato JSON:

$ python3 -c \
"import csv,json,sys;print(json.dumps(list(csv.reader(open(sys.argv[1])))))" \
covid19-vaccinations-town-age-grp.csv

20. Installa ed esegui comandi con Docker

Se hai installato Docker e desideri eseguire un comando senza installare una serie di dipendenze sul tuo sistema (durante l'esecuzione rapida), questo potrebbe essere tutto ciò di cui hai bisogno:

$ docker run --rm --interactive curlimages/curl curl \
--verbose --location --fail --silent --output - \
https://example.com

Il comando esegue l'ultima versione di curl da un contenitore e successivamente lo rimuove. Nota che il comando termina con un trattino (- ), che dice a curl per l'output sul tuo terminale. Le possibilità sono infinite qui.

Concludi

La capacità di creare potenti combinazioni di comandi semplici è uno dei motivi per cui Unix e Linux sono così popolari.

Fortunatamente. non è difficile imparare queste battute. Concentrati sul ricordare cosa fa un semplice comando e poi pensa a come puoi combinare molti semplici comandi per creare una ricetta potente.

Controlla sempre il man pagina o utilizzare le info comando per capire cos'altro può fare lo strumento. Potresti essere sorpreso di apprendere che uno strumento può fare tutto senza combinarlo con un'altra utilità.

Ci sono molti siti su Internet con molti esempi di una riga. Ci auguriamo che questi esempi ti portino a scrivere battute migliori.


Linux
  1. 5 Comandi per la risoluzione dei problemi di rete Linux

  2. I miei 8 comandi Linux pratici preferiti

  3. Aggiungi questi 4 strumenti alla tua cassetta degli attrezzi del contenitore Linux

  4. Comandi Linux dalla A alla Z

  5. Come mandare in crash il tuo sistema:pericolosi comandi Linux

Usa Linux per pagare le tasse

Come aggiungere un utente al tuo desktop Linux

Installa i caratteri Nerd per aggiungere glifi nel tuo codice su Linux

Copia avanzata:aggiungi la barra di avanzamento ai comandi cp e mv in Linux

Metti un timer sui tuoi comandi in esecuzione con il comando di timeout in Linux

Imparare i comandi Linux Elimina utente o Aggiungi utente Linux