Indice articolo
- 1 Perché usare il terminale
- 2 Accesso alla shell
- 3 Esecuzione di comandi
- 4 Navigazione nel filesystem
- 5 La struttura delle directory di Linux
- 6 Gestione di file e cartelle da terminale
- 7 Nano, l'editor di testo della shell
- 8 Il comando man
- 9 Alcuni dei miei comandi preferiti
- 10 Introduzione allo scripting
- 11 Conclusioni
Il terminale di Linux Mint consente di scatenare la potenza nascosta sotto il suo desktop Cinnamon, Mate, Xfce.
Puoi farne a meno per compiere quasi tutte le operazioni più comuni senza mai bisogno di ricorrere al lato "difficile". Ma a prenderci un po' di dimestichezza si scopre quanto talvolta sia conveniente usarlo per fare meglio e prima tante cose.
Perché usare il terminale
Grazie alla disponibilità in Linux Mint di strumenti dotati di interfaccia grafica per configurarne ogni aspetto e programmi per soddisfare qualunque esigenza, viene da chiedersi perché uno dovrebbe imparare ad eseguire comandi da terminale. E ad accedere alla c.d. shell di Linux.
Se adoperi il computer per un utilizzo di base come navigare, usare email, elaborare documenti, stampare, ascoltare musica e guardare video, non ne hai motivo. Tutte queste caratteristiche possono benissimo venire sfruttate al meglio interagendo graficamente con Linux Mint.
Il valore del terminale di Linux si presenta con l'amministrazione avanzata del sistema. Diverse attività sono più facilmente compiute usando "comandi shell" che usando un'interfaccia grafica.
Solo per cominciare, se vuoi installare un pacchetto software di cui conosci il nome, è molto più rapido aprire un terminale con la combinazione di tasti CTRL
+Alt
+T
e digitare
sudo apt-get install nomeprogramma
piuttosto che aprire il Gestore Applicazioni, attendere l'aggiornamento degli indici, cercare il programma, cliccarne la scheda e premere Installa
. Malgrado già questa semplicità sia una cosa fantastica.
Altro valore aggiunto della shell di Linux sono le possibilità di scripting. Con uno script puoi creare un file di testo contenente una lista di comandi ed istruzioni per eseguirle con una singola esecuzione. Puoi ad esempio creare una lista di tutti i programmi che ti piace avere e non sono preinstallati in Linux Mint, scriverla in un file di testo e, ogni volta che reinstalli Mint, installarli tutti insieme con un singolo comando!
sudo apt install audacious audacity chromium deluge evolution filezilla fontmanager gimp grsync hplip-gui mediainfo-gui pdfarranger ttf-mscorefonts-installer vlc xournal
Accesso alla shell
Linux Mint viene fornito con l'emulatore di terminale di GNOME. GNOME è un differente ambiente grafico cui ad esempio anche Ubuntu si appoggia per le versioni più recenti. Ma il suo emulatore di terminale funziona anche su Linux Mint in tutte le edizioni e svolge egregiamente il suo lavoro. Nulla toglie però che si possa preferirne uno differente, adottando ad esempio alternative come guake, terminator, konsole...
Si parla di emulatore di terminale perché si tratta comunque di un programma grafico, dotato di una sua finestra, che simula il comportamento di un sistema privo di ambiente grafico. E spesso sentirai parlare di Bash quando si cita la shell di Linux. Bash è un interprete dei comandi ma non è l'unico.
Ma c'è anche un altro modo per accedere alla shell di Linux senza necessità di un emulatore di terminale. Perché si può usare il terminale teletype (TTY). Un terminale a tutto schermo che disattiva temporaneamente la modalità grafica di Linux per darti accesso diretto al suo interprete di comandi. In Linux Mint puoi aprirne fino a 6 diversi passando dall'uno all'altro con la combinazione di tasti CTRL
+Alt
insieme ai tasti da F1
a F6
. E ritorni all'ambiente grafico con CTRL
+Alt
+F7
.
Linux Mint installa un'icona per l'avvio del terminale nel pannello ed un'altra tra i preferiti del menu. Lo trovi anche nel menu sotto la categoria Amministrazione. Ma un modo rapido per avviarlo, come citato, è la combinazione di tasti CTRL
+Alt
+T
. Tanto che, per questo, io elimino le icone dal pannello e dai preferiti del menu.
All'avvio del c.d. prompt, oltre all'indicazione utente@sistema
che identifica quale account utente sta operando su quale sistema, dopo i due punti, vi è l'indicazione della localizzazione attuale del terminale all'interno della struttura di file di Linux. All'avvio il terminale è localizzato nella cartella home dell'utente che lo ha lanciato. Essa è indicata dal simbolo tilde ˜ (abbreviazione di /home/utente). Segue poi quello del dollaro $ che indica che i comandi che i comandi stanno per essere impartiti con privilegi di utente normale e non di amministratore.
Ed il c.d. prompt è in attesa di istruzioni da eseguire in questo percorso, come indicato dal lampeggiare del cursore.
Per chiuderla, ovviamente puoi premere la (x) localizzata nel lato superiore destro della finestra stessa oppure impartire al prompt il comando
exit
e confermare con Invio
.
Esecuzione di comandi
Nel terminale di Linux Mint, di solito, quando impartisci un comando, attendi una conferma del successo dell'operazione e poi vieni riportato al prompt in attesa di ulteriori istruzioni. Altre volte invece ritorni semplicemente al prompt senza alcun avviso. Questo significa che l'operazione è stata eseguita.
Se sbagli a digitare qualcosa verrai avvisato di un errore oppure attenderti un risultato imprevisto.
È anzitutto opportuno chiarire il significato di filesystem perché può assumere significati diversi a seconda del contesto. Può infatti indicare il tipo di struttura di partizioni di hard-disk. In questo contesto NTFS è il filesystem tipico di Windows ed ext4 quello attualmente più diffuso in ambiente linux.
Ma nel contesto di questo paragrafo, per filesystem intendo il sistema di directory (cartelle) tipico di una installazione Linux ed il modo per navigare da una ad un'altra in assenza di un ambiente grafico. Ciascuna cartella ha uno scopo ben preciso. Puoi dargli un'occhiata aprendo Nemo e cliccando nel riquadro laterale la voce denominata appunto File system. Oppure digitare nel terminale
ls -l /
Questo comando, ls
(list storage) viene passato con l'opzione -l che richiede di mostrare il risultato in formato "lungo", con tanti dettagli invece che solo il nome delle cartelle in una sola riga.
Lo slash finale indica al comando ls che non vuoi una rappresentazione del contenuto alla posizione corrente del terminale. Ma ad un percorso preciso all'interno del dispositivo. E lo slash indica la directory root o radice dell'intera struttura. Slash è l'inizio della partizione, il percorso base. In linux qualunque contenuto è una sottocartella di /.
Ecco perché la cartella home è sempre indicata in formato /home e quella di ciascun utente abilitato nel sistema come /home/utente1 o home/utente2 etc.
La prima cosa da notare è che, a differenza di Windows, non ci sono lettere per le unità di partizioni. Non c'è C: per il sistema operativo e D: per il lettore DVD.
Ed è anche necessario metabolizzare il concetto per cui il terminale si trova sempre in una particolare posizione all'interno di questa struttura. Pronto ad eseguire comandi su file e cartelle nel percorso corrente. O a spostarsi prima su altro percorso. Oppure ad invocare programmi installati, senza necessità di dirgli dove sono localizzati.
Per sapere dove è attualmente localizzato il terminale nel filesystem di Linux puoi digitare il comando pwd
(print working directory) e, intuitivamente vedrai stampato a schermo, come risultato, /home/tuoutente.
E alla riga successiva che il prompt è di nuovo in attesa di fare qualcosa per te.
Se pare complicare la situazione, è invece un vantaggio che i percorsi possano venire indicati sia come relativi che come assoluti. Cioè sia rispetto alla posizione attuale del terminale, sia rispetto alla radice.
Prendiamo il comando cd
che, come in DOS, serve a cambiare directory. Per entrare nella tua cartella Musica, saresti tentato di istruire il terminale così
cd /home/Nomeutente/Musica
Ed è giusto. Il prompt ti apparirebbe subito nella forma
utente@sistema ˜/Musica $
Ma se sei nella directory home, puoi dire al terminale anche solo
cd Musica
Senza precedere la cartella con lo slash, stai dicendo al terminale di accedere ad una sotto-cartella, con tale nome, presente all'interno del percorso attuale. E se digiti semplicemente
ls
puoi vedere un elenco rapido del contenuto nel percorso in cui ti trovi.
Con il comando cd
, puoi indicare percorsi sia relativi che assoluti. Il percorso assoluto è quello indicato a partire dall'inizio della partizione (con lo slash iniziale fino alla cartella desiderata). Nell'esempio appena citato non è necessario perché sei già nella tua cartella home sotto /home/utente e puoi indicare il percorso a partire da essa.
Se vuoi spostare il terminale su di un livello rispetto al percorso attuale puoi digitare
cd ..
E anche sul termine root bisogna fare chiarezza perché vi sono differenti accezioni: quella relativa alla radice del filesystem di linux come indicata dallo slash, quella relativa alla directory che si trova nel percorso /root e sia per riferirsi all'utente "onnipotente" nel sistema Linux.
La cartella /root è la home dell'utente omonimo che in Linux non è mai localizzata all'interno di /home come per gli utenti standard. Questo perché l'accesso a tale cartella è negato a tali utenti. Se provi infatti a digitare nel terminale
ls /root
il terminale ti spiegherà che non ti è consento entrarci, vederne il contenuto, né operarci in alcun modo.
Di solito il ricorso all'utente root è scoraggiato per motivi di sicurezza e per evitare danni accidentali al sistema. In Linux Mint è disabilitato per impostazione predefinita dell'installazione. Ma sebbene si possano impartire alla shell comandi "come si fosse" root (con il comando sudo
), non ci si può connettere al sistema come root.
La struttura delle directory di Linux
Vediamo brevemente come sono organizzate le cose in Linux Mint come in tutte le altre distribuzioni basate su kernel come raspbian, gli smartphone android e ovunque questo sia installabile.
/bin
: qui sono salvati i comandi accessibili da tutti gli utenti. Gli eseguibili del comando ls, ad esempio, si trovano qui/boot
: qui ci sono le informazioni per il caricamento del sistema/dev
: qui ci sono i device, le periferiche hardware come hard-disk, schede audio, etc./etc
: vi vengono salvati i file di configurazione usati nel sistema: come Samba, che si occupa delle funzionalità di rete multi-piattaforma, o il file fstab su cui sono salvate le informazioni sulle partizioni e il relativo "montaggio" nel sistema/home
: come detto, ospita le singole cartelle degli utenti per documenti, file scaricati, multimedia e impostazioni specifiche di ogni account/lib
: percorso delle librerie necessarie ad altri programmi/media
: questo è il luogo in cui trovare le periferiche di archiviazione esterne come hard-disk e chiavette USB quando sono collegate al sistema. Come detto Linux non usa lettere. Tutto si trova all'interno del percorso radice /./mnt
: indica i percorsi di montaggio manuale. È un residuo del passato ormai quasi interamente sostituito da /media/opt
: programmi installati successivamente da pacchetti .deb al di fuori dei repository ufficiali, si posizioneranno qui (ad esempio Google Chrome, Skype, teamviewer,..)/proc
: nella cartella ci sono file virtuali che rappresentano processi e dati del kernel linux/root
: la home dell'utente root/sbin
: il percorso per i file binari dei programmi cui solo un utente con privilegi di root ha accesso/tmp
: il luogo dove sono memorizzati i file temporanei per i processi in esecuzione/usr
: vi risiedono applicazioni e utilità fruibili da tutti gli utenti/var
: la directory in cui trovare log, spool di stampa e tanti altri file modificati continuamente
Gestione di file e cartelle da terminale
Compreso il modo di spostarsi nel filesystem, vediamo un po' come gestire file e cartelle da terminale: creare, eliminare, muovere, rinominare. In Linux ogni file è testo e non serve l'estensione .txt come in windows. Nulla di più semplice che creare un file da terminale se non con il comando touch.
touch miofile
Tanto basta per trovare (anche con Nemo) un file vuoto nel percorso in cui il terminale si trova al momento dell'istruzione. Se vuoi creare il file in una cartella differente rispetto a quella in cui si trova il terminale, puoi indicargli il percorso di destinazione. In modo assoluto
touch /home/utente/Documenti/nuovofile
o relativo. Se ad esempio il terminale si trova nella tua cartella home
touch Documenti/nuovofile
Se esegui touch su un file o una cartella già esistenti, pur non alterandone il contenuto, la data di ultima modifica sarà aggiornata. Questo può tornare utile quando eventuali utilità di backup la analizzeranno.
Per rimuovere il file precedentemente creato puoi invocare il comando di rimozione seguito dal nome (preceduto da eventuale percorso se differente da quello in cui si trova il terminale)
rm miofile
Per creare una cartella esiste il comando mkdir
mkdir nuovacartella
Se vuoi successivamente rimuoverla, usi ancora il comando rm ma devi usare anche l'opzione -r per la cancellazione c.d. ricorsiva di ulteriori file e cartelle in essa contenuti. E ovviamente devi indicare a linux quale cartella vuoi eliminare
rm -r nuovacartella
Per rinominare un file si usa il comando mv
che sta per move. Infatti ciò che realmente avviene è che il suo contenuto viene spostato dal file originario a quello con nuovo nome. A mv
devi indicare poi il file da rinominare ed il nuovo nome. Se il file si trova nel percorso attuale del terminale puoi digitare
mv miofile miofile2
Ma puoi anche rinominare e spostare in un solo comando il file digitando un percorso diverso per il file rinominato.
mv miofile Documenti/mionuovofile
sposterà il file dalla cartella home a quella documenti assegnandogli un nuovo nome. Insomma non è necessario che il terminale si trovi nella posizione del file che vuoi spostare, rinominare o eliminare purché tu ne indichi il percorso. E puoi usare mv
anche con le cartelle allo stesso modo che con i file.
Nano, l'editor di testo della shell
Ha poco senso creare, rinominare, spostare file vuoti! E la shell di Linux non consente solo di impartire comandi. Ma contiene anche programmi belli che completi. Un esempio di questi è nano, il "blocco note" open-source integrato ad oggi nella shell GNOME di Linux Mint (infatti ne esistono altri come vi
e emacs
).
Se hai ancora il file miofile nella tua directory /home prova a digitare nel prompt
nano miofile
e ti apparirà questo completo programma di videoscrittura in tutto il suo splendore!
Sto scherzando ovviamente. Perché rinunciare a LibreOffice Writer per questa (solo apparente) miseria?!
Il comando man
Se usando Linux ti trovi di fronte ad un errore o un problema, una rapida ricerca su Google o meglio DuckDuckGo, possono confortarti nello scoprire che qualcun altro ha già avuto lo stesso problema e che è risolvibile.
Se disgraziatamente non hai accesso ad internet e hai bisogno di informazioni su un comando shell, ask the man! Cioè al manuale. Non hai idea di quante informazioni siano integrate in ogni distribuzione Linux semplicemente digitando nel terminale man
seguito dal nome del comando passato come "argomento".
man ls
Scoprirai tutte le opzioni e gli argomenti che possono venire passati al comando ls per ottenere dal sistema informazioni di ogni genere. Però è in inglese.
Alcuni dei miei comandi preferiti
Non c'è infatti nulla di più semplice per me che ottenere un file di testo in cui trovare all'istante l'intero contenuto della mia collezione di musica se non digitando nel terminale
ls -a -R -U -X > lista-file.txt
Oppure solo delle cartelle e non anche dei file con
ls -d */>lista-cartelle.txt
Oppure ottenere la compressione immediata di un PDF con una scansione decisamente troppo "pesante" per essere inviata via mail invocando il comando gs
come segue:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.6 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=file-elaborato.pdf file-da-elaborare.pdf
o
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.6 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=file-elaborato.pdf file-da-elaborare.pdf
per un una riduzione ulteriore della qualità delle immagini contenute.
Anche estrarre una immagine iso dal contenuto di un dvd, bluray o cd è cosa facile con
dd if=/dev/cdrom of=file.iso
Introduzione allo scripting
Come accennato, la potenza della shell di Linux aumenta con le sue capacità di scripting. Ovvero con la possibilità di inserire sequenze anche complesse di comandi in un unico file di testo. E contare sul fatto che tali istruzioni possono venire eseguite sequenzialmente all'istante invocando un solo comando.
Ecco perché ho accennato a Bash e ai suoi script. Uno script bash può venire redatto con qualunque editor di testo. Basta avviare il file con
#! /bin/bash
Il c.d. hashbang serve a dichiarare l'interprete di comandi che vuoi usare per eseguire i comandi successivi. Nella maggior parte delle distribuzioni Linux, Bash è l'unica opzione disponibile.
Come detto, puoi digitare tutti i comandi che vuoi nelle linee seguenti. Ad esempio puoi aggiungere il comando per l'estrazione di una immagine iso da un cd o dvd con
dd if=/dev/cdrom of=immagine.iso
Puoi anche già salvare il file, ad esempio con il nome mioscript-isodvd
ed uscire dall'editor. Ma per poterlo eseguire devi prima contrassegnarlo come eseguibile e non come semplice file di testo quale ancora è. Per fare questo esegui nel terminale il seguente comando:
chmod +x mioscript-isodvd
A questo punto, per eseguirlo sarà sufficiente digitare nel terminale
./mioscript-isodvd
Per eseguire lo script lo precediamo con il punto e con lo slash. In questo modo diciamo al terminale che vogliamo eseguire uno script che si trova nel suo percorso corrente (di solito l'interprete li cerca nelle cartelle /bin
, /usr/bin
, /usr/local/bin
ed altre.
Ogni volta che invocherai da terminale ./mioscript
sai che il lettore ottico sarà avviato e ddel contenuto verrà estratta una immagine .ISO che troverai nella tua cartella /home.
Conclusioni
Questo è un blog dedicato a Linux per i principianti e oltre a non essere il luogo adatto per approfondire argomenti avanzati legati alla shell e allo scripting, non sono neppure abbastanza qualificato per poterlo fare in modo approfondito. Ma là fuori ci sono validi testi e siti web rintracciabili anche su google con "lista comandi terminale", "shell scripting linux" e simili per lanciarsi oltre le immense possibilità di un desktop in Linux.
Questa voleva davvero essere solo una breve introduzione all'uso del terminale di Linux Mint che non può comunque mancare in un manuale d'uso di Linux Mint. Il tempo e le statistiche mi diranno casomai se e come sia il caso di approfondire comunque ulteriori aspetti della enorme potenza di Linux pronta per essere scatenata sotto il cofano di Mint.
Non sono italiano ma inglese e alcuni giorni ascolto il tuo canale di YouTube. E’ un piacere trovare contenuto di qualita in una lingua diversa. Alcuni commenti:
* per vedere una file velocemente poi scrivere:
`cat `
oppure anche
`less `
per usare un pager.
* mv e’ un commando pericoloso, penso devvi usare il flag `-i` cosi conferma prima di sobrescrivere. Ad esempio: `mv -i nomeDiFile nuovoDir/nomeDiFile`
Grazie per il bello contenuto.
Ciao e molte grazie per gli apprezzamenti. Ti sono grato anche per le brevi ma importanti indicazioni e precauzioni di adottare con i comandi che descrivi. Grazie per aver trovato il tempo di intervenire, tradurre e pubblicare il tuo commento!
Buona sera più navigo nel tuo sito più sono contento di averlo scoperto ammiro molto il tuo lavoro sopratutto il modo con cui spieghi le cose senza ritenere chi ti legge una persona sotto al tuo livello e ammiro anche il modo con cui interagisci con chi ti suggerisce modi alternativi a quelli che proponi questo è lo spirito linux frequentando io molti forum ormai dal lontano 2013 anno in cui sono passato a linux trovo che le persone come te siano merce rara complimenti e continua così grazie per quello che fai
Umberto! Ormai parli da fan, non sei più oggettivo! 🙂
Mi viene una battuta come prima cosa ma è ovvio che apprezzo tantissimo quello che dici. Sono io che devo dire grazie a te perché mi confermi che riesco a raggiungere alcune delle persone che avrei proprio in mente come destinatari di ciò che faccio. Un saluto cordiale
Grazie Dario per condividere così tanti contenuti.
Uso Linux da circa sette mesi e mi affascina ogni giorno di più. Ho scoperto il tuo canale quasi contemporaneamente e lo seguo con grande interesse.
Trovo geniale il fatto che quanto detto nei tuoi video, sia riportato sul blog (o forse il processo è inverso…), fatto sta che è veramente molto utile. Grazie!
Ciao, mi fa piacere che tu trovi utile la raccolta di informazioni che mi sarebbero servite in italiano quando ho fatto io il salto.
Multimedialità! Fin dal primo lockdown quando ho cominciato a scrivere pagine su pagine, ho pensato che, raggiunto un minimo di contenuti, mi sarei potuto cimentare nel trasformarli in video, per chi apprezza più questo formato. E così si promuovono vicendevolmente…
Buongiorno,
Prima di tutto i complimenti per le spiegazioni chiare che fai e un grazie
volevo chiedere qualcosa su la conversione da file audio a testo con parlatype
grazie
Salve Adriano e grazie. Onestamente ho solo sentito nominare Parlatype ma non ne so niente. Mi spiace.
Un lavorone, non c’è che dire , un gran bel lavoro per cui ti sono grato.
È un vero peccato rimanere impigliato nel software proprietario. Si vive nel perenne terrore che qlcsina possa andare storto, non si ha alcun supporto da nessuno, è come una gabbia dorata ma è solo apparenza.
Linux cambia tutto, obbliga a prestare attenzione a certi aspetti tecnici ma si viene ricompensati con una consapevole sicurezza.
Il contributo di quanti facilitano il salto dal software proprietario al software free è un gesto rivoluzionario.
Ancora grazie ed Happy h….g!!!!
😉
Ciao, ti ringrazio per le belle parole e per il raffinato pensiero assai condivisibile. Io sono informatico e la deformazione professionale a spiegare cose tecniche mi aiuta. Ma sono un semi principiante con Linux e quello che pubblico è il risultato delle ultime conoscenze acquisite.
Chissà se hai letto l’articolo o visto il video sul mio passaggio da Windows a Linux. Il riscontro che ho da un paio di anni qui nel blog e su Youtube mi dimostra che ancora, quelle stesse mie vecchie convinzioni, sono difficili da scalzare.
Ma il mio entusiasmo per Linux e le distro facili tra cui Mint in particolare, non lo potevo più esternare solo con amici e parenti! 🙂
Buongiorno Dario,
grazie per tutte le spiegazioni e informazioni che sono scritte qui…..Ho da poco installato linux mint cinnamon con alcuni software per radioamatori.
Ho una domanda alla quale non sono stato in grado di darmi una risposta (poichè sono un principiante di 70 anni!!).
Ho un software che si chiama KLog che serve per registrare tutti i collegamenti effettuati via radio, in pratica un database con tutti i dati.
Questa versione che ho preso dal gestore dei pacchetti, conrìtinua a dirmi che c’è una versione piu aggiornata presentando un indirizzo web dove scaricare la nuova versione.
Domanda 1: come si installa la nuova versione dopo aver scaricato ed decompresso il relativo file tgz ?
domanda 2 : prima di installare la nuova release, devo disinstallare la precedente ?
domanda 3: come la si rimuove se è il caso di rimuoverla ?
Grazie infinite se qualcuno potrà aiutarmi.
un saluto a tutti gli utenti di questo magnifico sito!!
Ciao Beppe e grazie per gli apprezzamenti. Non esiste una procedura standard per installare dai sorgenti. Ma c’è sempre un file README che contiene i comandi e le istruzioni su come fare. Non credo che sia necessario disinstallare la precedente.
Una richiesta ( ho provato a cercare nel web, ma le risposte sono sempre tutte uguali fra loro – copia incolla? – e molto spesso solo spazzatura).
è possibile stampare il contenuto del terminale?
grazie
Ciao Fabio. Il terminale, nel menu sotto Visualizza, ha la possibilità di esportare il testo anche in formato html e puoi farci ciò che vuoi.
Grazie della cortese risposta , purtroppo il terminale ( mint21.3 mate) in nessuno dei sottomenù offre la voce di esportare.
Ho provato anche ad aprire Aiuto –>Sommario F1 ma apre una scheda “manuale del terminale” che resta vuota.
Proverò da qualche live “non caja” se il terminale si comporta diversamente.
Ho sbagliato Fabio, Seleziona tutto e Copia si trovano sotto Modifica, anche nell’edizione MATE di Mint.