Il sistema operativo UNIX/Linux Le shell

Documenti analoghi
Il sistema operativo UNIX/Linux. Le shell Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Il sistema operativo LINUX La shell

SHELL. La shell esegue il contenuto di uno o più file di inizializzazione poi inizia un ciclo durante il quale attende ed esegue i comandi dell utente

Se state utilizzando la shell bash, ovvero la shell di riferimento per questo manuale, il terminale visualizzerà il seguente output:

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

La shell di Unix. Uso interattivo e scripting

Lezione 3: Programmazione della Shell di Unix

Il sistema operativo LINUX Script di Shell

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Keep it simple, stupid!

Shell: csh e tcsh. Di shell non ne esiste una sola... Per il momento... Funzioni della shell. In cosa si differenziano?

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

Codice Corso: UNX010. Durata: 3 giorni

Il sistema operativo UNIX/Linux. Gli script di shell

Bash: history list (I)

Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Corso di Laboratorio di Sistemi Operativi

Il terminale per tutti

Esecuzione di script

GLI SCRIPT DI SHELL. Shell

Il sistema operativo UNIX/Linux. Soluzione di problemi mediante script Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

La Shell continua. comando. Shell. per ogni comando da eseguire la shell crea una shell figlia dedicata all esecuzione del comando

Shell scripting. Turing completi approccio procedurale non tipati (l'unico tipo disponibile è la stringa) interpretati

Sviluppare un programma in FORTRAN

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi

Lab. di Sistemi Operativi

Controllo di flusso negli script: if-then-else

Script di shell (bash)

Shell BASH. Variabili Redirezione

Corso di Laboratorio di Sistemi Operativi

Sistemi Operativi. Introduzione all uso e alla programmazione di una shell

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Lezione 5: Controllo del flusso e costrutti avanzati

Lezione 1: Introduzione alla Shell di Unix

Ridirezione su/da file

Classpath e Esercizi su RMI

Laboratorio di Sistemi Operativi

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 2 10/10/2012 Lezione 3 17/10/2012

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

GNU/Linux 101. intro to system administration. Manifatture KNOS 22 Gennaio This work is licensed under a

MasterIT - Scripting Es1. Sh, Csh, Grep, Sed, Awk

Installazione di Ubuntu Mauro Piccolo

Introduzione a UNIX shell e file comandi

UNIX. UNIX: history. shell come interprete. Unix shell. The layers of a UNIX system.

L ambiente UNIX/Linux. Espressioni regolari e comando find Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Alcuni concetti base

Il sistema operativo UNIX/Linux. Gli script di shell Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Uso del terminale in ambiente UNIX

01 Terminale e file system

L utility Unix awk [Aho-Weinberger-Kernighan]

Laboratorio Multimediale Lezione n. 1

Esempio 1. Creare uno script (file comandi) che abbia la sintassi:

Programmazione Batch

Modulo 2 Appendice 4 Programmazione in linguaggio script

Il preprocessore. Direttiva define Direttiva include Direttiva if

I Metacaratteri della Shell Unix

Corso di avvicinamento al Software Libero. Lunedi 23 Gennaio

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi?

Comandi principali di Linux (1)

Cos è una shell. La shell di Unix Uso interattivo e scripting. Alcune caratteristiche della shell. La shell bash

Linux e la shell Bash

G. Schmid Unix shell. Unix shell

2. Strutture dei Sistemi Operativi. 2.2 Interfaccia col Sistema Operativo Interprete dei comandi

La Shell: esecuzione dei comandi

Concetti base. Java - package 2

E' un interprete di comandi: legge ciascuna linea di comando, la interpreta e la esegue

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Introduzione a UNIX shell e file comandi

Corso di avvicinamento al Software Libero. Lunedi 23 Gennaio

CLI Workshop LD2011. Marco Albanese. 22 ottobre Marco Albanese () CLI Workshop LD ottobre / 17

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del Shell

Manipolazioni elementari di flussi di testo strutturati

Corso di Laboratorio di Sistemi Operativi

Introduzione ai Sistemi Operativi. A cura di Massimo Scolaro Mob :

Interfaccia a Linea di Comando di Windows (Prompt dei comandi) Dott. Ing. Giuseppe Serano

L ambiente UNIX/Linux. I filtri Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Shell di Linux e Comandi Utente

I colori sui terminali Linux

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Lezione 3. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Cosa è un sistema operativo?

Cosa è un sistema operativo?

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Componenti di un sistema operativo

Introduzione alla programmazione

Fondamenti di Informatica

Manipolazione di testo

Laboratorio di Informatica Generale I UD Prima esercitazione

Linguistica Computazionale: esercitazioni

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Espressioni Regolari. Giancarlo Massidda

Corso di Sistemi Operativi Programmazione di sistema e concorrente

File System e Interprete Comandi

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Domenico De Guglielmo Vanessa Gardellin & Sara Lioba Volpi

Linux. Linux. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Paolo Zatelli Università di Trento 1 / 24

Storia di Unix Anni 1970

Corso facilitato di bash scripting By CasertaGLUG per informazioni contattare l autore

Transcript:

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 utente, ovvero interpreta i comandi degli utenti passandoli al kernel Unica interfaccia prima dell introduzione del server grafici In Unix le shell non sono parte del kernel È un normale processo utente Simile a DOS ma più potente Ambiente di programmazione nativo del SO Pgrms Shell Unix kernel Hw

3 Introduzione alle shell Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue immediatamente La scrittura di programmi (script) Memorizzazione dei comandi desiderati in un file Esecuzione dei comandi richiamando il file stesso La scrittura di uno script evita di Digitare ripetutamente complesse sequenze di comandi Automatizzare operazioni tediose e ripetitive e prone a errori banali

Elenco shell disponibili cat /etc/shells 4 Shell principali Shell Caratteristiche Bourne shell (sh) Shell originaria, molto usata nella programmazione sistemistica in Unix C-shell (csh) Korn shell (ksh) Tahoe C-shell (tcsh) Bourne again shell (bash) Shell di Berkeley, ottima per l'uso interattivo e per gli script non di Sistema Utilizza la sintassi del linguaggio C Bourne shell riscritta dall'at&t per assomigliare di più alla C-shell Progetto Tahoe, una C-shell migliorata (sovrainsieme) È compatibile ma estende csh e ksh Shell GNU standard; conforme allo standard POSIX; potente ma adatta ai principianti. La maggior parte degli script sh sono eseguibili in bash senza modifiche

5 Introduzione alle shell Shell diverse prevedono comandi diversi Spesso /bin/sh è un link alla shell in uso La shell di default può essere modificata tcsh chsh (change login shell) Versione in uso /bin/bash version echo $BASH_VERSION bash set myvar = ciao setenv MY_DIR /home/usr/ if ($str1==$str2) then else endif myvar= ciao export MY_VAR=/home/usr/ if test $str1=$str2 then else fi if [ $str1=$str2 ]; then else fi

6 Esecuzione di una shell Una shell può essere attivata Automaticamente al login In modo annidato dentro un'altra shell Come un programma normale /bin/tcsh, /bin/bash, Una shell termina digitando Il comando exit Il carattere di EOF (tipicamente ctrl-d) bash bash ps oppure ps -l exit exit Terminando la shell più interna si ritorna a quella esterna

7 Introduzione alla bash All avviamento (e alla terminazione), ogni shell esegue alcuni file di configurazione che contengono comandi necessari all inizializzazione (e alla terminazione) I file di avvio (start-up files) si differenziano in File di login La shell viene eseguita a seguito di autenticazione nel sistema (password) File non di login La shell viene eseguia mediante icona o menu di sistema

8 Introduzione alla bash Alla chiamata di shell con login si attivano Comandi globali /etc/profile Comandi utente ~/.bash_profile ~/.bash_login ~/.profile viene eseguito il primo file esistente Si ha un errore in caso di file errato o non leggibile

9 Introduzione alla bash Alla chiamata di shell senza login si attivano ~/.bashrc Tale file spesso si riferisce a ~/.bashrc_profile È anche il file normalmente eseguito nel login da remoto All uscita dal Sistema, ovvero per ogni logout, la shell esegue ~/.bash_logout

10 Espansione della shell Alcuni caratteri assumono un significato particolare all interno delle shell Gli script bash mettono a disposizione complessi meccanismi di sostituzione Dopo aver suddiviso la linea di comando in frammenti, la shell espande o risolve tali frammenti, i.e., vi applica diversi tipi di sostituzione con un ordine preciso Parentesi graffe, tilde, variabili e parametri, comandi, espressioni aritmetiche, etc. La sostituzione è complessa e avviene con un ordine ben preciso

11 Parentesi Le parentesi (), [], {} Servono per racchiudere variabili, operazioni aritmetiche, etc. In alcuni casi sono soggette a espansione automatica (brace expansion) echo: comando di stampa nome=gian echo $nomemarco echo {$nome}marco {Gian}marco echo ${nome}marco Gianmarco Variabile non esistente

12 Quoting Per quoting si intende l utilizzo degli Apici Identificano una stringa al cui interno non sono espanse le variabili Non possono essere annidati Le virgolette Identificano una stringa al cui interno le variabili sono espanse Possono essere annidate Il backslash \ Identifica il carattere di escape, ovvero elimina il significato speciale del carattere che lo segue

13 Esempi myvar="val ore" echo $myvar Val ore echo v = $myvar v = $myvar echo "v = $myvar" v = Val ore echo \$myvar $myvar echo virgoletta\ virgoletta Osservare l utilizzo delle variabili: assegnate senza $ utiizzate con il $ nessuna espansione " " espansione \ annulla il significato del "metacarattere" successivo

14 Cattura dello stdout di un comando Lo standard output di un comando può essere catturato mediante La sequenza di caratteri $( ) Gli apici inversi (back-quote) `` Alt-96 ` Alt-239 Alt-123 { Alt-125 } In particolare l output di un comando può essere memorizzato in una variabile d=$(date) echo $d Fri Nov 22 10:00:0 \ CET 2013 d=`date`... out=`cat file.txt` echo $out... listato file... out=`< file.txt` echo $out... listato file...

15 Esecuzione indiretta e diretta di un comando In una shell un comando può essere eseguito in modo Diretto cd /home ; ls La shell corrente esegue il comando; si sposta in /home; esegue ls; al termine la working directory è /home Indiretto (cd /home; ls) La shell esegue il comando in un sottoprocesso; esso si sposta in /home; esegue ls; al termine la working directory è il direttorio originario

16 History Ogni shell Ricorda l elenco degli ultimi comandi digitati In bash tale elenco è contenuto nel file.bash_history Memorizzato nella home dell utente Le shell permettono di fare riferimento a tale elenco Comando history Significato Mostra l elenco dei comandi eseguiti precedentemente!n Segue il comando numero n nel buffer!str ^str1^str2 Esegue l ultimo comando che inizia con str Sostituisce nell ultimo comando str1 con la str2

17 Aliasing Nelle shell è possibile definire nomi nuovi a comandi esistenti Il commando alias permette di definire tali nomi alias nome= stringa Definisce un nuovo alias per stringa La shell conserva un elenco di alias alias Fornisce l elenco degli alias attivi nella shell utilizzata Vecchi alias possono venire eliminati unalias nome Elimina l alias nome dalla shell No spazi intorno al simbolo di =

18 Esempi Alias esistenti alias alias egrep='egrep --color=auto' alias emacs='emacs -r -geometry 100x36 -fn 9x15 &' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias ls='ls --color=auto' alias mx='xdvi -mfmode ljfour:1200' alias ll= ls la Definizione di un nuovo alias unalias emacs unalias ll Cancellazione di un alias pre-esistente (l eventuale commando ritorna ad essere quello che era)