31 votos

Cómo crear ~/.bash_profile y ~/.profile

Entonces, no tengo .bash_profile ni .profile en mi carpeta de inicio. ¿Cómo los creo? Después de eso, ¿qué debo hacer para que cada vez que abra la terminal estos archivos se lean?

33voto

user53233 Puntos 66

Puedes usar el comando touch.

Por ejemplo,

cd ~

para ir al directorio de inicio.

Ahora vamos a crear un archivo llamado .bash_profile (el punto significa que estará oculto).

Luego utiliza nano o vi en la Terminal. A menos que sepas qué es vi, solo usa nano. Para abrir estos archivos, usarías:

sudo nano .bash_profile

sudo se asegura de que puedas guardar estos archivos. Aquí puedes agregar aliases. nano o vi automáticamente crearán un nuevo archivo si no existe en tu directorio actual en la Terminal.

Después de terminar, presiona Ctrl + O, Enter, y Ctrl + X para guardar y salir. Finalmente, utiliza

source ~/.bash_profile

para recargar la Terminal y leerá lo que pusiste en esos archivos.

Por supuesto, también puedes crear un alias si lo deseas. :)

Para responder a tu pregunta final, estos archivos se leerán automáticamente cada vez que abras la Terminal. Sin embargo, si hay un error (por ejemplo, no pongas espacios entre aliases), te lo dirá.

Más Información

Como señaló George, .bash_profile se ejecutará solo en las sesiones de inicio. Para las sesiones que no son de inicio, necesitarías crear un archivo .bashrc con:

    sudo nano .bashrc

Enlaces

.bash_profile vs .bashrc

Importancia de .bashrc

6 votos

¿Por qué estás usando touch para crear archivos vacíos primero? nano lo hace automáticamente de todos modos.

5 votos

Además, probablemente no quieras tener ambos ~/.profile y ~/.bash_profile -- si bash ve .bash_profile, no se molesta con .profile. Finalmente, solo se ejecutará para shells de "inicio"; los shells no de inicio ejecutan en su lugar ~/.bashrc. Consulta preguntas anteriores de SO aquí y aquí.

0 votos

¿@GordonDavisson es bueno tener ~/.profile como una copia de ~/.bash_profile? Y si tienes ambos, ¿qué tienes dentro de ~/.profile que no se pueda hacer en ~/.bash_profile?

3voto

También puedes usar un editor de texto GUI como TextEdit:

touch ~/.bash_profile
open -e ~/.bash_profile

open -e es un atajo para open -a TextEdit.

No necesariamente tienes que crear .profile o .bashrc. Terminal e iTerm 2 abren nuevas shells como login shells, así que bash no lee .bashrc. Si tanto .bash_profile como .profile existen, bash solo lee .bash_profile cuando es invocado como una shell de inicio interactiva. .profile es leído por ksh cuando es invocado como una shell de inicio interactiva y por bash cuando es invocado como sh como una shell de inicio interactiva.

De hecho, he configurado iTerm 2 para abrir nuevas shells como no-login shells, y mi .bash_profile solo contiene una línea como . ~/.bashrc. tmux y el modo shell en emacs abren nuevas shells como no-login shells por defecto. .bash_profile sigue siendo leído cuando me conecto por ssh a mi computadora.

0 votos

Déjame ver si entendí eso... ¿Tienes tanto ~/.bash_profile como ~/.profile? ¿Y también tienes ~/.bashrc?

0 votos

No tengo un .perfil, y mi .bash_profile solo contiene . ~/.bashrc.

3voto

Juraj Michalak Puntos 131

Puedes copiar esos archivos desde /etc/skel/ los cuales son archivos de esqueleto para nuevos usuarios creados por comandos como useradd en distribuciones basadas en Debian:

cp -nr /etc/skel/. ~/

Estos archivos serán cargados automáticamente por la shell cada vez que inicies sesión. La forma de cargar esos archivos de perfil está descrita en la página del manual de tu shell. En caso de que uses la shell bash de una manera especial (por ejemplo, a través de ssh, ansible, etc...), deberías usar 'bash -ilc comando' si deseas ejecutar un comando en la shell bash con el entorno preparado por esos archivos de perfil

  • -i significa shell interactiva lo cual es frecuentemente requerido por .bashrc
  • -l significa shell de inicio lo cual hace que se cargue .profile (o .bash_profile si existe - ver página del manual de bash) la cual luego carga .bashrc (si es interactivo)

0 votos

/etc/skel/ no existe en macOS. macOS ni siquiera es Linux, y mucho menos basado en Debian.

0voto

Kaydell Puntos 229

Prefiero usar editores de texto GUI como BBEdit o TextWrangler. Estos editores de texto pueden manejar archivos invisibles como .profile y .bash_profile y tienen la ventaja de tener una interfaz GUI, a diferencia de nano que es una interfaz de consola.

TextWrangler

BBEdit

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X