comandi-terminale-linux | Linuxiano.it
Privacy Policy

comandi-terminale-linux

comandi-terminale-linux

L’obiettivo di questo articolo è quello di aiutare a introdurre nuovi utenti alle basi di Linux principalmente su DEBIAN

Dopo aver letto questo articolo avrai una comprensione di come è strutturato il sistema Linux, dove sono ubicati file e directory che ti consentono di navigare per dare un’idea migliore di come funziona il tuo sistema. Ci trasferiamo quindi a una navigazione basilare di Linux, copia, mostrando i file e le directory, ecc.

Se sei nuovo a Linux o stai cercando di ottenere un certo tipo di certificato, dovrai avere alcune conoscenze di base della Shell, del Kernel, del Terminale e della FHS, tra gli altri. Ci sono molte altre cose da sapere, ma cominciamo con le basi.

Il kernel

Il kernel è ciò che controlla tutto in un sistema; il cuore di Linux. Esegue attività che creano e mantengono l’ambiente Linux. Il kernel riceve istruzioni dalla shell e impegna l’hardware appropriato (processori, memoria, dischi, impone sicurezza, ecc.). È un ponte tra le applicazioni e l’effettiva elaborazione dei dati effettuata a livello hardware.

La shell

La shell è l’interfaccia tra te e Linux. Eseguiamo comandi tramite l’interfaccia della riga di comando che viene interpretata e passata al kernel per l’elaborazione. Quando accediamo al computer, la shell inizierà automaticamente. Verrà quindi monitorato il terminale per tutti i comandi.

Questo è il terminale (interfaccia linea di comando).

Ci sono un certo numero di shell che puoi usare, ognuna leggermente diversa. La maggior parte delle distribuzioni di Linux utilizza Bourne-Again shell (bash), ma ne supporta altre: Korn Shell, shell Bourne, shell C, ecc. Per tutti gli scopi intensi potete solo attaccare con bash, ma vi mostrerò come cambiarlo. Mentre avanzate è possibile utilizzare shell per creare script per automatizzare le attività, rendendo la routine quotidiana ancora più facile.

Standard gerarchica dei filesystem

L’aspetto successivo importante è il FHS. Tutto in Linux è un file o una directory. Il file system hierarchy standard (FSH) è il modo in cui questi file e directory sono strutturati. Sembra intimidatorio a prima vista, ma quando ci si rende conto che c’è un ottimo metodo, troverete che è molto più semplice perché tutto è organizzato nel posto giusto e puoi trovare facilmente quello che voui.

Gerarchia

/ – La directory principale. È qui che inizia la struttura della directory. Tutto è alloggiato nella directory principale.

  • / bin – Comando “user binario” essenziale per operazioni generali. Copia, mostra directory, etc. (ls,cp e cat – arriveremo presto a questi comandi)
  • / boot – File statici del boot loader. Questi file sono necessari per avviare un sistema Linux (informazioni Kernel & GTUB)
  • / dev – dove si trovano i file device
  • / etc – File di configurazione per tutti i programmi. Cose come un server web apache, utenti e gruppi sul tuo sistema o configurazione della stampante. Pensate a questo come un pannello di controllo per gli utenti di Windows. Modificheremo questi file di testo in un secondo momento (questi file restano statici e basati sul testo).
  • / home – Elenchi di home per tutti gli utenti per archiviare file personali (es. / home / roman) – equivalenti di Windows di Documenti e impostazioni.
  • / lib – Librerie condivise essenziali e moduli del kernel
  • / media – Punto di montaggio per supporti rimovibili
  • / mnt – Sistemi di file temporanei montati
  • / opt – Aggiungi applicativi software ai pacchetti – (ad esempio file di programma per utenti Windows)
  • / sbin – binari del sistema essenziale
  • / tmp – I programmi qui scrivono i loro file temporanei.
  • / usr – Utilità multiutente e applicazioni. Contiene i codici sorgenti di applicazione, la documentazione e i file di configurazione che utilizzano. È la directory più grande del sistema.
  • / var – dati variabili su un sistema. Dati che cambieranno mentre il sistema è in esecuzione (file di log, backup, cache, ecc.)
  • / root – Directory iniziale per root
  • / proc – Directory virtuale contenente informazioni sul processo (memoria di sistema, configurazione hardware, dispositivi montati, ecc.)

Le directory o indici più interessate sono /etc/home/dev/mnt.Mentre i tuoi progressi in termini di competenza si avventurano in altre aree,iniziando da /etc per il 95% del tempo.

 

Comandi di navigazione e rilascio

La prima cosa che devi fare è aprire un terminale. A seconda della distribuzione utilizzata, ciò può differire, ma dovresti trovarlo in utility. Dato che sei nuovo a Linux, ti consiglio di scaricare un distro e provarla in Live senza installarla.

Aggiornamenti

E: The package unity-editor needs to be reinstalled, but I can’t find an archive for it.

Per risolvere aprite un terminale (CTRL+ALT+T)  e copiate i seguenti comandi:

Terminale
  1. sudo rm /var/lib/apt/lists/* -vf
  2. sudo apt-get update

comandi base

1. pwd

Quando apriamo un terminale con Linux ci troviamo nella directories Home del proprio utente. Per sapere in quale directories ci troviamo, possimao utilizzare il comando “pwd”. Come risultato ci darà il percorso che parte dalla radice. La radice è la base del file system Linux. È indicato con il segno slash (/). Normalmente le directories utenti sono simili a “home/username”.

2. ls

Restituisce la lista dei file e delle directory contenuti nella posizione in cui il comando viene eseguito

3. cd
[nome cartella]  permette di cambiare directory. Se mi trovo nella home e digito cd Scrivania mi sposterò all’interno della cartella scrivania.

4. mkdir rmdir
[nomecartella]  Crea una directory.

5. rm

Il comando è utilizzato per eliminare file e directory. “Rm” non può cancellare semplicemente una directory. Per cancellare definitivamente sia la cartella che i file in esso contenuti dovete usare il comando “rm-r”

6. touch

Con il comando touch creremo un file di qualsiasi tipo che può essere un file txt o un file zip vuoto. Per esempio “touch new.txt”

7. man & –help

Per sapere più informazioni su un comando e come utilizzarlo, possiamo usare “man”. Per esempio “man cd” mostra i manuali del comando “cd”.
Digitando nel comando nome e l’argomento “help” mostrerà le varie opzioni d’uso del comando.

8. cp
[fileorigine] [filedestinazione]  Copia un file da una destinazione ad un’altra.

9. mv
[fileorigine] [filedestinazione] Sposta un file o una cartella dalla posizione di origine alla posizione di destinazione.

10. locate

Questo comando viene utilizzato per individuare un file system in Linux, esattamente come il comando search in Windows. Questo comando è utile quando non sapete più dove avete salvato un file o, il suo nome. Utilizzare l’ argomento “-i” con il comando, aiuta a ignorare il caso. Quindi se desiderate un file contenente la parola “ciao”, elencherà tutti i file con la parola “ciao” pe resempio quando scriviamo “locate -i ciao”. Se ricordiamo due parole, possiamo separarle utilizzando l’asterisco (*). Per esempio se vogliamo trovare un file con dentro le parole “ciao” e “questo”, allora scriveremo “locate-i*ciao*questo”.

11. egrep “Name|Handlers” /proc/bus/input/devices | egrep -B1 ‘Handlers.*mouse’

trovare il nome del mouse e touchpad.

Comandi intermedi

1. Echo

“Echo” è un comando che aiuta a spostare alcuni dati, di solito il testo in un file. Ad esempio, se desiderate un file di testo ewo aggiungere un file di testo già creato, è sufficinte digitare “echo hello, il mio nome è assegnato>>new.txt”. Non è necessario searare gli spazi usando la slash indietro perchè abbiamo inserito due parentesi triangolari alla fine del testo..

2. Cat

Il comando Cat è usato per visualizzare il contenuto di un file, normalmente usato per visualizzare più facilmente programmi.

3. nano, vi, jed

Nano e Vi sono text editors già installate nel la dettatura del lignaggio di Linux. Nano è un ottimo text editor, che annuncia parole chiave con colore, e può accreditare la maggior parte delle lingue. Vi è un comando semplice per nano. Potete creare un nuovo file o cambiarne qualcuno che usate con questo editore. Per esempio, se dovete creare un nuovo file con il nome “check.txt”, potete crealo usando il comando “nano check.txt”. Potete salvare i vostri file usando la seguente sequenza Ctrl + x, poi Y (o N per “no”). Per la mia esperienza usare nano per editare “HTML” non sembra buono, per i soui colori, perciò raccomando di usare il text editor per esempio “jed” “bluefish” etc.

4. Sudo

Sudo è un comando ampiamente usato con il temrinale Linux. I supporti di sudo sono per amministarre il sistema. Così, se vogliamo amministare con il comando sudo dobbiamo usare privilegi di root. Per esempio, se volete pubblicare un archivio come alsa-base.conf che ha bisogno dei permessi della radice, potete usare il comando -sudo alsa-base.conf nano. Potete fornire la riga di comando della radice facendo uso del comando “sudo bash”, quindi scrivete la vostra password. Potete usare anche il comando “su” per amministrare solo se sapete e avete impostato una password di root del sistema.
Per eseguire quanto sopra elencato scrivete in terminale sudo passwd poi scrivete la nuova passwdord root.

 5. Df

Il comando di df è usato vedere lo spazio su disco disponibile in ciascuna delle divisioni nel vostro sistema. Potete scrivere df nel terminale cosi da vedere le singole partizioni montate lo spazio usato o disponibile in % o KBs. Se volete impostare in megabyte, potete usare il comando df-m.

Il comando df è usato per vedere quanto spazio è rimasto su disco in ciascuna delle partizioni del vostro sistema. Potete scrivere appena dentro il df a macchina nella riga di comando e potete vedere che ogni divisione e loro montati spazio usato/disponibile in % e in KBs.If lo volete indicato nei megabyte, voi può usare il comando “il df – m

6. Du

Il comando du serve per sapere quanto spazio occupa un singolo file del sistema. Se volete sapere l’uso del disco per un particolare file o cartella su Linux, allora potete scrivere nel terminale il comando df seguito dal nome della cartella o del file. Per esempio, se volete sapere lo spazio usato su disco della cartella Documenti, allora dovrete scrivere du Documenti. In alternativa potete usare anche il comando ls -lah per vedere la dimensione di tutti i file nella cartella.

7. Tar

Tar è un comando usato per lavorare con i tarballs (o gli archivi compressi in un archivio tarball)  di Linux Line. Possiede una lunga lista di user. Può essere usato per comprimere o decomprimere  differenti tipi di archivi tar come .tar, .tar.gz, .tar .bz2.etc. Lavora sulla base degli argomenti dati a esso.

8. zip

Zip è usato per comprimere file in un archivio zip, unzip invece è usato per estrarre file da un archivio zip.

9. uname

Uname è un comando usato per mostrare le informazioni sul sistema che il vostro distro  Linux sta eseguendo. Facendo uso del comando “uname -a” saprete più informazioni sul sistema versione, tipo dell’unità di elaborazione. etc.

10. apt-get

Apt è un comando usato per lavorare con i pacchetti nella riga di comando Linux. Apt-get è usato per installare pacchetti con privilegi di root, usando il comando di sudo. Per esempio, se vogliamo installare l’editor di testo jed, possiamo scrivere sudo apt-get install jed.
In modo simile anche altri pacchetti.
È ottimo per aggiornare i repository ogni volta che installate un nuovo pacchetto, con il comando sudo apt-get update. Potete oggionare il sistema con sudo apt-get upgrade, o digitando sudo apt-get dist-upgrade aggiornerete la vostra distro.
Il comando apt-cache search è usato per cercare un pacchetto. Se volete cercarne uno, potete scrivere per esempio apt-cache search vlc (non c’è bisogno di essere amministratori).

11. Chmod

Chmod è un comando usato per rendere un archivio eseguibile e cambiare i permessi assegnati. Immaginate di avere  sul vostro computer un codice python con il nome numbers.py, allora dovrete scrivere python numbers.py ogni volta che dovete eseguirlo. Invece di quello, quando lo rendete eseguibile, allora dovrete scrivere numbers.py nel terminale per eseguire il file.
In questo caso per rendere un file eseguibile, potete usare il comando chmod+x numbers.py.
Potete usare chmod 755 numbers.py per avere permessi di root o sudo chmod+x numbers.py per eseguire root.
Qui sono un po’più di informazioni sul comando di chmod.

12. hostname

Hostname è un comando usato per sapere il nome del tuo host del tuo network. Semplicemente, mostra il tuo hostname e il tuo indirizzo IP. Digitando solo hsoname riceverai come output il tuo hostname, mentre digitando hostname -I riceverai il tuo indirizzo IP nel tuo network.

13. Ping

Ping è un comando usato per controllare la connessione con un server. Wikipedia dice che “Ping” è un utilità di software dell’amministrazione di rete di computer usato per testare la conducibilità di un host su un protocollo internet (IP) network.
Semplicemente, quando digitate nel terminale, per esempio, “ping google.com”, testerà se può connettersi a un server e ricevere risposta.
Misura questo tempo occorre per mandare una domanda e ricevere una risposta.
L’uso di questo comando per semplici user come noi è per testare la propria connessione internet. Se effetuate ping al server Google (in questo caso), potete confermare che la vostra connessione è attiva.

Altri comandi

Può capitare che alcuni pacchetti vengano trattenuti (kept back). Questo significa che esistono nuove versioni di questi pacchetti ma che non saranno installate per qualche ragione. Motivi possibili sono la presenza di dipendenze che non possono essere soddisfatte (uno dei pacchetti da cui dipende non è disponibile per il download) o nuove dipendenze (il pacchetto ha aggiunto una nuova dipendenza nell’ultima versione).

Non c’è una soluzione semplice nel primo caso. Nel secondo caso è sufficiente lanciare apt-get install per il pacchetto in questione e le dipendenze saranno risolte. Una soluzione altrettanto valida è usare:

1. sudo apt-get dist-upgrade

L’opzione dist-upgrade viene anche utilizzata per aggiornare l’intero sistema ad una nuova versione.

2. sudo apt-cache

Da riga di comando per cercare un pacchetto è sufficiente digitare il comando apt-cache in questo modo:

3. sudo apt-cache search [nome pacchetto]

al posto di [nome pacchetto] inseriremo il nome del software da cercare (o parte del nome o una parola che è presente nella descrizione del pacchetto). Ad esempio:

sudo apt-cache search “vlc”

4. top

In questo modo vengono mostrati i processi che occupano più CPU.

5. ps aux

Vogliamo vedere se un programma o un servizio sta girando sulla nostra macchina ma occupa troppa poca CPU per essere visualizzato con top? Da terminale digitiamo:

ps aux | grep [applicazione]

6. ip link show

Questo comando vi mostrerà tutti i dispositivi di rete.

7. Recuperare product key di windows

sudo cat /sys/firmware/acpi/tables/MSDM

8. dpkg –list

Vedere un elenco di tutti i pacchetti installati sul tuo computer

Terminare un processo

Può capire che un programma non si comporti come voluto e che non si riesca a chiuderlo graficamente. Per poterlo chiudere in modo forzato ed essere sicuri che questo sia avvenuto occorre utilizzare il terminale. Mettiamo ad esempio che Firefox non risponda più e non si riesca ad uscire; basta digitare top da riga di comando, visualizzare il numero del processo (PID) e l’utilizzatore (USER)… a questo punto mettiamo che il PID del nostro Firefox sia 6715, digitiamo:

1. kill 6715

e in questo modo terminiamo l’applicazione. Se non dovesse essere sufficiente aggiungiamo l’opzione -9 per chiudere brutalmente l’applicazione:

2. kill -9 6715

Se invece vogliamo terminare una serie di processi uguali basta digitare:

3. killall [applicazione]

al posto di [applicazione] metteremo il nome del programma da terminare. E’ comodo ad esempio quando Firefox ci dice che un’altra istanza è stata lanciata con lo stesso utente e non può essere aperto.
nota importante

4. kill e killall

terminano in modo forzato i programmi quindi occorre controllare se il PID corrisponde al programma che vogliamo veramente chiudere e ricordarci che le modifiche che si stavano facendo non verranno salvate.

History

Ogni shell ha un file (~/.bash_history) nel quale scrive gli ultimi comandi che abbiamo digitato. Il modo più semplice per navigare nella history è utilizzando la “frecceta su” e la “freccetta giù”.

Esistono altri modi per utilizzare questa storia: ad esempio, se abbiamo digitato un comando molto lungo, possiamo evitare di riscriverlo tutto semplicemente mettendo ! prima del comando:

1. ls -lha

Elimina cronologia Bash

Da terminale digito:

history -c

poi premo enter o invio.

Non sempre questo metodo funziona. Per essere più sicuri è meglio usare

cat /dev/null > ~/.bash_history && history -c && exit

poi premo enter o invio.

Redirezione dell’output

Quante volte vi sarete chiesti come fare per salvare su un file di testo l’elenco di ciò che è contenuto in una cartella…??? O salvare gli insulti che vi sputa il compilatore quando cercate di compilare il kernel? Ebbene, con Linux tutto ciò richiede una riga!

Stream di input e output

Il terminale ha tre stream: l’input (da tastiera) e due output (uno “normale” e uno per gli errori). I due output in generale scrivono sul terminale, ma si può anche decidere di mandarli su un file. Ad esempio, se vogliamo scrivere su un testo tutti i nomi dei file in una directory, ci basta fare
strong>ls > elenco.txt

e in elenco.txt troveremo:

cat elenco.txt
Abbiamo quindi reindirizzato l’output su file!!

Esiste però un altro output, quello per gli errori. Per reindirizare questo stream, dobbiamo fare

[email protected]:~$ ls file_non_esistente 2> errors.txt

e in errors.txt troveremmo

[email protected]:~$ cat errors.txt
ls: cannot access file_non_esistente.txt: No such file or directory

Questo può essere utile per tenere traccia degli errori che possono generare alcuni programmi in compilazione (e malauguratamente anche in esecuzione…).

Possiamo anche mandarne uno da una parte e l’altro dall’altra:

ls file_non_esistente ./ > elenco.txt 2> error.txt
cat elenco.txt

Pipe

In altri casi, può essere utile riversare l’output di un programma nell’input di un altro. Questo giochetto è implementato in bash con la pipe “|”. Ecco un esempio:

lsmod |grep nv

Come scoprire quale scheda grafica è installata al momento:

lspci -k | grep -A 2 -E “(VGA|3D)”

Alias

Un modo per eseguire un programma o una serie di comandi Unix usando un nome più breve di quelli che sono associati solitamente con tali comandi.

Aspell

GNU Aspell è un controlore di spelling open source progettato per sostituire Ispell. Può essere usato come una biblioteca o come un indipendente controllore di spelling.

AWK,Gawk

Uno strumento di linguaggio di programmazione utilizzato per manipolare testi. La lingua dell’utilità di AWK somiglia al linguaggio di programmazione delle coperture in molte aree, sebbene la sintassi di AWK è propria.

Cmp

CMP confronta due archivi di qualunque tipo e scrive i risultati con uscita standard. Per difetto, CMP è silenzioso se gli archivi sono gli stessi; se differiscono, i byte ed il numero di linea a cui la prima differenza si è presentata è riportato.

Comandi in categoria

Rete

Linux è un sistema operativo molto potente e il networking è una parte essenziale dei server.

Offre numerosi comandi incorporati per diagnosticare problemi di rete.

In questo articolo, ti mostrerò degli utili comandi di rete usati su Linux, che ti aiuteranno nella risoluzione dei problemi.

1. Abilita / Disabilita l’interfaccia di rete

È possibile abilitare o disabilitare l’interfaccia di rete utilizzando i comandi ifup / ifdown con il parametro dell’interfaccia ethernet.

Per abilitare eth0

  • ifup eth0

Per disabilitare eth0

  • ifdown eth0
2. arp

Controllare la scheda di rete e mostrare l’indirizzo IP

3. ifconfig

l’utility ifconfig viene utilizzata per configurare i parametri dell’interfaccia di rete.

Principalmente usiamo questo comando per verificare l’indirizzo IP assegnato al sistema.

4. Dig

dig (Domain Information Groper) è uno strumento flessibile per interrogare i server dei nomi DNS.

Esegue ricerche DNS e visualizza le risposte che vengono restituite dai server dei nomi.

  • dig domain
    Ottieni informazioni DSN per il dominio.
  • dig x host
    host di ricerca inversa.

 

5. nslookup

nslookup è un programma per interrogare i server dei nomi di dominio Internet.

6. netstat

Il comando Netstat ti consente un modo semplice per rivedere ciascuna delle tue connessioni di rete e socket aperti.

netstat con head output è molto utile durante l’esecuzione della risoluzione dei problemi del server web.

 

7. w

w stampa un riepilogo dell’attività corrente sul sistema, compreso ciò che sta facendo ciascun utente e i relativi processi.

Elenca anche gli utenti registrati e il carico medio del sistema per gli ultimi 1, 5 e 15 minuti.

8. Nmap

nmap è uno dei potenti comandi, che controlla la porta aperta sul server.

9. ping host

Ping ospita e mostra i risiltati.

 

10. Ripristinare rete dopo averla messa in monitor mode

Questi comandi si usano quando abbiamo per esempio usato Aircrack per testare una rete qui vi scrivo in sequenza i comandi che vengono normalmente utilizzati.

  • airmon-ng start wlp3s0
  • airmon-ng stop mon0
  • service network-manager restart
11. system config network

Per configurare l’impostazione di rete e ottenere un interfaccia utente grafica (GUI).

12. scp

copia i file dal sistema locale in un sistema remoto.

13. scp file

[email protected]:pach dest
Copiare i file di sistema locale in un sistema remoto

14. SCP

scp ti consente di proteggere i file di copia da e verso un altro host nella rete.

15. telnet

collegamento telnet host di destinazione: porta tramite un protocollo telnet se la connessione stabilisce che la connettività tra due host funziona correttamente.

16. traceroute

traceroute stampa i pacchetti di routing per l’host di rete.

L’host di destinazione o l’IP sono parametri obbligatori per utilizzare questa utility

esempio: traceroute google.com

17. wget file

Scaricare un file.

18. wget -c file

Continua un download interotto.

19. whois domain

Ottieni informazioni per il dominio.

Ricerca

locate file

Trova tutti i file con il nome file.

find / -name foo

Trovare il comando utilizzato per cercare file, stringhe e directory. Il comando come sopra indicato cerca la parola “foo” nella partizione “/” e restituisce l’ output.

Cambiate semplicemente la parola “foo” e sostituitela con la parola che volete cercare.

find /home -iname dlc.txt

Trova tutte le directory il cui nome è dic.txt e contiene sia la capitale che le piccole lettere nella directory / home.