Introduzione
Nota: Il terminale interattivo in questo tutorial è attualmente disabilitato mentre lavoriamo per migliorare le nostre esperienze di apprendimento interattivo. Puoi comunque utilizzare questo tutorial per imparare riguardo alla riga di comando e praticare i comandi Linux, ma dovrai utilizzare il terminale sul tuo computer o una macchina virtuale.
Oggi, molti di noi sono familiari con i computer (desktop e laptop), smartphone e tablet che hanno interfacce utente grafiche (chiamate anche GUI), che ci consentono di navigare tra le app, il web e i nostri file (come documenti e foto) attraverso un’esperienza visiva. I sistemi operativi Windows, macOS e Linux presentano ciascuno varianti di un ambiente desktop (con immagini di cartelle e file, ad esempio) e menu a discesa, che forniscono accesso a programmi per computer, applicazioni e ai nostri media.
Anche se le GUI possono essere un modo intuitivo per utilizzare un computer per molti utenti, spesso non ci forniscono la massima potenza sui nostri dispositivi e possono impedirci di avere pieno accesso amministrativo sui nostri computer, inclusa l’installazione, la modifica o l’eliminazione di software o file. Inoltre, poiché le GUI sono principalmente visive, spesso non sono accessibili come potrebbero essere per tutti gli utenti.
Un modo per navigare sia sul proprio computer personale che sui server cloud remoti senza una GUI è attraverso un terminale basato su testo o un’interfaccia a riga di comando (CLI).
Le interfacce terminali esistono su quasi tutti i sistemi operativi per computer, e gli emulatori di terminali sono disponibili anche come app per tablet e smartphone. I terminali forniscono agli utenti un maggiore accesso complessivo alle loro macchine attraverso un maggiore accesso amministrativo, una maggiore capacità di personalizzare gli ambienti e opportunità per automatizzare processi. Forniscono inoltre agli utenti la possibilità di accedere a computer remoti, come server cloud.
Questo tutorial fornirà agli utenti che sono nuovi negli ambienti terminali le basi dell’uso di un’interfaccia a riga di comando attraverso un terminale web integrato nel tuo browser, che puoi avviare qui sotto. Se hai già una certa familiarità con i terminali, potresti preferire di seguire il nostro tutorial Introduzione al Terminale Linux invece. Una volta completato questo tutorial, dovresti avere una comprensione di come utilizzare un terminale su un computer o server Linux (o macOS).
Comprensione della Finestra di Terminale
Quando accedi per la prima volta a un nuovo computer o smartphone, probabilmente desideri accenderlo e capire come utilizzarlo controllando quali app sono disponibili e imparando dove si trovano le cose in modo da poter personalizzare il dispositivo secondo le tue esigenze. Puoi familiarizzare con un computer attraverso un terminale in modo simile.
Il terminale interattivo che hai avviato in questa finestra del browser, cliccando il pulsante Avvia un Terminale Interattivo!
sopra, mostra un rettangolo bianco in basso nella finestra del tuo browser:
Se non hai ancora avviato il terminale, fallo ora utilizzando il pulsante all’inizio di questo tutorial.
Nel terminale interattivo del tuo browser, dovrebbe esserci un segno di dollaro, $
e un cursore lampeggiante. Da qui inizierai a digitare i comandi per dire al terminale cosa fare.
Il terminale che hai avviato è un terminale Ubuntu 20.04. Ubuntu è una distribuzione popolare di Linux, originariamente basata sul sistema operativo Unix. Anche il sistema operativo macOS è basato su Unix. Se stai leggendo questo tutorial su una macchina Linux o macOS, dovresti avere un terminale sul tuo sistema operativo che funziona in modo simile al terminale integrato che useremo in questa guida.
In molti di questi sistemi operativi Unix (o basati su *nix), i simboli alla fine del prompt possono essere un simbolo $
o un simbolo #
, che significano quanto segue:
$
o segno del dollaro — sei loggato come utente normale#
o simbolo cancelletto — sei loggato come utente con privilegi elevati
L’utente che viene indicato nell’ambiente #
è anche conosciuto come utente root, che viene considerato un super utente, o amministratore, per impostazione predefinita.
Per i nostri scopi all’interno del terminale del browser qui sotto, hai effettuato l’accesso come utente normale, ma hai anche i privilegi di amministratore tramite il comando sudo
. Poiché si tratta di un terminale temporaneo, non è necessario preoccuparsi di ciò che si digita nel terminale, poiché distruggeremo tutto una volta terminato. Allo stesso modo, con un server cloud, è possibile distruggere un server e ricominciare da zero se qualcosa va storto.
Si prega di notare che è meglio fare più attenzione quando si lavora sul terminale di un computer locale poiché potrebbero esserci modifiche che è possibile apportare come amministratore sul terminale che possono apportare modifiche permanenti al computer che si sta utilizzando.
A questo punto, con il terminale lanciato nel browser, puoi iniziare a digitare al suo interno utilizzando il computer locale. Il tuo testo apparirà sul cursore lampeggiante. Scopriremo cosa è possibile digitare qui nelle sezioni successive.
Conoscere le Directory
Inizieremo a lavorare con il terminale digitando un comando. Un comando è un’istruzione fornita da un utente, comunicando cosa si desidera che il computer faccia. Digitare i comandi nel terminale e premere INVIO
o RITORNO
quando si è pronti affinché il computer esegua un dato comando.
Digitiamo il seguente comando seguito da INVIO
. Puoi anche copiare il comando o chiedere di eseguirlo in un terminale interattivo avviato facendo clic sui link pertinenti nel blocco di codice qui sotto quando ci passi sopra con il mouse.
Una volta eseguito questo comando, riceverai l’output seguente:
Output/home/sammy
Il comando pwd
sta per “present working directory,” e ti indica dove ti trovi all’interno del filesystem corrente.
In questo esempio, ti trovi nella directory (o cartella) chiamata /home/sammy
, che corrisponde all’utente chiamato sammy
. Se hai effettuato l’accesso come root
, un utente con privilegi elevati, allora la directory sarebbe chiamata /root
. Su un computer personale, questa directory potrebbe chiamarsi come l’utente proprietario del computer. Il computer di Sammy Shark potrebbe avere /sammy
o /sammy-shark
o /home/sammy
come directory utente primaria.
Attualmente, questa directory è vuota. Creiamo una directory per memorizzare i file che creeremo mentre procediamo con questo tutorial, che possiamo chiamare files
, ad esempio.
Per fare questo, useremo il comando mkdir
, che sta per “make directory”. Dopo aver digitato il comando, dovremo scrivere il nome della cartella, che passerà il valore al comando in modo che il comando possa eseguire la creazione di questa directory. Questo valore (il nome della cartella) è noto come un argomento, che è un input fornito al comando. Se sei familiare con la grammatica del linguaggio naturale, puoi pensare all’argomento come a un oggetto su cui agisce il verbo del comando.
Per creare una nuova directory chiamata files
, scriveremo quanto segue, con mkdir
come comando e files
come argomento:
Dopo aver eseguito questo comando, non riceverai alcun output oltre a una nuova riga con un cursore lampeggiante. Con questa nuova riga sul tuo terminale, sei pronto per il tuo prossimo comando.
Elencare i Contenuti e Comprendere le Autorizzazioni
Dato che non abbiamo ricevuto ancora un feedback concreto sulla nostra nuova directory, useremo un comando per saperne di più su cosa c’è nella nostra directory di lavoro attuale. Puoi confermare che la nuova directory è effettivamente lì elencando i file nella directory, con il comando ls
(che significa “list”):
Riceverai un output che conferma che la directory files
è presente:
Outputfiles
Questo ci fornisce informazioni generali su ciò che è presente nella nostra directory di lavoro attuale. Se vogliamo avere maggiori dettagli, possiamo eseguire il comando ls
con ciò che viene chiamato un flag. Nei comandi Linux, un flag è scritto con un trattino -
e delle lettere, passando opzioni aggiuntive (e più argomenti) al comando. Nel nostro esempio, aggiungeremo il -l
flag, che — quando abbinato con ls
— indica che vorremmo utilizzare l’opzione per utilizzare un formato di elenco lungo con il nostro comando.
Digitiamo questo comando e il flag, così:
Premendo ENTER
, riceveremo l’output seguente nel nostro terminale:
Outputtotal 4
drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files
Qui, ci sono due linee di output. La prima riga si riferisce ai blocchi di memoria del computer che vengono allocati a questa directory, la seconda riga si riferisce principalmente alle autorizzazioni dell’utente sul file.
Per ottenere un output leggibile dall’essere umano in qualche modo, possiamo anche passare il -h
o --human-readable
flag, che stamperà le dimensioni della memoria in un formato leggibile dall’essere umano, come segue. In generale, un trattino -
si riferisce alle opzioni di una singola lettera, e due trattini --
si riferiscono alle opzioni scritte con parole. Nota che alcune opzioni possono utilizzare entrambi i formati. Possiamo inserire più opzioni in un comando concatenando i flag insieme, come in -lh
.
Ad esempio, i due comandi seguenti producono gli stessi risultati anche se sono scritti in modo diverso:
Entrambe queste comandi restituiranno l’output seguente, simile all’output sopra ma con maggior contesto dei blocchi di memoria:
Outputtotal 4.0K
drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files
La prima riga di output ci informa che 4K di memoria del computer è dedicata alla cartella. La seconda riga di output ha molti più dettagli, che esamineremo in modo più dettagliato. Un riferimento generale di alto livello di tutte le informazioni che copriremo è indicato nella tabella qui sotto.
File type | Permissions | Link count | Owner | Group | File size | Last modified date | File name |
---|---|---|---|---|---|---|---|
d | rwxr-xr-x | 2 | sammy | sammy | 4.0K | Nov 13 18:06 | files |
Noterai che il nome della nostra directory, files
, è alla fine della seconda riga di output. Questo nome indica quale elemento specifico nella directory dell’utente /home/sammy
viene descritto dalla riga di output. Se avessimo un altro file nella directory, avremmo un’altra riga di output con dettagli su quel file.
All’inizio della riga, c’è un elenco di caratteri e trattini. Analizziamo il significato di ciascuno dei caratteri:
Character | Description |
---|---|
d | directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file |
r | read — permission to open and read a file, or list the contents of a directory |
w | write — permission to modify the content of a file; and to add, remove, rename files in a directory |
x | execute — permission to run a file that is a program, or to enter and access files within a directory |
Nei primi caratteri drwx
della stringa, la prima lettera d
significa che l’elemento files
è una directory. Se fosse un file diverso da una directory, questa stringa di caratteri inizierebbe invece con un trattino, come in -rwx
, dove il primo trattino indica un file non-directory. Le tre lettere seguenti, rwx
, rappresentano i permessi per il proprietario della directory files
, e significano che la directory files
può essere read, write e executed dal proprietario del file. Se uno qualsiasi di questi caratteri venisse sostituito con un trattino, significherebbe che il proprietario non ha il tipo di permesso rappresentato da quel carattere. Discuteremo come identificare il proprietario di un file tra poco.
I tre caratteri successivi nell’output sono r-x
, che rappresentano i permessi del gruppo per la directory files
. In questo caso, il gruppo ha permessi di lettura ed esecuzione, ma non permessi di scrittura, poiché il w
è sostituito con un -
. Discuteremo come identificare il gruppo tra poco.
I tre caratteri finali della prima stringa, r-x
, rappresentano i permessi per qualsiasi altro gruppo che ha accesso alla macchina. In questo caso, anche questi gruppi di utenti possono leggere ed eseguire, ma non scrivere.
Il numero 2
nell’output si riferisce al numero di collegamenti a questo file. In Linux, i collegamenti forniscono un metodo per creare scorciatoie per aiutare gli utenti a navigare nel filesystem. Quando hai creato questo file, Linux ha svolto alcuni lavori di background per creare un collegamento assoluto al file e un collegamento autoreferenziale al file per consentire agli utenti di navigare lungo un percorso relativo. Discuteremo i percorsi assoluti e relativi nella prossima sezione.
Dopo il numero 2
, la parola sammy
viene visualizzata due volte. Questa parte dell’output fornisce informazioni sul proprietario e sul gruppo associato alla directory files
. La prima istanza di sammy
in questa riga si riferisce al proprietario della directory, le cui autorizzazioni abbiamo visto in precedenza sono rwx
. L’utente sammy
è il proprietario poiché abbiamo creato la directory files
come utente sammy
e siamo il proprietario attuale del file. Anche se l’utente sammy
è l’unico utente nel nostro ambiente attuale, i sistemi operativi di tipo Unix spesso hanno più di un utente ed è quindi utile sapere quale utente è il proprietario di un file.
La seconda istanza di sammy
si riferisce al gruppo che ha accesso alla directory files
, le cui autorizzazioni abbiamo visto in precedenza sono r-x
. In questo caso, il nome del gruppo è lo stesso del nome utente proprietario sammy
. In ambienti reali, possono esserci altri gruppi nel sistema operativo che hanno accesso alla directory, come staff
o un nome utente come admin
.
Il resto dei dettagli su questa linea di output sono i 4.0K
per l’allocazione di memoria della directory sulla macchina e la data in cui la directory è stata modificata l’ultima volta (finora l’abbiamo appena creata).
Con questa maggiore comprensione dei sistemi di file e delle autorizzazioni, possiamo passare alla navigazione del file system sul nostro terminale Linux.
Navigazione del Filesystem
Fino ad ora, abbiamo imparato come determinare dove ci troviamo in un filesystem, come creare una nuova directory, come elencare i file e come determinare le autorizzazioni.
Prossimo passo è imparare come muoversi nel file system. Abbiamo creato una nuova directory, ma siamo ancora nella directory principale /home/sammy
dell’utente. Per spostarci nella directory /home/sammy/files
che abbiamo creato, useremo il comando cd
e passeremo il nome della directory in cui vogliamo spostarci come argomento. Il comando cd
sta per “cambia directory”, e lo costruiremo così:
Di nuovo, non riceverai un output diverso da una nuova riga con un cursore lampeggiante, ma possiamo verificare che ci troviamo nella directory /home/sammy/files
con il comando pwd
che abbiamo usato in precedenza:
Otterrai il seguente output, confermando dove ti trovi:
Output/home/sammy/files
Questo conferma che ti trovi nella directory /home/sammy/files
della directory utente /home/sammy
. Questa sintassi ti sembra familiare? Potrebbe ricordarti l’URL di un sito web con i suoi slash in avanti e, infatti, anche i siti web sono strutturati su server all’interno di directory.
Passiamo alla directory principale del server. Indipendentemente da dove ci troviamo nel filesystem, possiamo sempre utilizzare il comando cd /
per spostarci nella directory principale:
Per confermare di esserci spostati e di apprendere cosa si trova in questa directory, eseguiamo il nostro comando di elencazione:
Riceveremo il seguente output:
Outputbin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var
Ci sono molti file là dentro! La directory /
è la directory principale di un server Linux, chiamata “root”. Nota che la directory root è diversa dall’utente “root” predefinito. Puoi pensare alla directory /
come alla principale arteria di una macchina Linux, poiché contiene tutte le cartelle necessarie per far funzionare il computer. Ad esempio, la directory sys
contiene il kernel Linux e le informazioni del filesystem virtuale del sistema. Se desideri conoscere di più su ciascuna di queste directory, puoi visitare la documentazione della Linux Foundation.
Noterai anche che c’è una directory in cui siamo stati già, la cartella utente /home
. Dalla directory /
, possiamo cambiare directory tornando in /home
e poi in files
, oppure possiamo spostarci direttamente in quella cartella digitando il percorso assoluto con cd
:
Ora, se esegui pwd
, riceverai /home/sammy/files
come output.
A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/
and then moved into files/
. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files
, showing that we started in the /
directory, called the /home/sammy/
user directory and then the nested files/
directory.
Inoltre, Linux sfrutta la notazione punto per aiutare gli utenti a navigare tramite percorsi relativi. Un singolo .
rappresenta la directory in cui ti trovi attualmente, mentre un doppio ..
rappresenta la directory genitore. Quindi, da dove ci troviamo attualmente (/home/sammy/files
), possiamo utilizzare due punti per tornare alla directory genitore /home/sammy
dell’utente, come segue:
Se esegui pwd
, riceverai /home/sammy
come output, e se esegui ls
, riceverai files
come output.
Un altro simbolo importante da conoscere è ~
che rappresenta la directory home della tua macchina. Qui, la nostra directory home è chiamata /home/sammy
per l’utente sammy, ma su una macchina locale potrebbe essere il tuo nome personale come in sammy-shark/
.
Puoi digitare quanto segue da qualsiasi posizione sulla tua macchina e tornare a questa directory home:
A questo punto, sentiti libero di navigare nel tuo sistema di file con i comandi che hai imparato finora. Nella prossima sezione, inizieremo a lavorare con i file di testoo.
Creazione e Modifica di File di Testo
Ora che abbiamo una base nel sistema di file Linux e sappiamo come muoverci, iniziamo a creare nuovi file e impariamo come manipolare il testo dalla riga di comando.
Per prima cosa assicuriamoci di trovarci nella directory files/
della cartella utente /home/sammy
, che possiamo fare verificando con pwd
, o cambiando directory sul percorso assoluto:
Ora, creeremo un nuovo file di testo. Creeremo un file .txt
, che è un file standard leggibile su tutti i sistemi operativi. A differenza dei file .doc
, un file .txt
è composto da testo non formattato. Il testo non formattato, incluso nel testo dei file .txt
, può essere facilmente utilizzato dalla riga di comando e quindi può essere utilizzato quando si lavora con dati testuali in modo programmato (ad esempio, per automatizzare l’analisi del testo, estrarre informazioni dal testo, e altro ancora).
Inizieremo utilizzando il comando touch
, che può creare un nuovo file o modificare un file esistente. Per usarlo, puoi utilizzare il comando touch
e passare il nome del file di testo che desideri creare come argomento, come dimostrato di seguito.
Una volta premuto INVIO
, riceverai una nuova riga del prompt dei comandi e puoi elencare i contenuti attuali di files/
per assicurarti che sia stato creato.
Outputocean.txt
Fino ad ora abbiamo creato un file ocean.txt
che non contiene testo al momento della creazione.
Se vogliamo creare un file di testo inizializzato con del testo, possiamo utilizzare il comando echo
, che viene utilizzato per visualizzare stringhe di testo in Linux.
Possiamo utilizzare echo
direttamente sulla riga di comando per far ripetere all’interfaccia ciò che diciamo. Il tradizionale primo programma, "Ciao, mondo!"
, può essere scritto con echo
in questo modo:
OutputHello, World!
Chiamato per Eco dell’Metamorfosi di Ovidio, il comando echo
restituisce ciò che richiediamo. In questo caso, ha ripetuto “Ciao, mondo!” Tuttavia, il comando echo
da solo non ci permette di memorizzare il valore del nostro testo in un file di testo. Per farlo, dovremo digitare quanto segue:
Il comando sopra utilizza echo
, quindi il testo che desideriamo aggiungere al nostro file tra virgolette, quindi l’operatore di reindirizzamento >
, e infine il nome del nostro nuovo file di testo, sammy.txt
.
Possiamo verificare che il nostro nuovo file esista, ancora con ls
.
Outputocean.txt sammy.txt
Ora abbiamo due file di testo nella cartella utente /home/sammy/files
. Successivamente, possiamo confermare che il file sammy.txt
contenga effettivamente il testo che abbiamo chiesto al terminale di ripetere al suo interno. Possiamo farlo con il comando cat
. Abbreviazione di concatenare, il comando cat
è molto utile per lavorare con i file. Tra le sue funzioni c’è quella di mostrare il contenuto di un file.
Dopo aver eseguito il comando, riceveremo il seguente output:
OutputSammy the Shark
Se eseguissimo cat
sul file vuoto ocean.txt
, non riceveremmo nulla in cambio in quanto non c’è testo in quel file. Possiamo aggiungere del testo a questo file esistente anche con echo
. Aggiungiamo una citazione di Zora Neale Hurston al file.
Ora, se eseguiamo il comando cat
sul file, riceveremo in output il testo che abbiamo appena inserito.
OutputSome people could look at a mud puddle and see an ocean with ships.
Fino ad ora, abbiamo creato file di testo e abbiamo aggiunto del testo a questi file, ma non li abbiamo ancora modificati. Se volessimo farlo, possiamo utilizzare un editor di testo da riga di comando. Esistono diverse scelte popolari, tra cui Vim e Emacs. Per i nostri scopi, useremo nano, che è un programma di modifica di testo CLI meno complesso che possiamo utilizzare per iniziare la nostra esplorazione.
L’editor di testo nano può essere chiamato con il comando nano
. Se vogliamo modificare il nostro file sammy.txt
esistente, possiamo farlo passando il nome del file come argomento.
Il file si aprirà sul tuo terminale:
Sammy the Shark
Con i tasti freccia della tastiera, sposta il cursore alla fine della riga e inizia a digitare alcune righe dal punto di vista di Sammy.
Nota: Sulla riga di comando, non puoi usare il mouse o altro puntatore per navigare, sia nel sistema di file che nei file stessi. Dovrai usare la tastiera e in particolare i tasti freccia per muoverti nei file di testo.
Quando hai finito con il tuo file, potrebbe leggersi così:
Sammy the Shark
Hello, I am Sammy.
I am studying computer science.
Nice to meet you!
Con il tuo file contenente ora il testo desiderato, possiamo ora salvare e chiudere il file. Potresti notare che c’è una guida nella parte inferiore della finestra del tuo terminale:
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Poiché abbiamo finito di lavorare su questo file, vorremmo uscire dal file. Qui, il simbolo ^ si riferisce al tasto Control o CTRL sulla tastiera e l’output sopra ci dice che dobbiamo combinare quel tasto con X (usare minuscolo, senza premere il tasto SHIFT) per uscire dal file. Premiamo insieme questi due tasti:
CTRL x
Quanto sopra viene spesso scritto inline come CTRL + X
o Ctrl+x
nella documentazione tecnica.
A questo punto, riceverai il seguente prompt:
OutputSave modified buffer?
Y Yes
N No ^C Cancel
Per salvarlo, premiamo il tasto y
per sì:
y
Riceverai un feedback come il seguente.
OutputFile Name to Write: sammy.txt
Ci sono opzioni aggiuntive, incluso annullare con CTRL + C
, ma se ti senti a tuo agio nel chiudere il file, puoi premere ENTER
in questo momento per salvare il file ed uscire.
Supponiamo che vogliamo creare alcuni file degli studenti presso l’Università di DigitalOcean. Creiamo una nuova directory in files/
chiamata students
:
Successivamente, spostiamo sammy.txt
nella nuova directory students/
. Il comando mv
, che sta per move, ci permetterà di cambiare la posizione di un file. Il comando è costruito prendendo il file che vogliamo spostare come primo argomento e la nuova posizione come secondo argomento. Entrambe le esecuzioni seguenti produrranno lo stesso risultato.
Questa ultima opzione sarebbe utile se volessimo cambiare il nome del file, come in mv sammy.txt students/sammy-the-shark.txt
.
Ora, se eseguiamo il comando ls
, vedremo che solo ocean.txt
e la cartella students/
sono nella nostra directory corrente (files/
). Entriamo nella cartella students/
.
Per avere un modello per gli altri studenti, possiamo copiare il file sammy.txt
per creare più file. Per fare ciò, possiamo utilizzare il comando cp
, che sta per copia. Questo comando funziona in modo simile al comando mv
, prendendo il file originale come primo argomento e il nuovo file come secondo argomento. Creeremo un file per Alex il Draghetto delle Alghe:
Ora, possiamo aprire alex.txt
e ispezionarlo.
Fino ad ora, alex.txt
sembra identico a sammy.txt
. Sostituendo alcune parole, possiamo modificare questo file in modo che legga come segue. Nota che puoi usare CTRL + K
per rimuovere un’intera riga.
Alex the Leafy Seadragon
Hello, I am Alex.
I am studying oceanography.
Nice to meet you!
Puoi salvare e chiudere il file premendo CTRL + X
, quindi y
, quindi ENTER
.
Se desideri fare più pratica con i file di testo, considera di creare file per Jamie il Gambero Mantide, Jesse il Polpo, Drew il Calamaro o Taylor il Tonno Pinna Gialla.
Una volta che ti senti a tuo agio nella creazione, modifica, copia e spostamento di file di testo, possiamo passare alla sezione successiva.
Autocompletamento e Cronologia
Molte versioni della riga di comando, inclusa la console interattiva incorporata in questo tutorial, ti consentono di autocompletare e riutilizzare i comandi man mano che procedi. Questo ti aiuta a muoverti più rapidamente poiché ti fa risparmiare tempo di battitura.
Prova a digitare cat
insieme alle prime lettere di uno dei file di testo su cui hai lavorato, ad esempio cat sa
. Prima di completare la digitazione del nome completo del file sammy.txt
, premi invece il tasto TAB
. Questo dovrebbe autocompletare il nome completo del file, in modo che il prompt del tuo terminale visualizzi quanto segue:
Ora, se premi INVIO
, il terminale dovrebbe restituire il contenuto del file sulla riga di comando.
Un’altra scorciatoia consiste nel premere il tasto freccia SU
, che ti permetterà di scorrere tra i comandi più recenti che hai eseguito. Su una nuova riga con un cursore lampeggiante, premi il tasto freccia SU
alcune volte per avere un accesso rapido ai tuoi comandi precedenti.
Se hai bisogno di replicare tutti i comandi che hai eseguito nel tuo terminale, puoi anche richiamare l’intera cronologia di questa sessione con il comando opportunamente chiamato history
:
In base a quanto hai praticato, dovresti ricevere 30 o più righe di comandi, a partire dall’output seguente:
Output 1 pwd
2 mkdir files
3 ls
4 ls -l
...
Familiarizzare con questi scorciatoie ti supporterà mentre diventi più competente con l’interfaccia della riga di comando.
Lavorare con File dal Web
Uno degli aspetti più eccitanti di lavorare su un’interfaccia della riga di comando connessa a Internet è che hai accesso a tutte le risorse sul web e puoi agire su di esse in modo automatizzato. Con il terminale, puoi anche accedere direttamente a server cloud di cui hai le credenziali, gestire e orchestrare infrastrutture cloud, creare le tue app web e altro ancora. Per ora, poiché abbiamo già imparato come lavorare con file di testo sul terminale, vedremo come scaricare un file di testo dal web in modo che la macchina che stiamo utilizzando abbia quel file di testo disponibile per noi.
Torniamo nella directory files/
:
Da qui, useremo il comando curl
per trasferire dati dal web al nostro terminale interattivo personale sul browser. Il comando curl
sta per cliente URL (indirizzo web).
Abbiamo caricato un breve passaggio da Venti mila leghe sotto i mari di Jules Verne su un server cloud. Passeremo l’URL di quel file al comando curl
, come mostrato di seguito.
Dopo aver premuto INVIO
, riceveremo il testo del passaggio come output sul nostro terminale (estratto di seguito)
Output"You like the sea, Captain?"
"Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe.
...
"Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this
is a library which would do honor to more than one of the continental palaces, and I am
absolutely astounded when I consider that it can follow you to the bottom of the seas."
Mentre è interessante visualizzare il testo sulla nostra finestra del terminale, non abbiamo il file disponibile, abbiamo solo trasferito i dati ma non li abbiamo memorizzati. (Puoi verificare che il file non sia presente eseguendo ls
).
Per salvare il testo su un file, dovremo eseguire curl
con il flag -O
, che ci consente di produrre il testo su un file, prendendo lo stesso nome del file remoto per la nostra copia locale.
Riceverai un feedback dal terminale che il tuo file è stato scaricato.
Output % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487
Se desideri utilizzare un nome specifico e alternativo del file, puoi farlo con il flag -o
e passare il nome del nuovo file come argomento (in questo caso, jules.txt
).
Ora possiamo lavorare su questo file esattamente come faremmo con qualsiasi altro file di testo. Prova ad utilizzare cat
, o a modificarlo con nano
.
Nella prossima sezione, puliremo alcuni dei file e usciremo dal nostro terminale.
Rimozione dei File e Terminazione dei Comandi
Come con qualsiasi altro computer, a volte è necessario rimuovere file e cartelle che non sono più rilevanti, ed uscire dal programma che stiamo utilizzando.
Diciamo che gli studenti che conosciamo dall’Università di DigitalOcean sono diplomati e dobbiamo eliminare i loro file e la relativa cartella. Assicurati di essere nella directory students/
:
Se esegui ls
, la tua cartella potrebbe avere alcuni file, come segue:
Outputalex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt
Possiamo rimuovere singoli file con il comando rm
, che sta per rimuovi. Dovremo passare il file che vogliamo rimuovere come argomento.
Avvertenza: Nota che una volta che rimuovi un file, non può essere annullato. Assicurati di voler rimuovere il file prima di premere INVIO
.
Ora, se eseguiamo ls
, noteremo che sammy.txt
non è più nella cartella:
Outputalex.txt drew.txt jamie.txt jesse.txt taylor.txt
Anche se ora sappiamo che possiamo rimuovere singoli file con rm
, non è molto efficiente in termini di tempo se vogliamo rimuovere l’intera directory students/
e tutti i suoi contenuti.
Il comando utilizzato per rimuovere le directory si chiama rmdir
, che sta per rimuovi directory. Andiamo alla cartella genitore di files
in modo da poter lavorare con la directory students/
da lì (non saremmo in grado di eliminare una cartella in cui siamo attualmente).
Dalla directory utente /home/sammy/
, possiamo eseguire rmdir
su students
.
Tuttavia, questo non funziona, poiché riceviamo il seguente feedback:
Outputrmdir: failed to remove 'students': Directory not empty
Il comando non ha funzionato poiché rmdir
funziona solo su directory vuote e la directory students
ha ancora file al suo interno. (Qui puoi creare una nuova cartella vuota e provare rmdir
su di essa. Le cartelle vuote possono essere rimosse con rmdir
.)
Per rimuovere la directory con ancora file al suo interno, dovremo provare un’opzione diversa. In informatica, la ricorsione è comunemente utilizzata per auto-riferirsi in modo iterativo; quindi possiamo richiamare sia un elemento principale che tutte le sue dipendenze. Utilizzando il comando rm
, possiamo rimuovere ricorsivamente la directory principale students
e tutte le sue dipendenze di contenuto. Utilizzeremo il flag -r
, che sta per ricorsivo, e passeremo la cartella students
come argomento.
A questo punto, se eseguiamo il comando ls
, noteremo che students/
non è più presente nella nostra directory attuale e neanche i file che conteneva sono disponibili, poiché sono stati tutti eliminati.
Quando hai finito con una sessione terminale e soprattutto quando stai lavorando su un server remoto, puoi uscire dalla terminale con il comando exit
. Una volta che ti senti a tuo agio con quello che hai realizzato in questa sessione (poiché non sarai in grado di ripristinarlo), puoi digitare quanto segue, seguito da INVIO
per lasciare la terminale.
Nella nostra terminale interattiva, riceveremo l’output seguente, confermando che la nostra sessione è terminata.
OutputSession ended
Conclusa questa sessione, puoi aggiornare questa pagina e quindi avviare una nuova terminale per provare comandi alternativi o creare un nuovo sistema di file da esplorare.
Conclusione
Congratulazioni! Ora conosci bene l’interfaccia del terminale e sei sulla buona strada per fare di più con computer e server.
Per continuare il tuo apprendimento, puoi seguire un percorso guidato per configurare e gestire server remoti con il nostro curriculum Introduzione al Cloud Computing.
Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer