35
Uso del terminale in ambiente UNIX Non sempre è disponibile un’interfaccia grafica sui computer su cui si lavora In questo caso l’interazione con il calcolatore avviene attraverso l’interfaccia a riga di comando I comandi sono digitati in un ambiente chiamato shell Esistono molti tipi di shell in UNIX, ma una delle più diffuse è la BASH

Uso del terminale in ambiente UNIXstudenti.fisica.unifi.it/~aloisi/E4/terminale.pdfUso del terminale in ambiente UNIX Il comando ls consente di ottenere una lista di cartelle e file

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Uso del terminale in ambiente UNIXNon sempre è disponibile un’interfaccia grafica sui computer su cui si lavora

    In questo caso l’interazione con il calcolatore avviene attraverso l’interfaccia a riga di comando

    I comandi sono digitati in un ambiente chiamato shell

    Esistono molti tipi di shell in UNIX, ma una delle più diffuse è la BASH

  • Uso del terminale in ambiente UNIXPer sapere in quale directory ci si trova quando si apre un terminale, si digita il comando pwd (presentworking directory)

    Nell’esempio l’utente è nella sua home, la cartella principale in cui sono contenuti documenti (Documents), i file scaricati (Downloads) e le pagine web (public_html)

  • Uso del terminale in ambiente UNIXIl comando ls consente di ottenere una lista di cartelle e file contenuti in una directory.

    Con ls -l si ottiene una lista più dettagliata:

    In questo caso per ogni file o directory sono riportati i permessi.

    Quindi è riportato il nome del proprietario del file o della directory, a cui segue quello del gruppo

  • Uso del terminale in ambiente UNIXQuindi sono riportate le dimensioni dei file o delle cartelle e la data e creazione dell’ultima modifica

    L’ultima colonna è quella relativa al nome del file o della directory.

  • Uso del terminale in ambiente UNIX

    Con il comando ls -la si visualizzano ulteriori file o directory, come ad esempio, quelli relativi a configurazione di programmi, usualmente nascosti

  • Creare / rimuovere directory

    Per creare una directory si usa il comando mkdir

  • Creare / rimuovere directory

    Per rimuovere una directory si usa il comando rmdir

  • Muoversi tra le directoryPer spostarsi all’interno delle directory, si usa il comando cd

    La sintassi generale è cd nome della directory da raggiungere

    Ad esempio per andare in /usr/local dalla propria home, si digita: cd /usr/local

    Con cd .. Si torna indietro di una directory, con cd –si torna nella directory precedentemente visitata, mentre con cd ~ si torna nella propria home

  • Gestione dei file

    • Alcuni dei comandi più usati per gestire i file in ambiente UNIX sono:• touch = consente di creare un file vuoto di nome

    • rm = rimuove file e directory• rm = rimuove i file con come e

    • rm * = rimuove tutti i file contenuti in una directory

    • rm test?.txt = rimuove tutti i file con nome test seguito da un carattere e estensione txt

    • cp = copia file e directory• cp / = copia il file nella cartella

    • cp * / = copia tutti i file di una directory nella cartella

    • mv = muove o rinomina file e directory• mv = muove (rinomina) il file in

  • I permessi: chmod

    • I permessi controllano quali azioni gli utenti possono eseguire su file e cartelle

    • Le azioni permesse sono di tre tipologie:1. Lettura (r)2. Scrittura (w)3. Esecuzione (x)

    • I permessi sono applicati in tre distinti livelli: utente, gruppo, mondo

    • Il comando chmod consente di intervenire sui permessi• Con u, g, o (o a = all = ugo) si determina il livello su cui si intende intervenire• Con + o - si attiva o disattiva un permesso• Con r, w, x si attribuisce il permesso di lettura, scrittura o esecuzione

  • I permessi: chmodIl programma test.xesegue delle operazioni di stampa a video

    Impartendo il comando:

    chmod u-x test.x

    Viene tolto il permesso di esecuzione e il sistema mostra il messaggio:

    Permission denied

  • Editor di testi

    Emacs è uno degli editor maggiormente impiegati in ambiente UNIX

    Esistono versioni anche per Windows e Mac OS X

    Ampiamente impiegato in programmazione

    Consente ad esempio l’indentazione, la colorazione delle parole chiave e la compilazione per tutta una serie di linguaggi

  • Editor di testiGeany è un editor di file testo molto leggero

    È uno degli editor di default sui Raspberry Pi

    Consente tutta una serie di operazioni utili in programmazione (indentazione, gestione dei cicli, compilazione)

    È disponibile anche per Windows

    È open source e rilasciato con licenza GPL

  • Editor di testi… vivi è l’editor più diffuso in ambienti UNIX

    È potente, ma non è facile o amichevole

    vi opera in due modalità: comando e editing

    Nella modalità comando si può ad esempio cancellare caratteri, cancellare linee, salvare

    Nella modalità editing si può invece intervenire direttamente sul testo (inserire, rimuovere, ecc.)

  • Editor di testi… viAlcuni dei comandi principali sono:

    x = cancella un caratteredd = cancella una riga:w = salva il file:q = esce:wq = salva ed esce

    i = attiva la modalità editingesc = attiva la modalità comando

  • Redirezionare e appendere fileL’output a video dei programmi può essere redirezionato in file di testo con >

    Invece con >> si appende l’output a video ad un file di testo già esistente (se il file non esiste viene creato)

    Il comando greppermette di estrarre il contenuto desiderato da un file di testo

    Il comando | (pipe) trasforma l’output a video di un programma in input per un altro

  • I comandi date, cat e diffDigitanto./test.x > test1.txte./test.x > test2.txtsi cerano i due file test1.txt e test2.txt

    Con il comando date >> test1.txt edate >> test2.txtsi appende la data e l’ora nei due file

  • I comandi date, cat e diff

    Con il comando cat si concatenano i due file

  • I comandi date, cat e diff

  • I comandi date, cat e diffCon il comando diff si evidenziano le differenze tra i due file test1.txt e test2.txt

    Avendo usato lo stesso programma per generare i due file, l’unica differenza è la data (o meglio l’ora) nell’ultima riga

  • Host, head e tailIl comando host fornisce l’indirizzo IP e altre informazioni richieste per un computer in rete

    I comandi head e tailconsentono di leggere rispettivamente le prime e le ultime righe di un file di testo

    Il numero di righe può essere specificato con -numero_righe

  • Accesso remoto: ssh, scp e sftp (Linux)

    Il collegamento ad un computer remoto avviene tramite il protocollo ssh

    Le informazioni tra computer locale e remoto sono trasmesse in forma criptata

    Il comando per il collegamento è ssh a cui seguono il nome utente e quello della macchina remota

  • Accesso remoto: ssh, scp e sftp (Linux)

    Il login avviene inserendo la password sulla macchina remota

    Sul server di fisica, la user e la password sono quelle usate a lezione

  • Accesso remoto: ssh, scp e sftp (Linux)

    Al momento del login si è accolti dal messaggio di benvenuto della distribuzione DebianGNU/Linux installata sulla macchina remota

  • Accesso remoto: ssh, scp e sftp (Linux)

    Digitando il comando gnuplot si ottiene un ambiente analogo a quello osservato nell’esercitazione 4

    Il programma viene eseguito sul computer remoto, mentre i comandi sono digitati su quello locale

  • Accesso remoto: ssh, scp e sftp (Linux)

    L’output grafico è visualizzato sul computer locale.

    Poiché l’output deve essere trasferito dalla macchina remota a quella locale, è possibile un certo ritardo dovuto alla velocità della connessione su cui si opera

  • Accesso remoto: ssh, scp e sftp (Linux)

    Salvando il grafico in un formato (ad esempio, png) è possibile trasferirlo sulla macchina locale usando il comando scp

    Il comando scp esegue una copia sul computer locale

    La sintassi è analoga a quella ssh, eccetto nella parte finale in cui è indicato il file che si intende trasferire e la directory in cui si trova

  • Accesso remoto: ssh, scp e sftp (Linux)

    È possibile anche trasferire file dal computer locale a quello remoto.

    La sintassi è analoga a quella vista in precedenza, ma in questo caso prima si digita il nome del file che si vuole trasferire, seguito dall’utente, la macchina e la directory in cui si deve copiare.

  • Accesso remoto: ssh, scp e sftp (Linux)

    Esistono programmi che consentono di eseguire queste operazioni graficamente

    Uno di questi programmi è FileZilla

    FileZilla è un programma open source rilasciato con licenza GPL

    È multipiattaforma: esistono versioni per Windows, Linux e Mac OS X

  • Accesso remoto: ssh, scp e sftp (Windows)

    Per collegarsi ad un sistema UNIX si può impiegare il programma putty

    Per visualizzare output grafici si deve prima aprire un server X

    Un server X disponibile per Windows è VcXsrv

  • Accesso remoto: ssh, scp e sftp (Windows)

    Anche in questo caso il collegamento avviene aprendo un terminale, tramite il protocollo ssh

    Il login avviene inserendo username e password

  • Accesso remoto: ssh, scp e sftp (Windows)

    L’ambiente è analogo a quello che si ha collegandosi da Linux

    La shell che si presenta è quella impostata sulla macchina remota

    Il messaggio di benvenuto è quello offerto dalla distribuzione Debian, installata sulla macchina remota

  • Accesso remoto: ssh, scp e sftp (Windows)

    Aprendo il programma gnuplot è possibile impartire i comandi sulla macchina remota.

    L’output grafico è invece visualizzato sulla macchina locale

    La velocità di trasferimento dei dati dipende dalla connessione su cui è eseguito il collegamento

  • Il terminale in Windows

    Per eseguire il terminale in Windows si deve digitare cmd nello spazio messo a disposizione del programma esegui

    Il programma esegui si trova nella cartella Sistema Windows nell’elenco delle App.

  • Il terminale in Windows

    La sintassi dei comandi è leggermente diversa.

    Ad esempio il comando lsin ambiente UNIX è sostituito da dir