sexta-feira, 4 de março de 2011

BRAMS e Grads

Para a utilização da versão 4.0 (e acho, 4.2 do BRAMS), é necessário o grads.
Entretanto, nas versões posteriores à 1.9 do grads, não há o comando 'gradsc', substituido por um supercomando grads, que executa quase todos os procedimentos do programa a partir da versão 2.07.
Para maiores detalhes, http://grads.iges.org/grads/downloads.html

quarta-feira, 2 de março de 2011

Alterando o PATH do sistema (Fedora)

É a primeira vez, desde muito tempo, que eu uso um sistema RedHat-like.
Costumava usar Conectiva Linux. Isto foi de 1998 a 2001.
A partir de 2002, passei a usar Debian, e em um breve período de trabalho, usava o próprio RedHat (por dois meses, mas só no computador de trabalho).
Agora, na minha iniciação, voltei a utilizar uma distribuição RedHat-like, desta vez, a geradora da RHLE (Red Hat Linux Enterprise - a versão paga da RedHat), a Fedora.
E eu tive dúvidas quanto ao arquivo de configuração para alterar o PATH.
É o /etc/bashrc. Desconfio que seja o mesmo no Debian, mas eu não me lembro.
Ele altera mais coisas do que o caminho, tome cuidado.
Em todo o caso, basta colocar no fim do arquivo a expressão:
PATH=$PATH:/nome-do-caminho-a-ser-colocado-no-path
export $PATH

Para alterar o arquivo somente no seu usuário normal, procure ou crie os arquivos .bash_profile, ou .bashrc

terça-feira, 28 de dezembro de 2010

Editando múltiplos arquivos com o VIM

Podemos editar múltiplos arquivos com o VIM: Eles podem ser abertos com o comando:]
vim -o arquivo1 aquivo2 arquivo3

Para alternar entre os arquivos abertos, basta pressionar duas vezes a combinação Ctrl + w

quarta-feira, 23 de junho de 2010

Comando wget - opções de download multiplo e recursividade

Com o comando wget, você pode fazer o download de sites inteiros... ou de apenas arquivos com determinadas extenções que você está interessado.
A opção -r é um pouco perigosa, já que o site poder ter links fora dele, mas é útil.
No meu caso, eu precisava fazer o download de vários pdf que compõem um livro gratuito na Internet.


wget -cr -A*.extensão http://site.arquivo.html
A opção -A é para definir as extensões aceitas, embora eu tenha baixado html, também.
A opçaõ c é para continuar o download, caso este tivesse sido interrompido antes, e a opção r é o download recursivo.

domingo, 14 de fevereiro de 2010

Configuração do Samba - Ajustando permissões de acesso e monitoramento instantâneo

Esta é mais uma configuração do SAMBA que eu fiz apenas para incluir um diretório padrão de compartilhamento de músicas e arquivos diversos.
Isto resolve o problema dos usuários não terem acesso aos arquivos multimídia de um outro, desde que os usuários tenham a intenção de colaborar com isso, é claro.

A checagem de permissões é feita tanto pelo SAMBA quanto pelo Sistema. Em um primeiro momento, o SAMBA, ao sabor da configuração do compartilhamento em /etc/samba/smb.conf (bem no Debian Lenny, o arquivo de configuração do SAMBA fica neste diretório), verifica quais os usuários que podem acessar e escrever (ou não) no recurso compartilhado (no caso, o diretório /multimidia), e depois a solicitação é passada para o sistema, que permitirá o acesso mediante a verificação de quem tem permissão sobre os diretórios e arquivos dentro deles.

Não esquecer de digitar #smbpasswd -a para cadastrá-lo no SAMBA também.
Assim, a solução que utilizei foi:

1) Criar o grupo multimidia, incluir usuários e dar o diretório /multimidia ao grupo
2) Configurar, enfim, o SAMBA para disponibilizar o recurso apenas aos usuários do grupo

Vamos agora, aos procedimentos necessários.

Parte 1: Criar o grupo multimidia, incluir usuários e dar o diretório /multimidia ao grupo

- Criação do grupo e inclusão de usuários:
# addgroup multimidia --> cria o grupo "multimidia"
# adduser [usuario] multimidia --> adiciona o "usuário" no grupo multimidia
Ex: # adduser karmarx multimidia

-Dando o diretório multimidia ao grupo multimídia:
#chgrp -R multimidia /multimidia --> instrui o sistema para que o grupo multimidia seja o dono do diretório /multimidia. A opção "-R" implementa as modificações recursivamente.
Alternativamente, poderemos fazer:
# chowm -R :multimidia /multimidia --> Faz a mesma coisa que o comando anterior. A diferença é que, antes de ":multimidia", podemos colocar o usuário que será dono do diretório ou recurso.
-Dando permissão ao grupo e seus usuários para acessar o diretório:
# chmod g+rwx /multimidia --> Dá permissão de leitura e escrita e acesso aos usuários do grupo multimídia. A opção "g" se refere a grupos.
# chmod -R g+rw /multimidia --> Dá permissão de leitura e escrita aos usuários do grupo multimídia.

Parte 2: Configurar, enfim, o SAMBA para disponibilizar o recurso apenas aos usuários do grupo

-O trecho que eu inclui no meu /etc/samba/smb.conf foi este:
[multimidia]
comment = Arquivos multimidia (filmes, musicas, jogos etc) compartilhados pelos usuarios.
path = /multimidia
writable = yes
# Para permitir que apenas os usuários do grupo multimidia possam acessar o compartilhamento
valid users = +multimidia
É importante que os comentários sejam feitos não na mesma linha de alguma palavra-chave que vai ser passada para o SAMBA.
A opção que precisa ser entendida é a "valid users". Nela, podemos incluir, separados por vírgulas, os usuários que podem acessar o recurso, ou então, colocamos um sinal de mais "+" seguido do nome do grupo, e automaticamente, apenas os usuários pertencentes ao grupo conseguirão acessar o recurso. Podemos separar entre vírgulas, os grupos que podem ter acesso ao recurso, bem como misturar grupos e usuários que o acessarão.

Referências:

Samba, parte 2: Configuração avançada do Samba (atualizado) -Carlos E. Morimoto

Manual do chgrp: man chgrp
Manual do chmod: man chmod
Manual do chown: man chown

Comando chroot

O comando chroot permite que você defina algum diretório como sendo a "nova raíz".
Isto é útil para mountar a partição raíz de uma outra instalação de Linux que haja no computador, e executar os programas a partir dela.

Suponhamos que queiramos editar o arquivo /etc/fstab da outra partição, ou dar um grub-install para restaurar o grub a partir daquela partição, porém através dela mesmo, não conseguimos, tendo de recorrer a outra partição funcional (geralmente nem isso é possível, sendo necessário o uso de um disco de recuperação, ou um live-cd com alguma distribuição GNU/Linux.

1) Montamos a partição de teste:

root@localhost: /# mount /dev/sda2 /mnt/teste --> supomos que o diretório /mnt/teste existee esteja vazio antes da montagem da partição.

2) Acesso à partição:

root@localhost: /# cd /mnt/teste

3) Tornando o diretório /mnt/teste como "raíz"

root@localhost: /mnt/teste# chroot /mnt/teste

Resultado:

root@localhost: /#
Aí, se você precisar editar o arquivo /etc/fstab da partição /dev/sda2, não precisará digitar vi /mnt/teste/etc/fstab, mas apenas vi /etc/fstab

Para voltar ao normal, basta digitar:

root@localhost: /# exit

Resultado:
root@localhost: /mnt/teste#

terça-feira, 9 de fevereiro de 2010

Redimensionando partições ext3 - Diminuindo uma partição

Para o redimensionamento de uma partição ext3, deve-se adotar 2 procedimentos básicos, depois de desfragmentá-la, se este for o caso:

1) redimensionar o sistema de arquivo: Para isto, utiliza-se o comando resize2fs.
2) redimensionar a partição fisicamente: Para isto, utiliza-se o comando fdisk.

Quando nós redimensionamos o sistema de arquivos é como dar um aviso ao kernel que os arquivos da partição podem ser encontrados entre o cilindro xxx do disco ao cilindro yyy, e a partição, quando as coisas estão funcionando, vai do cilindro xxx ao cilindro yyy. Entretanto, pode ser que não haja correspondência entre o que informa o sistema de arquivo ao kernel, e o tamanho físico da partição mesmo.

Assim, quando queremos diminuir o tamanho de uma partição, devemos, primeiro, diminuir o tamanho do sistema de arquivo com resize2fs, para depois diminuir seu tamanho físico com fdisk. Desde 2002 que esse software suporta o redimensionamento não só de partições ext2, mas também de ext3, portanto não é necessário tirar o journaling da partição.
No caso de querermos expandir o tamanho de uma partição, precisamos fazer o caminho inverso, desde que haja espaço livre começando quando termina originalmente o a partição que queremos expandir: aumentamos seu tamanho fisico para depois redimensionar o seu sistema de arquivo.

Bem, vamos aos passos:

No caso, eu queria diminuir o tamanho da minha partição /home de 50GB para 10GB.
Se você vai fazer isto com a partição raiz do seu sistema, ou a partição que contém outros executáveis importantes do sistema operacional, é necessário reiniciar o sistema e utilizar um disco/CD/DVD de recuperação, ou uma distribuição live-CD, pois é necessário executar os procedimentos com a partição com a qual queremos trabalhar desmontada.

Primeira parte: Checando informações sobre o disco e a partição, e redimensionando o Sistema de arquivos

- Checando informações:
fdisk -l /dev/sda --> Este comando dá informações sobre todas as partições do disco, tais como o cilindro inicial e final da partição, e número de blocos que ocupa. Lembrando que /dev/sda é apenas o exemplo utilizado, e o dispositivo que será utilizado dependo de como está configurado o seu HD, e de qual tecnologia ele utiliza (para HDs IDE, utilizamos /dev/hd(letra), e para primeiro hd, a letra a. Para HDs SCSI ou SATA, utilizamos /dev/sd(letra), e para o segundo hd, utilizamos a letra b. Utilizariamos também a letra a, no caso de ser o primeiro hd, que é o caso do exemplo.
A informação primordial, neste caso, é a posição inicial da partição. Isto, porque na parte 2, teremos de apagá-la, e para que não haja perda de dados, devemos nos certificar de que a "nova" partição deve começar no mesmo cilindro da "velha".
No meu caso, eu queria informações da partição /dev/sda2, que no meu caso, normalmente é montada em /home. LEMBRE-SE QUE TODOS OS PROCEDIMENTOS DEVEM SER FEITOS COM A PARTIÇÃO DESMONTADA.

- Talvez seja necessário checar a partição com:
e2fsck -f /dev/sda2 -->substitua /dev/sda2 pela partição que desejar/precisar checar.
-Redimensionando o sistema de arquivos, finalmente:
resize2fs /dev/sda2 10G
O comando resize2fs possui a seguinte sintaxe: resize2fs [partição] [tamamho] --> onde tamanho pode ser dado em S (setores de 512 bytes), K, M e G, em que as três últimas maiúsculas representam, respectivamente, kilobytes, megabytes e gigabytes.
Ele, depois, vai retornar o número de blocos que a nova partição deverá ocupar. Mas atenção, ele informa isso para o Kernel, mas não fez nenhuma modificação física, como, aliás, discutimos acima. É importante mencionar que o número de blocos informado pode estar ligeiramente errado, devido a um bug conhecido e mencionado no próprio manual do comando (man resize2fs). O que fazer em relação a isso, veremos na segunda parte.

Segunda Parte: Redimensionando a partição

Para redimensionar a partição, o procedimento é tão simples quanto perigoso: Devemos apagar a partição que queremos redimensionar e criá-la de novo! :-D
Se o procedimento for feito corretamente, não haverá nenhuma perda de dados. Entretando, devido ao risco, é extremamente aconselhável fazer um backup dos dados mais importantes da partição, senão de toda ela. Eu estava muito "com o cú na mão", então fiz 2 backups!
fdisk /dev/sda --> Para iniciar operações de particionamento do disco.
Resposta do comando:
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
-Devemos, agora apagar a partição dois:
Command (m for help): d
Partition number (1-5): 2
Como eu cometi o erro de ter criado esta partição como primária, outrora (Poderia ter criado apenas uma partição primária, que devem ser no máximo 4, e deixado a partição em questão como estendida), devo recriá-la como primária (na verdade, tive medo de fazer diferente, mas como eu também posso criar partições Linux principais como partição extendida, eu não me importei).
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 2
Agora, ele perguntará em que cilindro que começa a partição. mantenha a resposta padrão, que deve ser identica à obtida com fdisk -l /dev/sda . Se não for, digite o dado obtido anteriormente, caso contrário, haverá perda de dados.

Agora que informamos o fdisk onde que a nossa partição começa, não sabemos onde ela termina. Felizmente, podemos dizer o tamanho da nossa partição, em MB. Porém, dizer que ela terá 10240MB (10GB) acarretará em erros mais para frente, porque, como mencionado anteriormente, o resize2fs tem um bug no cálculo do número de blocos (que são de 4KB), e dar imediatamente o tamanho que nós queremos, fará com que o sistema de arquivos e o tamanho físico continuem diferentes, podendo haver perda de dados (O e2fsck não conseguirá avaliar a partição por causa disso, e você pode ter problemas até para reiniciar o sistema).
A solução para este problema é o seguinte: Pegar o número de blocos retornado pelo resize2fs, multiplicar por 4k (como a resposta do comando já é em blocos de 4k, basta multiplicar por 4, mesmo), e depois multiplicar por 1.05, para dar uma margem de uns 5% para aquele número, pois é prudente que o tamanho físico seja maior que o tamanho do sistema de arquivos, e não o contrário. É quando acontece o contrário que a partição começa a dar problemas.

-O número resultante do cálculo deve ser colocado como +[númeroK] quando o fdisk solicitar:
Last cylinder or +size or +sizeM or +sizeK (xxx-yyy, default yyy ): +númeroK --> onde xxx-yyy é o intervalo, em cilindros, do número do cilindro que termina a partição. yyy, é o limite final do disco. + é a opção para declarar o tamanho da partição, em vez do cilindro final, e deixar a tarefa de descobrí-lo para o fdisk, número, é o tamanho em KiloBytes da Partição, e K é a opção especificando que o tamanho será mesmo dado em Kilobytes.
-Agora, devemos gravar na tabela de partições.
Command (m for help): w
The partition table has been altered!
-Resposta do comando:
Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

É preciso, agora, reiniciar o sistema (ou não).

Com a partição redimencionada desmontada, vamos à terceira e última parte:

3) Checagem do sitesma, e re-redimensionamento:

Com o sistema reiniciado para que a nova tabela de partições seja reconhecida, digite:

e2fsck -f /dev/sda2 --> (com a partição desmontada e ,novamente, substitua a partição utilizada no exemplo pela que você quer redimensionar efetivamente)

E depois o comando:

resize2fs /dev/sda2

Agora, não tem mais o tamanho da partição, porque, com a nossa preucaução, o tamanho informado pelo sistema de arquivos é menor do que o tamanho físico da partição, e queremos apenas que o sistema de arquivos seja redimensionado para o tamanho máximo da partição física.

Referências:

http://usefulfor.com/nothing/2007/12/14/howto-resize-an-ext3-partition-without-losing-data/

http://www.howtoforge.com/linux_resizing_ext3_partitions

Manual do resize2fs (man resize2fs)

terça-feira, 26 de janeiro de 2010

VIM - Modo Visual

Para entrar no modo visual do VIM, há 3 maneiras, quando não estamos no modo de edição. Podemos digitar:

v : Entra no modo de seleção de caracteres.
V : Entra no modo de selecão de linhas
Ctrl +v : Entra no modo de seleção de blocos.


E aqui, uma tabela de comandos úteis quando o texto já está selecionado:

Comando | Ação no texto selecionado
d | Apaga
y | Copia
p | Cola
c | Troca por outro texto
r | Troca cada letra por um caractere
J | Junta todas as linhas em uma só
U | Converte para maiúsculas
u | Converte para minúsculas ~ Inverte maiúsculas e minúsculas
gq | Reformata as linhas para a largura desejada
! | Manda as linhas para um comando externo (!sort)
: | Aplica um comando 'ex' nas linhas (:s/isso/aquilo/)

Para sair do modo visual, basta apertar v, de novo.
Extraído de http://aurelio.net/vim/selecao-vi-sual.html

quarta-feira, 13 de janeiro de 2010

Compactando arquivos com o zip a partir de uma lista deles criada com o comando find

Para isso, podemos utilizar a opção -@ do comando zip, e os pipes para direcionar a saída na entrada do comando zip.
Fica assim:

find [caminho] -name "[nomes pesquisados]"|zip -@ [nome do arquivo.zip]

sexta-feira, 25 de dezembro de 2009

Extraindo arquivos específicos do unzip

Isso é coisa básica, que pode ser lida no manual, Mas como eu posso perder mais tempo para procurar no manual do que no meu blog, aqui vai uma dica simples e ridícula sobre o comando unzip.

Checando os arquivos que estão compactados dentro do arquivo.zip:
unzip -l arquivo.zip
Extraindo apenas alguns arquivos:
unzip arquivo.zip arquivo1 arquivo2 .. arquivoN
Extraindo apenas alguns arquivos, mas utilizando caracteres coringa:
unzip arquivo.zip "*expressão*" , onde expressão é a parte do arquivo a ser procurada.

quarta-feira, 21 de outubro de 2009

Declarando variáveis no maxima

Em funções, vimos que a declaração delas se dá com F(variável independente):=[expressão];
Por exemplo:
F(y):=y^3+5*x;
No caso de variáveis, a declaração delas é assim:
variável:valor;
Por exemplo:
a:2*%pi;

terça-feira, 20 de outubro de 2009

Plotando Gráficos com o Wxmaxima

No último post, eu esqueci de avisar que para chamar o wxmaxima, era necessário digitar:
$wxmaxima

Bom, feito isso, e depois de ter escrito as funções com as quais quer trabalhar (você poderá chamá-las através da linha em que foram escritas), você quererá plotar alguns gráficos.
o comando para isso é: wxplot2d!
Sintaxe para uma função só:
wxplot2d([expressão], [variável,valor inicial, valor final], [xlabel, "rótulo para o eixo-x"], [ylabel, "rótulo para o eixo-y"]);
A expressão pode ser o número para alguma função que você digitou antes, ou criou, ou explicitamente, uma função que você colocou lá na hora.
Exemplos:
1) %i1 sin(x);%o1 sin(x);
%i2 wxplot2d([%o1],[x,0,2*%pi],[xlabel, "ângulo (radianos)"], [ylabel, "sen(ângulo")]); --> plota a função sin(x) no intervalo de 0 a 2pi, rotulando o eixo x de ângulo... e o y de sen(ângulo).
2) wxplot2d([sin(x)],[x,0,2*%pi],[xlabel, "x (rad)"],[ylabel, "sen(x)"]);
Caso queiramos graficar mais de uma função com um único comando, a sintaxe muda só um pouco:
wxplot2d([expressão1, expressão2], [variável, valor inicial, valor final], [xlabel, "rótulo"],[ylabel, "rótulo"]); Lembrando que os rótulos são sempre opcionais.
Aproveitarei para mostrar como definir funções:
Exemplo:
F(x):=sin(x)-x^2;
G(x):=cos(x)+x^3 + e^(-2*x);
wxplot2d([F,G],[x,-100,100],[xlabel," velocidade (m/s)"]);

Maxima e Yacas - Softwares de Apoio Computacional à Álgebra

Depois de passar mais de uma semana desesperado com a prova de Física Nuclear que o professor pediu para fazer em casa, eu entendi o que era para fazer e notei que seria fortemente recomendável utilizar programas como o maxima e o yacas.
Estes programas fazem maravilhas, embora possam ser até limitados dependendo do cálculo.
Eles podem resolver uma integral, uma derivada, achar os zeros de uma equação/função tanto numericamente quanto analíticamente (este último, se possível), e são suficientemente inteligentes para lidar com linguagem simbólica.
Para instalá-los, se seu /etc/apt/sourcs.list estiver configurado, e se sua distribuição for Debian, ou uma Debian-like fazemos:
#apt-get install yacas -->Instala o yacas
#apt-get install maxima wxmaxima xmaxima -->Instala o maxima, e duas interfaces gráficas para ele: wxmaxima e xmaxima
O wxmaxima é uma interface cheio de menus e botões meio auto-explicativos para ficar parecido com concorrentes no Windows, tipo o Maple® e o Mathematica®, embora não seja bonito.
O xmaxima é uma interface feita em tcl/tk mais bonita, embora mais espartana. Ela abre junto com o ambiente onde são digitados os comandos uma espécie de tutorial disponívels na documentação do máxima, estimulando o aprendizado para poder mexer no programa.

Uma interface permite que você mexa "no estilo Windows", ou seja, já faça as coisas sem se aprimorar muito, sem nem saber o que está fazendo, até, de forma intuitiva. A outra faz você apanhar um pouco mas lhe força a aprender mais, o que pode facilitar no futuro, pois você começará a pensar em programar na linguagem e a resolver as coisas de maneira mais complicada, desenvolvendo certa habilidade.
Como eu estava desesperado para fazer a prova do Robilotta, eu fiquei com o wxmaxima, mesmo.

Mesmo assim, há alguns comandos que não aparecem, senão sutilmente nos menus, e dos quais você pode precisar.
Primeiro alguma sobre o ambiente:
%in --> É o prompt, aguardando que você dê algum comando. No wxmaxima, você não precisa se preocupar muito com isso. Há uma caixa de texto onde você coloca os comandos.
O 'i' quer dizer entrada, e o n, é o número da linha em que você está.
Quando você digita um comando, aparece: %on , que quer dizer saída, acompanhada do resultado do comando.
Para escrever expressões matemáticas, simplesmente, escreva-as!
Por exemplo: sin(x)
O resultado será informado como sin(x).
Você pode usar a linha %on nos cálculos da linha n+1 , por exemplo. Até pode definir novas funções e variáveis.

Para achar os zeros de uma função analítica, pode-se fazer:
solve([expressão], [variável]); (colchetes não obrigatórios, utilizei apenas para mostrar a sintaxe.

Ex:
solve(x^2-a,x); As raízes da equação serão retornadas, e a é qualquer valor. Entendeu porque é legal? Não é só para cálculo numérico.

E quando só dá para resolver numericamente?
find_root([expressão],[variável],["chute inicial], ["chute final"]);

Ex:
find_root(exp(-5*r)-5*cos(15*r),r,0.001,1000);


segunda-feira, 31 de agosto de 2009

Fazendo a Função exit() funcionar.

Quando eu coloco a função exit(n), onde, n é o número que será retornado ao sistema após a execução do programa, e tento compilar, tendo o seguinte erro de compilação:

warning: incompatible implicit declaration of built-in function 'exit'

Para resolver este problema, basta declarar a bibliteca stdlib.h no início do programa.


Compilando programas depois de usar a math.h

Quando eu compilei programas usando a math.h ,tive a seguinte mensagem de erro:
gcc -g -c arquivo.c
gcc -g -o arquivo arquivo.o

undefined reference to `sqrt'

Para resolver este problema, consultando o google, e sem pesquisar porque funciona, por enquanto, fiz:

gcc -lm -g -c arquivo.c
gcc -lm -g -o arquivo arquivo.o

segunda-feira, 17 de agosto de 2009

Compilando para debugar

Algumas pessoas nascem para ser selvagens. Mas todos os programas nascem para ser debugados!
Assim, pela necessidade, desde maio, venho compilando os meus programas com suporte para debug. O comando para isso é:

gcc -g -c programa.c
gcc -g -o programa programa.o


Eu utilizo o debugador DDD (Data Display Debuger), facilmente obtido com um

apt-get install ddd


O comando para utilizá-lo, é:

ddd programa
Se desejar que o programa rode com argumentos, o debugador precisa ser informado disso. Isto é muito útil para não ter de ficar colocando os argumentos alterando as variáveis que recebem os argumentos de linha de comando manualmente no debugador:
ddd --args programa argumento1 argumento2 ... argumentoN

quinta-feira, 13 de agosto de 2009

Unzip - Descompactando apenas um(ns) arquivo(s) dentre os que estão compactados.

Bem, é bem fácil usar o unzip, embora ler os man possa ser algo chato...

unzip arquivo.zip arquvo zipado


Um grande abraço do fundo do meu coração vermelho de outubro de 1917,
Atenágoras Souza Silva.

Depois de um longo intervalo

Depois de um longo intervalo sem postar (foram apenas 4 meses), eu volto, e espero que seja com uma saraivada de posts, porque pretendo reportar as coisas que eu fiz nas férias e no final do semestre, no que diz respeito a programação de computadores, softwares novos para isto, e comandos úteis que foram uma mão na roda para mim, por me polparem trabalho.
Mas ainda estou tendo de lidar com um último erro antes das férias acabaraem: FALHA DE SEGMENTAÇÃO.

Um grande abraço do fundo do meu coração vermelho de outubro de 1917,
Atenágoras Souza Silva.

domingo, 12 de abril de 2009

Procurar ajuda no VIM

O ambiente de ajuda do VIM é bem completo, mas não sei dizer se é ótimo. Uma coisa legal que eu descobri é o seguinte:
Imagine que você gostaria de saber sobre algum atributo ou se existe algum comando para fazer a tarefa que você quer. Importante: Pense no nome em inglês da tarefa que você quer realizar.
Aí, você sai do modo de edição com ESC, e tecla o caracter entre aspas":" e digita:
:help <expressão-procurada>

Mas em vez de ENTER, após seguir esta dica, que dará um erro, digite Ctrld-D, e o VIM lhe retornará os tópicos de ajuda em que a sua palavra aparece, bastando digitar, depois de sair novamente do modo de edição:
:help <tópico-de-ajuda-sugerido pelo VIM>

Exemplo:
:help replace Ctrl-D -->retorna vários tópicos relacionados com a palavra procurada, e no exemplo, usarei o tópico find-replace.
:help find-replace --> Tecle Enter depois de digitado este comando para ir para o tópico de ajuda find-replace.

Procurar e substibuir no VIM

Esta eu descobri porque queria mudar os repositórios debian para ver se eu achava o crafty na próxima versão do Debian, mas o pacote ficou realmente orfão, e queria editar o /etc/apt/sources.list no VIM e queria todas as funcionalidades básicas um editor simples.
Procurar e substitui no VIM não é tão simples.
Primeiro, deve-se sair do modo de edição, em que você pode inserir texto no arquivo com ESC. Depois, aperta-se o caractere que está entre aspas ":", para poder inserir o comando substitute, ou s, sua abreviação

Sintaxe:
: [região] s/palavra-procurada/palavra-substituta --> região são as linhas entre as quais a pesquisa e substituição serão feitas, separadas por vírgula.
ou
:%s/palavra-procura/palavra-substituta -->% procura a expressão e executa a substituição UMA vez em todas as linhas.
Se desejarmos substituir todas as ocorrências que forem encontradas nas linhas da região, incluimos uma terceira barra e a letra g (global).

Exemplos:
:10,15 s/palavra1/palavra2 --> Procura entre as linhas 10 e 15 a primeira ocorrência de palavra1 e substitui por palavra2
:%s/palavra1/palavra2/g --> procura em todas as linhas, todas as ocorrências de palavra1 na linha e as substitui por palavra2 em todas as linhas do texto.

sexta-feira, 10 de abril de 2009

Tentativa de solução para meu X rodar na resolução 320x240

Uma coisa que só consegui fazer uma vez.
Quando eu usava as ferramentas de configuração xf86config, ou editava o antigo arquivo de configuração dodo antigo Xfree86, eu colocava esta resolução para funcionar e nada. Isto no velho Marx (K6). Aí tive de trocar a placa de vídeo quando pifou. Ainda estou para atualizar a minha BIOS no Marx par poder colocar a placa nVidia TNT2 PCI que comprei para ele (era uma poderosa para barramento PCI, de antigamente), que não funcionou. Aí, um amigo meu me passou uma placa diferente, e ao voltar a ver o micro funcionando, ganho, de brinde, a resolução 320x240 suportada.
Um mês depois, comprei um novo micro (na verdade, minha mãe comprou, pois ainda "trabalho" na VASP), e não consegui fazer tal resolução funcionar nele.
Eu passei este tempo todo pensando que era só dar um jeito de configurar a placa de vídeo para esta resolução no Linux, e para algumas placas se conseguia e para outras não.
Então um link que eu achei na internet dá a pista de que pode ser o monitor...
Agora só falta saber exatamente quais os parâmetros para o monitor suportar esta resolução.
O link é https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-mga/+bug/183913
Espero que funcione.
Também darei uma olhada no arquivo de configuração do X no computador antigo.
Espero que realmente funcione.

domingo, 8 de março de 2009

Instalando e Configurando o Debian Lenny

Ontem instalei o Debian Lenny no meu computador.
Segui uns roteiros para configurá-lo e adaptá-lo ao uso no Desktop.
A maioria dos passos, eu tirei do blog do próprio Morimoto. Deste post do blog dele, eu configurei o apt para baixar pacotes restritos, não-livres e multimídia, além de configurar o flash, o java, instalar fontes Windows etc.
No outro artigo, também publicado no Guia do Hardware, de Júlio César Bessa Monqueiro, basicamente configurei as fontes para não ficarem pequenas no Iceweasel.
É isso.

sábado, 7 de março de 2009

Otimizando o Desempenho do HD com hdparm.

Encontrei um link que fala sobre otimização do desempenho do HD.
Depois, eu faço um post contando o resultado dos experimentos em minhas máquinas.
http://www.cleberjsantos.com.br/linux/acelerando-o-hd

terça-feira, 3 de março de 2009

update-alternatives

No GNU/Linux, pode haver diversos aplicativos para executar exatamente uma tarefa. E você pode escolher um "alias", que se ligará à aplicação padrão para aquela tarefa. Pelo menos é este o comportamento das distribuições Debian-like.
Os links encontram-se todos no diretório /etc/alternatives, e existe um comando que pode ser utilizado para manipulá-los da maneira mais simples possível: o update-rc.
É um comando om muitas opções, dá para colocar um novo link, colocar opções para um link, remover um link (entendendo link como uma categoria de programas, como por exemplo, x-session-manager).
No meu exemplo de utilização, queria colocar como padrão um determinado emulador de terminal X:

#update-alternatives --config x-terminal-emulator --> Onde --config é a opção para configurar (escolher) a opção de programa que eu vou querer para o link (ou grupo de programas), e x-terminal emulator é o link.

domingo, 15 de fevereiro de 2009

Fim de Férias

Hoje, dia 15/02/2009, domingo foi o meu último dia de férias.
Fiquei umas 3 semanas, pelo menos, sem publicar nada, mas fiz bastante coisa nesses dias.
Eu usei o dosemu para rodar o freedos e o dtmnt. Instalei FreeDOS em uma partição disponível, e instalei xmame.
Escrevi o que fiz para que eu faça posts mais detalhados e explicativos de tudo o que eu fiz depois.
Agora, eu estou instalando um driver melhor que o vesa para a minha placa de vídeo no X, mas não estou conseguiindo, como não conseguia usando vesa, utiizar uma resolução de 320x240, que é padrão para muitos jogos.
Trata-se do OpenChrome.
Como ele ele está instalado, não precisei fazer muito.
Eu posso verificar o /var/log/Xorg.0.log, e procurar pelo padrão (EE) para erros. Não encontrei nada a respeito.
Mas procurando por 320x240, encontrei uma informação que o computador retorna e posso utilizá-la como um padrão de pesquisa para procurar na Internet defeitos parecidos e soluções. Não vou fazer agora, mas o padrão é:
(II) CHROME(0): Not using default mode 320x240 (bad mode clock/interlace/doublescan)

quinta-feira, 5 de fevereiro de 2009

Configurando o Scanner da multifuncional WorkCentre 3119, da Xerox

Primeiro, eu editei o arquivo /etc/init.d/mountdevsubfs.sh, e descomentei as seguintes linhas após
# Magic to make /proc/bus/usb work :
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb
Depois, coloquei as seguintes linhas no arquivo /etc/udev/rules.d/60-symlinks.rules:
# Cria symlink para impressora USB para /dev/usb/lp*
BUS=="usb", KERNEL=="lp[0-9]*", SYMLINK+="usb/%k"
Depois, reiniciei o udev:
# invoke-rc.d udev restart
Depois, coloquei todos os usuários do sistema no grupo lp com:
adduser lp
Agora vamos ver se funcionou.
Nao funcionou.

domingo, 1 de fevereiro de 2009

Na casa do Alexandre - parte 4: Configuração de rede wireless (mal sucedida)

Segue aqui o que fizemos depois de ter a placa funcionando no Computador do Alexandre.
Como o adaptador wireless USB utilizado é baseado no chipset Ralink, a configuração da rede no Debian, depois que o dispositivo está funcionando, teria de ser feita manualmente devido à maneira como a placa trabalha com os protocolos de segurança da rede wireless, embora no Mandriva tenha funcinado normalmente no modo gráfico.
Bom, aos comandos:
Primeiro, devemos falar o modo de gerenciamento da rede wireless, e ativar a placa para a rede:
iwconfig wlan0 mode managed -->fala para o dispositivo que o modo da rede é o gerenciado.
ifconfig wlan0 up --> Ativa o adaptador wireless.
Agora, escaneamos as redes que estão por perto:
iwlist wlan0 scan --> Este comando lista as redes disponíveis, e até a "saúde" delas.
Conseguimos escaneara rede OALINUX do meu amigo.
Depois, configuramos a rede, propriamente dita.
iwconfig wlan0 ap REDE --> Na referência, este deveria ser o nome da rede, mas acabamos tendo que colocar uma informação em Hexadecimal
iwpriv wlan0 set AuthMode=WPAPSK --> Sobre o modo de segurança utilizado
iwpriv wlan0 set WPAPSK=SENHA --> Para dar senha de rede.
iwpriv wlan0 set EncrypType=AES --> Tipo de encripitamento relacionado ao pacote de encripitação WPA2. Acho que era WPA1, configuramos errado e por isso não funcionou. O comando diz respeito à configuração de uma rede privada, enquanto que o iwconfig é responsável por levantar a rede e a interface.
iwconfig wlan0 --> Para levantar a rede e se conectar a ela.
No caso, é usado dhcp para se conectar conseguir um IP pela rede wireless, embora isto possa ser feito manualmente, dependendo do caso. Agora, fica muito igual às outras redes.
dhclient wlan0

Como não deu certo, não nos preocupamos em configurar a rede nos arquivos de configuração para que ela fosse acessível somente no boot.

sexta-feira, 30 de janeiro de 2009

Esboço sobre configuração de acesso X remoto

Eu uso o KDM, as configurações do firewall do wireless router já estão de tal maneira que não permitem conexões de rede externa, como a internet.
Este é um esboço, pretendo estender este post, ou fazer outros posteriormente.
Bem, eu basicamente alterei o /etc/kde3/Xaccess para permitir que qualquer host se logue, e que qualquer host consiga achar um servidor X na rede enviando pacotes por BROADCAST. Depois, alterei o /etc/kde3/kdmrc para permitir que o Xaccess seja utilizado para login remoto.
Para acessar o X remotamente, digito da máquina cliente o comando:
X -query ,ou
X -- :2 -query --->para o caso de já haver uma outra sessão X local no cliente.
Referências: http://www.guiadohardware.net/tutoriais/configurando-servidor-xdmcp/pagina3.html

quinta-feira, 29 de janeiro de 2009

Man pages em português no ubuntu

Para ler as man pages dos comandos do GNU/Linux no ubuntu em português, deve-se instalar os pacotes para isto com o comando:
#apt-get install manpages-pt manpages-pt-dev