[SCTI 2011] - CLI: sobrevivendo na linha de comando

  • 422 views
Uploaded on

Palestra ministrada por Leandro Martelli na SCTI 2011.

Palestra ministrada por Leandro Martelli na SCTI 2011.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
422
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
5
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011 ${CLI}Sobrevivendo na Linha de Comando Leandro Martelli martelli@tawala.com.br
  • 2. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?
  • 3. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.
  • 4. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.
  • 5. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.- flexibilidade.
  • 6. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.- flexibilidade.- poder!
  • 7. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema.
  • 8. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema. - interpretação de comandos.
  • 9. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema. - interpretação de comandos. - exemplos de shell: * bash * tcsh * ksh * zsh
  • 10. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema. - interpretação de comandos. - exemplos de shell: * bash * tcsh * zsh * ksh (Greg Sullivan, MPM)
  • 11. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows)
  • 12. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows) ??????????
  • 13. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows) ?????????? - remoto: * PuTTY (Windows)
  • 14. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando um Sistema Remoto:$ ssh martelli@srv.tawala.com.br -p 23514martelli@srv.tawala.com.brs password:Last login: Thu Nov 10 00:44:48 2011 from 201.222.4.136[martelli@srv ~]$
  • 15. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando um Sistema Remoto:$ ssh martelli@srv.tawala.com.br -p 23514martelli@srv.tawala.com.brs password:Last login: Thu Nov 10 00:44:48 2011 from 201.222.4.136[martelli@srv ~]$Versão Preguiçosa:$ ssh servidorLast login: Thu Nov 10 00:45:34 2011 from 201.222.4.136[martelli@srv ~]$
  • 16. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando um Sistema Remoto:$ ssh martelli@srv.tawala.com.br -p 23514martelli@srv.tawala.com.brs password:Last login: Thu Nov 10 00:44:48 2011 from 201.222.4.136[martelli@srv ~]$Versão Preguiçosa:$ ssh servidorLast login: Thu Nov 10 00:45:34 2011 from 201.222.4.136[martelli@srv ~]$ ???
  • 17. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Passo [1] - arquivo .ssh/config:Host servidor HostName srv.tawala.com.br User martelli Port 23514
  • 18. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Passo [1] - arquivo .ssh/config:Host servidor HostName srv.tawala.com.br User martelli Port 23514Editando sem editor:$ cat > ~/.ssh/config << FIMHost servidor HostName srv.tawala.com.br User martelli Port 23514FIM$
  • 19. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Passo [2] - Autenticação por chave pública:$ ssh-keygen -b 2048Generating public/private rsa key pair.Enter file in which to save the key(/home/teste/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in/home/teste/.ssh/id_rsa.Your public key has been saved in ...$ ssh-copy-id -i ~/.ssh/id_rsa servidormartelli@srvs password:Now try logging into the machine, with "ssh servidor",and check in: .ssh/authorized_keysto make sure we havent added extra keys that you werentexpecting.
  • 20. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Editando sem editor[2] - perl:$ for i in 1 2 3> do> echo text errado > f${i}> done$ cat f*text erradotext erradotext errado$
  • 21. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Editando sem editor[2] - perl:$ for i in 1 2 3> do> echo text errado > f${i}> done$ cat f*text erradotext erradotext errado$ perl -i -pe s/ errado/o certo/ f{1,3}$
  • 22. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Editando sem editor[2] - perl:$ for i in 1 2 3> do> echo text errado > f${i}> done$ cat f*text erradotext erradotext errado$ perl -i -pe s/ errado/o certo/ f{1,3}$ cat f*texto certotext erradotexto certo
  • 23. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Navegando por diretórios - pushd/popd:$ pwd/tmp/scti2011$ find .../a./a/b./a/b/c./a/d./a/d/e./a/f./a/f/g$ pushd .$ cd /Users/martelli$ cd tmp$ pwd/Users/martelli/tmp$ popd/tmp/scti2011$ pwd/tmp/scti2011
  • 24. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Navegando por diretórios[2] - cdspell:$ cd /tpm/stci2011-bash: cd: /tpm/stci2011: No such file or directory$
  • 25. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Navegando por diretórios[2] - cdspell:$ cd /tpm/stci2011-bash: cd: /tpm/stci2011: No such file or directory$ shopt -s cdspell$
  • 26. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Navegando por diretórios[2] - cdspell:$ cd /tpm/stci2011-bash: cd: /tpm/stci2011: No such file or directory$ shopt -s cdspell$ cd /tpm/stci2011/tmp/scti2011$ pwd/tmp/scti2011
  • 27. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell multi-tarefa - jobs/fg/bg:$ vi demo.txt^Z[1]+ Stopped vi demo.txt$ vi demoNovo.txt^Z[2]+ Stopped vi demoNovo.txt$ find / > lista.txt 2>&1^Z[3]+ Stopped find / > lista.txt$ jobs[1] Stopped vi demo.txt[2]- Stopped vi demoNovo.txt[3]+ Stopped find / > lista.txt$ bg 3[3]+ find / > lista.txt 2>&1 &$ fg 1(de volta ao arquivo demo.txt)
  • 28. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Criando comandos - function:$ $ function demo() {> echo "a: $1"> echo "b: $2"> echo "c: $3"> }$ demo primeiro segundo terceiroa: primeirob: segundoc: terceiro$
  • 29. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell Scripts:“shabang”: #!/bin/bash$ cat > demo.sh <<FIM#!/bin/bashMSG=$1for ((i=0;i<10;i=$i+1))do echo $i: $MSGdoneFIM$ chmod +x demo.sh$ ./demo.sh “Olá Mundo”0: Olá Mundo1: Olá Mundo2: Olá Mundo3: Olá Mundo4: Olá Mundo...
  • 30. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell Scripts - depuração:$ bash -x ./demo.sh Olá Mundo+ MSG=Olá Mundo+ (( i=0 ))+ (( i<10 ))+ echo 0: Olá Mundo0: Olá Mundo+ (( i=0+1 ))+ (( i<10 ))+ echo 1: Olá Mundo1: Olá Mundo+ (( i=1+1 ))+ (( i<10 ))+ echo 2: Olá Mundo2: Olá Mundo+ (( i=2+1 ))+ (( i<10 ))+ echo 3: Olá Mundo...
  • 31. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Terminais Múltiplos - screen:$ screen -S demoCTRL+a-d[detached]neutrino:scti2011 martelli$ screen -lsThere is a screen on: 462.demo (Detached)1 Socket in/var/folders/gt/kqs2wvxd4yl7kfdm6x_b9rph0000gn/T/.screen.$ screen -x demo
  • 32. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Comandos amigos do dia-a-dia:- awk- sed- sort- uniq- grep / egrep- bc- xargs- tr- curlfalta algo...
  • 33. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Comandos amigos do dia-a-dia:- awk- sed- sort- uniq- grep / egrep- bc- xargs- tr- curlNão esqueçamos o pipe: |
  • 34. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Hands-on:- screen (para os vários exemplos)- bash -x- netstat- meetings.log- /proc - file descriptors- bash: $() $? - script com “quiet grep”- tunneling com SSH- openssl
  • 35. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011 Obrigado!Leandro Martellimartelli@tawala.com.br www.tawala.com.br