Pesquisa de site

Série RHCSA: Como realizar o gerenciamento de arquivos e diretórios - Parte 2


Neste artigo, RHCSA Parte 2: Gerenciamento de arquivos e diretórios, revisaremos algumas habilidades essenciais que são exigidas nas tarefas diárias de um administrador de sistema.

Criar, excluir, copiar e mover arquivos e diretórios

O gerenciamento de arquivos e diretórios é uma competência crítica que todo administrador de sistema deve possuir. Isso inclui a capacidade de criar/excluir arquivos de texto do zero (o núcleo da configuração de cada programa) e diretórios (onde você organizará arquivos e outros diretórios), e descobrir o tipo de arquivos existentes.

O comando touch pode ser usado não apenas para criar arquivos vazios, mas também para atualizar os tempos de acesso e modificação de arquivos existentes.

Você pode usar file [filename] para determinar o tipo de um arquivo (isso será útil antes de iniciar seu editor de texto preferido para editá-lo).

e rm [filename] para excluí-lo.

Quanto aos diretórios, você pode criar diretórios dentro de caminhos existentes com mkdir [directory] ou criar um caminho completo com mkdir -p [/full/path/to/directory].

Quando se trata de remover diretórios, você precisa ter certeza de que eles estão vazios antes de emitir o comando rmdir [directory] ou usar o comando mais poderoso (manuseie com cuidado!) rm -rf [diretório]. Esta última opção forçará a remoção recursiva do [diretório] e de todo o seu conteúdo – portanto, use-a por sua própria conta e risco.

Redirecionamento e pipeline de entrada e saída

O ambiente de linha de comando fornece dois recursos muito úteis que permitem redirecionar a entrada e a saída de comandos de e para arquivos, e enviar a saída de um comando para outro, chamado redirecionamento e pipeline, respectivamente.

Para entender esses dois conceitos importantes, devemos primeiro entender os três tipos mais importantes de fluxos (ou sequências) de caracteres de E/S (entrada e saída), que são na verdade arquivos especiais, no sentido *nix da palavra.

  1. A entrada padrão (também conhecida como stdin) é, por padrão, anexada ao teclado. Em outras palavras, o teclado é o dispositivo de entrada padrão para inserir comandos na linha de comando.
  2. A saída padrão (também conhecida como stdout) é por padrão anexada à tela, o dispositivo que “recebe” a saída dos comandos e os exibe na tela.
  3. Erro padrão (também conhecido como stderr), é para onde as mensagens de status de um comando são enviadas por padrão, que também é a tela.

No exemplo a seguir, a saída de ls /var é enviada para stdout (a tela), assim como o resultado de ls /tecmint . Mas neste último caso, é o stderr que é mostrado.

Para identificar mais facilmente esses arquivos especiais, cada um deles recebe um descritor de arquivo, uma representação abstrata que é usada para acessá-los. O essencial a entender é que esses arquivos, assim como outros, podem ser redirecionados. O que isso significa é que você pode capturar a saída de um arquivo ou script e enviá-la como entrada para outro arquivo, comando ou script. Isso permitirá armazenar em disco, por exemplo, a saída de comandos para posterior processamento ou análise.

Para redirecionar stdin (fd 0), stdout (fd 1) ou stderr (fd 2), os seguintes operadores estão disponíveis.

Redirection Operator

Efeito

>

Redireciona a saída padrão para um arquivo que contém a saída padrão. Se o arquivo de destino existir, ele será sobrescrito.

>>

Acrescenta a saída padrão a um arquivo.

2>

Redireciona o erro padrão para um arquivo que contém a saída padrão. Se o arquivo de destino existir, ele será sobrescrito.

2>>

Acrescenta erro padrão ao arquivo existente.

&>

Redireciona a saída padrão e o erro padrão para um arquivo; se o arquivo especificado existir, ele será sobrescrito.

<

Usa o arquivo especificado como entrada padrão.

<>

O arquivo especificado é usado para entrada e saída padrão.

Ao contrário do redirecionamento, o pipelining é executado adicionando uma barra vertical (|) após um comando e antes de outro.

Lembrar:

  1. Redirecionamento é usado para enviar a saída de um comando para um arquivo ou para enviar um arquivo como entrada para um comando.
  2. Pipelining é usado para enviar a saída de um comando para outro comando como entrada.

Exemplos de redirecionamento e pipeline

Exemplo 1: Redirecionando a saída de um comando para um arquivo

Haverá momentos em que você precisará iterar uma lista de arquivos. Para fazer isso, você pode primeiro salvar essa lista em um arquivo e depois ler esse arquivo linha por linha. Embora seja verdade que você pode iterar diretamente na saída de ls, este exemplo serve para ilustrar o redirecionamento.

ls -1 /var/mail > mail.txt

Exemplo 2: Redirecionando stdout e stderr para /dev/null

Caso queiramos evitar que stdout e stderr sejam exibidos na tela, podemos redirecionar ambos os descritores de arquivo para /dev/null. Observe como a saída muda quando o redirecionamento é implementado para o mesmo comando.

ls /var /tecmint
ls /var/ /tecmint &> /dev/null

Exemplo 3: Usando um arquivo como entrada para um comando

Embora a sintaxe clássica do comando cat seja a seguinte.

cat [file(s)]

Você também pode enviar um arquivo como entrada, usando o operador de redirecionamento correto.

cat < mail.txt

Exemplo 4: Enviando a saída de um comando como entrada para outro

Se você tiver um grande diretório ou listagem de processos e quiser localizar um determinado arquivo ou processo rapidamente, você desejará canalizar a listagem para grep.

Observe que usamos to pipelines no exemplo a seguir. O primeiro procura a palavra-chave necessária, enquanto o segundo eliminará o comando grep real dos resultados. Este exemplo lista todos os processos associados ao usuário Apache.

ps -ef | grep apache | grep -v grep