[SCTI 2011] - CLI: sobrevivendo na linha de comando
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 599 views

Palestra ministrada por Leandro Martelli na SCTI 2011.

Palestra ministrada por Leandro Martelli na SCTI 2011.

Statistics

Views

Total Views
599
Views on SlideShare
597
Embed Views
2

Actions

Likes
0
Downloads
5
Comments
0

1 Embed 2

http://scti.uenf.br 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011 ${CLI}Sobrevivendo na Linha de Comando Leandro Martelli martelli@tawala.com.br
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.- flexibilidade.
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Por que a linha de comando?- velocidade.- acesso remoto.- flexibilidade.- poder!
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema.
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Shell 101: - interface entre usuário e sistema. - interpretação de comandos.
  • ${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
  • ${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)
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows)
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows) ??????????
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Acessando o Sistema: - local: * xterm (Linux) * gnome-terminal (Linux) * iTerm (Mac) * cmd (Windows) ?????????? - remoto: * PuTTY (Windows)
  • ${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 ~]$
  • ${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 ~]$
  • ${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 ~]$ ???
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Passo [1] - arquivo .ssh/config:Host servidor HostName srv.tawala.com.br User martelli Port 23514
  • ${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$
  • ${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.
  • ${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$
  • ${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}$
  • ${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
  • ${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
  • ${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$
  • ${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$
  • ${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
  • ${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)
  • ${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$
  • ${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...
  • ${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...
  • ${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
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011Comandos amigos do dia-a-dia:- awk- sed- sort- uniq- grep / egrep- bc- xargs- tr- curlfalta algo...
  • ${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: |
  • ${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
  • ${CLI}: Sobrevivendo na Linha de Comando :: SCTI 2011 Obrigado!Leandro Martellimartelli@tawala.com.br www.tawala.com.br