Linux Essencial/Lição Visualização de arquivos
- Objetivo(s): Apresentar a forma de visualização de arquivos em ambientes de texto.
- Direitos autorais e licença: Veja notas de direitos autorais e licença no final da lição.
Comandos de processamento de texto
editarOs comandos de processamento de texto se limitam a executarem a leitura de arquivos. Alguns deles também executam simples operações baseadas no conteúdo de arquivos, apresentando o resultado na tela. Para edição propriamente dita de arquivos de texto veja o próximo tópico “Editores de texto”.
No sistema operacional Linux existem arquivos que sofrem alterações geradas pelo próprio sistema, não havendo a necessidade do usuário manipular esses arquivos. Existem, também, comandos que permitem a abertura e leitura do arquivo sem receber novos conteúdos do teclado, ou que permitem apenas saber sobre o seu conteúdo. Os arquivos apresentados neste tópico são para exemplificação, não havendo a necessidade de alteração nos mesmos. Por isso é necessário ter cuidado na sua manipulação.
cat
editarO cat é um comando simples que permite a leitura do conteúdo do arquivo. É utilizado quando é necessário visualizar o conteúdo de um arquivo mas não é necessário modificá-lo. Ao ser dado o comando, ele apresenta o conteúdo do arquivo na tela e logo após retorna o prompt de comando para o usuário. Com isso não existe a paginação, quebra do conteúdo por tela, e todo o conteúdo é apresentado. Para fazer a sua leitura é necessário utilizar comandos de retorno ou quebra de página.
O comando de retorno de tela é ativado pressionando as teclas Shift+Page UP para subir a tela, ou shift+Page Down para descer a tela. A quebra de página pode ser vista no capítulo sobre redirecionamento.
Sintaxe:
cat arquivo
Exemplo:
$cat /etc/fstab /dev/hda5 swap swap defaults 0 0 /dev/hda6 swap swap defaults 0 0 /dev/hda7 / ext3 defaults 1 1 /dev/hdb /mnt/cdrom iso9660 noauto,ro,owner 0 0 /dev/fd0 /mnt/floppy ext3 auto,rw 0 0 none /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
Opção:
-n - mostra o número de linhas.
Exemplo:
# cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 10.1.1.26 localhost.domain localhost
No exemplo foi listado o conteúdo do arquivo /etc/hosts na tela. Exemplo:
# cat -n hosts 1 127.0.0.1 localhost.localdomain localhost 2 10.1.1.26 localhost.domain localhost
A primeira coluna representa o valor da referente linha.
tail
editarO comando tail é semelhante a um rodapé, servindo para mostrar apenas o final de um arquivo na tela. Por padrão são mostradas apenas as 10 últimas linhas. Sintaxe:
tail [opções] arquivo
Opção:
-n X - essa opção é utilizada para definir o número de linhas que deverá ser apresentado na tela, sendo que a contagem é realizada da última linha para a primeira. O caractere X representa a quantidade de linhas a serem apresentadas;
-f - não fecha o arquivo após a apresentação do mesmo. Em outras palavras, continua exibindo o fim do arquivo, monitorando alterações feitas no mesmo.
Exemplo:
[root@lab20 /etc]# tail inetd.conf # #auth stream tcp nowait nobody /usr/sbin/in.identd in.ident d -l -e -o # auth stream tcp nowait nobody /usr/sbin/ident2 ident2 -a -r -n -s # # Linuxconf Web Interface: # # linuxconf stream tcp wait root /bin/linuxconf linuxconf --http # # End of inetd.conf #swat stream tcp nowait.400 root /usr/sbin/swat swat
Para o exemplo foi selecionado o arquivo /etc/inetd.conf. Exemplo:
[root@lab20 /etc]# tail -n 5 inetd.conf # Linux Web Interface; # # linuxconf stream tcp wait root /bin/linuxconf linuxconf --http # # End of inetd.conf
Nesse exemplo foi limitado a quantidade de linhas que deveriam ser apresentadas na tela. Para maiores detalhes: man tail
head
editarO comando head é parecido com o tail, tendo como única diferença que o head apresenta o início do arquivo. Por padrão as 10 primeiras linhas são exibidas. Sintaxe:
head [opção] arquivo
Exemplo:
[root@lab20 /etc]# head inetd.conf # # inetd.conf This file describes the services that will be available # through the INETD TCP/IP super server. To re-configure # the running INETD process, edit this file, then send the # INETD process a SIGHUP signal. # # Version: @(#)/etc/inetd.conf 3.10 05/27/93 # # Authors: Original taken from BSD UNIX 4.3/TAHOE. # Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
Opção:
- -n X: lista as primeiras X linhas
Exemplo:
[root@localhost /etc]# head -n 7 inetd.conf # # inetd.conf This file describes the services that will be available # through the INETD TCP/IP super server. To re-configure # the running INETD process, edit this file, then send the # INETD process a SIGHUP signal. # # Version: @(#)/etc/inetd.conf 3.10 05/27/93
Para maiores detalhes: man head.
more
editarO comando more é utilizado para a paginação de arquivos, tendo como principal função a paralisação da listagem, ou seja, ao ser aplicado sobre um arquivo muito grande, quando ele completar a tela, será parado e o usuário poderá fazer a leitura apresentada. Para continuar basta teclar <enter> para passar uma linha, ou teclar <espaço> para passar uma tela inteira. Para sair do comando pode ser feita passando todas as páginas ou teclando <q>.
Sintaxe:
more arquivo
Arquivo é o conteúdo que deverá ser lido. Esse comando permite também a leitura de arquivos compactados com o gzip, extensão .gz, através do comando zmore.
Sintaxe:
zmore arquivo.gz
less
editarO comando less é parecido com o comando more, mas com alguns recursos a mais. Um dos recursos atribuídos ao less é a possibilidade de caminhar pelo texto utilizando as setas para cima ou para baixo, ou pageUp/pageDown permitindo assim retroceder o texto, caso haja a necessidade disso. Para fechar o comando basta teclar <q>. Sintaxe:
less arquivo
Onde arquivo possui o conteúdo que se deseja ler. O less permite a leitura de arquivos compactados com o gzip, extensão .gz, através do comando zless.
Sintaxe:
zless arquivo.gz
Onde arquivo.gz está compactado.
WC
editarAntes de abrir um arquivo, até mesmo para leitura, pode ser interessante saber a quantidade de linhas, caracteres ou palavras ali contidos. O comando wc (word count) faz exatamente isso. Sintaxe:
wc [opcoes] arquivo
Opções:
-c - lista o total de caracteres do arquivo
-w - lista o total de palavras do arquivo
-l - lista o total de linhas do arquivo
Exemplo:
# wc host.conf 2 4 26 host.conf
No exemplo pode ser encontrado os seguintes valores:
O número 2 significa o número de linhas.
O número 4 significa o número de palavras.
O número 26 significa o número de caracteres.
6.8 sort
editarO comando sort serve para ordenar um determinado texto, linha-a-linha. Por padrão o resultado é exibido em tela. Possíveis métodos de ordenação incluem ordem alfabética e numérica. Sintaxe:
sort [opção] arquivo
opção:
-b - ignora as linhas que estão em branco;
-f - não faz a distinção entre maiúsculas e minúsculas;
-n - ordena valores numéricos
-o arquivo - grava a saída do resultado para dentro do arquivo indicado.
Exemplo:
#sort /etc/group adm:x:4:root,adm,daemon bin:x:1:root,bin,daemon cdrom:x:24: console:x:16: daemon:x:2:root,bin,daemon ftp:x:50: games:x:20: lp:x:7:daemon,lp mail:x:12:mail man:x:15: named:x:235: nobody:x:65534: ntp:x:105: root:x:0:root sys:x:3:root,bin,adm tty:x:5: users:x:100: uucp:x:14:uucp virlei:x:500:
Exercícios de Revisão
editar1. Qual o comando utilizado para visualizar as 10 primeiras linhas do arquivo /etc/passwd?
2. Crie um arquivo com o conteúdo de uma página qualquer da internet e organize as linhas do arquivo em ordem alfabética.
3. Qual a diferença entre os comandos more e less?