Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

685 views

Published on

Palestra ministrada por Leandro Martelli na SCTI 2011.

  • Be the first to comment

  • Be the first to like this

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

  1. 1. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011 ${CLI}Sobrevivendo na Linha de Comando Leandro Martelli martelli@tawala.com.br
  2. 2. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?
  3. 3. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.
  4. 4. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.
  5. 5. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.- flexibilidade.
  6. 6. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.- flexibilidade.- poder!
  7. 7. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema.
  8. 8. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema. - interpretação de comandos.
  9. 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. 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. 11. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows)
  12. 12. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows) ??????????
  13. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 35. ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011 Obrigado!Leandro Martellimartelli@tawala.com.br www.tawala.com.br

×