Autor Tópico: Executar fora da pasta pessoal (home) um programa criado  (Lida 2701 vezes)

Offline joaopaulosm

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Executar fora da pasta pessoal (home) um programa criado
« Online: 18 de Julho de 2012, 11:08 »
Pessoal, boa tarde.

Aqui vai uma dúvida básica, espero que vocês possam me ajudar.

Eu tenho um computador com 3 partições, uma com windows, outra com Ubuntu e outra chamada DADOS para compartilhar entre os 2 SOs. Na verdade, eu nem uso mais o Windows, só o Ubuntu mesmo.

Nesta partição DADOS eu quero organizar meus arquivos.

Enfim, eu criei um programa simples em linguagem C e fiz a compilação com o GCC:

gcc simples.c -o simples

Ao tentar executar este programa com ./simples a primeira mensagem é: "Permissão negada". Ao tentar executar com o sudo ./simples a mensagem é "Comando não encontrado"

Bomo eu acabei de instalar o Ubuntu 12.04, achei que era algum tipo de configuração relacionado a variável PATH, ou talvez se eu usasse o chmod 777. Enfim, pesquisei nos foruns, tentei de tudo, mas nada funcionou.

Aí eu entrei na partição do Ubuntu, na pasta home/Documents, coloquei o fonte lá e compilei com o GCC, da mesma forma. Pimba! Logo de cara, ao dar o LS já se percebe que a cor do nome do arquivo fica diferente (indicando que ele tem alguma característica diferenciada). Executei o programa com o comando ./simples e pronto, funcionou.

Enfim, alguém pode me explicar os conceitos por trás disso, qual a diferença em manipular arquivos de uma outra partição, como tornar os programas "executáveis" ou indicar alguma boa apostila para que eu possa aprender sobre isso?

Desde já agradeço!

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil

Offline raidicar

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Quad Shot of Ubuntu
    • Ver perfil
Re: Executar fora da pasta pessoal (home) um programa criado
« Resposta #2 Online: 18 de Julho de 2012, 15:51 »
Ao tentar executar este programa com ./simples a primeira mensagem é: "Permissão negada".

1 - entre dentro do diretório do programa e de o comando "sudo chmod + x simples".
ou informe o caminho completo no comando "sudo chmod +x /home/documents/simples".

Ao tentar executar com o sudo ./simples a mensagem é "Comando não encontrado".

2 - Essa mensagem ocorreu por dois possíveis motivos:
a - Você não estava no mesmo diretorio que o programa simples
b - Você ainda não tinha dado o (chmod + x).
c - Você cometeu algum erro ao tentar torna-lo executavel, ex: errou o comando chmod, informou o caminho incorreto ao chmod, etc...

Ordem prara execução de programa no terminal:
1 - criar o programa.
2 - Torna-lo executavel com o comando: sudo chmod +x /caminho/nome_do_programa.
2.1 - Para executar o programa, tem duas formas:
2.1.1 - Informar o caminho completo do programa, Ex: /home/user/Documents/programa.c
2.1.2 - Entrar no diretório e executar o programa, Ex: cd /home/user/Documents/ e depois ./programa.c
obs: o "ponto" do "./" referencia toda a estrutura de diretórios anteriores ao diretório atual, eu costumo dizer, para simplificar, que o "ponto" do "./" que vem antes do programa equivale ao resultado do comando pwd.

Outra forma de executar o programa:
após o chmod + x, voce pode copia-lo para um diretório binário, EX: com o comando sudo cp programa.c /usr/local/bin vc copia o programa.c para /usr/local/bin.
Agora, para executa-lo, basta digitar programa.c.
Não será mais preciso de "./" ou informar o caminho completo, basta agora digitar o nome do programa que o mesmo será encontrado.

qual a diferença em manipular arquivos de uma outra partição
Nenhuma diferença. o linux utiliza estrutura de diretórios em arvores, ou seja, partições nada mais são que diretórios dentro da estruturas de diretórios.
Por isso, partições são montadas em diretórios.
Ou seja, se tenho a partição principal do windows 7 montada (configurada para acesso) no linux dentro de /media/meuwindows, a partição windows nada mais é que o diretório meuwindows dentro de /media.
Para copiar, apagar ou abrir algum conteúdo da partição do windows 7:
Cópia dos documentos do Windows 7 para os Documentos do linux: cp -r /media/meuwindows/users/usuario/documentos/* /home/usuario/Documentos/
remoção dos Documentos do Windows 7: rm -rf /media/meuwindows/users/usuario/documentos/*
remoção dos Documentos no Linux: rm -rf /home/usuario/Documentos/*

Comando útil:
df -h
Mostra onde as partições estão montadas (configuradas para acesso).
Ex:
Resultado do df -h:
Sist. Arq.            Tam. Usado Disp. Uso% Montado em
/dev/sda5              46G   22G   23G  49% /
udev                  2,9G  4,0K  2,9G   1% /dev
tmpfs                 1,2G  1,3M  1,2G   1% /run
none                  5,0M     0  5,0M   0% /run/lock
none                  2,9G  1,7M  2,9G   1% /run/shm
/dev/sda6             118M   60M   52M  54% /boot
/dev/sdb1             405G  332G   52G  87% /media/meuwindows
O disco sdb1 é o disco que contém o windows e está acessível em /media/meuwindows.
Pelo terminal, cd /media/windows já te joga na partição windows.

Att,


« Última modificação: 18 de Julho de 2012, 16:54 por raidicar »
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Executar fora da pasta pessoal (home) um programa criado
« Resposta #3 Online: 18 de Julho de 2012, 16:17 »
Dar permissão de execução no código fonte não faz sentido, leia a minha resposta, deve ficar claro, mas qualquer dúvida, fale.