Para ser claro, não "todo arquivo é executável". Os arquivos possuem metadados associados a eles, e uma parte desses metadados inclui se é ou não executável. Uma maneira de examinar esses metadados é com o comando ls :
$ ls -l
total 12
-rwxr-xr-x 1 ownerName groupName 4 Mar 20 18:01 executableFile
^ ^ ^
Eu não quero me aprofundar muito nas permissões, mas essas
x's indicam que o arquivo é executável, da direita para a esquerda,
pelo usuário ownerName , por qualquer pessoa no grupo groupName ,
ou por qualquer outra pessoa. Geralmente, o ownerName e groupName serão
root , então o terceiro x será o que você provavelmente será o mais
interessado no curto prazo.
Qual executável é executado quando você digita um comando? Assim como no Windows, há uma variável de ambiente chamada PATH que contém um conjunto de diretórios em que o shell (o interpretador de comandos) procura arquivos executáveis com o nome que você fornece. O Windows usa ; como um delimitador de diretório, o Linux (e Unix é geral) usa : . Você pode usar o comando echo para imprimir o conteúdo dessa variável:
$ echo $PATH
/bin:/usr/bin:/usr/local/bin...
Você pode usar o comando which para identificar o caminho completo de um comando:
$ which ls
/usr/bin/ls
Como @Stan Strum mencionado em um comentário acima, você também pode usar o comando type :
$ type ls
ls is hashed (/usr/bin/ls)