Algumas ferramentas do sistema Linux

[tools-silhouette.jpg]

O sistema GNU/Linux tem uma rica e poderosa caixa de ferramentas. Trata-se de uma coleção de programas (muitos escritos em C) que executam tarefas corriqueiras. Alguns desses programas são implementações de algoritmos e estruturas de dados discutidos neste sítio.

astyle

Faz indentação correta do arquivo-fonte de um programa C. Veja o sítio astyle.

bc

Basic calculator: arbitrary precision calculator language. Faz cálculos com números inteiros arbitrariamente grandes.  Veja documentação na Wikipedia, ou em man7.org.

bc

chardet

Universal character encoding detector: procura encontrar, heuristicamente, o esquema de codificação (= encoding) de um arquivo.

chardet nomes-de-arquivos

cmp

Semelhante ao diff Veja documentação na Wikipedia, ou em man7.org.

cmp file1 file2

diff

The UNIX file-difference utility. Compara as linhas de dois arquivos de texto. Mostra as linhas do primeiro que não estão no segundo e vice-versa.  Veja documentação na Wikipedia, ou em man7.org.

diff -b -B file1 file2

enscript

Converte arquivos de texto em arquivos no formato HTML, no formato PostScript, ou outros.  Exemplo:

enscript --highlight=c --color --language=html \
         --output=isort.html isort.c

converte o arquivo  isort.c no arquivo isort.html Veja documentação no sítio oficial, ou na Wikipedia.

file

Tenta descobrir qual o tipo (texto, executável, binário, etc.) e qual o esquema de codificação (= encoding) de um arquivo (ASCII, ISO-LATIN-1, UTF-8, etc.).  O comando

file -i *

faz um relatório sobre o conteúdo do diretório corrente. Veja manual no man7.org.

fmt

Um formatador de texto simples.  Veja documentação na Wikipedia, ou em man7.org.  Exemplo:

fmt -w65 <nome_do_arquivo>

gcc

GNU Compiler Collection:  compilador de programas em C.  Veja manual (versão 6.3) no gnu.org ou man7.org. Veja também o verbete GNU Compiler Collection na Wikipedia.  Exemplo:

gcc -std=c99 -Wall arquivo1.c arquivo2.c

Veja tutorial no Cprogramming.com ou numa página da disciplina CSE141 na Universidade da Califórnia em San Diego.

gdb

GNU debugger (depurador de programas = caçador de erros de programas).  Veja documentação no sítio oficial, ou na Wikipedia, ou em man7.org.  Veja também a folhinha GDB Quick Reference.  Exemplo:

gdb

Para aprender a usar o GDB leia os artigos Debugging with GDB e Debugging Segmentation Faults and Pointer Problems no sítio Cprogramming.com.  Veja também o tutorial da disciplina CSE141 na Universidade da Califórnia.

gprof

GNU profiler: dá estatísticas sobre a execução de um programa (quantas vezes cada função foi chamada, quanto tempo cada função consumiu, etc.). Veja documentação na Wikipedia, ou em man7.org.

gprof

grep

Procura um padrão (= pattern) em todos os arquivos de um diretório.  Veja documentação na Wikipedia, ou em man7.org.  Exemplo:

grep -r -s -i -I -e 'pattern' ./

hexdump

Filtro que exibe o conteúdo de arquivo no formato especificado pelo usuário. Veja também od.

iconv

Filtro que muda o esquema de codificação de um arquivo de texto (por exemplo, de ISO-LATIN-1 para UTF-8). (O nome do filtro é uma abreviatura de international conversion).  Exemplo:

iconv -f iso-8859-1 -t utf-8 in.txt -o out.txt

(A opção -f significa from e a opção -t significa to.)  Veja documentação no sítio oficial, ou na Wikipedia, ou em man7.org.

ispell

Verificador ortográfico (spelling checker).  Veja documentação na Wikipedia.

ispell -t files

less

Exibe o conteúdo de um arquivo no terminal. Veja documentação na Wikipedia, ou em man7.org.

less arquivo

make

Automatiza o processo de compilação de um programa. Veja a seção Make e Makefile no capítulo Como organizar e compilar um programa.  Veja documentação na Wikipedia, ou em man7.org.

make

Veja também o verbete Makefile na Wikipedia.

od

Octal dump: exibe todos os bytes de um arquivo, digamos xxx. Diga

od -t u1 -A d xxx

para exibir todos os bytes em notação decimal.  Diga

od -t o1 -A d xxx

para exibir os bytes em notação octal.  Diga

od -t c -A d xxx

para exibir os caracteres ASCII representados por cada byte.  Veja documentação na Wikipedia, ou em man7.org.  Veja também hexdump.

pr

Prepara arquivos de texto para impressão.  Veja documentação na Wikipedia, ou em man7.org.  Exemplo:

pr -3 -t

sort

Rearranja o conjunto de linhas de um arquivo de texto numa ordem de dicionário que respeita as tradições da língua local. Estamos supondo que a língua local é o português brasileiro e que a codificação do arquivo é UTF-8. Nesse caso, a ordem de dicionário é mais complexa que a lexicográfica pois mantém juntas todas as variantes de uma mesma letra. (Por exemplo, mantém as variantes A, á, Á, à, À, â, etc. junto com a letra a.)  Exemplo:

sort nome_do_arquivo

A escolha da língua local é determinada pela variável de ambiente LC_COLLATE do sistema.  Estamos supondo que o valor de LC_COLLATE é pt_BR.UTF-8. Para forçar esse valor, você pode invocar o programa dizendo

LC_COLLATE=pt_BR.UTF-8 sort nome_do_arquivo

Veja, por exemplo, o arquivo ordenado br-utf8.txt de todas as palavras do português brasileiro.  Veja também a documentação de sort na Wikipedia ou em man7.org.

valgrind

Encontra defeitos na administração da memória, caça segmentation faults, vazamentos de memória, e faz estatísticas de execução de um programa.  Veja documentação no sítio da ferramenta, ou na Wikipedia, ou em man7.org.

valgrind --leak-check=yes xxxx

Veja o artigo Using Valgrind to Find Memory Leaks and Invalid Memory Use no sítio Cprogramming.com.

wc

Word count:  conta o número de linhas, de palavras e de bytes de um arquivo ASCII.  Se o seu arquivo é xxx.txt, basta dizer

wc xxx.txt

Veja a versão do programa wc escrito por Donald Knuth e Silvio Levi. Veja a documentação do programa antes de sua conversão automática em código C. Isso foi escrito por Knuth e Levi para ilustrar o sistema CWEB de programação letrada.

Veja documentação na Wikipedia, ou em man7.org.