Páginas

Mostrando postagens com marcador Software Livre. Mostrar todas as postagens
Mostrando postagens com marcador Software Livre. Mostrar todas as postagens

quarta-feira, 16 de maio de 2012

Listagem de alguns comandos e diretórios do linux

Com o rápido crescimento do Linux, originou-se um vácuo na documentação sobre este sistema em português. O intuito desta postagem é ajudar aqueles que porventura estão com alguma dúvida sobre os comandos e aqueles que ainda não conhecem esta "segunda face" do sistema operacional.


Esta referência mostra os principais comandos do Linux e a estrutura do sistema de arquivos, é indicada para aqueles que não conseguem suprir suas necessidades através da interface gráfica ou que estejam usando micros no modo texto. Atualmente, é percebido uma grande utilização da linha de comando em serviços de Telnet e SSH. Não vou explicar o funcionamento dos mesmos, esta lista funciona apenas como uma referência para informar que existem, o uso dos mesmos está descrito com detalhes nas páginas de manuais (ver abaixo).

É bom lembrar que o Linux possui milhares de comandos, muitos deles fazem as mesmas coisas e outros tem usos tão específicos que nem valem ser lembrados. 

Se você não consegue lembrar todos os comandos, aconselho a utilizar o Midnight Commander (executado através do comando "mc") em seu console. Este fantástico aplicativo fornece um completíssimo Gerenciador de Arquivos para o console. Também disponível para o Windows XP. O MC vem com quase todas as distribuições do Linux.


Documento base para a postagem: Linux Files and Command Reference 0.8 escrito por Mark Allen em 2000.


Lembrete

Nesta página não explico a sintaxe dos comandos ou seu funcionamento detalhado, para isso consulte as páginas de manual dos mesmos.

Para ler as páginas de manual digite "man nome_do_comando" ou ainda, dependendo da documentação você pode ter mais detalhes digitando "info nome_do_comando".

Estrutura de Diretórios

Esta estrutura é muito parecida sistemas Linux/BSD e, observando-se a logica, é possível entender as pastas que não estão nesta lista como por exemplo as que estão dentro do /usr/local (que tem a mesma estrutura do /usr).

/root - Diretório HOME do Superusuário.
/home - Diretório HOME dos usuários comuns.
/bin - Comandos utilizados durante o boot e por usuários comuns.
/sbin - Como os comandos do /bin só que não são utilizados pelos usuários comuns.
/proc - Sistema de arquivos virtual (na memória) com dados do Kernel.
/boot - Arquivos utilizados durante a inicicialização do sistema e o Kernel.
/dev - Dispositivos (modem, mouse, teclado, etc..).
/etc - Arquivos de configurações do sistema.
/etc/skel - Padrão de arquivos para o diretório HOME de novos usuários.
/etc/sysconfig - Arquivos de configuração do sistema para os dispositivos.
/mnt - Local onde são montados discos e volumes temporários (disquete, outros HDs, CD-ROM, etc..).
/tmp - Arquivos temporários do sistema utilizados antes da inicialização do sistema ter sido concluída.
/var - Contém arquivos que são modificados com o decorrer do uso do sistema (e-mail , temporários, filas de impressão, manuais).
/var/lib - Bibliotecas que mudam enquanto o sistema está rodando.
/var/local - Arquivos variáveis de programas que estão rodando.
/var/lock - Travas para indicar que um programa está utilizando um determinado dispositivo.
/var/log - Arquivos de log do sistema (erros, logins, etc..)
/var/run - Arquivos importantes ao sistema úteis até o próximo boot (atualizações de softwares e kernel).
/var/spool - Diretório de filas de impressão, e-mail e outros
/var/tmp - Arquivos temporários dos programas
/var/catman - Um cache para manuais que são formatados na hora de serem utilizados.
/lib - Bibliotecas compatilhadas necessárias pelos programas do sistema.
/lib/modules - Modulos externos do kernel para dispositivos e funções.
/usr - Contém arquivos de todos os programas e bilbiotecas para o uso dos usuários do Linux.
/usr/bin - Executáveis em geral.
/usr/sbin - Executávies de administração do sistema não necessários pelo kernel, como por exemplo servidores.
/usr/include - Arquivos para serem utilizados em linguagens de programação.
/usr/lib - Bibliotecas dos executávies encontrados no /usr/bin
/usr/local - Arquivos de programas instalados localmente (apenas para alguns usuários).
/usr/man - Manuais
/usr/info - Documentos de Informações
/usr/X11R6 - Arquivos do X Window System e seus aplicativos.

Comandos do Sistema de Arquivos

Aqui estão os comandos para lidar com o sistema de arquivos (HDs, drives e partições de rede).

badblocks - Utilizado para encontrar defeitos físicos no HD.
cfdisk - Similar ao fdisk só que com uma interface melhorada.
df - Mostra o espaço livre no disco.
dosfsck Verifica e repara sistemas FAT do DOS.
du - Mostra o espaço que ocupa um diretório e os arquivos internos.
dump - Usado para fazer o backup de um sistema ext2. O complemento deste comando é o restore.
dumpe2fs - Faz o backup de blocos do HD e grupos.
e2fsck - Verifica um volume ext2 em busca de erros.
e2label - Muda o nome de uma partição ext2.
fdisk - Usado para criar, editar e apagar partições no HD.
fdformat - Formata um disquete.
mount - Usado para "montar" um sistema de arquivos. O complemento deste comando é o umount.
restore - Usado para restaurar um sistema ext2.
umount - Desmonta o sitema de arquivos. O complemento é o comando mount.
cdrecord - Grava CDs.
cdparanoia - Grava CDs de audio.

Manipulação de arquivos e diretórios

cd - Muda para um diretório. Se você não especificar nada ele muda para seu diretório HOME.
chmod - Muda as permissões para acesso aos arquivos e diretórios (Escrita, Leitura, etc..)
chown - Muda o propritário e grupo de um arquivo ou diretório.
chgrp - Muda o grupo de um arquivo ou diretório.
cp - Copia os arquivos de um diretório/pasta para outro diretório/pasta.
dir - Lista o conteúdo de um diretório (preferir o comando "ls").
find - Procura arquivos com determinadas características na árvore de diretórios.
ln - Cria um link simbólico para um arquivo.
ls - Lista os arquivos de um diretório.
mc - Midinght Commander. Um gerenciador de arquivos completo para o console. MUITO BOM!
mkdir - Cria um diretório.
mv - Move ou renomeia um arquivo.
rm - Exclui arquivos.
rmdir - Exclui um diretório vazio.
vdir - Lista o conteúdo de um diretório.
wheris - Localiza o executável, código fonte e manual de um comando.
ghomemover_console - Programa escrito por Daniel Brooke Peig que faz a mudança de diretórios alterando as referências a arquivos.

Edição e visualização de arquivos

ed - Editor de Texto
emacs - Editor de texto mais completo.
gitview - Visualizador de arquivos Hexadecimais.
head - Mostra as primeiras linhas de um arquivo.
jed - Editor
joe - Editor
less - Usado para visualizar arquivos.
more - Usado para visualizar arquivos.
pico - Editor de textos simples.
tail - Mostra as últimas linhas de um arquivo.
vi - Editor com uma interface de linha de comando.

Compressão de arquivos, backup e restauração

ar - Cria, modifica e extrai arquivos.
bunzip2 - Descompactador de arquivos bZIP2.
bzip2 - Compactador de arquivos bZIP2.
bzip2recover - Recupera arquivos bzip2 danificados.
compress - Comprime informações.
gunzip - Descompacta um arquivo GZip.
gzip - Compacta arquivos no formato GZip.
rpm - Instalador de programas (pacotes) do RedHat.
tar - Compacta grupos de arquivos.
uncompress - Descompacta informações.
unzip - Descompacta arquivos ZIP.
zip - Compactador de arquivos ZIP.

Gerenciamento de processos e aplicativos

gitps - Um gerenciador de processos com interface gráfica.
killall - Fecham todos os processos por nome.
sa - Mostra informações sobre os processos que estão sendo executados pelos usuários.
top - Mostra os processos que estão ocupando a manior quantidade de recursos do sistema.
CTRL-C - Fecha o programa em questão.
& - No final de cada comando faz com que o aplicativo rode em background.

Ajuda

apropos - Mostra todos os comandos com a tecla e sua descrição.
help - Ajuda para os comandos do bash.
man - Mostra o manual de um comando.
info - Similar aos manuais porém com uma organização diferente. Normalmente são mais detalhados.

Rede

domainname - Mostra ou ajusta o nome de domínio do sistema.
hostname - Usado para mostrar ou atualizar o nome do micro na rede.
finger - Mosta informações sobre um determinado usuário.
ftp - Programa de transferência de arquivos.
ifconfig - Configura a interface de rede.
netconf - Interface gráfica do RedHat para confiurar a rede.
netconfig - Outra interface gráfica para a configuração da rede.
netstat - Mostra informações sobre as conexões à rede.
ping - Manda um echo ICMP para um determinado sistema da rede.
rcp - Copia arquivos entre diferentes hosts da rede.
rlogin - Inicia um terminal em um Host remoto.
route - Mostra e manipula a tabela de roteamento.
rsh - Executa um comando em um host da rede.
rup - Mostra o status de um sistema na rede.
showmount - Mostra informações de sistemas NFS monstados sobre a rede.
telnet - Interface para o protocolo Telnet.
traceroute - Mostra o caminho dos pacotes até um determinado host.

Comunicações e e-mail

mailx - E-Mail.
lynx - Browser de Internet para o console.
pine - Programa para e-maisl, notícias e mensagens na rede.
sendmail - Muito popular, envia e-mails.
smail - Outro famosos sistema de e-mails mais fácil de usar que o sendmail.
talk - Permite a conversa entre dois micros.
tin - Leitor de Notícias.

Modos de execução do sistema

exit - Termina o shell.
halt - Congela o sistema .
logout - Faz o logout do usuário.
poweroff - Desliga o computador.
reboot - Reinicia o computador.
startx - Inicia o X-Window System.

Configuração do sistema

kernelcfg - Interface gráfica para a configuração do Kernel em Sistemas RedHat.
linuxconf - Sistema de configurações gerais do RedHat.
mouseconfig - Aplicativo RedHat para a configuração do mouse.
printtool - Aplicativo do RedHat para a configuração de impressão.
quota - Mostra o uso do disco e seus limites.
samba - Utilizado para ligar/desligar/reiniciar o Samba (cliente de redes Microsoft).
setserial - Muda/Mostra informações sobre as portas seriais.
setup - Configura os dispositivos e os sistemas de arquivos.
timeconfig - Utilitário da RedHat para a configuração do relógio.
sndconfig - Utilitário RedHat para a configuração da placa de som.

Informações do sistema

df - Mostra o espaço livre em disco.
du - Mostra o uso do disco.
free - Mostra a memória livre do disco.
lspci - Lista os dispositivos PCI.
pnpdump - Mostra informações sobre os dispositivos ISA.
pstree - Mostra a árvore de processos.
tload - Imprime um gráfico com os recursos do sistema.
vmstat - Mostra as estatísticas da memória virtual.

Gerenciamento de usuários

adduser - Adiciona um usuário ao sistema.
groupadd - Cria um novo grupo.
groupdel - Apaga um grupo.
groupmod - Modifica um grupo.
groups - Imprime os grupos de um usuário.
logname - Mostra o login name do usuário.
passwd - Muda a senha.
smbclient - Cliente para redes SAMBA.
smbmount - Monta um sistema de arquivos SAMBA (Windows).
su - Muda o usuário para único.
sulogin - Login do modo de único usuário.
useradd - Adiciona um usuário.
userdel - Apaga um usuário e seus arquivos.
usermod - Modifica um usuário.
w - Mostra os usuários logados e o que estão fazendo.
wall - Manda uma mensagem para todos no terminal.


Autor: Daniel Brooke PeigFonte: http://www.danbp.org/linuxcom.html

quinta-feira, 26 de abril de 2012

Dúvidas e enganos comuns sobre software livre a licença GPL

completando as postagens da serie O que é software Livre? ... veremos agora algumas respostas a duvidas relacionadas a Licensa GPL

Posso distribuir comercialmente ou cobrar por software livre, de minha autoria ou de terceiros?


Note que a definição de liberdade apresentada acima não faz nenhuma referência a custos ou preços. O fato de se cobrar ou não pela distribuição ou pela licença de uso do software não implica diretamente em ser o software livre ou não. Nada impede que um software livre obtido por você seja copiado e vendido, tenha ela sido modificado ou não por você. Ou seja, software livre não necessariamente precisa ser gratuito.

Portanto, você pode ter pago para receber cópias de um software livre, ou você pode ter obtido cópias sem nenhum custo. Mas independente de como você obteve a sua cópia, você sempre tem a liberdade de copiar e modificar o software, ou mesmo de vender cópias – ou distribui-las gratuitamente.

“Software Livre” não significa “não-comercial”. Um programa livre deve estar disponível para uso comercial, desenvolvimento comercial, e distribuição comercial. O desenvolvimento comercial de software livre não é incomum; tais softwares livres comerciais são muito importantes.

Se eu distribuo um software livre, tenho que fornecer cópias a qualquer interessado, ou mesmo disponibilizá-lo para download público?

A resposta curta seria “não”. Seria uma atitude em sintonia com a filosofia da liberdade de software se você o disponibilizasse para qualquer interessado, preferencialmente em um formato de fácil manipulação (exemplo: imagens ISO de CD-ROMs, pacotes tar.gz com os códigos-fonte ou outros formatos para código executável instalável), mas você não tem esta obrigação.

Entretanto, você tem que deixar o código-fonte à disposição de quem vier a receber o código-executável (caso você não os distribua em conjunto, que é a forma mais apropriada), nos termos da licença. E, naturalmente, tem que respeitar todos os demais termos da licença livre adotada.


Se eu uso um software livre, tenho que disponibilizar meus próprios softwares para o público?

Não. Mesmo se você fizer alterações em um software GPL e guardá-las para seu próprio uso, você não estará infringindo a licença. A obrigação básica da GPL, no que diz respeito a disponibilização de software, é que se você for disponibilizar para terceiros algum software obtido sob os termos da GPL (modificado por você ou não), esta disponibilização deve ocorrer sob os termos da GPL.

Assim, é perfeitamente legal e normal um mesmo desenvolvedor disponibilizar alguns softwares com licenças livres e outros com licenças proprietárias, ter softwares livres e não-livres instalados no mesmo computador, usar softwares livres (como o compilador GCC) como ferramentas de desenvolvimento de softwares proprietários, ou incluir softwares livres e não-livres no mesmo CD-ROM, para citar alguns exemplos.

Outras dúvidas comuns

Veja a resposta a muitas dúvidas freqüentes de desenvolvedores, distribuidores e usuários de Software Livre na GPL FAQ (em português).

Software livre X Código aberto

Em 1998, um grupo de personalidades da comunidade e do mercado que gravita em torno do software livre, insatisfeitos com a postura filosófica do movimento existente e acreditando que a condenação do uso de software proprietário é um instrumento que retarda, ao invés de acelerar, a adoção e o apoio ao software livre no ambiente corporativo, criou a Open Source Initiative, que adota o termo Open Source (Código Aberto) para se referir aos softwares livres, e tem uma postura voltada ao pragmatismo visando à adoção do software de código aberto como uma solução viável, com menos viés ideológico que a Free Software Foundation.

Ao contrário do que muitos pensam, Código Aberto não quer dizer simplesmente ter acesso ao código-fonte dos softwares (e não necessariamente acompanhado das “4 liberdades” do software livre). Para uma licença ou software ser considerado como Código Aberto pela Open Source Initiative, eles devem atender aos 10 critérios da Definição de Código Aberto, que incluem itens como Livre Redistribuição, Permissão de Trabalhos Derivados, Não Discriminação, Distribuição da Licença e outros.

De modo geral, as licenças que atendem à já mencionada Definição de Software Livre (da Free Software Foundation) também atendem à Definição de Código Aberto (da Open Source Initiative), e assim pode-se dizer (na ampla maioria dos casos, ao menos) que se um determinado software é livre, ele também é de código aberto, e vice-versa. A diferença prática entre as duas entidades está em seus objetivos, filosofia e modo de agir, e não nos softwares ou licenças.

Fonte: http://br-linux.org/faq-softwarelivre/

terça-feira, 24 de abril de 2012

O que é Copyleft?

continuando a postagem iniciada em O que é Software Livre?...

O que é Copyleft?

Copyleft é uma extensão das 4 liberdades básicas, e ocorre na forma de uma obrigação. Segundo o site da Free Software Foundation, “O copyleft diz que qualquer um que distribui o software, com ou sem modificações, tem que passar adiante a liberdade de copiar e modificar novamente o programa. O copyleft garante que todos os usuários tem liberdade.” – ou seja: se você recebeu um software com uma licença livre que inclua cláusulas de copyleft, e se optar por redistribui-lo (modificado ou não), terá que mantê-lo com a mesma licença com que o recebeu.

Nem todas as licenças de software livre incluem a característica de copyleft. A licença GNU GPL (adotada pelo kernel Linux) é o maior exemplo de uma licença copyleft. Outras licenças livres, como a licença BSD ou a licença ASL (Apache Software License) não incluem a característica de copyleft.


Acima você vê o símbolo do copyleft, palavra que é um trocadilho com copyright, e cuja tradução aproximada seria “deixamos copiar”, ou “cópia permitida”.


sábado, 21 de abril de 2012

O que é Software Livre ?

Para estrear as postagens sobre Software, escolhi um assunto o qual venho me afeiçoando agora que entrei na faculdade, Softwares livres.

Muita gente ainda não conhece os conceitos e objetivos por trás da ideologia do Software Livre e este artigo respondera a diversas dúvidas comuns a novos usuários, desenvolvedores interessados, ou alunos às voltas com trabalhos acadêmicos. Vou postar em sequencia, cada um dos tópicos a seguir (Provavelmente um por semana):

  • O que é software livre 
  • O que é copyleft 
  • Qual a diferença entre software livre e código aberto 
  • Quais as obrigações de quem desenvolve ou distribui software livre 
  • Quais as licenças de software livre mais comuns 
  • Quais os exemplos de softwares livres populares 

então comecemos.


O que é software livre?

Software Livre, ou Free Software, conforme a definição de software livre criada pela Free Software Foundation, é o software que pode ser usado, copiado, estudado, modificado e redistribuído sem restrição. A forma usual de um software ser distribuído livremente é sendo acompanhado por uma licença de software livre (como a GPL ou a BSD), e com a disponibilização do seu código-fonte.

Software Livre é diferente de software em domínio público. O primeiro, quando utilizado em combinação com licenças típicas (como as licenças GPL e BSD), garante os direitos autorais do programador/organização. O segundo caso acontece quando o autor do software renuncia à propriedade do programa (e todos os direitos associados) e este se torna bem comum.
                                                 
                                                                  
                                                                       Richard Stallman

O Software Livre como movimento organizado teve início em 1983, quando Richard Stallman (foto acima) deu início ao Projeto GNU e, posteriormente, à Free Software Foundation.

Software Livre se refere à existência simultânea de quatro tipos de liberdade para os usuários do software, definidas pela Free Software Foundation. Veja abaixo uma explicação sobre as 4 liberdades, baseada no texto em português da Definição de Software Livre publicada pela FSF:

As 4 liberdades básicas associadas ao software livre são: 

  • A liberdade de executar o programa, para qualquer propósito (liberdade nº 0) 
  • A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade nº 1). Acesso ao código-fonte é um pré-requisito para esta liberdade. 
  • A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº 2). 
  • A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade nº 3). Acesso ao código-fonte é um pré-requisito para esta liberdade. 

Um programa é software livre se os usuários tem todas essas liberdades. Portanto, você deve ser livre para redistribuir cópias, seja com ou sem modificações, seja de graça ou cobrando uma taxa pela distribuição, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que você não tem que pedir ou pagar pela permissão, uma vez que esteja de posse do programa.

Você deve também ter a liberdade de fazer modifcações e usá-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elas existem. Se você publicar as modificações, você não deve ser obrigado a avisar a ninguém em particular, ou de nenhum modo em especial.

A liberdade de utilizar um programa significa a liberdade para qualquer tipo de pessoa física ou jurídica utilizar o software em qualquer tipo de sistema computacional, para qualquer tipo de trabalho ou atividade, sem que seja necessário comunicar ao desenvolvedor ou a qualquer outra entidade em especial.

A liberdade de redistribuir cópias deve incluir formas binárias ou executáveis do programa, assim como o código-fonte, tanto para as versões originais quanto para as modificadas. De modo que a liberdade de fazer modificações, e de publicar versões aperfeiçoadas, tenha algum significado, deve-se ter acesso ao código-fonte do programa. Portanto, acesso ao código-fonte é uma condição necessária ao software livre.

Para que essas liberdades sejam reais, elas tem que ser irrevogáveis desde que você não faça nada errado; caso o desenvolvedor do software tenha o poder de revogar a licença, mesmo que você não tenha dado motivo, o software não é livre.


Matéria redigida por Augusto Campos, no site http://br-linux.org/faq-softwarelivre/


Adote a liberdade como filosofia de vida...