Introdução

Este guia aborda os comandos básicos do unix e também serve de auxilio para o linux. Se hover a necessidade de publicar uma aplicação em um servidor remoto non-windows, espero que este conteúdo ajude!

Comandos

man

Mostra um manual de utilização do comando.

sintaxe: man <arquivo>

  • man ls - exibe o manual de comandos do ls;

Para navegar utilize as setas e para sair do manual é só digitar q;

ls

Lista o conteúdo de um diretório.

sintaxe: ls [opções] <arquivo>

  • ls *.txt - lista todos os arquivos texto;
  • ls *backup* - lista todos os arquivos que contenham no nome ou extensão backup;
  • ls -t - lista os arquivos ordenados por data de modificação crescente;
  • ls -tr - lista os arquivos ordenados por data de modificação decrescente (reverse);
  • ls -l - lista as permissões dos arquivos no diretório atual;
  • ls *.txt | more - Caso você tenha muitos arquivos no diretório, para paginar o conteúdo basta adicionar o | more após o comando;

cd

Muda do diretório atual para o diretório de destino.

sintaxe: cd <destino>

  • cd foo - muda para o diretório foo;
  • cd /foo/1/ - muda para o diretório 1 do diretório foo.

Abreviações de diretório:

  • .. - muda para o diretório acima;
  • ... ou ..\..\ - muda para dois diretórios acima, a quantidade de pontos(-1) indica o nível de diretórios acima;
  • ~/ - muda para o diretório home;

pwd

Mostra o nome do diretório atual.

cat

Exibe o conteúdo de um arquivo ou mais na saída padrão (output).

sintaxe: cat <arquivo>

  • cat foo.txt - exibe o conteúdo do arquivo foo.txt;
  • cat *.txt - exibe o conteúdo de todos os arquivos texto;
  • cat *.txt > all.txt - combina todos os arquivos texto e um arquivo único arquivo chamado all.txt;
  • cat *.foo >> all.txt - combina todos os arquivos da extensão .foo e acrescenta no final do arquivo chamado all.txt;

more

Pagina o conteúdo de saída, que pode ser um arquivo ou resultado de uma execução de script por página.

sintaxe: [comando] | more

  • ls *.txt | more - Lista todos os arquivos *.txt por página;
  • cat foo.txt | more - Exibe o resultado de um arquivo por página;

touch

Cria um arquivo novo caso ou atualiza a data de modificação do arquivo.

sintaxe: touch [opcoes] | <arquivo>

  • touch foo.txt - Cria um arquivo foo.txt ou atualiza a data caso exista;
  • touch -c foo.txt - Atualiza a data do arquivo foo.txt, caso exista;

cp

Copia um ou mais arquivos.

sintaxe: cp [opcoes] <origem> <destino>

  • cp foo.txt foo.md - copia o arquivo foo.txt para o destino definido;
  • cp foo.txt /tmp - copia o arquivo foo.txt para o diretório temporário /tmp;
  • cp -R /foo /tmp - copia um diretório e todos os conteúdos recursivamente;

rm

Remove um arquivo ou vários.

ATENÇÃO, cuidado com este comando, veja abaixo a trágica história que pode acontecer ao utilizar este comando de maneira errada veja a notícia

sintaxe: rm [opcoes] <arquivo> <destino>

  • rm foo.txt - remove o arquivo foo.txt;
  • rm *.txt - remove todos os arquivos texto com extensão .txt;
  • rm -rf /tmp - remove todos os arquivos do diretório temporário, no modo força bruta, não serão exibidas mensagens como: Tem certeza que o senhor deseja apagar este arquivo tão importante?

mv

O comando mv é utilizado para mover arquivos ou diretórios e também para renomeá-los, como assim?, se você mover um arquivo para o mesmo diretório com o nome diferente o que irá acontecer?

Homem engraçado dizendo ok

sintaxe: mv <origem> <destino>

  • mv foo.txt /tmp - move o arquivo foo.txt para o diretório temporário;
  • mv foo.* /tmp - move todos os arquivos com o nome foo para o diretório temporário;
  • mv foo.txt foo.md - renomeia o arquivo foo.txt para foo.md;
  • mv ~/foo /tmp/ - move o diretório foo para o diretório temporário;

mkdir

Cria diretórios.

sintaxe: mkdir <diretorio>;

  • mkdir foo_temp - cria o diretório foo_temp no diretório atual;
  • mkdir /tmp/foo/1- Cria o subdiretório 1 para o diretório foo;

rmdir

Remove um diretório vazio.

sintaxe: rmdir <diretorio>;

  • rmdir ~/foo - remove o diretório foo, caso esteja vazio;

chown

Altera o usuário dono do diretório ou arquivo.

sintaxe: chown <diretorio>;

  • chown will ~/foo - define que o usuário will é dono do diretório foo;
  • chown -R will ~/foo - define que o usuário will é dono do diretório foo recursivamente, ou seja, todas os diretórios e arquivos abaixo;

chmod

Altera as permissões dos usuários no diretório ou arquivo.

Como foi explicado no comando ls -l verifica as permissões de um diretório ou arquivo.

sintaxe: chmod <opcoes> <permissoes> <diretorio>;

A opção -R define que as permissões serão aplicadas recursivamente.

As permissões são definidas por três números, o primeiro define as permissões do usuário, a segunda do grupo e a terceira dos outros usuários fora do grupo;

Existem duas formas de utilização do comando.

Forma de utilização (1)

chmod u=rwx,g=rx,o=r foo.txt

    1. Define que o usuário pode ler, gravar e executar;
    1. Define que o grupo pode ler e executar;
    1. Define que os outros usuários podem ler o arquivo;

Forma de utilização (2)

chmod 754 foo.txt

Este comando tem o mesmo efeito da primeira forma de utilização, os números variam do 0 ao 9.

Valor Descrição
0 Nenhuma permissão
1 Execução
2 Escrita
4 Leitura

Ok e de onde vem este número 7, vamos aos cálculos?

Homem contando até 3

4 + 2 + 1 = 7 = rwx

4 + 1 = 5 = rw

4 = 4 = r

Outras utilizações:

  • chmod +x foo.txt - atribui a permissão de execução para o arquivo foo.txt;

  • chmod -R 777 /foo - atribui as permissões totais para os usuários, grupos e outros usuários recursivamente;

find

Procura arquivos pelo nome e também possibilita a busca pelo conteúdo do arquivo.

sintaxe: find <diretorio> [opcoes] <conteudo>;

  • find -name foo.* - procura um arquivo com o nome foo independente da extensão, a opção -name indica que a busca será pelo nome do arquivo;
  • find /tmp -name foo.txt - procura um arquivo com o nome foo.txt no diretório /tmp;
  • find -name '*.txt' | xargs grep "hello" - procura um arquivo texto com o conteúdo hello em qualquer parte do arquivo;

df

Mostra o espaço livre e ocupado de cada partição.

sintaxe: df [opcoes]

  • df -a - mostra o espaço livre/ocupado em blocos;
  • df -k - mostra o espaço livre/ocupado em KiloBytes (KB);
  • df -m - mostra o espaço livre/ocupado em MegaBytes (MB);
  • df -h - mostra o espaço livre/ocupado em MB, KB, GB;
  • df -l - lista somente sistema de arquivos locais;
  • df -T - lista o tipo de sistema de arquivos de cada partição (ext4, vfat, ...)

vi

Edita um arquivo.

sintaxe: vi <arquivo>

O vi é o editor disponível na maioria dos sistemas Unix, não aprofundaremos as técnicas de edição deste editor pois é um assunto extenso;

  • vi foo.txt - abre o arquivo foo.txt;

Comandos do vi, ao pressionar a tecla ESC, digitar os comandos abaixo;

  • :w - grava as alterações do arquivo;
  • :q - sai da edição do arquivo;
  • :q! - sai da edição do arquivo sem gravar as alterações de forma forçada;
  • :wq - sai e grava as alterações;

Para conhecer os comandos de edição no vi recomendo ler o manual utilizando man vi;

Conclusão

Foram abordados exemplos de utilização dos comandos e os parâmetros mais utilizados, informações detalhadas podem ser encontradas no manual de cada comando, até a próxima.

Até a pŕoxima

Referências