Linux para leigos: mais comandos básicos

Agora que você já aprendeu os comandos básicos de manipulação de arquivos no artigo anterior, vamos ver alguns detalhes adicionais e mais uns comandos.

No MS-DOS e no Windows, para ocultar um arquivo altera-se um atributo. No Linux, qualquer arquivo que seu nome comece com um ponto é um arquivo oculto, que não será listado com um simples ls e nem aparecerá por padrão nos gerenciadores de arquivos gráficos. Em se tratando de linha de comando podemos ver como isso funciona da seguinte forma:

Saída do ls -a

Após criar e entrar no diretório de trabalho, criamos dois arquivos, um normal e um oculto. Com o ls sem parâmetros só é listado o arquivo normal. Com o parâmetro -a são listados os dois. Mas o que é aquele . e aquele .. que apareceram antes dos nomes dos arquivos? São entradas especiais que referenciam o diretório atual (.) e o diretório pai (..) do atual, ou um nível acima, na árvore de diretórios. Assim é possível voltar para o diretório pai com o comando cd ..

Experimente.

Entre novamente no diretório exercicios para criarmos um link simbólico.

Saída do ls -l

O comando ln com o parâmetro -l cria o link simbólico. Veja que o o comando ls com o parâmetro -l mostra a relação entre o link e o arquivo original. E pra que serve esse tal de link simbólico? Pense nele como um atalho para o arquivo ou diretório. É uma referência. Vamos exemplificar. Como o .arquivo_oculto.txt está vazio vamos preenchê-lo, redirecionando o conteúdo de outro arquivo para ele.

Conclui-se que tanto faz listar o conteúdo do arquivo propriamente, quanto o link que aponta para ele, que será exibido a mesma coisa.

O que acontece com o link se nós apagarmos o arquivo ao qual ele se referencia? Dizemos que o link ficou quebrado. Veja:

O cat não encontrará o arquivo para o qual o link aponta e apresentará uma mensagem de erro. Se apagarmos o link, nada acontece com o arquivo ao qual ele está associado.

Vamos aprender um comando para pesquisar uma palavra (ou sequência) em um arquivo e retornar apenas as linhas que contenham essa palavra. O grep.

Exemplo de saída do comando grep

Lembram que eu disse que o . representa o diretório corrente? Pois é. Copiamos o arquivo passwd do diretório /etc para o diretório atual. Com o ls verificamos que ele foi realmente copiado. O cat mostra na tela todo o conteúdo do arquivo e o grep filtra apenas as linhas que possuam a palavra root. Provavelmente só aparecerá uma linha na saída.

E se eu quiser ver apenas a primeira coluna de todas as linhas do arquivo? Para isso temos o comando cut.

Exemplo de saída do comando cut

Nesse caso estamos dizendo que queremos que o cut mostre a primera coluna, considerando que o separador entre elas é o caractere :, que no caso do arquivo passwd separa os campos.

Ok. E se eu quiser apenas a primeira coluna das linhas que contenham a palavra root?

Eu poderia usar um arquivo intermediário para conseguir isso, assim:

Mas existe uma maneira mais elegante de obter o mesmo retorno sem precisar criar um arquivo. Podemos lançar mão de um recurso poderoso, herdado do Unix, que são os dutos ou pipes. Na prática significa que a saída de um comando será a entrada de outro comando. Vamos ver como funciona.

Estamos pegando o resultado do primeiro comando (grep) e enviando para ser tratado pelo segundo (cut), usando o pipe |.

Tente ao contrário:

E compare o resultado.

Comandos novos aprendidos:

ln = cria links
grep = filtra linhas baseado em sequências
cut = filtra colunas por separadores ou blocos

além do pipe |

Por enquanto é só. Até a próxima pessoal!

Deixe uma resposta

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