Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. DevOps

Comandos *NIX de Terminal para Desenvolvedores Web

by
Length:LongLanguages:

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Então, por que *NIX e por que precisamos ir ao terminal?

De acordo com estatística do W3Techs, Unix é usado por 68% de todos os sites dos quais eles sabem o sistema operacional. Ou seja, sendo desenvolvedores web, é provável que nosso coódigo esteja rodando um um servidor Linux. É preciso sabermos como configurar ou depurar nosso código em sistemas Linux e Unix. Vejamos o que é preciso para isso.

O Básico

O comando básico *NIX consiste de três componentes:

  • commando or programa a executar
  • opções para especificar comportamento do comando
  • argumentos ou entrada necessária para o comando

Por exemplo, se precisamos obter uma lista de arquivos no diretório /var/www, precisamos executar o comando ls com o argumetno /var/www. Para adicionar o tamanho dos arquivo no retorno, adicionamos a opção -s, e o comando será assim:

Redirecionamento e Condução de Entrada e Saída

Muitos comandos *NIX usam entrada e saída textual que podemos operar, e o legal disso é que podemos enviar os retornos do comando para um arquivo usando redirecionamento ou mesmo enviá-lo para outro comando como entrada, usando conduções. Por exemplo, podemos salvar o retorno do comando do exemplo anterior um arquivo:

O comando criará ou apagará o arquivo /var/www/files.txt e salvará a lista de arquivos do diretório /var/www no lugar. Eis uma lista de redirecionamento e condução padrão:

  • > Redireciona o retorno de um comando para um arquivo. Esse será apagado e sobrescrito.
  • >> Redirecionamento com anexo não apagando.
  • < Obtém entrada de um arquivo para um comando.
  • | Passe o retorno de um comando como entrada para outro.
  • tee Redireciona para um arquivo e passa como entrada para o próximo comando.

Os Principais Comandos

Para ver o manual de um comando, execute man. Páginas de manual segue um layout comum e podem incluir nome, sinpse, descrição e exemplo de uso. Isso mostrará a documentação do comando chmod:

Para executar alguns comandos, como salvar configurações ou reiniciar processos, precisamos executá-los como super usuário. Para isso, precisamos iniciar o comando com sudo:

Se precisarmos executar vários comandos como super usuário, podemos usar su para mudar para o usuário super.

Nota: Para manter-se seguro e evitar execução acidental de comandos questionáveis, não use sudo ou su sem motivo.

No Mundo Real

Navegação Básica

Existem 3 comandos base para navegar uma árvore de arquivos:

  • pwd para imprimir o nome do diretório atual
  • cd para mudar de diretório
  • ls para listar o conteúdo

Eis um exemplo do uso desses comandos com seus retornos no terminal:

Buscando Arquivos

Existe o comando find para buscar arquivos numa hierarquia de diretórios. Esse comando é bem poderoso e pode buscar por arquivos e diretórios por nome, permissões, datas e tamanhos.

Para encontrar todos os diretórios com "logs" no nome no diretório /var/www usando a opção -type:

Para buscar por arquivos PHP no diretório atual, adicione a opção -name:

Para buscar arquivos com determinada permisão, use -perm:

Encontre todos os arquivos maiores que 500MB:

Claro, podemos combinar todas essas opções em um só comando. Isso é só o basico do comando find, uma ferramenta poderosa para buscar arquivos. Use as páginas de manual para mais informações.

Manipulando Arquivos e Diretórios

Existem cinco comandos base para manipular arquivos e diretórios em sistemas *NIX:

  • touch é usado para alterar marcas de data em arquivos existentes e diretório, mas também para criar arquivos
  • mkdir para criar diretórios
  • cp pra copiar arquivos e diretórios
  • mv para mover e renomear arquivos e diretórios
  • rm para apagar arquivos e diretórios

O próximo exemplo criará um arquivo index.html, copia-lo-á para um novo diretório em /var/www e removerá o original.

Outro ótimo comando é o ln, usado para criar elos entre arquivos. O comando ln é usado, geralmente, para criar elos simbólios para habilitar host virtual:

Alterando Permissões de Acesso

Para alterar o dono ou grupo de um arquivo, use chown. Não esqueça de dar permissões ao usuário apache ao criar uma novo host virtual para sua aplicação web:

Por vezes, pastas de cache e registros devem ser acessíveis a todos usuários, logo é preciso alterar o modo de acesso para 777 com chmod. Adicione a opção -R para adicionar permissão a todos os arquivos e diretórios aninhados.

Se quiser apenas tornar um arquivo executável, use chmod com a opção +x.

Leitura de Arquivos

Para ver arquivos, podemos usar o comando cat. Com cat, podemos concatenar o conteúdo de arquivos usando parâmetros extras e também podemos mascarar nomes de arquivo.

Mas o comando cat confundirá você bem rápido, porque mostrar o retorno bruto sem qualquer paginação—logo, é inconveniente usá-lo com registros. Para filtrar ou paginar um texto uma tela por vez, deveríamos usar os comandos more ou less, que são muito melhores.

Outro comando útil é o tail, criado para retornar apenas a parte final dos arquivos. O comando é perfeito para dar uma olhada em registros. Por padrão, ele retornará as últimas 10 linhas, mas pode-se mudar esse número usando a opção -n.

Mas se tivermos, por exemplo, vários registros, precisamos de algo mais poderoso para uma busca melhor. Algo como grep—um programa que lê da entrada padrão, testa cada linha contra um padrão e retorna para a saída padrão, as linhas que casaram. Ao usá-lo junto de cat e condutores, obteremos o que queremos.

Se quisermos filtrar linhas de texto do retorno, podemos usar o comando grep:

Como podemos ver, grep é ótimo para condução. Nesse exemplo, o último comando retornará todas as linhas contendo "shutting down" dos registros.

Edição de Arquivos

Se quisermos editar arquivos de texto no terminal, podemos usar um dos três mais populares editores:

  • GNU nano, um editor de texto pequeno e amigável que é uma escolher perfeita para tarefas básicas
  • Vim, um editor de texto aprimorado para programador, que é o mais poderoso mas complexo para iniciantes.
  • mcedit, um editor totalmente completo da Midnight Commander, que é fácil de usar mas não é instalado por padrão em sistemas *NIX

Compares-os e escolha um:

Arquivamento

Por vezes, precisamos copiar ou comprimir alguns dados do servidor.

Os utilitários de arquivamento mais comuns são o tar e o zip. Note que o comando zip talvez não esteja instalado no servidor por padrão.

Podemos criar arquivos com os comandos a seguir:

Se quisermos apenas ver uma lista dos arquivos, podemos usar a opção -l tanto para tar quanto unzip:

Ou extraia alguns arquivos:

Tarefas Programadas

Se quiser programar seus scripts para executar periodicamente, é preciso usar o utilitário Cron, conduzido pela tabela cron—um arquivo de configuração de comandos de terminal a serem executados periodicamente em determinado prazo. E o comando para manter as tabelas cron é crontab.

Executar crontab com a opção -l exibirá a tabela cron.

Com a opção -u, especificamos o nome do usuário dono da crontab será usada. Se executarmos tarefas na aplicação web, é melhor editar a crontab do usuário www-data.

Nesse retorno, podemos ver um exemplo de tabela cron. Como vemos, cada linha é programada por minuto, hora, dia do mês, mês e dia da semana. Cada campo pode ser um asterísco, indicando todos os valores do campo. Também se pode usar conjuntos e intervalos, usando vírgulas e hífens. Uma barra após um intervalo cria-se exceções no valor do número naquele intervalo. No exemplo, o primeiro comando executará a cada cinco minutos e o segundo de Segunda a Sexta às 15h.

Para editar a lista, execute crontab com -e ao invés de -l. A lista cron será aberta no editor padrão. Use a opção -r para limpar a lista.

Monitoramento de Performance

O comando top resume a informação do sistema e provê uma visão dinâmica em tempo real dos processos em execução. Aperte Shift-M para ordenar processos por uso de memória ou Shift-P por uso de CPU.

Para mostrar o tanto de memória livre e usada pelo sistema, use o comando free. Adicione a opção -h para retornar os comandos num formato legível.

Outro comando útil é o df, que reporta o uso do espaço em disco do sistema. Executamo-no com a opção -a para mostrar todos os sistemas de arquivos do seu seservidor. Também não esqueça a opção -h para um formato legível.

Histórico da Linha de Comando

Podemos usar o comando !! para repetir o comando anterior, ou usar sudo !! se esquecemos de executá-lo com sudo.

Se esquecemos a sintaxe de um comando ou estamos preguiçosos em relação a digitar algum comando, podemos usar history para mostrar o histórico de comandos. É bom combiná-lo com filtros, como o grep ou tail para encontrar exatamente o que precisamos.

Conclusão

Usar o terminal não é ciência espacial. Sistemas Unix e Linux são fáceis de entender e usar por seus projetos simples e ótima documentação. Espero que esse artigo tenha tornado-o mais confortável com a linha de comando e levado-o ao próximo nível de administração de aplicações web no terminal.

Quaisquer dúvidas ou há algum comando que você acredita deveria estar aqui, não deixe de comentar na seção abaixo.

Leitura Adicional

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.