




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Programação Linux
Tipologia: Notas de estudo
1 / 126
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































Apostila de CVS. Versão 0.4. Distribuída na forma GFDL (http://www.gnu.org/licenses/licenses.html#TOCFDL). Copyright (C) 2002 - André Duarte Bueno. Esta apostila é “textbook” livre; você pode redistribuí-la e/ou modificá-la sob os termos da Licença Pública de Documentos da GNU (GFDL), conforme publicada pela Free Software Foundation; versão 1.2 da Licença como (a seu critério) qualquer versão mais nova; preservando as seções ¨no Invariant Sections no Front-Cover Texts, and no Back-Cover Texts¨. Uma cópia da licença é localizada no capítulo GNU Free Documentation License. Esta apostila é “software” livre; você pode redistribuí- la e/ou modificá-la sob os termos da Licença Pública Geral GNU, conforme publicada pela Free Software Foundation; tanto a versão 2 da Licença como (a seu critério) qualquer versão mais nova. Desenvolvida no Laboratório de Meios Porosos e Propriedades Termofísicas (http://www.lmpt.ufsc.br) e no Núcleo de Pesquisa em Construção (http://www.npc.ufsc.br), com apoio do Curso de Pós-Graduação em Engenharia Mecanica (http://www.posmec.ufsc.br) e da Universidade Federal de Santa Catarina (http://www.ufsc.br).
1.1 Diretórios importantes para o programador....................... 22 1.2 Programas úteis para desenvolvedores de software no ambiente GNU/Linux...... 24
6.1 Bibliotecas usuais.................................... 49
8.1 Comandos do gdb.................................... 61
12.1 Sequência executada pelo programador para montagem de programas multi-plataforma usando o padrão GNU.................................. 79 12.2 Sequência executada pelo usuário............................ 79
Esta parte da apostila contém dicas e instruções para montagem de programas usando o formato multiplataforma da GNU. Inicialmente apresenta-se uma lista de comandos do shell e de programas úteis no ambiente GNU/Linux. Descreve-se o programa, sua utilidade, os arquivos de configuração e os parâmetros opcionais. Quando conveniente apresenta-se um exemplo. A seguir descreve-se o uso dos editores emacs e vi, e os programas diff, patch e indent. Descreve- se o compilador gcc/g++ e o make para montagem de programas pequenos. Como montar bibliotecas, o uso do debuger e do profiler, como distribuir seu código, como documentar seus programas. Depois, apresenta-se um roteiro para montar programas completos usando o padrão GNU.
Este resumo tem como base as páginas man e os manuais públicos do make (3.78), egcs (1.1.2), egcs++ (1.1.2), aucotonf (2.13), automake (1.4), libttol^1 , o manual do doxygen e artigos da revista do GNU/Linux (http://www.revistadolinux.com.br). Também foram consultadas as referências [13, 9, 12, 11, 3] [2, 10, 1, 4] [8] [7, 5].
(^1) Estes manuais são encontrados, em inglês, no site da gnu (http://www.gnu.org).
questões de clareza técnica e por questões de crédito ao projeto GNU que forneceu o seu sistema operacional para ser adaptado ao kernel Linux. Sempre que você quiser falar do sistema operacional use o termo GNU/Linux. Desta forma você estará levando adiante os ideais do software livre que estão representados no projeto GNU.
1.2 O básico do GNU/Linux, Unix
Apresenta-se a seguir um guia com alguns comandos de shell do GNU/Linux, Unix, MacOS X, e que são úteis para programadores.
Lista-se a seguir alguns comandos de shell úteis para programadores. Uma descrição mais de- talhada dos mesmo pode ser encontrada em apostilas/livros sobre o GNU/Linux, Unix. Você pode obter informações simplificadas sobre estes comandos usando o programa man (de manual). Use o comando man nomeDoPrograma para ver um manual simples do programa. Versões mais atuali- zadas dos manuais destes programas são obtidos com info nomeDoPrograma. Você também pode obter um help resumido usando nomeDoPrograma - -help. Nos exemplos apresentados a seguir, os comentários após o sinal # não devem ser digitados. Se você já é um usuário experiente do GNU/Linux pode pular esta parte.
Diretórios
. Diretório atual. .. Diretório pai (Ex: cd ..). ~ Diretório HOME do usuário (Ex: cd ~).
cd Muda diretório corrente
cd /home/philippi #Caminho completo cd ../../usr #Caminho relativo cd - #Alterna para diretório anterior
pwd Mostra a path do diretório corrente.
ls Lista o conteúdo do diretório.
-l Lista detalhada. -a Mostra executável e ocultos. -b Número de links do arquivo. -m Mostra tudo em uma linha. -F Mostra \ dos diretórios. -x Mostra em colunas. (^3) Uma excelente apostila de referência sobre o GNU/Linux é encontrada em http://www.cipsga.org.br.
Apostila de Programação Para Linux/Unix www.lmpt.ufsc.br - Eng. André Duarte Bueno
ls -F | egrep / #mostra diretórios
tree Lista em árvore.
tree -d #Lista somente os diretórios
mkdir Cria diretório.
mkdir test mkdir d1 d2 #Cria diretórios d1 e d mkdir d1/d2 #Cria d1 e o filho d mkdir -p d3/d31/d32 #Cria os diretórios d3 d3/d31 d3/d31/d
mvdir Move ou renomeia um diretório.
rmdir Remove o diretório.
-R #Recursivo, elimina subdiretórios (usar com cuidado).
rmdir -p d3/d31/d32 #Remove todos os diretórios rm -R diretorio #Remove o diretório e seus sub-diretórios
Arquivos
cp a1 a2 Cópia arquivos e diretórios.
-b Cria backup de a2. -i Copia iterativa. -r Cópia recursiva. -P Cópia arquivo e estrutura de diretório. -p Preserva as permissões e horas. -v Modo verbose. -b Cria backup.
cp a1 a
mv Move arquivos (renomeia arquivos).
-b Cria backup. -v Modo verbose. -i Iterativa.
mv a1 a2 #Renomeia arq a1 para a mv d1 d2 #Renomeia dir d1 para d mv -b a1 a2 #Renomeia com backup
Apostila de Programação Para Linux/Unix www.lmpt.ufsc.br - Eng. André Duarte Bueno
head n Mostrar as primeiras n linhas de um arquivo.
head -5 nome.txt
tail n Exibe arquivo a partir de uma linha.
tail -20 nome.txt
nl Número de linhas do arquivo.
wc Número de linhas, de palavras e de bytes do arquivo.
cat arq1 Mostra conteúdo do arquivo arq1.
cat a1 a2 Mostra arquivos a1 e depois a
cat -n a2 Mostra conteúdo de a2 com numeração
cat f1 #Mostra arquivo f #Cria novo arquivo: cat > texto.txt ...digita o texto... contrl+d #Finaliza arquivo cat a1 a2 > a3 #Concatena a1 e a2 e armazena em a cat a > > b #Acrescenta ao final do arquivo b o arquivo a ls -la | cat -n
less arq Mostra conteúdo do arquivo (+completo)
#/str para localizar a string str no texto visualizado less arq #q para sair
file arq Informa o tipo de arquivo.
file * file * | egrep directory
tr Converte cadeias de caracteres em arquivos.
ls | tr a-z A-Z #de minúsculas para maiúsculas
xargs Facilita passagem de parâmetros para outro comando. xargs [opções][comando [opções]]
#Procura e deleta arquivos *.cpp
find /tmp -name "*.cpp" | xargs rm
Apostila de Programação Para Linux/Unix www.lmpt.ufsc.br - Eng. André Duarte Bueno
Pesquisa dentro de arquivos
grep O grep é usado para pesquisar o que tem dentro de um arquivo.
-n Mostra número da linha. -F O grep funciona como o fgrep. -c Retorna número de coincidências. -i Desconsidera maiúsculas/minúsculas. -s Desconsidera mensagens de erro. -v Modo verbose. -A n Lista também as n linhas posteriores. -B n Lista também as n linhas anteriores. -r Ordem inversa. -f Usa arquivo auxiliar.
man grep #Mostra detalhes do grep greep -v buble sort.c ls -l | egrep "Julia" #Lista diretório e pesquisa pelo arquivo julia ls -la | egrep "Sofia" grep ^[0-9] guide.txt grep "(b)" guide.txt grep arqAux guide.txt # Pesquisa em guide.txt usando arqAux
sort Ordena arquivos.
-c Verifica arquivo. -o Especifica nome arquivo saída. -d Ordem dicionário. -f Despreza diferença maiúscula/minúscula. -t Atualiza data e hora. -s Modo silencioso.
sort -r arquivo ls | sort -r #Ordem invertida #Ordena a listagem de diretório a partir da 4 coluna,considerando número ls -l |egrep rwx | sort +4n
Compactação e backup
zip Compatível com pkzip/pkunzip do DOS.
unzip Unzipa arquivos zip.
Apostila de Programação Para Linux/Unix www.lmpt.ufsc.br - Eng. André Duarte Bueno
tar O tar permite a você agrupar um conjunto de arquivos em um único, facilitando o backup (ou o envio pela internet). Pode-se ainda compactar os arquivos agrupados com o gzip.
-c Cria novo arquivo. -v Modo verbose. -z Descompacta arquivos (*.tar.gz). -f NomeArquivo. -w Modo iterativo. -r Acrescenta no modo apende. -x Extrai arquivos. -A Concatena arquivos. -d Compara diferenças entre arquivos.
#Empacotando origem em destino tar -cf origem > destino.tar #Empacotando e já compactando tar -cvzf destino.tar.gz origem #Desempacotando tar -xf nome.tar tar -xzvf nome.tgz tar -xzvf nome.tar.gz tar -xvwf nome.tar #Backup completo no dispositivo /dev/fd tar cvfzM /dev/fd0 / #Backup tar xvfzM /dev/fd0 #Restauração
Diversos
[]* Metacaracter.
[?] Caracter coringa.
clear Limpa a tela.
date Mostra data e hora.
date -s ¨8:50¨ #Acerta hora para 8:
Apostila de Programação Para Linux/Unix www.lmpt.ufsc.br - Eng. André Duarte Bueno
Alguns programas do GNU/Linux aceitam o uso de expressões regulares (principalmente os da GNU). O uso de expressões regulares é útil nas pesquisas de arquivos com find, no uso do emacs, entre outros. Alguns caracteres são usados para passar parâmetros para o interpretador das expressões regulares, para usá-los na pesquisa, deve-se preceder o caracter com /. Veja abaixo alguns exemplos de expressões regulares.
[xyz] Qualquer das letras dentro do colchete.
[^xy] Exceto x e y.
[t-z] De t até z (tuvwxyz).
[a-zA-Z] Qualquer letra.
[0-9] Qualquer número.
^ No início do parágrafo.
$ No fim do parágrafo.
< No início da palavra.
<search Palavra que inicia com search.
> No fim da palavra.
>search Palavra que termina com search.
z* Letra z, 0 ou mais vezes: z,zz,zzz,zzzz,...
Z+ Letra Z, 1 ou mais vezes.
A? Letra A pode ou não fazer parte.
revistas? revista ou revistas.
A{m} Letra A m vezes.
[0-9]{3} Número de 3 dígitos.
Z{3,5} Letra Z de 3 a 5 repetições zzz,zzzz,zzzzz
K{,7} Até 7 repetições de K.
K{3,} No mínimo 3 repetições de K.
{0,} O mesmo que *.
{1,} O mesmo que +.
{0,1} O mesmo que ?.
() Usado para deixar a expressão mais clara (precedências).
Apostila de Programação Para Linux/Unix www.lmpt.ufsc.br - Eng. André Duarte Bueno