Introduzione

In questo articolo, esamineremo una serie di comandi utili che possono migliorare l'utilizzo di Linux da riga di comando CLI (Command Line Interface) o anche console oppure terminale.

Bloccare o nascondere un file o una directory in Linux

Il modo più semplice per bloccare un file o una directory è utilizzare le autorizzazioni dei file Linux. Se sei il proprietario di un file o di una directory, puoi bloccare (rimuovere i privilegi di lettura, scrittura ed esecuzione) i permessi di altri utenti e gruppi.

Per proteggere un file dalla sovrascrittura accidentale.

chmod 400 nomefile

Per proteggersi dalla rimozione accidentale, dalla ridenominazione o dallo spostamento di file da questa directory.

chmod 500 directory

Rendere un file privato, modificabile solo dall'utente che ha inserito questo comando.

chmod 600 nomefile

Rendere un file leggibile pubblicamente che può essere modificato solo dall'utente emittente.

chmod 644 nomefile

Gli utenti che appartengono al tuo gruppo possono modificare questo file, altri non hanno alcun accesso ad esso.

chmod 660 nomefile

Protegge un file da qualsiasi accesso da parte di altri utenti, mentre l'utente che ha emesso il comando ha ancora accesso completo.

chmod 700 nomefile

Per file che dovrebbero essere leggibili ed eseguibili da altri, ma solo modificabili dall'utente emittente.

chmod 755 directory

Modalità di condivisione file standard per un gruppo.

chmod 775 nomefile

Tutti possono fare tutto per questo file.

chmod 777 nomefile

Per nascondere il file o directory ad altri utenti di sistema, rinominare con un punto . all'inizio del nome file o della directory, per rendere il file "invisibile":

mv nomefile.txt .nomefile.txt

Per impostazione predefinita, quando si esegue il comando ls -l , vengono visualizzate le autorizzazioni dei file in formato rwx, è possibile tradurre le autorizzazioni rwx in formato Octal in Linux.

Per visualizzare tutti i file nella directory di lavoro corrente seguiti dai diritti di accesso in forma ottale, da terminale:

stat -c '% n% a' *

%n - indica il nome del file
%a - indica i diritti di accesso in forma ottale

"Uccidere" un processo in Linux

Potrebbe accadere che i comandi generici per terminare un processo come kill o killall o pkill, potrebbero non essere sufficienti.

Per terminare in modo definitivo un processo, utilizzare il comando -KILL.

Determinare innanzitutto il suo ID di processo e quindi ucciderlo nel modo seguente:

pidof apache2
sudo kill -KILL 5319

Eliminare un file permanentemente in Linux

Normalmente, usiamo il comando rm per cancellare i file da un sistema Linux, tuttavia questi file non vengono completamente cancellati, vengono semplicemente memorizzati e nascosti sul disco rigido e possono ancora essere recuperati in Linux e visualizzati da un'altra persona.

Per evitare ciò, possiamo usare il comando shred che sovrascrive il contenuto del file e, facoltativamente, cancella il file stesso.

shred -zvu nomefile.txt

-z - aggiunge una sovrascrittura finale con zeri per nascondere la distruzione.
-u - aiuta a troncare e rimuovere i file dopo la sovrascrittura.
-v - mostra i progressi.

Per maggiori informazioni:

man shred

Cercare la descrizione della parola chiave nella pagina manuale "man"

Il comando man viene utilizzato per visualizzare le pagine dei manuali dei comandi, quando viene utilizzato con il parametro -k , ricerca le descrizioni brevi e i nomi delle pagine dei manuali tramite la parola chiave.

Esempio:

man -k apache
man -k shred

Rinominare più file in Linux

È possibile rinominare più file in Linux, simultaneamente, con il comando rename.
Rinomina i nomi file forniti in base a una regola specificata nel primo argomento.

Il comando seguente rinomina tutti i file .pdf in file .doc:

rename -v 's/\.pdf$/\.doc/' *.pdf

Guardare i log in tempo reale su Linux

watch viene eseguito ripetutamente in modo da tracciare qualsiasi cambiamento nell'output. Questo permette di vedere l'output del file aggiornato periodicamente in automatico. Per impostazione predefinita, il programma viene eseguito ogni 2 secondi. Usare -n o --interval per specificare un intervallo diverso.

tail fornisce la parte finale dei file in ingresso. Se non viene specificato altrimenti l'ingresso viene considerato semplice testo e ne vengono date le ultime 10 righe.

Nell'esempio seguente, si osserverà il file log dell'autenticazione del sistema.
Aprire due finestre di terminale, visualizza il file di log per guardarlo in tempo reale nella prima finestra in questo modo:

sudo watch tail /var/log/auth.log

Puoi anche usare il comando tail che mostra le ultime parti di un file. Il parametro -f consente di vedere le modifiche in un file in tempo reale, quindi è possibile guardare la registrazione delle voci di log presenti in un file.

sudo tail -f /var/log/auth.log

Adesso eseguire questi comandi nel secondo terminale per osservare il contenuto del file di log dalla prima finestra:

sudo mkdir -p /etc/test
sudo rm -rf /etc/test

Trovare il comando giusto

Per trovare il comando giusto in base alle proprie esigenze esiste apropos:

Bisogna inserire una descrizione di un comando di cui hai bisogno.

Esempio:
apropos "list directory"

Dovreste ricevere un output simile al seguente:


apropos "list directory"
dir (1)              - list directory contents
ls (1)               - list directory contents
ntfsls (8)           - list directory contents on an NTFS filesystem
vdir (1)             - list directory contents

Eseguire il comando precedente

Molte volte sarà necessario eseguire lo stesso comando più. Mentre è possibile premere ripetutamente il tasto Su sulla tastiera, è possibile utilizzare il comando della cronologia. Questo comando elencherà tutti i comandi che sono stati inseriti precedentemente:

history

Ad ogni comando è associato un numero.
Puoi richiamare questo comando utilizzando il punto esclamativo e il numero relativo al comando:

!45

Utilizzare Midnight Commander

Midnight Commander è una shell visiva facile da utilizzare in cui è possibile anche usare il mouse

Grazie ai tasti F1 - F12 , è possibile eseguire facilmente diversi compiti. Basta controllare la legenda in basso.
Per selezionare un file o una cartella fai clic sul pulsante insert.

Midnight Commander si chiama mc. Per installare mc sul sistema, utilizzare uno di questi comandi.

Sistemi basati su Debian:

sudo apt-get install mc

Sistemi basati su Fedora:

yum install mc 

Aprire mc da terminale digitando:

mc

Spegnere il computer in un momento specifico

Alcune volte è necessario spegnere il computer alcune ore dopo la fine dell'orario di lavoro. È possibile configurare il computer in modo che si spenga in un momento specifico utilizzando:

sudo shutdown 21:00

Questo dirà al tuo computer di spegnersi nel momento specifico che hai fornito. Puoi anche dire al sistema di spegnersi dopo un determinato numero di minuti:

sudo shutdown +15

In questo modo il sistema si spegnerà in 15 minuti.

Mostrare informazioni sugli utenti conosciuti

È possibile utilizzare un semplice comando per elencare gli utenti del sistema Linux e alcune informazioni di base su di essi:

lslogins

Cercare un file

Per cercare un file nel sistema utilizzare il comando find.
Un esempio per la ricerca di un file nel sistema, da terminale:

find /home/user -type f

Questo comando cercherà tutti i file situati in /home/utente. Il comando find è estremamente potente e può essere personalizzato con una serie di comandi per rendere la ricerca ancora più dettagliata.

Se si desidera cercare file più grandi di una determinata dimensione, è possibile utilizzare:

find . -type f -size 10M

Il comando precedente cercherà dalla directory corrente per tutti i file che superano i 10 MB. Assicurati di non eseguire il comando dalla directory root del tuo sistema Linux in quanto ciò potrebbe causare un elevato I/O del sistema.

Una delle combinazioni più frequentemente utilizzate è l'opzione “exec" che permette in di eseguire alcune azioni sui risultati del comando find.

Ad esempio, se vogliamo trovare tutti i file in una directory e modificare le loro autorizzazioni. Questo può essere fatto con:

find /home/user/files/ -type f -exec chmod 644 {} \;

Il comando precedente cercherà ricorsivamente tutti i file nella directory specificata e eseguirà il comando chmod sui file trovati.

Costruire alberi di directory con un comando

Per creare una cartella si utilizza il comando mkdir:

mkdir new_folder

Per creare, ad esempio, 5 sottocartelle all'interno della cartella appena creata eseguire è possibile utilizzare l' opzione -p in questo modo:

mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}

Alla fine dovreste avere 5 cartelle situate in new_folder:

ls new_folder/

Copiare file in più directory

La copia dei file viene solitamente eseguita con il comando cp. La copia di un file di solito è simile a questa:

cp /path-to-file/my_file.txt /path-to-new-directory/

Per copiare invece un file in più directory contemporaneamente, è possibile eseguire questo comando:

echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1  cp /home/user/my_file.txt

Eliminare file di grandi dimensioni

A volte i file possono essere estremamente grandi.
La rimozione del file con l' utility rm potrebbe non essere sufficiente.
È possibile risolvere il problema con il seguente comando:

> /path-to-file/big_file.log

Il comando sopra scriverà semplicemente un output vuoto nel file. In parole più semplici svuoterà il file senza causare alti I/O sul tuo sistema.