Así que soy bastante nuevo en Linux y recientemente instalé Fedora 19 en mi netbook. Quiero tener una comprensión más profunda de Linux y la CLI, así que ahora estoy leyendo Learn Linux: The Hard Way .
En el ejercicio 3, el autor da los siguientes comandos:
- ls -al
- perfil de gato
Intento seguir estas instrucciones pero fue en vano. No hay ningún archivo .profile en mi directorio de nombre de usuario como puedo ver desde ls -al. Por lo que he aprendido, el archivo .bash_profile y el archivo .profile son prácticamente iguales. La única diferencia que concluí de mi investigación es que .bash_profile se comprueba primero.
Lo que no entiendo es por qué hay varios archivos para la misma función en Linux, por qué el autor usa .profile y no .bash_profile (si entiendo correctamente .profile no se leerá cuando el sistema encuentre primero .bash_profile) ¿Y cómo es que no tengo el archivo .profile en mi sistema?
Respuestas:
La
.profile
fecha se remonta al shell Bourne original conocido comosh
. Dado que el shell GNUbash
es (dependiendo de sus opciones) un superconjunto del shell Bourne, ambos shells pueden usar el mismo archivo de inicio. Es decir, siempre que solosh
se coloquen comandos.profile
Por ejemplo,
alias
es un comando integrado válido debash
pero desconocido parash
. Por lo tanto, si solo tuviera un.profile
en su directorio personal y pusiera unaalias
declaración en él,sh
se quejaría. Entonces, hay un archivo específico de bash que tiene comandos de inicialización de shell que bash leerá si y solo si no hay un.profile
archivo presente.En realidad, eso es una simplificación excesiva en algunas instalaciones, y no estoy familiarizado con Fedora. Bajo bash,
/etc/profile
es leído por el shell antes de cualquier archivo en su directorio de inicio. Si hay un script de inicialización de todo el sistema, a menudo dice algo como¿Por qué es así? Un intento de compatibilidad a través de décadas de dialectos de concha. ¿Por qué el tutorial está escrito de esa manera? El shell Bourne ya no se usa mucho y algunas personas ni siquiera saben que hay otro shell similar a Bourne que bash. Incluso cuando la sintaxis Bourne (limitada) se utiliza para una mayor compatibilidad multiplataforma, a menudo se ejecuta
dash
o bash en modo de compatibilidad POSIX. De hecho, la fuente real de Bourne es probablemente un componente de derechos de autor de Unix System V que parece ser propiedad de Novell ahora, pero no tengo idea de qué están haciendo, si es que están haciendo algo.Para el usuario principiante, use uno
$HOME/.profile
o dos$HOME/.bash_profile
pero no, y estará bien. Dado que ya tiene un.bash_profile
trabajo con eso porque puede tener cosas específicas del sistema que su instalación necesita.fuente
alias
POSIX lo requiere, por lo que no hay muchossh
alrededor que no lo sepan.