Cuando compilo egxc por:
GCC x.c -o x
Para ejecutar el resultado tengo que escribir:
./x
Y solo escribiendo:
x
Falla con este mensaje:
x: comando no encontrado
¡Esto significa que Linux no lo busca en el directorio actual! ¿Hay (estoy seguro de que hay) algún problema razonable detrás de este comportamiento?

Respuestas:
Porque de forma predeterminada, el directorio de trabajo actual no está en la
PATHvariable.Esta es una medida de seguridad / conveniencia. Si tiene archivos binarios / scripts llamados
cd, por ejemplo ,lsetc. en su directorio de trabajo actual, sería muy molesto si se ejecutaran por defecto.fuente
cdenbash, se ejecuta una rutina interna para golpear y no/bin/cd) a menos que antepones con `.`sl, tienes el mismo problema. Solo deben estar los directorios de confianza$PATHy las rutas relativas como nunca.son un directorio de confianza para un shell interactivo.rm -r targetcuando quise decirrm -f targetque generalmente no hay diferencia. Si escriborm -f targetcuando quise decirrm -r target, no hay diferencia o la eliminación falla por completo. Por otra parte, creo que cada vez que antes de tipo Irm, especialmente si estoy añadiendo-fo-ro un pegote - es un comando peligroso por su naturaleza. Nadie piensa antes delsing.Significa que el directorio actual no está en la variable $ PATH.
fuente
Puede solucionar esto agregando el directorio actual (representado por un solo punto) a la
PATHvariable de entorno.La forma de hacerlo depende del shell que esté utilizando.
si está usando bash, puede agregar la línea
export PATH=$PATH:.al.bashrcarchivo en su directorio de inicio.si está utilizando csh o tcsh, agregue la línea
set PATH = ($PATH .)al archivo .cshrc en su directorio de inicio.En mi humilde opinión, para una computadora de escritorio en el hogar esto es algo aceptable para hacer, en cuanto a seguridad.
fuente