Breve introduzione alla Bourne Again Shell (bash) Parte II ● Francesco Rossi – –

Slides:



Advertisements
Presentazioni simili
Laboratorio 1: Usare Linux. File system Il file system è la componente del sistema operativo che si occupa della gestione di file e cartelle Con laccount.
Advertisements

Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
Per gli approfondimenti sui vari punti affrontati oggi verrete indirizzati alle pagine degli “Appunti di informatica libera” ospitati nel sito:
CORSO AUTOGESTITO DI GNU/LINUX Riprendi in mano il TUO sistema Riprendi in mano il TUO futuro BASH SCRIPTING.
1 Corso su Bash GL-COMO 03/ Shell Kernel Shell/ GUI Utente Perché?! ● Velocità/performance ● Richieste di software praticamente nulle ● Operazioni.
1 Alberto Pollastro, !#/bin/bash Novara, GalLUG - Gruppo Utenti Linux Galliate - #!/bin/bash Alberto Pollastro.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
INTRODUZIONE A MATLAB/OCTAVE MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
Gestione dei Software in GNU/Linux HackLab Catanzaro Installazione software da sorgente 8° Lezione GNU/Linux Base
1 Come cercare le fonti di informazione scientifica Operatori e wildcards a cura della Biblioteca di Agraria.
1 Amministrazione di base del sistema Cristina Moretto Corso Base LinuxTrent
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Programmare “per gioco” SCRATCH Lo programmerò. Programmerò solo per lei.
Basi di dati - Fondamenti
Corso di Elementi di Informatica
Ambienti di Programmazione per il Software di Base
“Vivere insieme” – Lezione6
A cura dell’Ing. Buttolo Marco
“Vivere insieme” – Lezione6
“Vivere insieme” – Lezione4
Corso «Nozioni di Informatica» – riepilogo di alcuni concetti visti
I/O redirection AND PIPES
Corso LAMP Linux Apache Mysql Php
VISUAL BASIC.
Cosa succede quando premi invio
La rappresentazione delle informazioni
Terza Lezione → Navigare nel file System → parte 2
Tutorato Elementi di Informatica 2013
Script Marco D. Santambrogio –
PROGRAMMAZIONE BASH - INTRODUZIONE
I PERMESSI IN LINUX.
I comandi.
MATRICI (ARRAY) IN MATLAB/OCTAVE
Ambienti di Programmazione per il Software di Base
APACHE2-PHP su Raspberry
LA GESTIONE DEI PACCHETTI
I FILES AD ACCESSO SEQUENZIALE
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Operazioni pianificate
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
IL SEGRETO DI UN ….
Consultare un corpus con AntConc
Introduzione a PowerPoint
Basi di dati - Fondamenti
Ambienti di Programmazione per il Software di Base
File System ed Input/Output
Sommario comandi su files e directories
Bastoncini per moltiplicare
Progetto 1 Input Creare una Funzione commentata che prenda come input:
WORD 28/02/2019 Informatica - WORD.
Excel 3 - le funzioni.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Metacaratteri Il carattere * indica un tipo ed un numero qualsiasi di caratteri Per copiare tutti i file che iniziano per “hemo” nella directory dir %
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Docente: Sabato Bufano
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Breve introduzione alla Bourne Again Shell (bash) Parte II ● Francesco Rossi – – – ● Per approfondire: – –

Ancora sulle pipes ● Un programma testuale prende come input del testo, lo trasforma e mostra il risultato della trasformazione. programma sort trucco bash CTRL+D bash trucco

Ancora sulle pipes ● La pipeline è un modo per far comunicare i programmi l'uno con l'altro. ● Ogni programma infatti riceve l'input di testo dal programma precedente nella pipeline e invia il proprio output come input del programma successivo. rev sort trucco bash CTRL+D occurt hsab occurt

Ancora sulle pipes ● Ai capi della pipeline di solito ci sono l'input da tastiera e l'output su schermo. ● Si può ridirezionare una pipeline in modo che i dati in ingresso siano presi da un file e/o vengano scritti, in uscita su un file.

Pipes con ingresso da file ● Create una lista di nomi in un file chiamato lista.txt, includendo dei duplicati. ● Vediamo come creare una pipe che prende le righe di ingresso dal file lista.txt: ∘ cat lista.txt | sort | uniq ● Viene creata una lista ordinata in ordine alfabetico con eliminazione di doppioni (uniq)

Parentesi: Jolly ● Una cosa interessante delle shell sono la lettura di REGEXP e wildcards (jolly) ● Tutte le volte che bash vede il carattere '*' in un comando, lo sostituisce con tutti i nomi di files possibili. ● Ad esempio a *.doc bash sostituisce tutti i file che finiscono con.doc (NB e che quindi vanno convertiti in un formato aperto). ● A slide* bash sostituisce tutti i nomi dei file che iniziano per 'slide'.

Parentesi: Jolly ● Di jolly se ne hanno a volontà. ● rm * # cancella tutti i file (no cartelle) ● rm *.jpg # cancella tutte le immagini jpg ● rm *cavolata* # cancella tutti i file che contengono 'cavolata' nel loro nome ● rm diploma* # cancella tutti i file che iniziano per diploma ● cat *interessante* # scrive tutti i file che contengono interessante nel nome ● ls -l *.txt # restituisce informazioni su tutti i file *.txt ● cp *.txt /home/redsh # copia tutti i file di.txt nella mia home

● Vediamo come creare una pipe che scrive l'output di un programma su un file ∘ cal > calendario.txt ∘ date >> calendario.txt ∘ cat calendario.txt #per visualizzare ● L'output di cal (calendario) viene scritto nel file calendario.txt, che viene innanzitutto svuotato. ● Nella seconda riga l'output di date, che mostra informazioni sull'ora corrente viene aggiunto come riga di testo al file già non-vuoto calendario.txt Pipes che scrivono su files

● Supponiamo di avere due liste separate listaA.txt, listaB.txt e di volerle unire. ● listaB.txt ha i nomi scritti al contrario e noi li vogliamo normali nella lista unione. ● Procediamo come segue: ∘ cat listaA.txt > lista.txt ∘ cat listaB.txt | rev >> lista.txt ∘ cat lista.txt | sort | uniq > listaFINE.txt Ancora sulle pipes

Un censuratore automatico ● sed (stream editor) è un programma che modifica le righe di testo che gli vengono messe da tastiera. ● un comando, tra i tanti utili di sed, è il comando per sostituire: ∘ sed -e 's/paroladacensurare/paroladasostit/g' ● per censurare (perchè altrimenti ci fanno causa per uso illecito di marchi registrati) il file articolo.txt: ● cat articolo.txt | sed -e 's/windows/microsoft (r)windows (r)/g' > articolo1.txt

Il bello della shell ● Se abbiamo delle serie di comandi che digitiamo spesso, possiamo salvare i comandi in un file di testo e dire alla shell di interpretare i comandi da quel file. ● Per farlo possiamo usare qualsiasi editor di testo come ad esempio kwrite o nano. ● Per motivi di riconoscimento è bene iniziare i files che contengono scripts (più-che-liste di comandi) con la parola magica (vedere man magic):  #!/bin/bash

Un primo script ● Ad esempio supponiamo che vi serva un programmino che vi apre, in un colpo solo, konqueror, kmail, ksudoku e kopete in un colpo solo. ● Basterà scrivere in kwrite (le & servono a dire di non aspettare che konqueror esca prima di avviare kmail, provate a toglierle): #!/bin/bash konqueror & kmail & ksudoku & kopete &

● Salvato il file nella directory corrente (è comodo sul desktop) potete avviarlo renderlo eseguibile* con il comando : chmod +x nomefile #da i permessi di esecuzione a tutti ● e poi lo avviate* con source nomefile #non richiede il comando precedente ● oppure con./nomefile Il bello della shell * Potete farlo anche con Konqueror, vediamo chi fa prima

Programmi di esempio ● Scaricate* con wget (o con Konqueror, vediamo chi fa prima) ● ● cd && wget \ ● ● ed estraete l'archivio nella vostra home con*: ● tar -xf esempi.tar.gz ● cd esempi * Potete farlo anche con Konqueror, vediamo chi fa prima

Continua.. ● Adesso sapete tutto per scoprire cosa c'è nella cartella esempi, la lezione continua lì. ● Consiglio di inserire, prima di tutto, il comando ● source apri_in_kate ● che apre tutti gli esempi nel comodissimo editor kate (che integra una konsole, tra l'altro)