39
Evoluindo em comandos Unix / Linux Cid Rodrigues de Andrade http://blog.cidandrade.pro.br No site acima encontram-se dados sobre licenciamento e forma de uso desta apresentação

Evoluindo em comandos Unix / Linux Cid Rodrigues de Andrade No site acima encontram-se dados sobre licenciamento e forma

Embed Size (px)

Citation preview

Evoluindo em comandos Unix / Linux

Cid Rodrigues de Andrade http://blog.cidandrade.pro.br

No site acima encontram-se dados sobre licenciamento e forma de uso desta apresentação

Evoluindo em comandos

• Esta apresentação pressupõem o conhecimento prévio de comandos básicos em Unix e Linux

• Para eventuais dúvidas, veja a apresentação “Treinamento em comandos Unix / Linux”, disponível em http://blog.cidandrade.pro.br

Metacaracteres ou curingas

• São caracteres capazes de serem interpretados de maneira especial

• Exemplo: asterisco (*)• O asterisco substitui quaisquer quantidade de

caracteres na posição que for posicionado, sendo utilizado para indicar múltiplos arquivos

Metacaracteres ou curingas

• Por exemplo, digite:cd /tmptouch arq1 arq2 arq3 arquivo4ls arq*

Aspas (“)

• Caracteres especiais não são interpretados se estiverem entre aspas, exceto o cifrão ($), crase (`) ou barra invertida (\)

• Por exemplo, digite:echo Use muito espacejamentoecho “Use muito espacejamento”

Crase (`) ou parenteses

• É priorizada a execução do que estiver entre crases• Por exemplo, digite:

echo “Nome do computador: `uname -n`”

Crase (`) ou parenteses

• Para o mesmo efeito, é possível utilizar os parenteses e executar os comandos em um shell secundário

• Por exemplo, digite:echo “Nome do computador: $( uname -n )”

Apóstrofos (')

• Todos caracteres especiais são ignorados quando estiverem entre apóstrofos

• Por exemplo, digite:echo 'Nome do computador: `uname -n`'

Barra invertida ou contra-barra (\)

• Ignora um e somente um caractere que siga a barra invertida

• Por exemplo, digite:echo *echo \*echo \\echo \ (Digite <CTRL><C> para sair)

Canais

• A maioria dos comandos tem o um canal de entrada (stdin)o um canal de saída (stdout)o um canal de saída de erros (stderr)

• Por padrão (default) estes canais sãoo stdin: teclado do terminalo stdout: tela do terminalo stderr: tela do terminal

Redirecionamento de canais

• Os canais padrão podem ser redirecionados de acordo com suas necessidades

• O caracterer '>' é utilizado para redirecionar o canal de saída para um arquivo.

Redirecionamento de canais

• O arquivo é apagado e criado antes que o resto do comando seja executado

• Por exemplo, digite:echo “Texto” > /tmp/testecat /tmp/teste

Redirecionamento de canais

• Este redirecionamento é útil para escrever rapidamente em um arquivo. Por exemplo:cat > /tmp/textoEste texto foi escritocom redirecionamento de canais<CTRL><D>cat /tmp/texto

Redirecionamento de canais

• Os caracteres '>>' são utilizados para redirecionar o canal de saída para um arquivo. Diferentemente do '>', o uso de '>>' permite que os dados enviados sejam anexados no final do arquivo

Redirecionamento de canais

• Por exemplo, digite:echo “Texto” > /tmp/testecat /tmp/testeecho “Outro texto” >> /tmp/testecat /tmp/teste

Redirecionamento de canais

• Os caracteres '2>' redirecionam o canal de erros para um arquivo

• O arquivo será criado mesmo que não ocorram erros

Redirecionamento de canais

• Por exemplo, digite (após certificar-se que não existe um arquivo chamado “blablabla” no diretório corrente):rm blablabla rm blablabla 2> /tmp/errocat /tmp/erro

Redirecionamento de canais

• Também é possível utilizar '2>>' redirecionando o canal de erro, mas anexando-o a um arquivo

Redirecionamento de canais

• O caracter '<' redireciona o canal de entrada, utilizando um arquivo em substituição do teclado. Seu uso mais comum era quando utilizava-se o comando mail para enviar mensagens eletrônicas. Por exemplo:mail [email protected] < arquivo

Redirecionamento de canais

• Os caracteres '<<', também chamados here document, indicam que o escopo de um comando começa na linha seguinte e terminal quando for encontrado uma linha com conteúdo indicado.

Redirecionamento de canais

• Por exemplo:cat > /tmp/texto << FIMEste texto foi escritocom here documentFIMcat /tmp/texto

Redirecionamento de canais

• O caracter '|', denominado pipe, redireciona o canal de saída de um comando para o canal de entrada do comando seguinte

Redirecionamento de canais

• Por exemplo, digite:cat /etc/passwd (Observe a saída do comando)cat /etc/passwd | sort (O que mudou?)

• Obs.: sort é um comando de ordenação

Redirecionamento de canais

• A expressão 'tee' captura a saída de um comando com pipe e gera duas cópias dela. Uma é enviada para um comando ou arquivo e a outra cópia é enviada para a saída padrão

Redirecionamento de canais

• Por exemplo, digite:cat /etc/passwd | sort | tee /tmp/teste | head

Redirecionamento de canais

• O 'tee' copia a lista ordenada de contas de usuário para o arquivo /tmp/teste e uma cópia desta lista é encaminhada ao comando head

Comando cut

• Corta cadeias de caracteres• Por exemplo, digite:

head /etc/passwdcut -d: -f1 /etc/passwdcut -d: -f1-3 /etc/passwd

Comando cut

• Por exemplo, digite:cut -d: -f1,3 /etc/passwdcut -d: -f3- /etc/passwdcut -d: -f-3 /etc/passwd

• Desta forma o comando cut usa o caracter ':' como delimitador para corte

Comando cut

• Por exemplo, digite:whowho | cut -c23-32

• Desta forma o comando cut realiza o corte pela contagem de caracteres

Comando tr

• Realiza a “tradução” de caracteres• Por exemplo, digite:

head -10 /etc/passwdhead -10 /etc/passwd | cut -d: -f1,6head -10 /etc/passwd | cut -d: -f1,6 | tr : '\011'

Comando tr

• Outro exemplo:echo $PATHecho $PATH | tr : '\012'

• Mais um exemplocut -d: -f1 /etc/passwd | tr 'a-z' 'A-Z'

Outros comandos

• clear: Limpa a tela• echo: Exibe um texto• cal: Exibe o calendário. Testar também

cal 2009cal 10 2006

Outros comandos

• wc: Conta linhas, palavras e caractereswc /etc/passwd

• sort: Ordena

Execução de múltiplos comandos

• É possível executar mais de um comando por linha• A primeira forma é utilizando-se o caracter ';'. Este

caracter permite a simples execução de mais de um comando na mesma linha

Execução de múltiplos comandos

• Por exemplo, digite:echo “Teste” ; head /etc/passwd ; echo “Fim”

Execução de múltiplos comandos

• Com os caracteres '&&' o segundo comando será executado somente se o primeiro for executado corretamente

Execução de múltiplos comandos

• Por exemplo, digite:cd /tmpls teste > /dev/null 2> /dev/null && rm -fr testemkdir teste && touch teste/arquivormdir teste && echo “Diretorio excluido”

Execução de múltiplos comandos

• Com os caracteres '||' o segundo comando será executado somente se o primeiro não o for

Execução de múltiplos comandos

• Por exemplo, digite:cd /tmpmkdir teste && touch teste/arquivormdir teste || echo “Diretorio nao excluido”rm -fr teste || echo “Diretorio nao excluido”