1 © 2005-2007 F. Pedullà, M. VerolaAA 2008-2009 Comandi Esterni LSO1 Modulo 2 - Appendice 2 Breve rassegna di comandi (esterni) in ambiente Linux Laboratorio.

Slides:



Advertisements
Presentazioni simili
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Advertisements

Shell Scripting. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure contenuti.
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.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
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 - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script 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.
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Shell dei comandi – ! Bash &/o Tcsh !
Unix (Linux-Mac OS) Alcuni comandi. cd change working directory cd [DIRECTORY] cd entra nella directory specificata. Se non è fornita alcuna directory.
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
Basi di Unix: introduzione Kernel il fulcro del sistema. Comunica con l’hardware (processore, memoria, disco fisso) Shell interfaccia tra l’utente e il.
Contare e ordinare files di testo Per contare i caratteri, le righe e le parole in un file di testo wc (word count) % wc human_proteins.fa Conta le parole.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
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:
"Play Ogg" multimedialità libera con GNU/Linux... presentato da Stefano Pardini al Linux Day 2008 per ACROS ACROS.
CORSO AUTOGESTITO DI GNU/LINUX Riprendi in mano il TUO sistema Riprendi in mano il TUO futuro BASH SCRIPTING.
1 © F. Pedullà, M. VerolaAA Programmazione in linguaggio script LSO1 Modulo 3: Programmazione in linguaggio script Laboratorio di Sistemi.
Breve introduzione alla Bourne Again Shell (bash) Parte II ● Francesco Rossi – –
1 © F. Pedullà, M. VerolaAA La Shell LSO1 Modulo 2 La shell Laboratorio di Sistemi Operativi I Anno Accademico Modulo 2 La.
1 © F. Pedullà, M. VerolaAA La shell LSO1 Modulo 2: La shell Laboratorio di Sistemi Operativi I Anno Accademico Francesco.
1 © F. Pedullà, M. VerolaAA Espressioni Regolari LSO1 Modulo 2 - Sezione B Espressioni Regolari Laboratorio di Sistemi Operativi I.
Corso gratuito di Linux. Linux User Group Mantova
1 © F. Pedullà, M. VerolaAA La famiglia di system call exec LSO1 Modulo 6 La famiglia di system call exec Laboratorio di Sistemi Operativi.
1 © F. Pedullà, M. VerolaAA vi e sed LSO1 Modulo 2 - Appendice 3 L'editor vi e cenni su sed Laboratorio di Sistemi Operativi I Anno.
1 Alberto Pollastro, !#/bin/bash Novara, GalLUG - Gruppo Utenti Linux Galliate - #!/bin/bash Alberto Pollastro.
1 © F. Pedullà, M. VerolaAA Programmazione in linguaggio script LSO1 Modulo 2 – Appendice 4 Programmazione in linguaggio script Laboratorio.
1 © F. Pedullà, M. VerolaAA Introduzione alle system call LSO1 Modulo 4: Sezione A Introduzione alle system call Laboratorio di Sistemi.
1 © F. Pedullà, M. VerolaAA Pipe e FIFO LSO1 Modulo 9 Pipe e FIFO Laboratorio di Sistemi Operativi I Anno Accademico Francesco.
Gestione dei Software in GNU/Linux HackLab Catanzaro Installazione software da sorgente 8° Lezione GNU/Linux Base
1 © 2007 Renzo Davoli, Alberto Montresor, Mauro Morsiani Laboratorio di Sistemi Operativi Anno Accademico AMIKaya: criteri di valutazione del.
1 Amministrazione di base del sistema Cristina Moretto Corso Base LinuxTrent
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Gestione della memoria
Ambienti di Programmazione per il Software di Base
A cura dell’Ing. Buttolo Marco
La classe String Una stringa è una sequenza di caratteri
I/O redirection AND PIPES
Corso LAMP Linux Apache Mysql Php
Cosa succede quando premi invio
(i diritti e le libertà)
Terza Lezione → Navigare nel file System → parte 2
Tutorato Elementi di Informatica 2013
Script Marco D. Santambrogio –
PROGRAMMAZIONE BASH - INTRODUZIONE
Seconda lezione → Navigare nel File System
La famiglia di system call exec Laboratorio di Sistemi Operativi I
Ambienti di Programmazione per il Software di Base
APACHE2-PHP su Raspberry
Modulo 2 - Sezione A Programmazione in linguaggio script
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
2018/9/ /9/11 USER ENVIRONMENT 1 1.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
Ambienti di Programmazione per il Software di Base
File System ed Input/Output
Sommario comandi su files e directories
WORD 28/02/2019 Informatica - WORD.
Programmazione e Laboratorio di Programmazione
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
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Transcript della presentazione:

1 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Modulo 2 - Appendice 2 Breve rassegna di comandi (esterni) in ambiente Linux Laboratorio di Sistemi Operativi I Anno Accademico Modulo 2 - Appendice 2 Breve rassegna di comandi (esterni) in ambiente Linux Laboratorio di Sistemi Operativi I Anno Accademico Copyright © Francesco Pedullà, Massimo Verola Copyright © Renzo Davoli, Alberto Montresor (Universitá di Bologna) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found at:

2 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi: cat - tac - rev Comando cat (concatenate): Stampa i file su stdout. Utilizzato con redirection, serve a concatenare file: cat file.1 file.2 file.3 > file.123 Comando tac (inverso di cat): Stampa le linee dei file in ordine inverso, partendo dall’ultima linea Comando rev (reverse): Stampa (invertite) le linee dei file, partendo dalla prima linea

3 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comando: find (I) Comando: find pathlist expression L’utility find analizza ricorsivamente i path contenuti in pathlist e applica expression ad ogni file Sintassi di expression: -name pattern True se il nome del file fa matching con pattern, che può includere i metacaratteri di shell: * [ ] ? -perm permission True se permission corrisponde ai permessi del file -print stampa il pathname del file e ritorna true

4 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comando: find (II) Sintassi di expression: -ls Stampa gli attributi del file e ritorna true -user username, -uid userId True se il possessore del file è username / userId -group groupname, -gid groupId True se il gruppo del file è groupname / groupId -atime | -mtime | -ctime -count True se il file è stato “acceduto | modificato | modificato oppure cambiati gli attributi” negli ultimi count giorni

5 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comando: find (III) Sintassi di expression: -type b | c | d | p | f | l | s True se il file è di tipo a blocchi | a caratteri | una directory | un named pipe | un file regolare | un link | un socket -exec command True se l’exit status di command è 0. command deve essere terminato da un “escaped ;” ( \; ). Se si specifica il simbolo {} come argomento di command, esso viene sostituito con il pathname del file corrente -not, !, -a, -and, -o, -or Operatori logici (not, and, or)

6 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comando find : esempi find. –name “*.c” –print Stampa il nome dei file sorgente C nella directory corrente e in tutte le sottodirectory find / -mtime -14 –ls Elenca tutti i file che sono stati modificati negli ultimi 14 giorni find. –name “*.bak” –ls –exec rm {} \; Cancella tutti i file che hanno estensione.bak

7 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comando: xargs Comando: xargs command xargs legge una lista di argomenti dallo standard input, delimitati da blank oppure da newline esegue command passandogli la suddetta lista di argomenti Esempio: concatena tutti i file *.c % find. –name “*.c” –print./a.c./b.c % find. –name “*.c” –print | xargs cat > prova

8 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esempi: find e xargs vi $(find. –name “*.java” | xargs grep –l “Alfa”) Utilizza vi per visualizzare tutti i file nella directory corrente e nelle sottodirectory che hanno estensione java e contengono la parola “Alfa”. find ~ \( -name “*~” –o “#*#” \) -print | \ xargs --no-run-if-empty rm –vf Rimuove tutti i file di backup o temporanei di emacs dalla home directory (ricorsivamente) find. –type d –not –perm ug=w | xargs chmod ug+w Aggiunge il diritto di scrittura a tutti le directory nella directory corrente e nel suo sottoalbero

9 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esercizi E' possibile eseguire la funzione del primo esempio del lucido precedente senza usare il comando xargs? E' possibile eseguire la funzione del secondo esempio del lucido precedente senza usare il comando find ? E' possibile eseguire la funzione del terzo script del lucido precedente senza usare il comando find ?

10 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Spazi e caratteri speciali find ~ \( -name “*~” –o “#*#” \) –print0 | \ xargs --no-run-if-empty --null rm –vf Attenzione agli spazi e ai caratteri speciali: xargs separa i nomi dei file tramite spazi o new line il file relazione 1.txt viene trattato come due file l’opzione -print0 di find stampa stringhe null-terminated l’opzione --null di xargs prende stringhe null-terminated questa versione gestisce correttamente qualunque tipo di carattere speciale (come “ )

11 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esempi o #!/bin/bash # Move (verbose) all files in current directory # to directory specified on command line. if [ -z "$1" ]; then echo "Usage: `basename $0` directory-to-copy-to" exit 65 fi ls. | xargs -i -t mv {} $1 # This is the exact equivalent of mv * $1 # unless any of the filenames has "whitespace" characters. exit 0

12 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per la gestione del testo Comando: head [-n] file Lista le prime n linee di un file (10 default) Comando: tail [-n] file Lista le ultime n linee di un file (10 default) Comando: cut Un tool per estrarre campi dai file. Nonostante esistano altri tool (più sofisticati), cut è utile per la sua semplicità. Due opzioni particolarmente importanti: -d delimiter : specifica il carattere di delimitazione (tab default) -f fields : specifica quali campi stampare

13 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per la gestione del testo Comandi: expand, unexpand L’utility expand converte i tab in spazi. L’utility unexpand converte gli spazi in tab. Comando: uniq Questa utility rimuove linee duplicate (consecutive) dallo standard input. Viene usato spesso nei pipe con sort. Comando: sort Ordina lo standard input linea per linea. E’ in grado di eseguire ordinamenti lessicografici sulle linee, o di gestire l’ordinamento dei vari campi. Ad esempio: l’opzione –g ordina in modo numerico secondo il primo campo dell’input

14 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esempi o % du –s /home/* /home/penguin 500 /home/black 2345 /home/white /home/gray % du –s /home/* | sort –gr /home/gray /home/penguin 2345 /home/white 500 /home/black

15 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esempio (cont.) % du –s /home/* | sort –gr | head /home/white /home/penguin % du –s /home/* | sort –gr | head –2 | cut –f2 /home/white /home/penguin % for homedir in $(du –s /home/* | sort –gr | \ head –2 | cut –f2); do echo $(basename $homedir) ; \ done white penguin

16 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per la gestione del testo Comando: wc (word count) Conta linee, parole, caratteri -l | -w | -c conta solo le linee | le parole | i caratteri Certi comandi includono le funzionalità di wc come opzioni:... | grep foo | wc –l è equivalente a... | grep --count foo Comando: tr Utility per la conversione di caratteri, seguendo un insieme di regole definite dall’utente: Esempio: tr A-Z a-z < filename Stampa filename trasformando tutti i caratteri in minuscoli Esempio: tr –d 0-9 < filename Stampa filename eliminando tutte i caratteri numerici

17 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esempio: filenames-to- lowercase #! /bin/bash # Changes every filename in working directory # to all lowercase. for filename in * ; do fname=`basename $filename` n=`echo $fname | tr A-Z a-z` # Change name to lowercase. if [ "$fname" != "$n" ] ; then # Rename only files not lowercase. mv “$fname” “$n” fi done exit 0

18 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Esempio: dos2unix !/bin/bash # dos2unix.sh: DOS to UNIX text file converter. E_WRONGARGS=65 if [ -z "$1" –a –z “$2”]; then echo "Usage: `basename $0` file-source file- dest" exit $E_WRONGARGS fi CR='\015' # Lines in DOS text files end in a CR- LF. tr -d $CR $2 # Delete CR and write to $2 exit 0

19 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per il confronto di file Comando: cmp file1 file2 Ritorna true (exit status 0) se due file sono uguali, ritorna false (exit status != 0) altrimenti Stampa la prima linea con differenze Con l’opzione –s non stampa nulla (utile per script) Comando: diff file1 file2 Ritorna true (exit status 0) se due file sono uguali, ritorna false (exit status != 0) altrimenti Stampa un elenco di differenze tra i due file (linee aggiunte, linee modificate, linee cancellate) Comando: diff dir1 dir2 Confronta due directory e mostra le differenze (file presenti in una sola delle due)

20 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per la gestione di file Comando: locate, slocate, updatedb I comandi locate e slocate (secure version di locate) cercano file utilizzando un database apposito. Il database riflette il contenuto del file system, ma va aggiornato con updatedb (solo root) Comando: file file Identifica il tipo di file a partire dal suo magic number (quando disponibile). L’elenco dei magic number si trova in /usr/share/magic (o altre posizioni, consultate info file) Esempio: % file prova.sh prova.sh: Bourne-Again shell script text executable

21 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per la gestione dei file Comando: basename file rimuove l’informazione del path da un pathname Comando: dirname file rimuove l’informazione del nome di file da un pathname Nota: sono funzioni di stringa, non agiscono su un file effettivo Esempi: % basename /home/penguin/index.html index.html % dirname /home/penguin/index.html /home/penguin echo "Usage: `basename $0` arg1 arg2... argn"

22 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Archiviazione e compressione Compressione: Comandi: compress, uncompress Comandi: gzip, gunzip Comandi: bzip2, bunzip2 Comprimono e decomprimono file. compress è ormai in disuso (originario dei primi sistemi Unix); bzip2 è meno diffuso (almeno per ora), ma è in alcuni casi più efficiente di gzip Archivazione: tar Archivazione: tar zcvf archive-name {file}* z=comprimi, c=crea, v=verbose, f=su file Estrazione: tar zxvf archive-name z=espandi, x=estrai, v=verbose, f=da file

23 © F. Pedullà, M. VerolaAA Comandi Esterni LSO1 Comandi per la gestione del tempo Comando: touch file utility per modificare il tempo di accesso/modifica di un file, portandolo ad un tempo specificato ( touch –d ) può essere utilizzata anche per creare un nuovo file creare file vuoti può essere utile per memorizzare solo la data Comando: date Stampa informazioni sulla data corrente, in vari formati Comando: time command esegue il comando command e stampa una serie di statistiche sul tempo impiegato Esempio: time find / -name “*.bak” –print