N
Nhoya
Ultima modifica da un moderatore:
Salve a tutti,
oggi faremo una breve introduzione ai principali comandi linux per poi passare a una descrizione dei più usati e utili.
La shell invece è l'ambiente di lavoro che utilizzeremo per impartire comandi alla macchina (attraverso un'applicazione chiamata genericamente emulatore di terminale).
Esistono diversi tipi di shell, quelle fondamentali unix sono:
- Bash
- Bourn Shell
- C Shell
- Korn Shell
Quella cui faremo riferimento nella nostra guida sarà la Bash, che sta per Bourn Again Shell (ClickMe per approfondimento)
I comandi si presentano sotto diverso aspetti, vediamone brevemente alcuni esempi:
Comando senza opzioni nè file associati, esegue una determinata azione senza dipendere da altro.
Comando associato ad un'opzione che ne determina dei particolari campi di utilizzo o restrizione.
Comando che presenta delle opzioni che sono associate ad un determinato file.
Alcune volte potrebbe capitare che salti fuori un comando del tipo
Quel -- che vediamo non deve allarmarci semplicemente in questo modo escluderemo dalle operazioni del comando quel determinato file
Partiamo da uno dei comandi più utilizzati:
Questo comando ci permette di spostarci facilmente tra le directory.
Esempio:
in questo modo entreremo all'intero nella directory home dell'utente utente presente in Desktop.
Ricordiamo che dopo cd il percorso va indicato iniziando con "/" (a meno di non trovarsi sullo stesso path principale della cartella cui si vuole accedere, per cui se mi trovo già all'interno della cartella utente accederò alla cartella Desktop scrivendo semplicemente cd Desktop, se fossi stato all'interno della cartella home avrei dovuto scrivere cd utente/Desktop, capito il meccanismo risulterà tutto più semplice)
Per visualizzare invece il contenuto della directory all'interno della quale ci troviamo abbiamo il comando:
quindi, se all'interno di home sono presenti la cartella Test, il file ciao.txt e il collegamento Patata avremo, dopo aver digitato il comando ls, una lista simile:
questo comando però può essere associato ad alcune opzioni così da determinare vari aspetti dei file:
dà tutte le specifiche dei file contenuti nella directory analizzata, ovvero:
- Tipo di file
- Permessi associati
- Numero di collegamenti verso quel file
- Proprietario
- Gruppo
- Dimensione
- Data di creazione
- Ultima modifica
visualizza soltanto la data dell'ultima modifica (oltre al nome ovviamente)
Per ottenere la lista dei comandi da associare a ls consultare il comando
Sappiate che il comando man richiama il manuale relativo ad un comando, utilissimo da usare anche in futuro per consultare i manuali relativi dei singoli comandi, anche man possiede una pagina di manuale dedicata consultabile attraverso il comando man man.
Tra i comandi strettamente legati ai file troviamo:
Permette di creare un file vuoto inoltre se correlato all'opzione -a permette di aggiornare il timestamp al momento in cui viene dato il comando
Elimina un file
Permette di creare una directory (usare l'opzione -p per il parent, esempio: mkdir -p test/cartella_dentro_test creeremo la cartella chiamata cartella_dentro_test che sarà creata all'interno della cartella test che non esisteva prima dell'esecuzione del comando mkdir)
Permette di eliminare una directory (si può anche utilizzare il comando rm con l'opzione -r, si può anche forzare la cancellazione di cartelle non vuote utilizzando le opzioni -rf ottenendo quindi rm -rf)
Permette di copiare un file in una determinata directory (usare opzione -r nel caso in cui si voglia copiare una directory)
Permette di spostare un file in una determinata directory
mv permette anche di rinominare dei file:
... come al solito, aggiungendo l'opzione -r dopo l'mv, opereremo sulle directory!
Mostra l'intero contenuto del file scelto
Mostra il contenuto di un file suddividendolo in pagine
L'opposto di less
Questo comando (dove n indica un numero che va da 1 al massimo numero di righe del file) permette di visualizzare dalla riga 1 a quella indicata con n di uno specifico file
L'opposto di head, anzichè mostrare le prime righe mostrerà le ultime
tail con l'opzione -f, particolare opzione che permette di leggere i file in tempo reale (utile per consultare log in real time)
Questo comando associato ad un file ci permette di ricercare una determinata parola all'interno di un file
Ci permette di assegnare specifici permessi ad un file (valore) dove:
- r indichiamo lettura
- w indichiamo scrittura
- x indichiamo esecuzione
- u permette di settare i permessi per uno specifico utente
- g permette di settare i permessi per uno specifico gruppo
- o permette di settare i permessi per il proprietario
- setuid permette di settare l'user ID
- setgid permette di settare il gruppo
- t (stickybit) permette di assegnare un proprietario ad un file (e alle eventuali sottocartelle) e ne preclude l'eliminazione e la modifica soltanto ad esso.
Se invece volessimo modificare da un file particolari permessi basta, anziché mettere il + (più) davanti l'opzione, mettere un - (meno)
chown permette di settare ad un determinato file un proprietario e un gruppo, utile se usato con chmod per settare i permessi al meglio.
Questo comando permette di impostare particolari attributi ad un file.
con:
E' possibile visualizzare tutti gli attributi legati a un file
Questo comando permette di mettere a confronto due file controllando se ci sono o meno differenze generando un file nel caso in cui queste siano presenti
questo comando lavora insieme a diff in quanto la patch non è altro che il file generato da una diff tra due file diversi.
Creerà un file nuovo che avrà il contenuto del primo file più tutto ciò che è presente nella patch
permette di contare il numero di caratteri, linee, parole o bytes all'interno di un file
Questo comando permette di trovare tutte le occorrenze della stringa indicata all'interno del percorso specifico
Simile al precedente ma che permette di utilizzare il parametro di ricerca attraverso le Regular expression (RegEx appunto)
Il comando locate permette di cercare un file all'interno della nostra macchina, attenzione però, non fa una ricerca in tempo reale ma si raffronta con il db interno.
Il db cui ci riferiamo va aggiornato con il comando:
Permette di cercare uno specifico file all'interno di un percorso indicato
I descrittori:
La shell Unix lavora principlamente attraverso 3 canali principali, ovvero
stdin, stdout e stderr.
Questi canali indicano rispettivamente l'input inviato (al ad esempio terminale attraverso la tastiera), output (la risposta data da un comando ad esempio, o l'output di un file di testo) ed i possibili errori.
Canale di input
Canale di output
Canale output di errori
Questi 3 descrittori possono essere correlati tra di loro tramite gli operatori: |, >, >>, 2>, <
Si pronuncia pipe ed è un operatore utilizzato per la concatenazione di due descrittori
Redirecta lo stdout su uno specifico file già creato (se non esiste lo crea, se esiste lo sovrascrive)
come sopra, solo che se il file esiste eseguira' l'append
redirecta lo stdin su uno specifico file
redirecta lo stderr ad uno specifico file
permtte di listare tutti i file aperti dai processi (ricrodiamo che i socket e i pipe vengono passati come file)
permette di listare i PID dei processi che hanno aperto i file indicati
Affinchè un dispositivo di archiviazione venga letto adeguatamente dal sistema e possa quindi essere utilizzato correttamente dall'utente, dopo averlo alimentato, è necessario fare il mount del device (che avviene automaticamente nelle distribuzioni più "complete" ma che è invece da fare obbligatoriamente in maniera manuale se si installa un sistema minimale).
Il comando da utilizzare è:
Il punto di mount è una specifica cartella che abbiamo creato (usando i comandi che abbiamo visto sopra) in uno specifico percorso (che dovrà obbligatoriamente essere indicato).
Al comando mount in genere si associa l'opzione -t che permette di indicare il file system utilizzato.
Per avere una lista delle partizioni già montate basta dare un semplice
Invece per smontare una partizione è necessario utilizzare il comando umount come segue:
Gli archivi sono molto utili per gestire al meglio il passaggio di un file e ridurne le dimensioni.
Per gestire gli archivi esistono particolari comandi che sono:
Archivio .tar
Estrae l'archivo .tar
Comprire la directory in formato .tar
Archivio .tar.gz e .gz
Il comando è simile a quello per .tar.gz (o .gz) ed è
Estrae l'archivio .tar.gz o .gz
Comprime la directory in tar.gz
Archivio tar.bz2 e .bz2
N.B. L'opzione vf serve per mostrare in output il risultato dell'operazione
Per creare invece un archivio .bz2 basterà digitare:
Per visualizzare i processi in esecuzione sul nostro terminale basta digitare:
Che mostrerà il nome dei processi (in esecuzione nel momento in cui si è dato il comando) con associato il PID (Process ID)
Per avere la lista dei processi in tempo reale (dopo averlo installato) potremo utilizzare l'applicativo
Per killare un processo è necessario utilizzare il comando kill come segue:
Dove al posto di PID andrà l'ID del processo (visibile con ps aux)
Nel caso in cui il processo non ne voglia sapere di chiudersi possiamo passare alla chiusura forzata con il comando
Nota: dare un'occhiata anche al comando pkill (vedere pagina man)
Per mandare un comando in background lo facciamo terminare con:
In seguito avremo quindi:
[n] PID
dove n è un numero che indica il numero di job e PID il Process ID. Per riportare in foreground il processo bastera' digitare fg %n , dove n sta per il numero di job che ci ha dato prima.
mostra il PID del processo indicato
Permette di eseguire un altro comando evitando il segnale SIGHUP permettendogli restare in esecuzione pur chiudendo il terminale.
Permette di annullare la dipendenza che lega un'operazione al terminale così da poter permettere un utilizzo continuo della shell. Prima di utilizzare questo comando però, il processo deve essere messo in background (questo possiamo ottenerlo o tramite la shortcut Ctrl+z o dando, alla fine dell'operazione interessata l'opzione &)
comando che permette di eseguire periodicamente un comando (di default ogni 2 secondi)
permette di tenere sotto controllo lo spazio libero sulla RAM (molto utile per avere una visione di insieme sulla gestione dei processi (Nota: con l'opzione -m è possibile visualizzare la memoria libera espressa in MB))
Come abbiamo potuto notare fino ad ora uno dei vantaggi principali nell'utilizzare un sistema linux è quello di poter avere piena consapevolezza e controllo di tutto ciò che riguarda la macchina.
Per quanto concerne la gestione di rete parleremo fondamentalmente di 3 comandi principali:
Che controlla tutte le connessioni internet attive e che, se associato a particolari opzioni può essere molto utile.
(Letteralmente interface configurator) è un comando che permette di configurare l'interfaccia di rete TCP/IP e può essere utilizzato per aggiungere o rimuovere un'interfaccia.
Se inizialmente dessimo il comando ifconfig ci troveremmo difronte a una schermata simile:
Per sospendere una connessione (in realtà stiamo proprio "tirando giù" l'interfaccia di rete chiamata eth0), basterà digitare:
Mentre, per riattivarla:
e, per assegnargli un nuovo indirizzo:
Ultimo comando ma non meno importante è:
Molto simile a ifconfig ma che viene utilizzato per lavorare sulle interfacce di rete wireless.
Dando per esempio da terminale:
...otterremo un elenco di tutte le reti wirless disponibili
permette di scaricare il contenuto di un determinato URL
Questa sezione si dedicherà brevemente a tutti quei comandi che ci permettono di ottenere informazioni sul nostro dispositivo.
Permette di visualizzare un listato di tutti i componenti hw della nostra postazione di lavoro
Permette di visualizzare la lista di tutte le periferiche e i BUS PCI
Visualizza un listato dei BUS usb
Ci permette di ricavare informazioni sull'hardware montato sulla nostra macchia con le seguenti specificazioni:
- record id
- dmi type id
- record size
- multi line record values
Questo comando permette di ricavare info sul sistema in uso.
Opzioni utili in particolare sono:
Il comando whoami permette di visualizzare il nome dell'utente corrente
df sta per disk free e ci permette di visualizzare in stdout lo spazio libero nei vari file system
fa il contrario di df ovvero ci permette di visualizzare lo spazio occupato dal file indicato
Capita molte volte di voler dare un ordine ai propri file così da mantenere la piena gestione delle proprie risorse. Uno dei metodi più veloci che possiamo utilizzare con linux è quello di dare un particolare insieme di comandi così da automatizzare tutto il processo.
In questo modo abbiamo detto al sistema che:
a ogni file indicato verrà cambiato il nome con quello da noi deciso
- Altra piccola chicca:
questo comando invece aggiunge a tutti i file .jpg il prefisso indicato (nel nostro caso labarra)
- Riavvio e spegnimento:
comando che se dato da teminale riavvia la macchina
Chiude tutte le sessioni in corso e spegne la macchina
Bene, al momento non mi viene in mente altro, scopo di questo thread (da considerare in perenne aggiornamento) è di offrire una lista di comandi leggermente diversa e per certi aspetti un po' più dettagliata/completa rispetto a quelle che possiamo trovare praticamente ovunque, includendo opzioni e comandi differenti di cui in genere non si parla e che, in determinate circostanze, si possono rivelare veramente utili. Nel caso in cui abbiate voglia di contribuire con qualche altro comando da aggiungere non esitate a contattarmi o a rispondere alla discussione in modo da poter ampliare la guida anche con il vostro aiuto!
oggi faremo una breve introduzione ai principali comandi linux per poi passare a una descrizione dei più usati e utili.
Divideremo questa raccolta in 8 categorie, quali:
- Comandi di Gestione File e Navigazione
- Comandi di Ricerca
- Gestione Periferiche
- Gestione Archivi
- Gestione Processi
- Gestione di Rete
- Info Device
- Tips & Tricks
La shell invece è l'ambiente di lavoro che utilizzeremo per impartire comandi alla macchina (attraverso un'applicazione chiamata genericamente emulatore di terminale).
Esistono diversi tipi di shell, quelle fondamentali unix sono:
- Bash
- Bourn Shell
- C Shell
- Korn Shell
Quella cui faremo riferimento nella nostra guida sarà la Bash, che sta per Bourn Again Shell (ClickMe per approfondimento)
I comandi si presentano sotto diverso aspetti, vediamone brevemente alcuni esempi:
Codice:
ls
Codice:
ls -al
Codice:
chmod -r /pippo/test.sh
Alcune volte potrebbe capitare che salti fuori un comando del tipo
Codice:
comando opzione -- file
Comandi di gestione file e navigazione
Partiamo da uno dei comandi più utilizzati:
Codice:
cd
Esempio:
Codice:
cd /home/utente/Desktop
in questo modo entreremo all'intero nella directory home dell'utente utente presente in Desktop.
Ricordiamo che dopo cd il percorso va indicato iniziando con "/" (a meno di non trovarsi sullo stesso path principale della cartella cui si vuole accedere, per cui se mi trovo già all'interno della cartella utente accederò alla cartella Desktop scrivendo semplicemente cd Desktop, se fossi stato all'interno della cartella home avrei dovuto scrivere cd utente/Desktop, capito il meccanismo risulterà tutto più semplice)
opzione utile associata a questo comando è:
che ci permetterà di salire di un livello dal percorso in cui ci troviamo
Codice:
cd ..
Per visualizzare invece il contenuto della directory all'interno della quale ci troviamo abbiamo il comando:
Codice:
ls
Codice:
Test ciao.txt Patata
Codice:
ls -al
- Tipo di file
- Permessi associati
- Numero di collegamenti verso quel file
- Proprietario
- Gruppo
- Dimensione
- Data di creazione
- Ultima modifica
Codice:
ls -lt
Per ottenere la lista dei comandi da associare a ls consultare il comando
Codice:
man ls
Sappiate che il comando man richiama il manuale relativo ad un comando, utilissimo da usare anche in futuro per consultare i manuali relativi dei singoli comandi, anche man possiede una pagina di manuale dedicata consultabile attraverso il comando man man.
Tra i comandi strettamente legati ai file troviamo:
Codice:
touch nomefile
Codice:
rm -r nomefile
Codice:
mkdir nomecartella
Codice:
rmdir nomecartella
Codice:
cp nomefile destinazione
Codice:
mv nomefile destinazione
mv permette anche di rinominare dei file:
Codice:
mv nomefile nuovonome
... come al solito, aggiungendo l'opzione -r dopo l'mv, opereremo sulle directory!
Codice:
cat nomefile
Codice:
less nomefile
Codice:
more nomefile
Codice:
head -n nomefile
Codice:
tail -n nomefile
Codice:
tail -f nomefile
Codice:
grep parola nomefile
Codice:
chmod valore nomefile
- r indichiamo lettura
- w indichiamo scrittura
- x indichiamo esecuzione
- u permette di settare i permessi per uno specifico utente
- g permette di settare i permessi per uno specifico gruppo
- o permette di settare i permessi per il proprietario
- setuid permette di settare l'user ID
- setgid permette di settare il gruppo
- t (stickybit) permette di assegnare un proprietario ad un file (e alle eventuali sottocartelle) e ne preclude l'eliminazione e la modifica soltanto ad esso.
0 -> nessun permesso
1 -> permesso di esecuzione
2 -> permesso di scrittura
3 -> ( 2 + 1 ) scrittura e esecuzione
4 -> permesso di lettura
5 -> ( 4 + 1 ) permesso di lettura e esecuzione
6 -> ( 4 + 2 ) permesso di lettura e scrittura
7 -> ( 1 + 2 + 4) permesso di lettura, scrittura e esecuzione
1 -> permesso di esecuzione
2 -> permesso di scrittura
3 -> ( 2 + 1 ) scrittura e esecuzione
4 -> permesso di lettura
5 -> ( 4 + 1 ) permesso di lettura e esecuzione
6 -> ( 4 + 2 ) permesso di lettura e scrittura
7 -> ( 1 + 2 + 4) permesso di lettura, scrittura e esecuzione
Codice:
chown nomeowner:gruppo nomefile
Codice:
chattr [ -RVf ] [ -v version ] [ modalità ] files
I principali attributi utilizzati sono:
- A Non aggiornare l’atime
- S Aggiornamento sincrono
- D Aggiornamento sincrono delle directory
- a solo append
- c compresso
- d no dump
- i immutabile
- s cancellazione sicura
- T top of directory hierarchy
- j data journaling
- t no tail-merging
- u Non cancellabile
- A Non aggiornare l’atime
- S Aggiornamento sincrono
- D Aggiornamento sincrono delle directory
- a solo append
- c compresso
- d no dump
- i immutabile
- s cancellazione sicura
- T top of directory hierarchy
- j data journaling
- t no tail-merging
- u Non cancellabile
Codice:
lsattr file
Codice:
diff file1 file2
Codice:
patch file nomepatch
Creerà un file nuovo che avrà il contenuto del primo file più tutto ciò che è presente nella patch
Codice:
wc [opzioni] [file]
Comandi di ricerca
Codice:
grep -r 'stringa' /percorso.file
Codice:
egrep -r 'regex' /percorsofile
Un'espressione regolare è una descrizione di un insieme di caratteri.
Questa descrizione può essere usata per cercare in un file un testo che corrisponda alla espressione regolare. Le espressioni regolari sono analoghe ai metacaratteri della shell (da pluto.it)
Codice:
locate nomefile
Il db cui ci riferiamo va aggiornato con il comando:
Codice:
updatedb
Codice:
find /percorso nomefile
I descrittori:
La shell Unix lavora principlamente attraverso 3 canali principali, ovvero
stdin, stdout e stderr.
Questi canali indicano rispettivamente l'input inviato (al ad esempio terminale attraverso la tastiera), output (la risposta data da un comando ad esempio, o l'output di un file di testo) ed i possibili errori.
Codice:
stdin -file
Codice:
stdout -file
Codice:
stderr -file
Questi 3 descrittori possono essere correlati tra di loro tramite gli operatori: |, >, >>, 2>, <
Codice:
|
Codice:
>
Codice:
>>
Codice:
<
Codice:
2>
Codice:
lsof [opzioni] [argomento]
Codice:
fuser [opzioni] [argomento]
Gestione delle periferiche
Affinchè un dispositivo di archiviazione venga letto adeguatamente dal sistema e possa quindi essere utilizzato correttamente dall'utente, dopo averlo alimentato, è necessario fare il mount del device (che avviene automaticamente nelle distribuzioni più "complete" ma che è invece da fare obbligatoriamente in maniera manuale se si installa un sistema minimale).
Il comando da utilizzare è:
Codice:
mount /dev/nomeperiferica punto.di.mount
Il punto di mount è una specifica cartella che abbiamo creato (usando i comandi che abbiamo visto sopra) in uno specifico percorso (che dovrà obbligatoriamente essere indicato).
Al comando mount in genere si associa l'opzione -t che permette di indicare il file system utilizzato.
Ecco altre opzioni correlate al comando mount:
-o (options) che permette di specificare opzioni utili, i volori indicabili sono
(citiamo i più comuni):
async: I/O in modo asincrono
atime: Aggiorna la data/ora di accesso agli inode ad ogni accesso
defaults: usa le impostazioni di default (rw, suid, dev, exec, auto, nouser e
async)
dev: Interpreta i device speciali a caratteri o a blocchi del file system
exec: permette l'esecuzione di binari
ro: read-only ossia solo lettura
rw: read-write ossia permessa la lettura e scrittura dei dati
sync: I/O in modo sincrono
suid: Abilita le funzionalità dei bit set-user-identifier o
set-group-identifier.
user: abilita l'utente comune a montare la partizione (a senso specificarla solo
nel /etc/fstab)
users: abilita l'utente comune a montare e/o smontare la partizione
noexec: non permette l'esecuzione di file binari
nodev: Non interpreta i device speciali a caratteri o a blocchi del file system
noatime: Non aggiorna la data/ora di accesso agli inode ad ogni accesso
nosuid: Disabilita le funzionalità dei bit set-user-identifier o set-group-identifier.
nouser: Non permette allo user di montare la partizione (a senso specificarla
solo nel /etc/fstab)
umask=valore: imposta la maschera di permessi, attraverso un valore ottale
nls=valore: impostiamo il "Native Language Support", molto utile per i fs NTFS
usare il valore utf8
-o (options) che permette di specificare opzioni utili, i volori indicabili sono
(citiamo i più comuni):
async: I/O in modo asincrono
atime: Aggiorna la data/ora di accesso agli inode ad ogni accesso
defaults: usa le impostazioni di default (rw, suid, dev, exec, auto, nouser e
async)
dev: Interpreta i device speciali a caratteri o a blocchi del file system
exec: permette l'esecuzione di binari
ro: read-only ossia solo lettura
rw: read-write ossia permessa la lettura e scrittura dei dati
sync: I/O in modo sincrono
suid: Abilita le funzionalità dei bit set-user-identifier o
set-group-identifier.
user: abilita l'utente comune a montare la partizione (a senso specificarla solo
nel /etc/fstab)
users: abilita l'utente comune a montare e/o smontare la partizione
noexec: non permette l'esecuzione di file binari
nodev: Non interpreta i device speciali a caratteri o a blocchi del file system
noatime: Non aggiorna la data/ora di accesso agli inode ad ogni accesso
nosuid: Disabilita le funzionalità dei bit set-user-identifier o set-group-identifier.
nouser: Non permette allo user di montare la partizione (a senso specificarla
solo nel /etc/fstab)
umask=valore: imposta la maschera di permessi, attraverso un valore ottale
nls=valore: impostiamo il "Native Language Support", molto utile per i fs NTFS
usare il valore utf8
Per avere una lista delle partizioni già montate basta dare un semplice
Codice:
mount
Invece per smontare una partizione è necessario utilizzare il comando umount come segue:
Codice:
umount percorsodevice
umount percorsodevice
Gestione Archivi
Gli archivi sono molto utili per gestire al meglio il passaggio di un file e ridurne le dimensioni.
Per gestire gli archivi esistono particolari comandi che sono:
Archivio .tar
Codice:
tar x nomearchivio.tar
Codice:
tar -cf nomearchivio.tar percorso.directory.da.comprimere
Archivio .tar.gz e .gz
Il comando è simile a quello per .tar.gz (o .gz) ed è
Codice:
tar xz nomearchivio.tar
Codice:
tar -czf nomearchivio.tar.gz percorso.directory.da.comprimere
Archivio tar.bz2 e .bz2
Codice:
tar xjvf pacchetto.tar.bz2
N.B. L'opzione vf serve per mostrare in output il risultato dell'operazione
Per creare invece un archivio .bz2 basterà digitare:
Codice:
tar -cjf nomearchivio.bz2 percorso.directory.da.comprimere
Gestione processi
Per visualizzare i processi in esecuzione sul nostro terminale basta digitare:
Codice:
ps aux
Per avere la lista dei processi in tempo reale (dopo averlo installato) potremo utilizzare l'applicativo
Codice:
top
Per killare un processo è necessario utilizzare il comando kill come segue:
Codice:
kill PID
Nel caso in cui il processo non ne voglia sapere di chiudersi possiamo passare alla chiusura forzata con il comando
Codice:
kill -9 PID
Nota: dare un'occhiata anche al comando pkill (vedere pagina man)
Per mandare un comando in background lo facciamo terminare con:
Codice:
&
In seguito avremo quindi:
[n] PID
dove n è un numero che indica il numero di job e PID il Process ID. Per riportare in foreground il processo bastera' digitare fg %n , dove n sta per il numero di job che ci ha dato prima.
Codice:
pidof nomeprocesso
Codice:
nohup comando
Codice:
disown
Codice:
watch comando tempo
Codice:
free -l
Gestione di Rete
Come abbiamo potuto notare fino ad ora uno dei vantaggi principali nell'utilizzare un sistema linux è quello di poter avere piena consapevolezza e controllo di tutto ciò che riguarda la macchina.
Per quanto concerne la gestione di rete parleremo fondamentalmente di 3 comandi principali:
Codice:
netstat
Ecco una lista delle opzioni più utili associate a questo comando:
-nat controlla tutte le connessioni internet senza risolvere gli ip
-nat | grep LISTER (unione del comando netstat e di grep) permette di
visualizzare tutte le prote attive
-rn visualizza la tabella di routing del kernel
-p visualizza i programmi che utilizzano connessione internet
-a visualizza TUTTE le connessioni
-nat controlla tutte le connessioni internet senza risolvere gli ip
-nat | grep LISTER (unione del comando netstat e di grep) permette di
visualizzare tutte le prote attive
-rn visualizza la tabella di routing del kernel
-p visualizza i programmi che utilizzano connessione internet
-a visualizza TUTTE le connessioni
Codice:
ifconfig
(Letteralmente interface configurator) è un comando che permette di configurare l'interfaccia di rete TCP/IP e può essere utilizzato per aggiungere o rimuovere un'interfaccia.
Se inizialmente dessimo il comando ifconfig ci troveremmo difronte a una schermata simile:
Codice:
eth0 Link encap:Ethernet HWaddr 00:01:02:2F:BC:40 inet
addr:194.177.127.234 Bcast:194.177.127.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:82075264 errors:0 dropped:0 overruns:0 frame:0
TX packets:51585638 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2858378779 (2.6 GiB) TX bytes:2524425895 (2.3 GiB)
Interrupt:10 Base address:0x8800
eth0:0 Link encap:Ethernet HWaddr 00:01:02:2F:BC:40
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0x8800
eth1 Link encap:Ethernet HWaddr 00:E0:7D:81:9C:08
inet addr:192.168.168.1 Bcast:192.168.168.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:9 Base address:0x6000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10226970 errors:0 dropped:0 overruns:0 frame:0
TX packets:10226970 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 RX bytes:1385547296 (1.2 GiB) TX
bytes:1385547296 (1.2 GiB)
Per sospendere una connessione (in realtà stiamo proprio "tirando giù" l'interfaccia di rete chiamata eth0), basterà digitare:
Codice:
ifconfig eth0 down
Mentre, per riattivarla:
Codice:
ifconfig eth0 up
e, per assegnargli un nuovo indirizzo:
Codice:
ifconfig eth0 xxx.xxx.x.x subnet up
Ultimo comando ma non meno importante è:
Codice:
iwconfig
Molto simile a ifconfig ma che viene utilizzato per lavorare sulle interfacce di rete wireless.
Dando per esempio da terminale:
Codice:
iwlist
...otterremo un elenco di tutte le reti wirless disponibili
Codice:
wget [opzioni] [URL]
Info Device
Questa sezione si dedicherà brevemente a tutti quei comandi che ci permettono di ottenere informazioni sul nostro dispositivo.
Codice:
lshw
Codice:
lspci
Codice:
lsusb
Codice:
dmidecode
- record id
- dmi type id
- record size
- multi line record values
Codice:
uname
Opzioni utili in particolare sono:
- -a visualizza tutte le info
- -m visualizza l'hardware
- -r il sistema operativo
- -v sottoversione dell'OS
Codice:
whoami
Codice:
df [opzioni] [--] [file]
Codice:
du [opzioni] [file/directory]
Tips & Tricks per velocizzare l'utilizzo di applicativi in ambiente Linux
Capita molte volte di voler dare un ordine ai propri file così da mantenere la piena gestione delle proprie risorse. Uno dei metodi più veloci che possiamo utilizzare con linux è quello di dare un particolare insieme di comandi così da automatizzare tutto il processo.
Codice:
for pd in *.jpg; do let fg+=1 ; mv $n labarra$fg.jpg; done
a ogni file indicato verrà cambiato il nome con quello da noi deciso
- Altra piccola chicca:
Codice:
rename 's/^/labarra/' *.jpg
- Riavvio e spegnimento:
Codice:
reboot
Codice:
sudo shutdown -h now
in alternativa al comando shutdown possiamo utilizzare:
oppure
questo comando permette all'utente che lo ha lanciato di gestire il proprio LOGIN
interessante qui è l'uso del SUID infatti passwd va ad agire su file che si trovano in /etc che normalmente sarebbero accessibili solo a root ma dal momento che il gruppo proprietario di passwd è root allora è possibile compiere quelle determinate operazioni.
Opzioni importanti sono:
- -d cancella la passwod dell'utente
- -R che utilizza file di configurazione di CHROOT DIR
- -w inserisce un timer allo scadere del quale sarà obbligatorio cambiare password.
Codice:
sudo poweroff
Codice:
sudo shutdown -h +0
Codice:
passwd <OPZIONI> <nuovapassword>
interessante qui è l'uso del SUID infatti passwd va ad agire su file che si trovano in /etc che normalmente sarebbero accessibili solo a root ma dal momento che il gruppo proprietario di passwd è root allora è possibile compiere quelle determinate operazioni.
Opzioni importanti sono:
- -d cancella la passwod dell'utente
- -R che utilizza file di configurazione di CHROOT DIR
- -w inserisce un timer allo scadere del quale sarà obbligatorio cambiare password.
Bene, al momento non mi viene in mente altro, scopo di questo thread (da considerare in perenne aggiornamento) è di offrire una lista di comandi leggermente diversa e per certi aspetti un po' più dettagliata/completa rispetto a quelle che possiamo trovare praticamente ovunque, includendo opzioni e comandi differenti di cui in genere non si parla e che, in determinate circostanze, si possono rivelare veramente utili. Nel caso in cui abbiate voglia di contribuire con qualche altro comando da aggiungere non esitate a contattarmi o a rispondere alla discussione in modo da poter ampliare la guida anche con il vostro aiuto!