Lezione 3: Programmazione della Shell di Unix
|
|
|
- Giorgina Mora
- 9 anni fa
- Visualizzazioni
Transcript
1 Lezione 3: Programmazione della Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 2 Marzo 202 Parte : Soluzione degli esercizi Statistiche Ho ricevuto 2 soluzioni Tutte le soluzioni hanno ricevuto voto positivo Le soluzioni complete e l elenco dei voti sono disponibili sulla pagina del corso Esercizio 7. fornire il numero di file (e directory) contenuti ricorsivamente nella propria home (si può utilizzare ls -R? ed il comando find?) L idea di base per risolvere l esercizio è quella di produrre una lista dei file e directory contenuti ricorsivamente nella propria home, contando le linee in output (supponendo che ogni linea corrisponda ad un file/directory). $ find. 2>/dev/null wc -l Utilizzando ls -R non si ottiene il conteggio esatto! 2. elencare i file (e directory) contenuti ricorsivamente nella propria home il cui percorso relativo non contiene la lettera a o A Anche il questo caso per risolvere l esercizio si deve prima produrre la lista dei file e directory contenuti nella propria home con il comando find. Si noti che il comando restituisce il percorso relativo di ogni file. Quindi si può utilizzare grep per filtrare l elenco eliminando dalla lista le righe dove appare una a (maiuscola o minuscola): $ find. 2>/dev/null grep -iv a Parte 2: Storia dei comandi e completamento automatico La storia dei comandi La storia dei comandi è uno strumento fornito dalla shell che consente di evitare all utente di digitare più volte gli stessi comandi: la storia memorizza gli ultimi 500 comandi inseriti dall utente; la storia viene salvata nel file.bash_history al momento del logout (e riletta al momento del login); il comando history consente di visualizzare la lista dei comandi:
2 $ history tail ls -al 53 cd /etc 55 history tail -4 ogni riga prodotta dal comando history è detta evento ed è preceduta dal numero dell evento. Conoscendo il numero dell evento che vogliamo ripetere, possiamo eseguirlo usando il metacarattere!: $!55 history tail cd /etc 55 history tail history tail -4 Se l evento è l ultimo della lista è sufficiente usare!!: $!! history tail history tail history tail history tail -4 È anche possibile eseguire delle ricerche testuali per individuare l evento a cui siamo interessati: $!ls ls -al total 49 drwxr-xr-x 6 root root 0 Oct 5 2:35. drwxr-xr-x 6 root root 0 Oct 5 2:35.. -rw-r--r-- root root 8755 Jul 0 04:28 Muttrc drwxr-xr-x 2 root root 0 Oct 5 2:27 WindowMaker... In questo modo la shell cerca a partire dall ultimo evento, procedendo a ritroso, un comando che inizi con ls. Racchiudendo con? la stringa da ricercare, la shell controllerà che quest ultima appaia in un punto qualsiasi del comando: $!?ls? Editing dei comandi La shell mette a disposizione dell utente dei semplici comandi di editing per facilitare la ripetizione degli eventi: utilizzando i tasti cursore: con la freccia verso l alto si scorre la storia dei comandi a ritroso (un passo alla volta) facendo apparire al prompt il comando corrispondente all evento; analogamente con la freccia verso il basso si scorre la storia nella direzione degli eventi più recenti. le frecce sinistra e destra consentono di spostare il cursore sulla linea di comando verso il punto che si vuole editare; le combinazioni di tasti Ctrl-A e Ctrl-E spostano il cursore, rispettivamente all inizio ed alla fine della linea di comando; il tasto Backspace consente di cancellare il carattere alla sinistra del cursore. 2
3 Completamento dei comandi Una caratteristica molto utile della shell è la sua abilità di tentare di completare ciò che stiamo digitando al prompt dei comandi: $ pass<tab> La pressione del tasto <Tab> fa in modo che la shell cerchi un comando che inizi con pass. Siccome l unica scelta possibile è il comando passwd, questo sarà riportato automaticamente nel prompt. Se i caratteri digitati non permettono di identificare il comando, avviene quanto segue: viene prodotto un suono di avvertimento al momento della pressione del tasto <Tab>; alla seconda pressione del tasto <Tab> la shell visualizza una lista delle possibili alternative; digitando ulteriori caratteri, alla successiva pressione del tasto <Tab>, la lista diminuirà fino ad individuare un unico comando. Oltre a poter completare i comandi, la shell bash può anche completare i nomi dei file: $ tail -2 /etc/p<tab><tab> passwd printcap profile $tail -2 /etc/pa<tab><invio> bianchi:fjkppczxevouc:500:500::/home/bianchi:/bin/bash rossi:yta4ffkgr02:50:500::/home/rossi:/bin/bash In questo caso alla prima doppia pressione del tasto <Tab>, la shell presenta tre possibili alternative. Digitando una a e premendo il tasto <Tab>, la shell può determinare in modo univoco il completamento del nome del file. Parte 3: Variabili e ambiente Variabili La shell permette di definire variabili per salvare dei valori Assegnazione: variabile=valore Per accedere al valore di una variabile, si usa l operatore $ Esempio: se x vale 23, si può usarne il valore tramite $x Per visualizzare il valore di una variabile, si usa il comando echo Per acquisire un valore da standard input: read variabile NOTA: I valori delle variabili sono sempre STRINGHE L ouput di un comando può essere assegnato ad una variabile con l operatore $( ) Per valutazioni aritmetiche si può usare l operatore $(( )), oppure il comando let 3
4 Esempi $ x= $ echo $((x+)) $ let "x+=" $ read x pippo pippo $ x=$(ls) [ bash cat chmod cp csh date... Le variabili d ambiente Le variabili sono di norma locali alla shell Assegna il valore 0 alla variabile x Mostra la stringa 0+ Mostra il risultato dell operazione x+ Incrementa di il valore di x Stampa il valore di x Legge il valore di x dallo standard input Stampa il valore di x sullo standard output Assegna l output di ls come valore di x Stampa la lista dei file Il comando export consente di passare i valori delle variabili ai processi creati dalla shell (in particolare alle sub-shell) L ambiente della shell è una lista di coppie nome=valore trasmessa ad ogni processo creato Esempio: export PS= \h_mionome_\w> assegna un valore a una variabile di ambiente export variabile[=valore] stampa il valore di una o tutte le variabili d ambiente printenv [variabile] stampa il valore di tutte le variabili d ambiente env Variabili speciali Alcune variabili d ambiente sono usate per memorizzare informazioni importanti: PWD SHELL PATH PS HOME USER HOSTNAME HOSTTYPE percorso corrente nome della shell percorsi dove cercare i comandi prompt dei comandi cartella home dell utente nome dell utente corrente nome dell host (computer a cui si è collegati) il tipo di architettura dell host Parte 4: Script e programmazione della shell 4
5 I file di comandi (script) È possibile memorizzare in un file una serie di comandi, eseguibili richiamando il file stesso Esecuzione: tramite il comando source script.sh argomenti i comandi vengono eseguiti all interno della shell corrente tramite il comando bash script.sh argomenti eseguendo direttamente lo script:./script.sh è necessario che il file abbia il permesso di esecuzione Negli ultimi due casi viene lanciato un nuovo processo per il programma che deve interpretare lo script Per convenzione, la prima riga del file inizia con #!, seguita dal nome dall interprete entro cui eseguire i comandi (#!/bin/bash) Esempio #!/bin/bash date # restituisce la data who # restituisce chi è connesso Il carattere # indica che tutto quello che segue è un commento, e viene ignorato Variabili speciali La bash memorizza gli argomenti della linea di comando dentro una serie di variabili speciali: $ $2... $9 Altre variabili speciali: $$ PID del processo shell $0 Il nome dello script/processo corrente $# il numero di argomenti $* $@ tutti gli argomenti $? l exit status dell ultimo comando (0 se il comando è stato eseguito correttamente, un valore diverso da 0 altrimenti) Il comando exit n termina l esecuzione dello script e assegna il valore n all exit status Esempio numargomenti.sh #!/bin/bash echo Questo script si chiama $0 echo "E stato eseguito con" $# argomenti echo Il primo argomento e\ # echo "Il quarto argomento e " #4 exit $# $./numargomenti.sh pippo pluto paperino Questo script si chiama./numargomenti.sh E stato eseguito con 3 argomenti Il primo argomento e pippo Il quarto argomento e $ echo $? 3 5
Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set
PATH Shell: variabili di sistema HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set Shell: variabili di sistema Per visualizzare il
La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;
La Shell di Unix La parte del sistema operativo Unix dedita alla gestione dell interazione con l utente è la shell, ovvero, un interfaccia a carattere: l utente impartisce i comandi al sistema digitandoli
Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.
Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché
Esercitazione 1 la shell
Esercitazione 1 la shell Obiettivi Prendere confidenza con i comandi per la gestione del file system Utilizzare gli strumenti visti a lezione per creare tre semplici script bash File system 1/2 1. Verificare
Linux e la shell Bash
DEI DEI-- Politecnico di dibari Linux e la shell Bash Esercitazione conclusiva G. Piscitelli - M. Ruta - A. Cinquepalmi Testi di riferimento: Linux e la shell Bash http://sisinflab.poliba.it/ruta/linux/linux
- comando sort: con chiavi di ordinamento -
- comando sort: con chiavi di ordinamento - 1 - sort: chiavi di ordinamento - Tramite l'opzione -k è possibile definire una chiave di ordinamento su una porzione della linea contenuta nel file Specificando
Lezione 5: Controllo del flusso e costrutti avanzati
Lezione 5: Controllo del flusso e costrutti avanzati Laboratorio di Elementi di Architettura e Sistemi Operativi 20 Marzo 2013 Parte 1: Il valore di uscita di un processo Il valore di uscita di un processo
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Alessandro Dal Palù email: [email protected] web: www.unipr.it/~dalpalu Qualche link utile Informazioni sull utilizzo della shell Unix/Linux http://www.pluto.it/ildp/howto/bash-prog-intro-howto.html
Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017
Elaborato Shell Elementi di architettura e sistemi operativi 2016/2017 Introduzione passwd è il file di configurazione di sistema in cui sono memorizzate alcune delle informazioni relative agli account
Uso del terminale in ambiente UNIX
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
Lezione 2: Comandi avanzati della Shell di Unix
Lezione 2: Comandi avanzati della Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 6 Marzo 2013 Parte 1: Metacaratteri, link e file speciali I metacaratteri La shell riconosce
Lezione 1: Introduzione alla Shell di Unix
Lezione 1: Introduzione alla Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 5 Marzo 2013 Chi è UNIX? UNIX è il nome di una famiglia di sistemi operativi, con diverse implementazioni
Il sistema operativo UNIX/Linux. Gli script di shell
Il sistema operativo UNIX/Linux Gli script di shell Introduzione Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue
Esecuzione di script
Shell Script Gli shell script sono programmi interpretati dalla shell, scritti in un linguaggio i cui costrutti atomici sono i comandi Unix. I comandi possono essere combinati in sequenza o mediante i
Esercitazione GNU/Linux n. 2
2.1 Copiare i file cp (copy) Esercitazione GNU/Linux n. 2 cp file1 file2 è il comando che crea una copia del file1 presente nella directory corrente e la chiama file2 Ciò che faremo adesso, è prendere
Il sistema operativo UNIX/Linux. Le shell Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino
Il sistema operativo UNIX/Linux Le shell Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Introduzione alle shell Strato più esterno del sistema operativo Fornisce l interfaccia
Shell BASH. Variabili Redirezione
Shell BASH Variabili Redirezione Variabili Scrittura/definizione: a=3 (senza spazi) Lettura: ${a} o semplicemente $a Esempi: > a=3 > echo $a 3 > echo $aa > echo ${a}a 3a > a=ciao pippo bash: pippo: command
Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Esame Laboratorio di Sistemi Operativi 2-01-2008 Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 1 ora. Domande chiuse:
Fondamenti di Informatica
Fondamenti di Informatica Introduzione a MATLAB Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 Introduzione a MATLAB Avviso per le Prossime Lezioni
Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013
Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013 Comandi di ricerca 1 Sommario Comandi shell di ricerca: grep find 2 - comando di ricerca: grep - 3 file passwd, ricordiamo che Le righe di
Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino
Laboratorio Sistemi Operativi: Linux/Windows Giovanni Da San Martino [email protected] 1 Sistemi operativi Un sistema operativo è insieme di programmi che gestiscono la macchina fisica. Un sistema operativo
Il sistema operativo LINUX Esercitazione 3. Esercizio 1. Esercizio 2. Esercizio 5 - Soluzione. Il sistema operativo LINUX Esercitazione 4.
Il sistema operativo LINUX Esercitazione 3 Esercizio 1 Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Mostrare una lista
PROGRAMMAZIONE CONSUNTIVA Codice Mod. RQ 23.2 Pag 1/5. Sistemi e Reti (articolazione Telecomunicazione) Classe
I.T.C.S. ERASMO DA ROTTERDAM Liceo Artistico indirizzo Grafica - Liceo delle Scienze Umane opz. Economico sociale ITI Informatica e telecomunicazioni - ITI Costruzioni, ambiente e territorio Edile Elettronico
Esercitazione 2 GUIDA
Corso di Laurea in Biologia Molecolare, Università di Padova Insegnamento di Informatica e Bioinformatica Esercitazione 2 Padova, 13 aprile 2016 GUIDA Uso della shell Unix Obbiettivo dell'esercitazione
Usare Python in Linux
26 Febbraio 2015 Outline 1 Struttura e programma delle lezioni 2 3 Outline Struttura e programma delle lezioni 1 Struttura e programma delle lezioni 2 3 Lezione tipo Struttura e programma delle lezioni
Il terminale per tutti
Il terminale per tutti un introduzione all uso della shell su Linux Simone Capodicasa [email protected] Linux Day Torino 26 ottobre 2013 S. Capodicasa Il terminale per tutti 1/42 Indice Introduzione
nome di un menu per visualizzarlo e poi selezionate facendo clic sul comando che vi interessa.
1 (conoscere le basi di Excel) < I controlli della. Finestra > La finestra di apertura di Excel presenta una cartella di lavoro vuota; la finestra del programma occupa tutto lo spazio dello schermo, mentre
Shell: csh e tcsh. Di shell non ne esiste una sola... Per il momento... Funzioni della shell. In cosa si differenziano?
Di shell non ne esiste una sola... Shell: csh e tcsh Shell C-shell Bourne shell Korn shell Bourne again sh. TC-shell... (sh) (csh) (bsh) (ksh) (bash) (tcsh) In cosa si differenziano? Per il momento......
L interfaccia command line di Ubuntu è il Terminale che usa un sistema command line detto bash.
BASH La maggior parte del lavoro di un bioinformatico si svolge attraverso un interfaccia command line che al contrario dell interfaccia grafica che usiamo ogni giorno, ha bisogno di comandi di testo esatti.
01 Terminale e file system
01 Terminale e file system Danilo Pianini IFTS Alma Mater Studiorum Università di Bologna, Cesena 12 gennaio 2017 Pianini (Università di Bologna) Terminale e FS 12 gennaio 2017 1 / 11 Outline 1 Il file
Esempio 1. Creare uno script (file comandi) che abbia la sintassi:
Esempi shell 1 Esempio 1 Creare uno script (file comandi) che abbia la sintassi:./ps_monitor.sh [N] Lo script: in caso di assenza dell argomento, deve mostrare i processi di tu@ gli utena (compresi quelli
Shell di Linux e Comandi Utente
Shell di Linux e Comandi Utente Sistemi Operativi Roberto Aringhieri DTI Crema - Università degli Studi di Milano Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri p.1/23 Outline Accesso
LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015
1 LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI A. A. 2014/2015 PRIMI PASSI La più semplice sequenza di istruzioni che possiamo scrivere è quella costituita da un solo comando. come si fa a
Editor di testo. Ing. Simone Brienza. Corso di laurea magistrale in Ingegneria Elettronica
Corso di laurea magistrale in Ingegneria Elettronica Ing. Simone Brienza E-mail: [email protected] Pervasive Computing & Networking Lab () http://www.perlab.it Dipartimento di Ingegneria dell
Lezione 1. Argomenti della lezione: Introduzione a ROOT
Pagina 1 di 7 Lezione 1 Argomenti della lezione: Introduzione a ROOT Informazioni generali Schermata iniziale Comandi di ROOT CINT Convenzioni Variabili Globali Classi, Metodi e Costruttori Disegnare funzioni
GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica
GLI SCRIPT DI SHELL Lucidi a cura di B.De Carolis Shell Unix - Linux comandi Interfaccia di alto livello tra utente e SO. Il processore interpreta e mette in esecuzione comandi da: 1) standard input o
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS Comandi da terminale Il comando sleep fa attendere un comando prima dell'esecuzione. Prova il comando: $ sleep 3s && echo Ciao Mondo! $ Comandi da terminale
14Ex-Cap11.qxd :20 Pagina Le macro
14Ex-Cap11.qxd 21-12-2006 11:20 Pagina 203 11 Le macro Creare le macro Registrare una macro Eseguire una macro Riferimenti assoluti e relativi nelle macro Assegnare un pulsante a una macro Modificare una
Linguistica Computazionale: esercitazioni
Esercitazione 1 Felice Dell'Orletta ItaliaNLP Lab (www.italianlp.it) presso Istituto di Linguistica Computazionale A. Zampolli CNR [email protected] 24 settembre 2014 Linguistica Computazionale:
Lab. di Sistemi Operativi - Esercitazione - Comandi Shell
Lab. di Sistemi Operativi - Esercitazione - Comandi Shell 1 - Esercizi Comandi Unix - 2 Esercizio n 0 0a) creare una cartella EsercitazioneLSO-1 nella directory di lavoro 0b) creare un file testo chiamato
Comandi principali di Linux (1)
Laboratorio I Comandi principali di Linux (1) Sintassi: [comando] [opzioni] [argomenti] ls mostra il contenuto di una director l versione lunga a mostra anche i files nascosti che iniziano con. t presenta
Menù principale di Calc
Menù principale di Calc Status bar Informazioni generali! All'apertura si visualizza una cartella il cui nome è mostrato nella title bar;! Una cartella contiene più fogli di lavoro. Ci si può spostare
Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio
Lezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago [email protected] Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
Laboratorio di Programmazione
Laboratorio di Programmazione Federico Spizzo Dipartimento di Fisica / Edificio C Stanza 006 Tel: 0532 974231 E-mail: [email protected] Gianluigi Cibinetto Dipartimento di Fisica / Edificio C Stanza
Sviluppare un programma in FORTRAN
Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
Introduzione all'uso del sistema operativo Ubuntu
Introduzione all'uso del sistema operativo Ubuntu Aprire un Terminal. Osservare il prompt dei comandi Una shell è pronta ad interpretare ed eseguire i vostri comandi consentendovi di accedere ai servizi
Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini.
Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica 3 Shell (prosecuzione) Permessi (prosecuzione) Gestione utenti (prosecuzione) Daniel Cesarini [email protected] www.iet.unipi.it/d.cesarini
SHELL: File e Filesystem
SHELL: File e Filesystem Obiettivi : - Usare i comandi per muoversi all'interno del filesystem - Copiare, spostare, rinominare file e directory - Usare i link - Visualizzare il contenuto di un file - Conoscere
Excel Base- Lezione 3. Barbara Pocobelli Estav Nord Ovest. Il comando Trova
Excel Base- Lezione 3 Il comando Trova 1. Fare clic su Modifica nella Barra dei menu. 2. Fare clic su Trova. Appare una finestra con una casella in cui digitare il valore da ricercare. Viene digitato il
2 Lavorare con Eclipse
Corso Eclipse 2 Lavorare con Eclipse 1 Prerequisiti Conoscenza elementare ambiente Eclipse Compilare ed eseguire semplici applicazioni Java Conoscere i tipici errori di programmazione Individuare errori
LEZIONE 4. Per semplificarne la comprensione della tastiera possiamo suddividere i tasti in diversi gruppi in base alla funzione che possono svolgere:
LEZIONE 4 La tastiera è lo strumento principale per l'immissione di informazioni nel computer, ma non tutti sanno, però, che è possibile utilizzare la tastiera anche per controllare il computer e i vari
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 2 Alessandro Dal Palù email: [email protected] web: www.unipr.it/~dalpalu Alias Alias già visti: 1.. (directory corrente) 2... (directory madre)
L INTERFACCIA GRAFICA DI EXCEL
Dopo l avvio del foglio elettronico apparirà un interfaccia grafica nella quale verrà aperta una nuova cartella di lavoro alla quale il PC assegnerà automaticamente il nome provvisorio di Cartel1. La cartella
Introduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
