NonStop 101 Linux


Escrevendo seu proprito comando “cat” em C
julho 30, 2008, 6:49 am
Filed under: Programação | Tags: , , ,

Codigo fonte

###############################################################

/*
* rawcat.c
* Apresenta arquivo com linhas numeradas
*/

#include <stdio.h>
#define TAMBUFF 120

int main(int argc, char* argv[])
{
FILE *arquivo;
char *linha;
char buffer[TAMBUFF];
int contLinha = 0;

if (argc != 2)
{
fprintf(stderr, “%s requer um nome de arquivo\n”, argv[0]);
return 1;
}
arquivo = fopen(argv[1], “r”);
if (arquivo == 0)
{
fprintf(stderr, “Arquivo %s nao pode ser aberto para leitura\n”, argv[1]);
return 2;
}
while (!feof(arquivo))
{
linha = fgets(buffer, TAMBUFF, arquivo);
if (linha != 0)
printf(“%3d: %s”, ++contLinha, linha);
}
fclose(arquivo);
printf(“\n%s\n”, argv[1]);
return 0;
}

###############################################################

1#if (argc != 2)
2#fprintf(stderr, "%s requer um nome de arquivo\n", argv[0]);
3#return 1;

1# Compara se o argumento passado para o executável existe

2# Nao existindo apresenta uma mensagem de erro

3# retorna um código de erro para o OS

#Se ele existe

arquivo = fopen(argv[1], "r");

#Abre o arquivo para leitura

if (arquivo == 0)

#Compara para ver se o arquivo pode ser aberto

fprintf(stderr, "Arquivo %s não pode ser aberto para leitura\n", argv[1]);

#retorna uma mensagem caso ele não possa ser aberto para leitura
return 2;

#retorna um codigo de erro para o OS

if (arquivo == 0)

#Compara para ver se o arquivo passado como argumento pode ser aberto para leitura

while (!feof(arquivo))

#Enquanto o arquivo estiver aberto e não chegar no final

linha = fgets(buffer, TAMBUFF, arquivo);

#Atribui o valor da linha no loop

if (linha != 0)

#verifica se a linha não e invalida

printf("%3d: %s", ++contLinha, linha);

#imprime uma mensagem numerada com o valor da linha e soma um ao contador da linha atual do arquivo

fclose(arquivo);

#Fecha o arquivo
printf("%s\n", argv[1]);

#imprime uma mensagem com o nome do arquivo
return 0;

#retorna um código de sucesso ao OS

Como compilar o codigo

$cc rawcat.c -o rawcat

Mudando as atribuições para que ele possa ser executado

Usando o novo comando

$./rawcat [arquivo.xyz]

Saída:


$ ./rawcat rawcat.c
1: /*
2: * rawcat.c
3: * Apresenta arquivo com linhas numeradas
4: */
5:
6:
7: #include <stdio.h>
8: #define TAMBUFF 120
9:
10: int main(int argc, char* argv[])
11: {
12: FILE *arquivo;
13: char *linha;
14: char buffer[TAMBUFF];
15: int contLinha = 0;
16:
17: if (argc != 2)
18: {
19: fprintf(stderr, “%s requer um nome de arquivo\n”, argv[0]);
20: return 1;
21: }
22: arquivo = fopen(argv[1], “r”);
23: if (arquivo == 0)
24: {
25: fprintf(stderr, “Arquivo %s nao pode ser aberto para leitura\n”, argv[1]);
26: return 2;
27: }
28: while (!feof(arquivo))
29: {
30: linha = fgets(buffer, TAMBUFF, arquivo);
31: if (linha != 0)
32: printf(“%3d: %s”, ++contLinha, linha);
33: }
34: fclose(arquivo);
35: printf(“%s\n”, argv[1]);
36: return 0;
37: }rawcat.c
$Post em Construção

Anúncios


Como gerar arquivos PDF a partir de quase qualquer fonte através do comando ps2pdf.
julho 29, 2008, 6:51 am
Filed under: linux | Tags: ,

Esta dica demonstra uma forma de gerar arquivos PDF a partir de quase qualquer fonte através do comando ps2pdf.

1) Gerando o arquivo ps:

Usando seu aplicativo de preferência, selecione imprimir, imprimir em arquivo.

Abra o arquivo com o GhostView para ver se está tudo correto.

2) Gerar o arquivo em PDF:

Use o comando/app ps2pdf para gerar o arquivo em PDF:

$ ps2pdf [arquivo.ps]

Pronto, foi gerado o arquivo em pdf [arquivo.pdf].

Obs.: Qualquer duvida use:

$ man ps2pdf



Instalando o GRUB no Zenwalk 5.2
julho 27, 2008, 9:32 am
Filed under: linux | Tags: , , , ,

O zenwalk por default vem com lilo esta dica explica como instalar o grub nele

1-Obtendo o pacote GRUB
2-Instalando o pacote
3-Instalando O GRUB no MBR da partiçao primaria
4-Criando e editando o menu.lst para o Zenwalk

1)para o obter o pacote do GRUB va ao site:

http://packages.slackware.it/&#8221;

caso nao se lembre o zenwalk 5.2 e compativel com os pacotes do slackware,
portanto se tiver os cd’s ou dvd do slackware 12 procure no cd 3 em
~/slackwre/extra/grub

2)para instalar o o pacote use o zenpkg

#zenpkg [pacote.tgz]

3)para instalar o grub no MBR da partiçao primaria use

#grub-install -recheck /dev/sda

4)a.crie o arquivo menu.lst
#touch /boot/grub/menu.lst

b.Crie a entrada default para o boot do Zenwalk

# Zenwalk Linux
title Zenwalk Linux [/boot/vmlinuz + /boot/initrd.splash, /dev/sdb6]
root (hd0,0)
kernel (hd0,0)/boot/vmlinuz root=/dev/sdb1 vga=0x31A video=vesafb:mtrr,ywrap splash=silent
initrd (hd0,0)/boot/initrd.splash

OBS: Essas sao as entradas no menu.lst para o zenwalk 5.2 com boot slpash
para ser sem o bootsplash use as seguintes entradas:

# Zenwalk Linux
title Zenwalk Linux [/boot/vmlinuz /dev/sdb6]
root (hd0,0)
kernel (hd0,0)/boot/vmlinuz root=/dev/sdb6

ARTIGO EM CONSTRUÇAO!!!



O Zenwalk 5.2
julho 23, 2008, 11:36 am
Filed under: linux, Revew | Tags: , , , ,
Zenwalk 5.2

Zenwalk 5.2

  • Por : Dalton Brisola

Zenwalk 5.2 já se encontra no ranking #14 do site DistroWatch. Essa distribuição se encontra no site zenwalk.org. Neste site você encontra documentação, fórum e existe também um site da comunidade brasileira em www.zenwalk-BR.org, com fórum e documentação em português!

O Zenwalk 5.2 pretende ser uma distribuição Linux para fins múltiplos, concentrando-se nas aplicações para internet, multimídia e programação.

De acordo com o site, Zenwalk é um sistema operacional GNU/Linux, concebido para possuir as seguintes características:

  • Moderna e “user-friendly” (usando as mais novas e estáveis versões dos softwares);

  • Rápida (otimizada para performance);

  • Racional (um aplicativo para cada tarefa);

  • Completo (pleno ambiente de desenvolvimento / desktop / multimídia);

  • Evolutiva (gerenciamento de pacotes feito através de uma ferramenta de rede – o netpkg).

O Zenwalk 5.2 é uma distribuição baseada inicialmente no Slackware que tira toda as vantagens já conhecidas desta distribuição. Suas ferramentas principais são:

  • Kernel: Linux 2.6.22.7;

  • Desenvolvimento: GCC-4.1.1, Python-2.5, Perl-5.8.8, GTK2-2.10.12;

  • Editores: Geany-0.10.2, Bluefish-1.0.7, Mousepad-0.2.12, Vim-7.0.195;

  • Desktops: XFCE-4.4.1.

Vem em 2 versões: “core” e “desktop”, sendo cada qual destinada a uma segmentação específica. Veja:

Core (ISO 180MB)

Zenwalk-core é o sistema Zenwalk sem o servidor / aplicações X. É voltado para ser um ponto de início para a construção de desktops / servidores customizados. Ou usuários perfeccionistas que desejam criar seus próprios ambientes de desktops, também servindo para quem possui pouco espaço de HD.

Desktop (ISO 480 MB)

É o sistema completo, com ferramentas para web, chat, música, programação, vídeo, impressão e tudo já configurado e otimizado.

  • Máquina de teste

Minha experiência com esta distro foi feita em uma máquina SIS Pentium II 400Mhz (overclock o default e 233Mhz, só para constar o Zenwalk 5.2 também rodou muito bem nesta velocidade!), 132MB RAM, uma partição dedicada de 8GB e uma placa de vídeo onboard SIS 630 com 16 MB do tipo shared.

Fica claro então que os aspectos que o projeto afirma ter em suas características foram postos à prova!

  • Instalação

A instalação é feita através de uma interface de texto (ncurses) semelhante à usada no Slackware, não é à toa, afinal esta distro tem como base a dita cuja Slackware. Mas como almejado pelos seus desenvolvedores, ela é extremamente amigável e simples, foram necessárias apenas algumas perguntas rápidas e bem explicadas e tudo transcorreu de forma tranqüila.

Mas nem tudo saiu como deveria aparentemente, talvez por já ter instalado GRUB em uma partição primária, pulei os passos de instalação do LILO, mas para minha surpresa ao configurar o LILO manualmente (passo este não necessário na instalação normal)

Fora esse entrave que não sei se foi causado por minha culpa ou não, a instalação foi rápida, questão de 30 mim, simples, não mais que 10 perguntas, e eficiente. Dado o boot na maquina, mais algumas questões respondidas no chamado passo “post install” e meu novo sistema Zenwalk 5.2 já estava pronto.

  • Primeiras impressões e visual

De inicio ja fiquei impressionado com a velocidade, seu gerenciador de janelas – XFCE4 – está configurado de forma eficiente e com um visual leve, agradável, despoluído e racional. Logo que percebi estava diante do Iceweasel, algo semelhante à fuinha gelada em português de um fork do Firefox, seu visual se integra de forma fluída ao visual do Zenwalk.Zenwalk Stilizado

Mais imprecionante foi ver que mesmo nesta maquina comsegui tirar vantagen do sistema “composite” do Xfce4 com transparencia real,sombreamento e etç.

Logo instalei o Gnome ao qual estou habituado, a instalação feita seguindo os passos do HOWTO da documentação oficial no site foi simples e rápida. O Gnome rodou ligeiro e sem problemas, para completar ainda escolhi e configurei um visual semelhante ao Ubuntu só para ver se dava e comparar a velocidade, nesse ponto o ganho de velocidade é grande quando se restringe a uma aplicação, apenas se usar mais de uma o sistema se torna lento e instável.

Mas nem tudo saiu direito, notei a ausência de um ícone apontando para o floppy drive, que com uma olhada mais técnica através do “lsmod” notei também a ausência deste (o modulo floppy). A solução foi instalar manualmente, tarefa na qual precisei da ajuda do  suporte feito através do IRC – em inglês! 😦

  • Suporte a hardware

Também através do lsmod notei certas ausências de drivers mais específicos, sendo sua maioria feita de genéricos, mas isso não impedindo que todo o hardware fosse reconhecido!

Pareceu-me a princípio que ele possui o necessário para a maioria das máquinas, mas não pude verificar dadas as configurações de meu PC, que por si só já é um ponto positivo para ela neste quesito.

  • Aplicações multimédia e desenvolvimento

Ferramentas apesar de nem sempre serem as mais conhecidas, como o player de música Gmusicbrownser, são extremamente otimizadas e possuem todas as funções esperadas de um player mais conhecido como o Audacity, para não dizer mais, pois já vem out-of-the-box com capacidade de visualização de capas de álbuns e suporte para arquivos flac e um plug-in in para visualizar as letras da música sendo tocada, com a capacidade de procurar na net on-the-fly.
Ainda tratando da área multimídia, seu player de vídeo Gnome-Mplayer pode lidar com a maioria dos arquivos conhecidos de vídeo e graças a excelente otimização do sistema permite que máquinas, que com outras distros apresentariam “pulos” e “desincronias”, se tornem úteis para tais fins novamente!

Também disponível está a ferramenta GnomeBaker e Asounder para gravação e ripagem de CDs, além das usuais ferramentas de console.
No quesito de desenvolvimento ficou claro que ele possui tudo para suportar as compilações mais complexas – me pareceu falho nas ferramentas de apoio ao desenvolvedor. Vindo com a IDE Geany, bem semelhante ao Anjuta, uma ferramenta prática e completa.

  • Aplicações gráficas + Office + Internet

Como o prometido existe apenas uma ferramenta para cada função, como editor de texto ela tem Abiword, que dá conta do recado – apesar de não ser de minha preferência. Tocando no assunto, vale lembrar que na instalação default do “desktop” não estavam disponíveis pacotes para a correção ortográfica em português-BR. Fui forçado a instalar depois. Como ferramenta de planilha ela vem com o Gnumeric.

Fiquei muito desapontado ao saber que não havia o gedit, uma ferramenta semelhante ao mousepad, que vem na lista de pacotes padrão, mas que apresenta a função de autocorreção. 😦

No campo gráfico novamente apenas uma ferramenta poderosa e completa, como não podia deixar de ser, a aplicação que preenche esta função é o já consagrado GIMP. Ficaram de fora ferramentas para autoria de vídeo e som 😦 – nada de Cinelerra, uma aplicação de edição de vídeo que vem ganhado grande espaço neste campo.

Um campo também sem ferramenta alguma é a de autoria de som/música, ficando de fora até mesmo dos repositórios oficiais da distro!

  • Aplicações de configuração e gerenciamento de pacotes

Nesse campo o Zenwalk 5.2 se destaca – sua solução netpkg é semelhante a algumas soluções conhecidas no Slackware, como slackpkg, que é compatível com o Zenwalk por sinal. No entanto ela vai além, oferecendo suporte a dependências dos pacotes tornando tudo muito mais fácil, confiável, mantendo o sistema enxuto e atualizado.

Não bastasse isso ela possui ainda um front-end para X que torna a instalação de novos programas ou mesmo o KDE e Gnome uma tarefa simples e intuitiva.

Para configurar o sistema existe no ambiente X, o chamado ZenPanel, que unifica quase que por completo todas as tarefas de configuração necessárias para o sistema como um todo, tendo até mesmo uma ferramenta que permite a configuração dos módulos a serem usados na inicialização e também para configurar a inicialização em si.

Posso dizer que nesse campo usuários experientes ficarão surpresos e os inexperientes agradecidos!

  • Notas finais e conclusão

Na falta de um tópico mais adequado deixei par fazer os seguintes esclarecimentos aqui:
O kernel é de última geração, tendo sido compilado um pouco diferente do usual, como o Slackware ele possui um sistema de inicialização modular, sendo gerido pelo arquivo modprobe.conf, não havendo os usuais /etc/init.d.

Não compreendi muito bem como funciona e em que implicam tais diferenças, mas é bom deixar registrado (ver seção dúvidas & etc).

Outra coisa que difere no kernel é a ausência das chamadas teclas “mágicas”, que permitem dar um boot “frio” em casos extremos – o que me forçou a resetar a máquina algumas vezes – tais teclas tem certas  funcionalidades que podem salvar o usuário em situações inusitadas e acho que deveriam estar incluídas no kernel, apesar de sempre haver a opção de compilá-lo.

Outra característica diferente é o sistema de splash, no boot apesar de visualmente se obter resultados semelhantes ao Ubuntu, seu funcionamento difere bastante, novamente fica em aberto o assunto.

Minhas impressões sobre esta distro nesta versão (5.2) são positivas, ela cumpre o que promete. Sem dúvida a manterei como S.O. principal.
Sendo talvez um pouco polêmico, agora direi que se você vê o Ubuntu como “made for humans beings” e a Slackware “for real nerds”, a Zenwalk 5.2 é ambos.

Como diz o site, “Have u Zen computing”

  • Dúvidas & comentários

Não me surpreenderia ao ver críticas às minhas conclusões e impressões aqui, além de usuais críticas e correções a este artigo, mas creio serem necessárias e construtivas para mim e para todos que estiverem lendo este artigo.

Só fica aqui meu pedido de que se você teve uma experiência positiva com o Zenwalk 5.2, que a comente, se foi negativa diga porque.

No caso de dúvidas sobre o artigo ou sobre o Zenwalk, deixe um post que tentarei esclarecer e ajudar.

Obrigado, um abraço e fique Zen!



Usando o comando split para dividir arquivos grandes em partes menores
julho 21, 2008, 12:02 pm
Filed under: linux | Tags: ,

Essa dica explica como usar o comando split para dividir arquivos grandes em partes menores e como restaurá-lo depois.

1) Para dividir um arquivo qualquer em um tamanho que caiba em disquete de 1.44MB:

$ split -b 1440kb [arquivo.xyz]

Serão gerados arquivos cujos os nomes estarão na seguinte seqüência: xaa, xab, xac…

2) Para restaurar o arquivo original, use o comando cat:

$ cat xaa xab xac > [arquivo.xyz]

Obs.: Qualquer duvida use:

$ man split



Como instalar o Red Hat 9 usando apenas um CD-RW
julho 18, 2008, 4:17 pm
Filed under: linux | Tags: , , ,
Dica: Como instalar o Red Hat 9 usando apenas um CD-RW
Categoria: Linux


Esta dica demonstra com instalar o Red Hat 9 com apenas um CD-RW.

No entanto ela não aborda o processo de instalação, mas sim o uso de certas “manobras” possíveis que demostram a versatilidade do Linux, além do uso de certos comandos e suas possíveis aplicações.

1) Crie uma partição para armazenar as imagens dos 3 discos de instalação e faça download delas.

Para criar uma partição é necessário ter espaço não particionado no HD,caso contrário você precisará redimensionar uma partição já existente ou apagar uma.

1.a) Criar uma partição para armazenar os 3 discos de instalação.

No Linux, use o CFDISK para isso:

1.b) Fazer o download das imagens ISO dos CDs de instalação do Red Hat 9.

2) Gravar o disco 1 de instalação.

2.a) Para isso você precisa descobrir o “endereço” de drive de CD:

$ cdrecord -scanbus

Este comando lhe fornecerá uma lista de dispositivos.

scsibus1:
1,0,0	100) 'HL-DT-ST' 'CD-RW GCE-8525B ' '1.03' Removable CD-ROM
1,1,0	101) *
1,2,0	102) *
1,3,0	103) *
1,4,0	104) *
1,5,0	105) *
1,6,0	106) *
1,7,0	107) *

2.b) Agora use estes dados para gravar a primeira imagem de CD.

$ cdrecord -v [imagem do CD].iso dev=[Seu drive de CD]

OBS: O endereço do drive usado no exemplo é 1,0,0.

3) Dê início à instalação.

3.a) Dê boot com o CD inserido e siga as instruções da tela.

3.b) Durante a instalação o segundo disco será pedido.

“Alt+F2”

3.c) Mude o diretório root para o diretório de instalação para ter acesso as ferramentas necessárias a gravação de CDs.

# chroot /target

3.d) Use o cdrecord para apagar o CD.

# cdrecord -blank=fast -v dev=[Drive de CD]

3.e) Crie um diretório qualquer.

# mkdir [diretório]

3.f) Monte a partição com as imagens do Red Hat.

# mount -t ext3 /dev/[ partição das imagens de CD ] /[diretório]

3.g) Mude para o diretório onde a partição das imagens foi montado.

# cd [diretório]

3.h) Queime o segundo CD.

# cdrecord -v [ imagem do CD 2 ].iso dev=[ Seu drive de CD ]

3.i) Desmonte a partição.

# umount /[ diretório ]

4) Volte para a instalação.

4.a) Desmonte o root.

# exit

4.b) Saia do console.

# exit

4.c) Dê continuidade a instalação.

5) Faça o mesmo para os CDs seguintes.

OBS: Qualquer dúvida é só postar que tentarei responder da melhor forma.



Instalação do Slackware direto do HD com apenas 1 CD
julho 18, 2008, 4:09 pm
Filed under: Sem categoria | Tags: ,
Dica: Instalação do Slackware direto do hd
Categoria: Linux
Essa dica explica como instalar o Slackware usando apenas o CD 1 da distribuição, mas tendo acesso a todos a partir do HD.

I) Para instalar o Slackware a partir do HD você precisa de alguns pré-requisitos (na ordem):

I.1) Espaço no HD para as imagens .ISO dos discos de instalação da distribuição (são 3 + sources).
I.2) Uma forma de criar uma partição, de preferência ext3, para armazená-las.
I.3) Um CD para “queimar o disco de instalação nº 1.
I.4) O disco de instalação nº1 (*).

Feito isso você está apto a instalar o Slackware a partir do HD!

a. Criar uma partição com espaço bastante para as imagens .ISO de 3 CDs. Para isso use o comando cfdisk.

b. Fazer o download das imagens .ISO dos discos de instalação (ftp.slackware-brasil.com.br).

c. Fazer download da primeira imagem .ISO e gravá-lo em CD, de preferência em um rw (só pra testar). (*1)

II) Fazer o boot inicial de instalação a partir do CD 1.

III) Durante a instalação será pedido o cd seguinte (aí vem a dica).

Mude para o console 2 (tty2), “alt+f2” e crie um diretório chamado “supp”.

# mkdir supp

IV) Monte a partição com as imagens no diretório supp:

# mount -t ext3 /dev/(partição das imagens) /supp

V) Retire o CD de instalação que fora ejetado e feche o drive. Em seguida mude para o diretório supp.

# cd /supp

Em seguida use um comando loop para “enganar” o programa de instalação.

# mount -t iso9660 -o ro,loop=dev/loop0 (arquivo iso) /cdrom

VI) Volte para o programa de instalação (alt+f1), pressione enter e pronto!

VII) Quando for pedido o próximo CD repita os passo 6 apenas mudando o comando loop.

Ex: mount -t iso9660 -o ro,loop=/dev/(loop[1]) (arquivo seguinte) /cdrom

OBS: Você pode fazer isso até com a imagem de CD do primeiro CD, desta forma a instalação se dará em menos de 30 mim.

(*1) Talvez esta etapa possa ser substituída por um “disco usb flash memory de boot”.

– Monte a partição contendo as imagens iso, use o comando mount com a opção loop como foi descrito usando o disco 1;

– Vá ao diretório no qual você montou a imagem iso e procure pelo diretório isolinux.

– Lá você deve encontrar referências em inglês para a criação do disco de boot em um flash card usb.

– Além de outras informações sobre outras formas de instalação; como via rede.