O que devo fazer se quiser executar um determinado programa, independentemente do meu diretório atual? Devo criar um link simbólico para o programa na /bin
pasta?
command-line
aneuryzm
fonte
fonte
~/bin/
pasta pessoal , adicionar ISSO ao seu caminho e criar links simbólicos nessa pasta para qualquer coisa que você queira que seja executável de qualquer lugar.Respostas:
Se você apenas digitar
export PATH=$PATH:</path/to/file>
na linha de comando, ele durará apenas a duração da sessão.Se você quiser alterá-lo permanentemente, adicione
export PATH=$PATH:</path/to/file>
ao seu arquivo ~ / .bashrc (apenas no final está bom).fonte
A resposta curta é que, para executar o programa, independentemente do seu diretório, você precisa ter o diretório do programa no caminho de pesquisa. O problema pode ser resolvido colocando o programa em uma pasta que já esteja nesse caminho ou adicionando uma nova pasta ao caminho - ou eles funcionarão. A melhor resposta depende de:
Este programa é um programa baixado que você compilou da fonte?
É bem provável que já tenha um mecanismo de instalação. Na pasta que você compilou o programa, como root, execute 'make install'
Este programa é um programa baixado que você deseja disponibilizar como parte dos programas padrão no computador?
Faz sentido colocar esse tipo de aplicativo em uma pasta padrão. é bastante comum usar diretórios como / usr / local / bin para esses programas. Você precisará de acesso root para fazer isso.
Este é um programa que você escreveu para si próprio e / ou não possui privilégios especiais no computador.
Criando uma pasta em seu diretório pessoal chamada 'bin' e colocando o programa lá. Pode ser necessário editar seu script de login para adicionar o caminho completo a esta pasta (por exemplo, / usr / home / jeremy / bin)
Embora você possa adicionar seu diretório atual ao caminho de pesquisa, precisará continuar fazendo isso a cada novo programa - e é mais trabalhoso a longo prazo.
fonte
Colocar um link para o arquivo no
/bin
diretório não é a melhor coisa a fazer por vários motivos./bin
diretório deve ser reservado para programas que são necessários para a execução do sistema (coisas comochmod
,mkdir
, etc.).Você pode realmente colocar (instalar) o arquivo executável no arquivo
/usr/bin/
ou até mesmo/usr/local/bin/
. Obviamente, você instalou o programa manualmente nesse ponto; sua distribuição não irá acompanhá-la da mesma forma que os demais programas - você precisará atualizá-la manualmente quando necessário e removê-la manualmente, se desejar. Além disso, você terá que saber de quais pacotes ele depende (parece que você já usa o programa, então isso foi resolvido, mas em geral ...).A menos que eu esteja configurando um programa que eu espero que outros usuários usem, não é isso que eu costumo fazer: eu crio um diretório bin apenas para mim no meu diretório pessoal e edito meu perfil de shell para adicionar
~/bin/
à minhaPATH
variável de ambiente. Acho mais fácil acompanhar os programas que instalei dessa maneira, porque ele é separado do restante do sistema.fonte
Se você deseja executar um comando
foo
no diretório em que seu shell está, basicamente tem duas opções:Digite
./foo
no prompt do shell.Adicione o
.
diretório (.
é um nome para "o diretório atual") àPATH
variável de ambiente; como você faz isso depende do shell que você está usando:para shells do tipo Bourne (bash, zsh, ksh, etc.) que você escreve (consulte esta página para obter mais informações):
para shells do tipo csh (tcsh, csh) que você escreve (consulte esta página para obter mais informações):
Observe que 2. é um risco de segurança em sistemas multiusuário: imagine que você faça um
cd
diretório/tmp
e um usuário mal-intencionado tenha criado um binário de malware chamadols
lá.fonte
Mexer com o
PATH
abre você para executar programas maliciosos por engano. O padrão é instalar o material "local" em/usr/local
(consulte FHS , que codifica o uso do Unix: um pouco datado, mas fornece justificativa).,/usr/local/bin
Geralmente éPATH
para todos os usuários.Meus programas "instalados localmente" estão dentro
$HOME/bin
, definidos na dança padrão./configure --prefix=$HOME ...
, juntamente com alguns aliases (bash) para escolher, por exemplo, o git auto-construído sobre o sistema (os que não são conflitantes são encontrados noPATH
final).fonte