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 determinar, 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 determinar o tipo de um arquivo (texto, executável, binário, etc.) e qual o esquema de codificação (= encoding) do 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.

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.

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

Veja tutorial no Cprogramming.com ou esse outro tutorial.

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.

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.

(De acordo com Andrew Singer, The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.

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.

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

(O nome é uma abreviatura de international conversion).  Muda o esquema de codificação de um arquivo de texto (por exemplo, de ISO-LATIN-1 para UTF-8).

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

pr -3 -t

sort

Ordena lexicograficamente as linhas de um arquivo de texto.  O funcionamento é afetado pela variável de ambiente LC_COLLATE.  Supondo que o arquivo de texto esteja em português e use codificação UTF-8, convém adotar LC_COLLATE="pt_BR.UTF-8".  Veja documentação na Wikipedia ou em man7.org.

LC_COLLATE=pt_BR.UTF-8 sort nome_do_arquivo

Para odenar lexicograficamente byte-a-byte (ignorando os caracteres que alguns blocos de bytes podem eventuamente representar), diga

LC_COLLATE=C sort nome_do_arquivo

valgrind

Defeitos na administração da memória, caça a segmentation faults, vazamentos de memória, e estatísticas de execução.  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. Eis o documento original, 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.