View
217
Download
0
Category
Preview:
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
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 cid@uninove.br < 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
• 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
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
• 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
Recommended