66
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

ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

O *nix de A a Z: de apropos a zip

{marco.mangan, marcelo.cohen}@pucrs.br

Janeiro de 2010

Page 2: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Nota sobre direitos autorais

I Os autores permitem a utilização deste material desde quemantido em sua totalidade. A utilização de parte do materialnã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

Page 3: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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.

Page 4: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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 tarefascotidianas.

Abordagem: explorar os comandos mais comuns, incentivar aautonomia e o auto-aprendizado durante e após ocurso.

Page 5: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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.

Page 6: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Breve histórico do *nix

I 1960I AT&T UNIX

I 1970I Berkeley Software Distribution (BSD)

I 1980I Minix, FreeBSD, SunOS, AIX, POSIX

I 1990I Linux, Mac OS

Page 7: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 8: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Hardware- 1.21 gigawatts? 1.21 gigawatts? Great Scott!

I Asus EEEPC, 1Kg, R$ 1.000,00I Arch Linux, Ubuntu

I leve

I MacBook, 2Kg, R$ 3.000,00I Apple Mac OS X Snow Leopard

I backup automático (Time Machine)I projeto integrado de hardware e software

I IBM Blade Center, 60Kg, R$ 17.000,00I IBM AIX

I servidor de rede localI confiável, redundante

Page 9: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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.

Page 10: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Bourne-again Shell- Look! It’s moving. It’s alive! It’s alive!

I Um interpretador que executa comandos recebidos via tecladoou a partir de um arquivo.

I Um shell permite a interação entre o usuário e os processos emexecução:

I bash, sh, tcsh, ksh, zsh: exemplos de shell com comandos viatexto;

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áforade mesa de trabalho (desktop environments).

Page 11: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Quando utilizar o bash

I Operação remotaI Computador limitado

I recursos escassosI programas ausentes

I Tarefas recorrentesI Registrar procedimentosI Quando o mouse tranca... :)

Page 12: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 13: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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+DI Auto-preenchimento: Tab.

Page 14: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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âmetrosI parâmetro help, –help, -help, –h, -h

I Google it!I nome do comando, tarefa, mensagens de erroI palavras-chave: howto, wiki, example, manual, tip, tutorial

Page 15: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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.

Page 16: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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 mnNo manual entry for mn.

Page 17: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

... 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 procurandopelo manual do comando man. Tentei procurar a mensagemde erro no Google, mas não achei nada útil."

I "Deveria ter digitado *MAN* man. Faltou uma letra... Podeusar info man também."

Page 18: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Experimente procurar no Google:I howto linux backupI example linux mount

Page 19: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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?

Page 20: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Comandos essenciais

I Entrada e saídaI Computadores, dispositivos e usuáriosI Redes de computadoresI ProcessosI ArquivosI Configuração do seu ambiente pessoal

Page 21: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 22: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Utilize um ambiente gráfico para executar os comandos dospróximos exercícios.

I Encontre as diferenças entre os comandos de entrada e saída.

Page 23: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 24: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Encontre endereço IP, nome e sistema operacional do seucomputador.

I Descubra quanto espaço há nos discos disponíveis.I Confira seu nome de usuário.

Page 25: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Redes de ComputadoresTo explore strange new worlds...

I Redes disponíveis, rotas e endereços:I ifconfig, traceroute, ping, host

Page 26: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Experimente os comandos:

$ host localhost$ host www.cnn.com$ traceroute www.cnn.com$ ping www.cnn.com$ ifconfig

Page 27: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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 programaI which, locate, find

Page 28: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 29: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Execute top e assista um vídeo ou use outro programa queocupe o processador, memória ou disco.

Page 30: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Execute o comando abaixo e o cancele com killall:

$ yes "Sou imortal..." &

Page 31: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Compare os comandos:

$ which javac$ locate javac$ find / -name javac -print

Page 32: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Arquivos- So let it be written. So let it be done.

I pwd, cd, ls, mkdirI cp, mv, rm, rmdir, lnI file, hexdump, native2asciiI cat, more, less, head, tail, wc

Page 33: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Compare os comandos:

$ more ~/.bash_history$ head ~/.bash_history$ head ~/.bash_history | hexdump -C$ wc -l ~/.bash_history

Page 34: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 35: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Comandos básicos

I Consultar, comparar, alterar e remover o conteúdo de arquivos:I textoI binários

Page 36: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Acesso remotoThe 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

Page 37: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Execute os comandos:

$ hostname$ ssh eaco.inf.pucrs.br -l <seu usuário>$ hostname$ exit

Page 38: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Transferindo arquivos

I Transferindo arquivos entre computadores:I wget, curl, ftp, scp, sftp

Page 39: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exercício�

I Compare os comandos:

$ curl cnn.com | head$ curl upload.wikimedia.org/wikipedia/commons/3/35/Tux.svg -o abc.svg

Page 40: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Compartilhando arquivos- My half was on the bottom.

I Compartilhando arquivos:I cvs, svn, git

Page 41: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 42: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Impressoras e Mídias Removíveis- Do I look like I’m joking?

I ImpressoraI lpq, lpr, lpstat, lprm

I Mídias removíveisI mount, umountI sync

I Gravação de discos óticos, imagens ISOI dd

Page 43: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Comparação de dados- What, are you some kind of parrot?

I Processamento de textos:I diff, patch, meld, openssl

Page 44: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Extração de dados

I Processamento de textos:I grep, fgrep, tail, less, cut, tr

Page 45: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Transformação de dados- Oh my God. Oh my God, is he nuts?

I Processamento de textos:I tar, zip, unzip

I sort, rs, topsI sed, awk

Page 46: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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/HomeI curl http://bitbucket.org/rg3/youtube-

dl/raw/2009.09.13/youtube-dl

Page 47: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Editores e Processadores de Texto

I Processadores de texto:I viI emacsI lyx

Page 48: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Lotes de Comandos

I man builtinI man bashI crie seu próprio programa!

Page 49: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Variáveis

I atribuição: A = oiI substituição: echo $AI expansão: echo ‘hostname‘ ou echo $(hostname)I expressões aritméticas

Page 50: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

CondicionalNo pé ou na mão?

I if

Page 51: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

RepetiçãoPede para sair, Zero-Um!

I forI while

Page 52: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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 dedados:

I Impressão remota e processos remotos: tele-trabalho:I Escrever um texto acadêmico e apresentações: edição de

textos:

Page 53: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Extração de Dados de uma Página na Web- Torture numbers, and they’ll confess to anything!

I wgetI sortI rsI joinI tops

Page 54: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 55: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Executar Comandos em Outro Computador- Grab your towel and don’t panic!

I Preparando um diretório no computador remotoI ssh eaco.inf.pucrs.br -l ...I mkdir ~/dadosI cd ~/dados

I Executando os programas e acumulando dados:I nice yes "Yes, Sir" | head > dados.txtI nice yes "No, Sir" | head >‌> dados.txt

I Preparando dados para o transporte:I openssl sha1 dados.txt > tmp-origem.sigI zip dados.zip dados.txt tmp-origem.sig

Page 56: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Executar Comandos em Outro Computador- There and back again...

I Retornando ao computador local e transferindo os dados:I logoutI scp [email protected]:dados.zip

I Conferindo os dados:I unzip dados.zipI openssl sha1 dados.txt > tmp-destino.sigI diff tmp-origem.sig tmp-destino.zip

Page 57: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Executar Comandos em Outro Computador- Grab you gun and bring in the cat.

I Removendo dados locaisI rm-i dados.zip tmp-*

I Removendo dados locais e remotos (depois de gravar os dadosimportantes em CD e publicar o artigo!)

I ssh eaco.inf.pucrs.br -l ...I rm -iR ~/dadosI logout

Page 58: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Redação de Textos Acadêmicos- Real men don’t click!

I svnI gerar e editar figurasI gerar e formatar dadosI organizar bibliografiasI lyxI gerar pdfs de apresentação, folheto e artigo.

Page 59: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Exemplos de Projetos- Have you ever danced with the devil in the pale moonlight?

I Compilar e executar projetos prontosI Realizar pequenas modificaçõesI Perl: http://www.linuxjournal.com/article/3882

Page 60: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Word Count- We can make him better than he was before. Better, stronger, faster.

I http://ubuntuforums.org/showthread.php?t=241328I

http://www.gnu.org/software/cflow/manual/html_node/Source-of-wc-command.html

I http://codesnippets.joyent.com/tag/wc

Page 61: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

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

Page 62: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

IMDB scrapping- Use the Force, Luke!

I teste

Page 63: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

IMDB scrapping- Use the Force, Luke!

I teste

Page 64: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Blipkit- You’d make a splendid computer, Mr Spock. - That is very kind of you, Captain!

I http://www.blipkit.org/svn.htmlI http://www.blipkit.org/examples.htmlI http://www.berkeleybop.org/ontologies/obo-

all/oboInOwl/oboInOwl.pro

Page 65: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Conclusão

I ResumoI SugestõesI ReclamaçõesI Elogios, por favor.

Page 66: ComandoseProgramaçãoBásicaemUnix,Linux …mangan/2009/2/extensao/linux/...Brevehistóricodo*nix I 1960 I AT&TUNIX I 1970 I Berkeley Software Distribution (BSD) I 1980 I Minix,FreeBSD,SunOS,AIX,POSIX

Para saber mais...Richard Linley, Eric Rountree, Tom Bradshaw. (2000) Gettingstarted. 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 KnowledgeIntegration 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. FreeSoftware Foundationhttp://www.gnu.org/software/bash/manual/

http://blogs.computerworld.com/14876/london_stock_exchange_dumps_windows_for_linux

http://techbase.kde.org/Development/Tutorials/Git

http://flavio.castelli.name/howto_use_git_with_svn