Por que tenho que digitar "./" sempre antes de um executável para executá-lo no Linux?

Por que tenho que digitar "./" sempre antes de um executável para executá-lo no Linux?

Quando compilo egxc por:

GCC x.c -o x

Para executar o resultado, tenho que escrever:

./x

E apenas digitando:

x

Falha com esta mensagem:

x: comando não encontrado

Isso significa que o Linux não procura por ele no diretório atual! Existe (tenho certeza que existe) algum problema razoável por trás desse comportamento?

Responder1

Porque por padrão, o diretório de trabalho atual não está na PATHvariável.

Esta é uma medida de segurança/conveniência. Se você tiver binários/scripts chamados, por exemplo cd, ls, , etc. em seu diretório de trabalho atual, seria muito chato se eles fossem executados por padrão.

Responder2

Isso significa que o diretório atual não está na variável $PATH.

Responder3

Você pode corrigir isso adicionando o diretório atual (representado por um único ponto) à PATHvariável de ambiente.
A maneira de fazer isso depende do shell que você está usando.
se estiver usando o bash, você pode adicionar a linha export PATH=$PATH:.ao .bashrcarquivo em seu diretório inicial.
se você estiver usando csh ou tcsh, adicione a linha set PATH = ($PATH .)ao arquivo .cshrc em seu diretório inicial.
IMHO, para um computador desktop doméstico, isso é uma coisa aceitável de se fazer - em termos de segurança.

informação relacionada