Home / Linux - Tutoriais e Notícias / Comandos GNU/Linux – Introdução ao CLI

Comandos GNU/Linux – Introdução ao CLI

Comandos são introduções passadas ao sistema para executar uma determinada tarefa. No mundo GNU/Linux, o conceito de comandos é diferente do padrão MS-DOS. Um comando é qualquer arquivo executável, que pode ser ou não criado pelo usuário.

Entre as vantagens da linha de comando do GNU/Linux (shell) está a variedade de comandos que ele oferece, o que torna a administração do sistema rápida e eficaz.

O shell é o responsável pela interação entre o usuário e o sistema operacional, interpretando os comandos. É nele que os comandos são executados.

O comando ls

O comando ls possui muitos parâmetros. Veremos aqui os mais utilizados. A opção mais comum para este comando é o -l, que lista os arquivos ou diretórios de uma forma bem detalhada. Exemplo:

$ ls -l /
drwxr-xr-x   2 root root 4096 abr 25 06:15 bin

No exemplo anterior, pedimos para listar os arquivos e diretórios que se encontram na raiz do sistema (/). No meu caso, a primeira linha de saída do comando foi:

drwxr-xr-x   2 root root  4096 abr 25 06:15 bin

Vamos agora entender os campos que compõem esta linha, iniciando pelo primeiro caractere, d, que indica que se trata de um diretório. Poderia ser também:

  • l: Indica que se trata de um link;
  • : O hífen indica que se trata de um arquivo regular;
  • c: Indica que o arquivo é um dispositivo de caractere (sem buffer);
  • b: Indica que o arquivo é um dispositivo de bloco (com buffer);
  • u: Sinônimo para o tipo c, indica que é um dispositivo de caractere (sem buffer);
  • s: Indica que o arquivo é um socket;
  • p: Indica que o arquivo é um FIFO, named pipe (pipe nomeado).

FIFO — Sigla para First In, First Out , que em inglês significa “primeiro a entrar, primeiro a sair”. São amplamente utilizados para implementar filas de espera. Os elementos vão sendo colocados no final da fila e retirados por ordem de chegada. Pipes (|) são um exemplo de implementação de FIFO.

Buffer é uma região de memória temporária usada para escrita e leitura de dados. Normalmente, os buffers são utilizados quando existe uma diferença entre a taxa em que os dados são recebidos e a taxa em que eles podem ser processados.

Socket é um meio de comunicação por software entre um computador e outro. É uma combinação de um endereço IP, um protocolo e um número de porta de protocolo.

O campo rwxr-xr-x representa as permissões. Vamos estudá-las mais à frente neste livro.

O campo root root informa o dono do diretório ou arquivo, que neste caso é o root, e depois seu grupo primário, que também é root.

O campo 4096 indica o tamanho do arquivo ou diretório.

O campo abr 25 06:15 informa a data e hora de criação do arquivo ou diretório.

O campo bin informa o nome do arquivo ou diretório; neste caso, é o diretório /bin.

O comando ls -a

O comando ls -a lista todos os arquivos, inclusive os arquivos ocultos. Exemplo:

$ ls -a /root
.config     .gvfs Público     xorg.conf.new

Na saída da minha primeira linha, observe que temos arquivos que se iniciam com ponto (.). Esses arquivos são ocultos. No Linux, arquivos e diretórios ocultos são iniciados por um ponto.

O comando ls -R

O comando ls -R é utilizado para listar arquivos de forma recursiva, ou seja, listar também os subdiretórios que estão dentro de um determinado diretório. Exemplo:

$ ls -R /
/proc/5470/task/5508

Observe que ele listou o caminho completo de um determinado diretório, /proc/5470/task/5508.

Criar arquivo

Para criar um arquivo, podemos simplesmente abrir um editor de texto e salvá-lo, mas existem outras formas. A mais simples é usando o comando touch:

$ touch arquivo1

Curingas

No GNU/Linux, usamos curingas para especificar um ou mais arquivos e diretórios. Com este recurso, podemos listar, copiar, remover e mover diversos arquivos e diretórios. São cinco tipos de curingas no Linux:

  • *: Utilizado para um nome completo ou restante de um arquivo/diretório.
  • ?: Este curinga pode substituir uma ou mais letras em determinada posição.
  • !: Exclui a operação.
  • [padrao]: É utilizado para referência a uma faixa de caracteres de um arquivo/diretório.
  • {padrao}: Expande e gera strings para pesquisa de padrões de um arquivo/diretório.

Vamos a um exemplo. Precisamos criar 3 arquivos, chamados arq1, arq2 e arq3, dentro do diretório /home/juliano/ usando o recurso curinga. O comando seria:

$ touch arq{1,2,3}

Segundo exemplo:

No diretório atual, temos diversos arquivos de imagens, com extensões do tipo .png, .jpeg, .gif, .pdf, entre outros formatos. Eu preciso listar somente as imagens que tenham a extensão .png; neste caso, uso o recurso curinga, realizando o comando:

$ ls *.png 

Terceiro exemplo:

Podemos realizar exceções. No meu diretório atual, tenho os arquivos arq1.txt, arq2.txt e arq3.txt, criados anteriormente. Quero listar todos eles, exceto o arq2.txt:

$ ls arq[!2].txt

Criando diretórios

Um diretório é uma pasta onde você guarda seus arquivos. O comando mkdir é utilizado para criar um diretório no sistema. Exemplo:

$ mkdir videos

Podemos criar diretórios de forma recursiva, isto é, diretórios com subdiretórios, executando a sintaxe -p. Exemplo:

$ mkdir -p videos/terror

Com a opção -p, criamos toda uma estrutura de diretórios.

Removendo arquivos/diretórios

O comando rm é utilizado para apagar arquivos e diretórios. Para apagar o arquivo documento.txt, por exemplo, usamos o comando:

$ rm documento.txt

Podemos usar a opção -i para forçar a confirmação de remoção do arquivo:

$ rm -i documento.txt

Para removermos diretórios, temos que usar a opção de recursividade -r ou -R. Exemplo:

$ rm -R /home/juliano/videos

Nesse caso, estamos removendo o diretório videos, que está localizado dentro dos diretórios /home/juliano.

Para removermos diretórios que estejam vazios, podemos usar o comando:

$ rmdir diretorio

O comando rmdir só permite a exclusão de diretórios vazios.

Copiar arquivos/diretórios

O comando cp serve para fazer cópias de arquivos e diretórios. Para lidarmos com diretórios, temos que usar a opção de recursividade -r ou -R, assim como o comando rm. Exemplos:

$ cp arquivo-origem arquivo-destino
$ cp arquivo-origem caminho/diretório-destino/
$ cp -R diretório-origem nome-do-destino
$ cp -R diretório-origem caminho/diretório-destino/

Uma opção interessante no comando cp é a -p, que permite que, na cópia, não se percam as informações do arquivo, tais como data e hora de criação, donos e permissões. Exemplo:

$ cp -p arquivo-origem arquivo-destino

Movendo arquivos

O comando mv é utilizado tanto para mover arquivos e diretórios quanto para renomeá-los. Exemplo:

$ mv arquivo1 arquivo2

Nesse caso, estamos renomeando arquivo1 para arquivo2. Mais exemplos de uso do comando mv:

$ mv arquivo caminho/diretório-destino/
$ mv arquivo novo-nome
$ mv diretório novo-nome
$ mv diretório caminho/diretório-destino/

Conclusão

Deve-se ter muito cuidado ao executar tarefas de manipulação de arquivos com o usuário root. Como ele tem poder administrativo sobre todo o sistema, você poderia excluir arquivos importantes e corromper o seu sistema. Sempre observe os caminhos de destino no momento de mover ou copiar um arquivo e tenha atenção redobrada ao remover conteúdo.

Marcado:

Deixe um Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *