biologia molecolare laboratorio di bioinformatica...
TRANSCRIPT
Biologia molecolareBiologia molecolare
Università degli Studi di Verona
Dipartimento di Biotecnologie
Laboratorio di Bioinformatica IILaboratorio di Bioinformatica II
Ottobre 2014 - Sergio Marin Vargas
Breve guida Linux
Caratteristiche di LinuxCaratteristiche di Linux
Linux possiede molte caratteristiche che ne fanno
Nel 1991, uno studente finlandese, Linus
Torvalds, per la sua tesi di laurea scrive
un ''mini-unix per PC'', basandosi su
software GNU, e nasce così LINUX.
Linux possiede molte caratteristiche che ne fanno un ottimo sistema operativo:
�robusto e affidabile�ampio supporto di processori e periferiche�networking avanzato�strumenti di sviluppo e debugging�interfaccia grafica�ampia disponibilità di software�gratuito e open source (licenza GNU)
DistribuzioniDistribuzioni LinuxLinux
� Principali distribuzioni◦ Debian, Ubuntu◦ RedHat, Fedora◦ Novell SuSe, Open Suse
MandrivaNovell SuSe, Open Suse◦ Mandriva◦ Slackware
� Altre distribuzioni◦ 1000+
UbuntuUbuntuUbuntu è una espressione in lingua bantu (Africa sub-Sahariana) che indica "benevolenza verso il prossimo".Indica anche una regola di vita, basata sulla compassionee il rispetto altrui.
http://www.ubuntu.com/
Ubuntu deriva da Debian� Ubuntu deriva da Debian� Ubuntu sarà sempre◦ “free to download” ◦ “free to use” and ◦ “free to distribute to others”
� Desktop Edition� Server Edition� X86-32, x86-64, and Mac� Ubuntu, Kubuntu, Xubuntu, …
• Opera su diversi tipi file:
– normaliArchivi di dati, testi, comandi, programmi sorgente, programmi eseguibili, immagini, ecc.
directory
Il Il filesystemfilesystem di Linuxdi Linux
– directory Entità che raggrupa diversi files al suo interno.
– deviceDispositivi hardware collegati, vengono visti come file speciali (stampanti, dischi esterni, chiavette, ecc).
– linkRiferimento ad un altro file o directory. Le operazioni sul link si riflettono sull’oggetto collegato.
La La vostravostra home home dentrodentro ilil filesystemfilesystem
� Ora voi sietenella vostra home
� È una cartella in cui potetescrivere i vostrifile, fare cartellee mettere in ORDINE le cose.
• Un file è individuabile attraverso il nome e lesottodirectory del path (percorso) dalla root /
• Le “path”possono essere relative (rispetto alladirectory di lavoro) o assolute (iniziano con /)
Esempio: path assoluta e path relativa (sul file
Struttura logica: Struttura logica: pathnamespathnames
Esempio: path assoluta e path relativa (sul file “file.txt” della cartella “/home/utente”)
o Path assoluta (Posizionati su una qualsiasi directory)/home/utente/file.txt (path assoluta)
./file.txt (path assoluta se sono su /home/utente)
o Path relativa (Posizionati su “/home”)utente/file.txt
o Path relativa (Posizionati su “/home/utente”)file.txt
La La ShellShell
• In Linux si interagisce con il sistema attraverso un programmachiamato shell il quale viene invocato automaticamente alLogin.
• Esistono diverse shell (sh, bash, tcsh, …)
o la maggior parte dei comandi ha la stessa sintassi nellediverse shell, la più utilizzata resta la “sh”diverse shell, la più utilizzata resta la “sh”
o la scelta di una shell è essenzialmente questione di gusti• In Linux i comandi sono dati sotto la shell che li interpreta,
esegue e scrive (se necessario) il risultato sul terminale.• L’attenzione della shell è espressa dal prompt , carattere che
può essere deciso dall’utente.• Esempi di prompt :
>%[pccmslb]:~>utente@server:~$
Il Il terminaleterminale
• I vostri comandi sono interpretati dalla shell,per interagire con questa si usa il terminale,
un ambiente dove si possono scrivere i
comandi e leggere le risposte.
LoginLogin
• Una volta partito il sistema l’utente esegue laprocedura di Login.
• Se si è installato un ambiente grafico di desktop,la procedura è gestita dall’ambiente stesso.
• Il Login richiede sempre uno username e una• Il Login richiede sempre uno username e unapassword.
• All’utente viene assegnato una zona di discoidentificata come home directory (/home/utente/)
• Alla fine della procedura di Login l’utente “sitrova” dentro il terminale, in una particolare shell,posizionato nella sua home directory cioè in unazona di disco in cui ha tutti i privilegi per crearenuovi files o directories.
PerchePerche un un buonbuon informaticoinformatico((biotecnologobiotecnologo) ) devedeve saperesapereutilizzareutilizzare linuxlinux dada terminaleterminale
� Perché molti programmi sono “artigianali” e si controllano in modo meno raffinatoe si controllano in modo meno raffinato(pochi soldi per lo sviluppo…) .
� Perchè va bene per gli automatismi (piccoliprogrammini, come ad esempio per blast, phyton, ma molti, molti altri programmi) .
Comandi principali: manComandi principali: man
Ovviamente per illustrare il funzionamento del comando si può fare anche:
In Linux il comando di help non si chiama help !Per avere informazioni su un qualsiasi comando si usa man che mostra l’uso del comando e delle sue opzioni in modo formattato.
Ovviamente per illustrare il funzionamento del comando man stesso, si può fare anche:
man man
Comandi principali: Comandi principali: lsls• Permette di elencare il contenuto (in files) di una
cartella.
Opzioni:
• -l (informazioni estese)
• -a (visualizza file nascosti, cioè inizianti con il .)
• -R (visualizza sottocartelle)
• -t (ordina la lista di file secondo l’ora dell’ultima modifica)• -t (ordina la lista di file secondo l’ora dell’ultima modifica)
• Esempio:
• Carattere jolly “*”:
$ ls -laR
$ ls –l *.py
Comandi principali: Comandi principali: lessless, more e , more e catcat• Permette di visualizzare un file (di testo) con
la gestione della paginazione
• Permette di visualizzare un file (di testo) con solo la gestione dell’avvanzamento di pagina
less nomefile
solo la gestione dell’avvanzamento di pagina
• Permette di visualizzare un file (di testo) senza la gestione della paginazione
more nomefile
cat nomefile
Comandi principali: cd e Comandi principali: cd e pwdpwd• Permette di cambiare la cartella corrente
Opzioni:
• cartella corrente: .
• cartella padre: ..
• home directory: ~ (oppure lasciare in bianco)
cd altra_cartella (relativo)
cd /path/altra_cartella (assoluto)
• home directory: ~ (oppure lasciare in bianco)
• Esempio:
• Visualizzare il path assoluto della cartellacorrente
$ cd .. (va alla cartella sup.)
$ cd ./utente/cartella (se esiste)
$ cd (va alla home)
pwd
I permessi nei file linuxI permessi nei file linux
• La prima lettera indica se è una directory (d) , un link simbolico (l) o un file (-) mentre le restati 9 ( a gruppi di 3 ) definiscono i permessi per proprietario, gruppo e altri utenti.
• I tipi di permesso possono essere:• lettura (r)• scrittura (w)
Permessi
• scrittura (w)• esecuzione (x)
• Per cambiare il proprietario di un file si usa il comando chown, è necessario essere proprietario del file o “super user” (sudo).
• Per cambiare i permessi di un file si usa il comando chmod, è necessario essere proprietario del file o “super user” (sudo).
$ chmod 760 nomefile
$ chmod 666 nomefile
$ chmod 777 nomefile
$ chmod +r nomefile
$ chmod -w nomefile
$ chmod -x nomefile
$ chown propietario.gruppo nomefile
Comandi principali: Comandi principali: mkdirmkdir e e rmdirrmdir
• Creare nuove cartelle
• Esempio:
mkdir nome_cartella
• Esempio:
• Eliminare una cartella (solo se vuota)
$ mkdir nuovacartella1 nuovacartella2
rmdir nome_cartella
Comandi principali: Comandi principali: cpcp, , mvmv e e rmrm
• Copiare file e cartelle
• Spostare o rinominare file e cartelle
cp [opzioni…] sorgente… destinazione
mv [opzioni…] sorgente… destinazione
• Eliminare file (opzioni: -i per modalità interattiva, -r
ricorsiva, elimina le cartelle senza passare per il cestino!!!)
• Eliminare cartelle (Cancella la cartella e tutto il suo
contenuto. Attenzione ad utilizzarla, cancella tutto !!!)
rm [opzioni…] file
rm –r nome_cartella
La pipeline: |La pipeline: |• Permette di passare l’output di un comando
direttamente sull’input del comando
successivo in un’unica riga di comando
Esempi:
ls -l | less
ls -l | morels -l | more
cat nomefile | less
less nomefile
cat nomefile | more
more nomefile
Comandi principali: Comandi principali: grepgrep• Ricerca in uno o più file di testo le linee che
corrispondono alla espressione indicata.
• Opzioni:• -i Ignora le differenze tra lettere maiuscole e minuscole.• -n Precede ogni linea dei risultati con il numero di linea all'interno del file
(partendo da 1).• -l Indica solo i nomi dei file in cui è stata trovata almeno una corrispondenza• -l Indica solo i nomi dei file in cui è stata trovata almeno una corrispondenza
(ciascun file è elencato una sola volta, indipendentemente dal numero dicorrispondenze in esso trovate).
• -v Nega i modelli specificati, producendo un elenco delle linee che nonsoddisfano alcun modello.
• -c Produce per ciascun file solo il conteggio del numero di linee checorrispondono.
grep nomefile espressione
ls –l | grep 2014
ls –l | grep rwx | less
Eseguire programmiEseguire programmi• In windows gli eseguibile sono “.exe”, in linux un eseguibile si riconosce perche il
terzo attributo del file è “x”, questi normalmente vengono colorati col colore verde:
• Per che un programma possa essere eseguito, questo deve trovarsi in una delle
$ ls --color=always
$ ls -l
• Per che un programma possa essere eseguito, questo deve trovarsi in una dellecartelle indicate dalla variabile di ambiente PATH, oppure deve essere lanciato con la path assoluta:
$ echo $PATH (Per visualizzare i percorsi eseguibili)
Se il programma si trova in una delle cartelle di $PATH:
$ nomeprogramma
Se il programma si trova nella cartella corrente e non nella $PATH:
$ ./nomeprogramma
Se il programma non si trova ne nella cartella corrente ne nella $PATH:
$ /path_assoluta/nomeprogramma
Operare con i processiOperare con i processi• Un processo è un programma in esecuzione
(front-end o background).
• Visualizzare informazioni sui processi
ps [opzioni…] [PID]
Esempi:
ps –ef | less
ps –ef | grep PID
• Eliminare un processo
• Monitorare l’utilizzo delle risorse da parte dei
processi
ps –ef | grep PID
kill [opzioni…] PID
Esempio: kill -9 2435
top [opzioni]
Esempio: top
Comandi principali: Comandi principali: dudu e dfe df
• du: visualizza la dimensione della cartella
corrente, mostrando il valore delle
sottocartelle e alla fine il totale
• Esempio (opzione -h � human format):
$ du
• Esempio (opzione -h � human format):
• df: visualizza i “file system” (dischi)
mostrando lo spazio totale, quello utilizzato e
quello ancora disponibile.
$ du -h
$ df -h
Creare e modificare files di testoCreare e modificare files di testo
� L’editor di base a riga di comando, in tutte ledistribuzione di linux è “vi” o nell’ultima versionemigliorata “vim”.
� L’editor vim dispone di numerosi comandi, essi siinvocano premendo la sequenza di tasti
vim nome-file
invocano premendo la sequenza di tasticorrispondente.◦ Premendo i tasti in vim, infatti, i caratteri corrispondenti
non vengono inseriti nel testo, ma vengono interpretaticome comandi, a meno che non si sia entrati nel modoinserimento con l’opportuna sequenza di tasti
� Per uscire da una certa modalità si preme il tastoESC.
� I commandi in vim sono “case sensitive”.
Comandi dentro vim (Comandi dentro vim (11))
Salva il testo corrente:w
Esce e salva:x
Esce da vim:q
Esce senza salvare:q!
Elimina una parolade,dw
Elimina una riga (3D � Elimina 3 righe)dd, D
Esce da una modalità (es. inserimento testo)ESC
Entra in modalità inserimento testo (insert)i
Entra in modalità sovrascrittura testo (replace)R
Comandi dentro vim (2)Comandi dentro vim (2)
Incollap
Copia una parolaye,yw
Undou
Copia una linea (5Y � Copia 5 linee)yy, Y
:s/old/new � Sostituisce old con new
:1,$s/old/new/g � Sostituisce tutte le occorrenze
:s
Ripete l’ultima ricercan
Entra in modalità inserimento comandi:
Cerca la parola “xxx”:/xxx
Modalità inserimento, aggiungendo una rigaO, o
Collegamento locale e remotoCollegamento locale e remoto
• Il collegamento locale avviene tramite il terminale.
• Il collegamento remoto avviene tramite il protocollo “ssh”, con ilcomando ssh da linux o tramite programmi come “putty” dawindows. Il ssh è a tutti gli effetti un “terminale remoto”.
• Un server viene riconosciuto dal nome del server (se inserito nelDNS) oppure dal suo indirizzo IP.
• Per copiare files tra server e client si utilizza il protocollo “scp”, mediante il comando scp oppure con programmi come “winscp”.
Servers del laboratorio di Servers del laboratorio di Bioinformatica ApplicataBioinformatica Applicata• L’elenco aggiornato dei server si trova in questo link:
http://molsim.sci.univr.it/bioinfo/web/index.php?option=com_content&view=article&id=50&Itemid=80
Oppure su (Cliccando su “STUDENTS / Servers”) in:
http://molsim.sci.univr.it/abg
• BiotecnologieBox (2 GB - 2 core)o IP address: 157.27.253.104o IP address: 157.27.253.104o User: studenti
• Bioinfo2 (4 GB - 4 core)o IP address: 157.27.253.93o User: studenti
• Bioinfo3 (4 GB - 4 core)o IP address: 157.27.253.95o User: studenti
• Francy (16 GB - 8 core)o IP address: 157.27.253.186o User: studenti
• Maddalena (6 GB - 4 core)o IP address: 157.27.253.102o User: studenti
• Molsim (6 GB - 4 core)o IP address: 157.27.253.38o User: NO user studenti
Comando ssh (secure shell)Comando ssh (secure shell)
• Il comando ssh ha la seguente sintassi:
• Esempio 1, collegamento al server “molsim.sci.univr.it” con l’utente sergio
ssh [opzioni] nomeutente@nomeserver [comando]
• Esempio 2, collegamento al server “157.27.253.93” (bioinfo2) con l’utente “studenti”.
• Esempio 3, collegamento al server “157.27.253.95” (bioinfo3) con l’utente “studenti”, eseguendo il comando “ls -l”
.
ssh [email protected] ls -l
Comando scp (secure copy)Comando scp (secure copy)
• Il comando scp ha la seguente sintassi:
• Esempio copia da locale a remoto, copia del file “file.txt” dalcomputer locale al server “157.27.253.93” con l’utente “studenti” nella cartella remota /home/studenti con lo stesso nome:
scp FileSorgente nomeUtente@host:directory/FileDestinazione
scp nomeUtente@host:directory/FileSorgente FileDestinazione
nella cartella remota /home/studenti con lo stesso nome:
• Esempio copia da remoto a locale, copia del file “file.txt” dalcomputer remoto “157.27.253.93” con l’utente “studenti” che sitrova nella cartella /home/studenti al computer locale nellacartella “/varie” ma col nome “nuovofile.txt”:
scp file.txt [email protected]:/home/studenti/file.txt
scp [email protected]:/home/studenti/file.txt /varie/nuovofile.txt
Grazie per la vostra per la vostra attenzione