Comandos e Programação Básica em Unix, Linux
e Mac OS
O *nix de A a Z: de apropos a zip
{marco.mangan, marcelo.cohen}@pucrs.br
Janeiro de 2010
Nota sobre direitos autorais
I Os autores permitem a utilização deste material desde que
mantido em sua totalidade. A utilização de parte do material
não é permitida.
I A versão deste documento está indicada abaixo:
$Id: pucrs-facin-linux.lyx 284 2009-12-08 01:23:17Z masmangan $
I A versão mais atual deste documento está em:
http://www.inf.pucrs.br/~mangan/extensao/linux
Sobre este curso
I Curso básico de Linux, Unix e Mac OS (20 horas-aula):
I histórico dos *nix, visão geral;
I comandos no interpretador bash;
I resolvendo tarefas complicadas com comandos simples;
I processamento de textos no bash: transformação de textos,
extração de dados.
Proposta
Público: desenvolvedores, pesquisadores, alunos de graduação.
Objetivos: apresentar os sistemas *nix, aumentar a capacidade
de resolver problemas, otimizar a execução de tarefas
cotidianas.
Abordagem: explorar os comandos mais comuns, incentivar a
autonomia e o auto-aprendizado durante e após o
curso.
Cronograma
Primeiro dia, segundo dia: histórico, conceitos e comandos.
Terceiro dia, quarto dia: programação e automação de tarefas.
Quinto dia: exemplos de projetos de programação e automação de
tarefas.
Em média, 5 minutos para cada comando.
Breve histórico do *nix
I 1960
I AT&T UNIX
I 1970
I Berkeley Software Distribution (BSD)
I 1980
I Minix, FreeBSD, SunOS, AIX, POSIX
I 1990
I Linux, Mac OS
Personalidades
I Ken Thompson (EUA)
I Primeiro Unix
I Richard Stallman (EUA)
I GNU/Free Software Foundation
I Armando Stettner (EUA)
I Open Software Foundation
I Linus Torvalds (Finlândia)
I Linux, núcleo do Linux
I Steve Jobs (EUA)
I Mac OS
I Mark Shuttleworth (África do Sul)
I Ubuntu
Hardware
- 1.21 gigawatts? 1.21 gigawatts? Great Scott!
I Asus EEEPC, 1 Kg, R$ 1.000,00
I Arch Linux, Ubuntu
I leve
I MacBook, 2 Kg, R$ 3.000,00
I Apple Mac OS X Snow Leopard
I backup automático (Time Machine)
I projeto integrado de hardware e software
I IBM Blade Center, 60 Kg, R$ 17.000,00
I IBM AIX
I servidor de rede local
I confiável, redundante
Características do *nix
- Everybody should have one talent, what’s yours?
I Multi-usuário:
I cada usuário tem uma área de trabalho privada para arquivos e
execução de programas.
I Multi-tarefa:
I processos compartilham ou concorrem por recursos.
I Redes de computadores:
I arquivos e processos podem estar em outros computadores.
Bourne-again Shell
- Look! It’s moving. It’s alive! It’s alive!
I Um interpretador que executa comandos recebidos via teclado
ou a partir de um arquivo.
I Um shell permite a interação entre o usuário e os processos em
execução:
I bash, sh, tcsh, ksh, zsh: exemplos de shell com comandos via
texto;
I Gnome, KDE: exemplos de shell com comandos via janelas,
ícones, menus e apontador (mouse).
I Gnome e KDE são ambientes gráficos que utilizam a metáfora
de mesa de trabalho (desktop environments).
Quando utilizar o bash
I Operação remota
I Computador limitado
I recursos escassos
I programas ausentes
I Tarefas recorrentes
I Registrar procedimentos
I Quando o mouse tranca... :)
Caracteres especiais
I Caracteres especiais:
~ diretório pessoal do usuário (home)
* e ? coringas para nomes de arquivos
. e .. diretório atual e diretório pai
/ separador em nomes de arquivo
|, > e >‌> redirecionamento, criar arquivo, acrescentar
dados a um arquivo
; separador de comandos
Teclas especiais
I Teclas especiais:
I Parar o que está sendo feito: Ctrl+C.
I Mover para segundo plano ou suspender: Ctrl+Z.
I Final de arquivo: Ctrl+D
I Auto-preenchimento: Tab.
Aprender sempre...
I O sistema de ajuda integrado:
I man, info, apropos
I Relembrando comandos:
I history
I Como executar um programa:
I palavras-chave e parâmetros
I parâmetro help, –help, -help, –h, -h
I Google it!
I nome do comando, tarefa, mensagens de erro
I palavras-chave: howto, wiki, example, manual, tip, tutorial
Exercício 
I No bash, experimente os seguintes comandos:
$ history
$ man man
$ info info
$ apropos apropos
$ history
$ clear
I Para interromper man e info, digite q.
I Experimente Tab para completar as palavras.
I Experimente Ctrl+C ou Ctrl+Z para interromper processos.
Resolvendo erros...
I Um erro de digitação no nome do comando:
I o erro é informado pelo bash
$ mn man
-bash: mn: command not found
I Um erro de digitação no parâmetro do comando:
I o erro é informado pelo programa acionado
$ man mn
No manual entry for mn.
... e depois pedindo ajuda
- Houston, we have a...
I Nem sempre a causa do erro é simples de encontrar.
I Para pedir ajuda, anote o comando, a mensagem de erro e a
intenção.
I Interação social:
I Tentei um comando e não funcionou.
I Que chato...
I Interação técnica:
I Tentei o comando m-n, espaço, m-a-n e a mensagem de erro
foi: -bash: mn: command not found. Eu estava procurando
pelo manual do comando man. Tentei procurar a mensagem
de erro no Google, mas não achei nada útil.
I Deveria ter digitado *MAN* man. Faltou uma letra... Pode
usar info man também.
Exercício 
I Experimente procurar no Google:
I howto linux backup
I example linux mount
Oferecendo ajuda
- You don’t trust me at all, do you?
I Procure incentivar a autonomia:
I Read the fabulous manual (RTFM)!
I Tente acompanhar a intenção original:
I Nããooo!! Ninguém usa o comando abc! Sempre usei o xyz!
I Aproveite para aprender também:
I Ãhh?... E não é que funciona?
Comandos essenciais
I Entrada e saída
I Computadores, dispositivos e usuários
I Redes de computadores
I Processos
I Arquivos
I Configuração do seu ambiente pessoal
Entrada e saída
- Wiggle your big toe.
I Entrada e saída do sistema:
I login, logout, exit, shutdown, halt
I Alteração de sua senha:
I passwd
I Interface gráfica:
I startx
Exercício 
I Utilize um ambiente gráfico para executar os comandos dos
próximos exercícios.
I Encontre as diferenças entre os comandos de entrada e saída.
Computadores, dispositivos e usuários
- I’m affraid I can’t do that, Dave.
I Dados do seu computador:
I hostinfo, hostname, uname
I Dispositivos do seu computador:
I df, mount, quota
I Sua identificação:
I whoami, id, finger
Exercício 
I Encontre endereço IP, nome e sistema operacional do seu
computador.
I Descubra quanto espaço há nos discos disponíveis.
I Confira seu nome de usuário.
Redes de Computadores
To explore strange new worlds...
I Redes disponíveis, rotas e endereços:
I ifconfig, traceroute, ping, host
Exercício 
I Experimente os comandos:
$ host localhost
$ host www.cnn.com
$ traceroute www.cnn.com
$ ping www.cnn.com
$ ifconfig
Processos
- I am grieving. It’s a process.
I Programas em execução:
I top, ps, pstree, fuser
I Iniciar e interromper a execução de um programa:
I fg, bg, jobs, kill, killall, nohup, nice
I Localizar um arquivo ou programa
I which, locate, find
Exercício 
I Execute o comando abaixo:
$ xeyes
I Interrompa o programa com Ctrl-Z e digite:
$ jobs
I Reinicie a execução com o comando fg.
$ fg xeyes
Exercício 
I Execute top e assista um vídeo ou use outro programa que
ocupe o processador, memória ou disco.
Exercício 
I Execute o comando abaixo e o cancele com killall:
$ yes Sou imortal...
Exercício 
I Compare os comandos:
$ which javac
$ locate javac
$ find / -name javac -print
Arquivos
- So let it be written. So let it be done.
I pwd, cd, ls, mkdir
I cp, mv, rm, rmdir, ln
I file, hexdump, native2ascii
I cat, more, less, head, tail, wc
Exercício 
I Compare os comandos:
$ more ~/.bash_history
$ head ~/.bash_history
$ head ~/.bash_history | hexdump -C
$ wc -l ~/.bash_history
Configuração do seu ambiente pessoal
- My Precious! O my Precious!
I Comandos básicos:
I set, export, alias, source
I Arquivos de configuração:
I .bashrc, .bash_profile, .bash_history
Comandos básicos
I Consultar, comparar, alterar e remover o conteúdo de arquivos:
I texto
I binários
Acesso remoto
The Truth is out there...
I Utilizando outro computador, via terminal:
I ssh, telnet, rlogin
I Utilizando outro computador, via janelas, ícones...:
I vnc, rdesktop, nxclient
Exercício 
I Execute os comandos:
$ hostname
$ ssh eaco.inf.pucrs.br -l seu usuário
$ hostname
$ exit
Transferindo arquivos
I Transferindo arquivos entre computadores:
I wget, curl, ftp, scp, sftp
Exercício 
I Compare os comandos:
$ curl cnn.com | head
$ curl upload.wikimedia.org/wikipedia/commons/3/35/T
Compartilhando arquivos
- My half was on the bottom.
I Compartilhando arquivos:
I cvs, svn, git
Exercício 
I Execute os comandos:
$ cd ~
$ mkdir historia
$ cd historia
$ svn co wush.net/svn/masmangan/crepusculo 
--username tux --password worlddomination
$ more introducao.txt
I Aguarde para editar o arquivo e execute:
$ svn ci -m alterei
I Aguarde para ver as alterações realizadas:
$ svn update
Impressoras e Mídias Removíveis
- Do I look like I’m joking?
I Impressora
I lpq, lpr, lpstat, lprm
I Mídias removíveis
I mount, umount
I sync
I Gravação de discos óticos, imagens ISO
I dd
Comparação de dados
- What, are you some kind of parrot?
I Processamento de textos:
I diff, patch, meld, openssl
Extração de dados
I Processamento de textos:
I grep, fgrep, tail, less, cut, tr
Transformação de dados
- Oh my God. Oh my God, is he nuts?
I Processamento de textos:
I tar, zip, unzip
I sort, rs, tops
I sed, awk
Imagem, vídeo e áudio
I Imagem:
I pdfcrop, convert
I Vídeo:
I mplayer, vlc
I Áudio:
I afinfo, faad
I http://bitbucket.org/rg3/youtube-dl/wiki/Home
I curl http://bitbucket.org/rg3/youtube-
dl/raw/2009.09.13/youtube-dl
Editores e Processadores de Texto
I Processadores de texto:
I vi
I emacs
I lyx
Lotes de Comandos
I man builtin
I man bash
I crie seu próprio programa!
Variáveis
I atribuição: A = oi
I substituição: echo $A
I expansão: echo ‘hostname‘ ou echo $(hostname)
I expressões aritméticas
Condicional
No pé ou na mão?
I if
Repetição
Pede para sair, Zero-Um!
I for
I while
Automação de Tarefas com bash
- Alright. Ripley, when I give an order I expect to be obeyed.
I Obter dados de uma página na Web ou arquivo: extração de
dados:
I Impressão remota e processos remotos: tele-trabalho:
I Escrever um texto acadêmico e apresentações: edição de
textos:
Extração de Dados de uma Página na Web
- Torture numbers, and they’ll confess to anything!
I wget
I sort
I rs
I join
I tops
Extração de Dados de um Documento XML
- It’s a crocodile... but maybe now somebody’s happy I brought my big gun?
I Extensible Stylesheet Language Transformation
$ curl http://www.w3schools.com/XML/cd_catalog.xml 
-o catalogo.xml
$ curl http://www.inf.pucrs.br/~mangan/extensao/linux/xslt/exemplo.zip
$ unzip exemplo.zip
$ javac Transform.java
$ java Transform catalogo.xml lista.xslt
Executar Comandos em Outro Computador
- Grab your towel and don’t panic!
I Preparando um diretório no computador remoto
I ssh eaco.inf.pucrs.br -l ...
I mkdir ~/dados
I cd ~/dados
I Executando os programas e acumulando dados:
I nice yes Yes, Sir | head  dados.txt
I nice yes No, Sir | head ‌ dados.txt
I Preparando dados para o transporte:
I openssl sha1 dados.txt  tmp-origem.sig
I zip dados.zip dados.txt tmp-origem.sig
Executar Comandos em Outro Computador
- There and back again...
I Retornando ao computador local e transferindo os dados:
I logout
I scp ....@eaco.inf.pucrs.br:dados.zip
I Conferindo os dados:
I unzip dados.zip
I openssl sha1 dados.txt  tmp-destino.sig
I diff tmp-origem.sig tmp-destino.zip
Executar Comandos em Outro Computador
- Grab you gun and bring in the cat.
I Removendo dados locais
I rm-i dados.zip tmp-*
I Removendo dados locais e remotos (depois de gravar os dados
importantes em CD e publicar o artigo!)
I ssh eaco.inf.pucrs.br -l ...
I rm -iR ~/dados
I logout
Redação de Textos Acadêmicos
- Real men don’t click!
I svn
I gerar e editar figuras
I gerar e formatar dados
I organizar bibliografias
I lyx
I gerar pdfs de apresentação, folheto e artigo.
Exemplos de Projetos
- Have you ever danced with the devil in the pale moonlight?
I Compilar e executar projetos prontos
I Realizar pequenas modificações
I Perl: http://www.linuxjournal.com/article/3882
Word Count
- We can make him better than he was before. Better, stronger, faster.
I http://ubuntuforums.org/showthread.php?t=241328
I
http://www.gnu.org/software/cflow/manual/html_node/Source-
of-wc-command.html
I http://codesnippets.joyent.com/tag/wc
Molecule Viewer
- Veni, vidi, vici.
I http://www.ks.uiuc.edu/Research/jmv/demo/jmv-
0.85/JMV.html
I http://jmol.sourceforge.net/
I http://freshmeat.net/projects/jmv
IMDB scrapping
- Use the Force, Luke!
I teste
IMDB scrapping
- Use the Force, Luke!
I teste
Blipkit
- You’d make a splendid computer, Mr Spock. - That is very kind of you, Captain!
I http://www.blipkit.org/svn.html
I http://www.blipkit.org/examples.html
I http://www.berkeleybop.org/ontologies/obo-
all/oboInOwl/oboInOwl.pro
Conclusão
I Resumo
I Sugestões
I Reclamações
I Elogios, por favor.
Para saber mais...
Richard Linley, Eric Rountree, Tom Bradshaw. (2000) Getting
started. In: CASLab User’s Guide.
http://www.caslab.queensu.ca/userguide/node24.html
Gary Anthes. (2009) Unix turns 40. ComputerWorld, June.
http://tinyurl.com/rdlf8o
BlipKit. (2005) Biomedical Logic Programming Knowledge
Integration Kit. http://blipkit.org
Eric M. Burke. (2001) Top Ten Java and XSLT Tips. O’Reilly.
http://tinyurl.com/ycuj7uh
Chet Ramey, Brian Fox. (2009) Bash Reference Manual. Free
Software Foundation
http://www.gnu.org/software/bash/manual/
http://blogs.computerworld.com/14876/london_stock_exchange_du
http://techbase.kde.org/Development/Tutorials/Git

Comandos e Programação Básica em Unix, Linux e Mac OS

  • 1.
    Comandos e ProgramaçãoBásica em Unix, Linux e Mac OS O *nix de A a Z: de apropos a zip {marco.mangan, marcelo.cohen}@pucrs.br Janeiro de 2010
  • 2.
    Nota sobre direitosautorais I Os autores permitem a utilização deste material desde que mantido em sua totalidade. A utilização de parte do material não é permitida. I A versão deste documento está indicada abaixo: $Id: pucrs-facin-linux.lyx 284 2009-12-08 01:23:17Z masmangan $ I A versão mais atual deste documento está em: http://www.inf.pucrs.br/~mangan/extensao/linux
  • 3.
    Sobre este curso ICurso básico de Linux, Unix e Mac OS (20 horas-aula): I histórico dos *nix, visão geral; I comandos no interpretador bash; I resolvendo tarefas complicadas com comandos simples; I processamento de textos no bash: transformação de textos, extração de dados.
  • 4.
    Proposta Público: desenvolvedores, pesquisadores,alunos de graduação. Objetivos: apresentar os sistemas *nix, aumentar a capacidade de resolver problemas, otimizar a execução de tarefas cotidianas. Abordagem: explorar os comandos mais comuns, incentivar a autonomia e o auto-aprendizado durante e após o curso.
  • 5.
    Cronograma Primeiro dia, segundodia: histórico, conceitos e comandos. Terceiro dia, quarto dia: programação e automação de tarefas. Quinto dia: exemplos de projetos de programação e automação de tarefas. Em média, 5 minutos para cada comando.
  • 6.
    Breve histórico do*nix I 1960 I AT&T UNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix, FreeBSD, SunOS, AIX, POSIX I 1990 I Linux, Mac OS
  • 7.
    Personalidades I Ken Thompson(EUA) I Primeiro Unix I Richard Stallman (EUA) I GNU/Free Software Foundation I Armando Stettner (EUA) I Open Software Foundation I Linus Torvalds (Finlândia) I Linux, núcleo do Linux I Steve Jobs (EUA) I Mac OS I Mark Shuttleworth (África do Sul) I Ubuntu
  • 8.
    Hardware - 1.21 gigawatts?1.21 gigawatts? Great Scott! I Asus EEEPC, 1 Kg, R$ 1.000,00 I Arch Linux, Ubuntu I leve I MacBook, 2 Kg, R$ 3.000,00 I Apple Mac OS X Snow Leopard I backup automático (Time Machine) I projeto integrado de hardware e software I IBM Blade Center, 60 Kg, R$ 17.000,00 I IBM AIX I servidor de rede local I confiável, redundante
  • 9.
    Características do *nix -Everybody should have one talent, what’s yours? I Multi-usuário: I cada usuário tem uma área de trabalho privada para arquivos e execução de programas. I Multi-tarefa: I processos compartilham ou concorrem por recursos. I Redes de computadores: I arquivos e processos podem estar em outros computadores.
  • 10.
    Bourne-again Shell - Look!It’s moving. It’s alive! It’s alive! I Um interpretador que executa comandos recebidos via teclado ou a partir de um arquivo. I Um shell permite a interação entre o usuário e os processos em execução: I bash, sh, tcsh, ksh, zsh: exemplos de shell com comandos via texto; I Gnome, KDE: exemplos de shell com comandos via janelas, ícones, menus e apontador (mouse). I Gnome e KDE são ambientes gráficos que utilizam a metáfora de mesa de trabalho (desktop environments).
  • 11.
    Quando utilizar obash I Operação remota I Computador limitado I recursos escassos I programas ausentes I Tarefas recorrentes I Registrar procedimentos I Quando o mouse tranca... :)
  • 12.
    Caracteres especiais I Caracteresespeciais: ~ diretório pessoal do usuário (home) * e ? coringas para nomes de arquivos . e .. diretório atual e diretório pai / separador em nomes de arquivo |, > e >‌> redirecionamento, criar arquivo, acrescentar dados a um arquivo ; separador de comandos
  • 13.
    Teclas especiais I Teclasespeciais: I Parar o que está sendo feito: Ctrl+C. I Mover para segundo plano ou suspender: Ctrl+Z. I Final de arquivo: Ctrl+D I Auto-preenchimento: Tab.
  • 14.
    Aprender sempre... I Osistema de ajuda integrado: I man, info, apropos I Relembrando comandos: I history I Como executar um programa: I palavras-chave e parâmetros I parâmetro help, –help, -help, –h, -h I Google it! I nome do comando, tarefa, mensagens de erro I palavras-chave: howto, wiki, example, manual, tip, tutorial
  • 15.
    Exercício I Nobash, experimente os seguintes comandos: $ history $ man man $ info info $ apropos apropos $ history $ clear I Para interromper man e info, digite q. I Experimente Tab para completar as palavras. I Experimente Ctrl+C ou Ctrl+Z para interromper processos.
  • 16.
    Resolvendo erros... I Umerro de digitação no nome do comando: I o erro é informado pelo bash $ mn man -bash: mn: command not found I Um erro de digitação no parâmetro do comando: I o erro é informado pelo programa acionado $ man mn No manual entry for mn.
  • 17.
    ... e depoispedindo ajuda - Houston, we have a... I Nem sempre a causa do erro é simples de encontrar. I Para pedir ajuda, anote o comando, a mensagem de erro e a intenção. I Interação social: I Tentei um comando e não funcionou. I Que chato... I Interação técnica: I Tentei o comando m-n, espaço, m-a-n e a mensagem de erro foi: -bash: mn: command not found. Eu estava procurando pelo manual do comando man. Tentei procurar a mensagem de erro no Google, mas não achei nada útil. I Deveria ter digitado *MAN* man. Faltou uma letra... Pode usar info man também.
  • 18.
    Exercício I Experimenteprocurar no Google: I howto linux backup I example linux mount
  • 19.
    Oferecendo ajuda - Youdon’t trust me at all, do you? I Procure incentivar a autonomia: I Read the fabulous manual (RTFM)! I Tente acompanhar a intenção original: I Nããooo!! Ninguém usa o comando abc! Sempre usei o xyz! I Aproveite para aprender também: I Ãhh?... E não é que funciona?
  • 20.
    Comandos essenciais I Entradae saída I Computadores, dispositivos e usuários I Redes de computadores I Processos I Arquivos I Configuração do seu ambiente pessoal
  • 21.
    Entrada e saída -Wiggle your big toe. I Entrada e saída do sistema: I login, logout, exit, shutdown, halt I Alteração de sua senha: I passwd I Interface gráfica: I startx
  • 22.
    Exercício I Utilizeum ambiente gráfico para executar os comandos dos próximos exercícios. I Encontre as diferenças entre os comandos de entrada e saída.
  • 23.
    Computadores, dispositivos eusuários - I’m affraid I can’t do that, Dave. I Dados do seu computador: I hostinfo, hostname, uname I Dispositivos do seu computador: I df, mount, quota I Sua identificação: I whoami, id, finger
  • 24.
    Exercício I Encontreendereço IP, nome e sistema operacional do seu computador. I Descubra quanto espaço há nos discos disponíveis. I Confira seu nome de usuário.
  • 25.
    Redes de Computadores Toexplore strange new worlds... I Redes disponíveis, rotas e endereços: I ifconfig, traceroute, ping, host
  • 26.
    Exercício I Experimenteos comandos: $ host localhost $ host www.cnn.com $ traceroute www.cnn.com $ ping www.cnn.com $ ifconfig
  • 27.
    Processos - I amgrieving. It’s a process. I Programas em execução: I top, ps, pstree, fuser I Iniciar e interromper a execução de um programa: I fg, bg, jobs, kill, killall, nohup, nice I Localizar um arquivo ou programa I which, locate, find
  • 28.
    Exercício I Executeo comando abaixo: $ xeyes I Interrompa o programa com Ctrl-Z e digite: $ jobs I Reinicie a execução com o comando fg. $ fg xeyes
  • 29.
    Exercício I Executetop e assista um vídeo ou use outro programa que ocupe o processador, memória ou disco.
  • 30.
    Exercício I Executeo comando abaixo e o cancele com killall: $ yes Sou imortal...
  • 31.
    Exercício I Compareos comandos: $ which javac $ locate javac $ find / -name javac -print
  • 32.
    Arquivos - So letit be written. So let it be done. I pwd, cd, ls, mkdir I cp, mv, rm, rmdir, ln I file, hexdump, native2ascii I cat, more, less, head, tail, wc
  • 33.
    Exercício I Compareos comandos: $ more ~/.bash_history $ head ~/.bash_history $ head ~/.bash_history | hexdump -C $ wc -l ~/.bash_history
  • 34.
    Configuração do seuambiente pessoal - My Precious! O my Precious! I Comandos básicos: I set, export, alias, source I Arquivos de configuração: I .bashrc, .bash_profile, .bash_history
  • 35.
    Comandos básicos I Consultar,comparar, alterar e remover o conteúdo de arquivos: I texto I binários
  • 36.
    Acesso remoto The Truthis out there... I Utilizando outro computador, via terminal: I ssh, telnet, rlogin I Utilizando outro computador, via janelas, ícones...: I vnc, rdesktop, nxclient
  • 37.
    Exercício I Executeos comandos: $ hostname $ ssh eaco.inf.pucrs.br -l seu usuário $ hostname $ exit
  • 38.
    Transferindo arquivos I Transferindoarquivos entre computadores: I wget, curl, ftp, scp, sftp
  • 39.
    Exercício I Compareos comandos: $ curl cnn.com | head $ curl upload.wikimedia.org/wikipedia/commons/3/35/T
  • 40.
    Compartilhando arquivos - Myhalf was on the bottom. I Compartilhando arquivos: I cvs, svn, git
  • 41.
    Exercício I Executeos comandos: $ cd ~ $ mkdir historia $ cd historia $ svn co wush.net/svn/masmangan/crepusculo --username tux --password worlddomination $ more introducao.txt I Aguarde para editar o arquivo e execute: $ svn ci -m alterei I Aguarde para ver as alterações realizadas: $ svn update
  • 42.
    Impressoras e MídiasRemovíveis - Do I look like I’m joking? I Impressora I lpq, lpr, lpstat, lprm I Mídias removíveis I mount, umount I sync I Gravação de discos óticos, imagens ISO I dd
  • 43.
    Comparação de dados -What, are you some kind of parrot? I Processamento de textos: I diff, patch, meld, openssl
  • 44.
    Extração de dados IProcessamento de textos: I grep, fgrep, tail, less, cut, tr
  • 45.
    Transformação de dados -Oh my God. Oh my God, is he nuts? I Processamento de textos: I tar, zip, unzip I sort, rs, tops I sed, awk
  • 46.
    Imagem, vídeo eáudio I Imagem: I pdfcrop, convert I Vídeo: I mplayer, vlc I Áudio: I afinfo, faad I http://bitbucket.org/rg3/youtube-dl/wiki/Home I curl http://bitbucket.org/rg3/youtube- dl/raw/2009.09.13/youtube-dl
  • 47.
    Editores e Processadoresde Texto I Processadores de texto: I vi I emacs I lyx
  • 48.
    Lotes de Comandos Iman builtin I man bash I crie seu próprio programa!
  • 49.
    Variáveis I atribuição: A= oi I substituição: echo $A I expansão: echo ‘hostname‘ ou echo $(hostname) I expressões aritméticas
  • 50.
    Condicional No pé ouna mão? I if
  • 51.
    Repetição Pede para sair,Zero-Um! I for I while
  • 52.
    Automação de Tarefascom bash - Alright. Ripley, when I give an order I expect to be obeyed. I Obter dados de uma página na Web ou arquivo: extração de dados: I Impressão remota e processos remotos: tele-trabalho: I Escrever um texto acadêmico e apresentações: edição de textos:
  • 53.
    Extração de Dadosde uma Página na Web - Torture numbers, and they’ll confess to anything! I wget I sort I rs I join I tops
  • 54.
    Extração de Dadosde um Documento XML - It’s a crocodile... but maybe now somebody’s happy I brought my big gun? I Extensible Stylesheet Language Transformation $ curl http://www.w3schools.com/XML/cd_catalog.xml -o catalogo.xml $ curl http://www.inf.pucrs.br/~mangan/extensao/linux/xslt/exemplo.zip $ unzip exemplo.zip $ javac Transform.java $ java Transform catalogo.xml lista.xslt
  • 55.
    Executar Comandos emOutro Computador - Grab your towel and don’t panic! I Preparando um diretório no computador remoto I ssh eaco.inf.pucrs.br -l ... I mkdir ~/dados I cd ~/dados I Executando os programas e acumulando dados: I nice yes Yes, Sir | head dados.txt I nice yes No, Sir | head ‌ dados.txt I Preparando dados para o transporte: I openssl sha1 dados.txt tmp-origem.sig I zip dados.zip dados.txt tmp-origem.sig
  • 56.
    Executar Comandos emOutro Computador - There and back again... I Retornando ao computador local e transferindo os dados: I logout I scp ....@eaco.inf.pucrs.br:dados.zip I Conferindo os dados: I unzip dados.zip I openssl sha1 dados.txt tmp-destino.sig I diff tmp-origem.sig tmp-destino.zip
  • 57.
    Executar Comandos emOutro Computador - Grab you gun and bring in the cat. I Removendo dados locais I rm-i dados.zip tmp-* I Removendo dados locais e remotos (depois de gravar os dados importantes em CD e publicar o artigo!) I ssh eaco.inf.pucrs.br -l ... I rm -iR ~/dados I logout
  • 58.
    Redação de TextosAcadêmicos - Real men don’t click! I svn I gerar e editar figuras I gerar e formatar dados I organizar bibliografias I lyx I gerar pdfs de apresentação, folheto e artigo.
  • 59.
    Exemplos de Projetos -Have you ever danced with the devil in the pale moonlight? I Compilar e executar projetos prontos I Realizar pequenas modificações I Perl: http://www.linuxjournal.com/article/3882
  • 60.
    Word Count - Wecan make him better than he was before. Better, stronger, faster. I http://ubuntuforums.org/showthread.php?t=241328 I http://www.gnu.org/software/cflow/manual/html_node/Source- of-wc-command.html I http://codesnippets.joyent.com/tag/wc
  • 61.
    Molecule Viewer - Veni,vidi, vici. I http://www.ks.uiuc.edu/Research/jmv/demo/jmv- 0.85/JMV.html I http://jmol.sourceforge.net/ I http://freshmeat.net/projects/jmv
  • 62.
    IMDB scrapping - Usethe Force, Luke! I teste
  • 63.
    IMDB scrapping - Usethe Force, Luke! I teste
  • 64.
    Blipkit - You’d makea splendid computer, Mr Spock. - That is very kind of you, Captain! I http://www.blipkit.org/svn.html I http://www.blipkit.org/examples.html I http://www.berkeleybop.org/ontologies/obo- all/oboInOwl/oboInOwl.pro
  • 65.
    Conclusão I Resumo I Sugestões IReclamações I Elogios, por favor.
  • 66.
    Para saber mais... RichardLinley, Eric Rountree, Tom Bradshaw. (2000) Getting started. In: CASLab User’s Guide. http://www.caslab.queensu.ca/userguide/node24.html Gary Anthes. (2009) Unix turns 40. ComputerWorld, June. http://tinyurl.com/rdlf8o BlipKit. (2005) Biomedical Logic Programming Knowledge Integration Kit. http://blipkit.org Eric M. Burke. (2001) Top Ten Java and XSLT Tips. O’Reilly. http://tinyurl.com/ycuj7uh Chet Ramey, Brian Fox. (2009) Bash Reference Manual. Free Software Foundation http://www.gnu.org/software/bash/manual/ http://blogs.computerworld.com/14876/london_stock_exchange_du http://techbase.kde.org/Development/Tutorials/Git