Pongo algunos comandos de alias en mi .bashrcarchivo, para que puedan cargarse cada vez que abro una nueva ventana de Terminal. Sin embargo, esto no sucede.
Tengo que seleccionar run script:en la Terminal> Preferencias> " MyDefaultTheme "> Shell prefpane y agregar:
source .bashrc && clearpara que funcione ...
Esto parece extraño ya que muchos tutoriales solo dicen que solo tiene que agregar al .bashrcarchivo y todo está bien.
Tenga en cuenta que no ejecuto bashcuando uso el terminal, me gusta el otro (predeterminado) (no sé qué es) mejor, porque me muestra dónde estoy todo el tiempo, por ejemplo:
>>d54c6b47b:~ romeo$
en vez de:
>>bash$
En bash todo se carga como debería ser.
Entonces mi pregunta es, ¿por qué mi .bashrcarchivo no se cargó automáticamente y tuve que agregar la opción para llamarlo cada vez?
También un tutorial me dijo que hiciera algo como:
$alias la=’ls -la’ >> ~/.bashrc
que debería escribir el alias a mi .bashrc, esto tampoco funciona ...
Tenga en cuenta que soy un novato de UNIX, así que sea gentil.
fuente

.bashrc" pero eso es todo.csh(u otra variante) mejor. Pero debes saber que>>bash$se puede cambiar :).profileen su directorio personalRespuestas:
Simplemente colóquelo en su
.profilearchivo desde su directorio de inicio y debería funcionar la próxima vez que inicie un nuevo shell o después de ejecutarsource ~/.profileEste enlace establece claramente el orden en que el shell lee y carga los archivos de inicio: http://hayne.net/MacDev/Notes/unixFAQ.html#shellStartup
fuente
~/.bashrc. Sin embargo, la solución no es simplemente colocar su.bashrccontenido en el archivo de inicio de sesión, porque estos dos archivos están destinados a realizar diferentes tipos de configuración. En cambio, la configuración canónica para Bash es tener su~/.bash_profilefuente~/.bashrcen algún punto apropiado del script (generalmente el último).He estado allí, hecho eso. De lo que me di cuenta, OS X no lee el
.bashrcarchivo al inicio de bash. En su lugar, lee los siguientes archivos (en el siguiente orden):/etc/profile~/.bash_profile~/.bash_login~/.profileVea también el comentario informativo y útil de Chris Johnsen :
Yo por lo general sólo hay que poner las cosas que normalmente pondría en
~/.bashrca~/.profile- ha funcionado hasta ahora como un encanto.fuente
/usr/bin/login, lo que hace que el shell sea un shell de inicio de sesión. En cada plataforma (no sólo Mac OS X) fiesta no utiliza.bashrcpara shells de entrada (única/etc/profiley la primera de.bash_profile,.bash_login,.profileque existe y es legible). Es por eso que "ponersource ~/.bashrcen su.bash_profile" es un consejo estándar.~/.bash_profile,~/.profile,~/.bash_login, no todos los ellos. Puede ejecutar una prueba simple creando los 3 archivos. Parece que el terminal de fiesta tiene la preferencia de los~/.bash_profile>~/.bash_login>~/.profile. Si alguno de ellos existe, se omiten los de menor preferencia. Por eso a veces se recomienda también la fuente~/.profilede~/.bash_profile.Puse todo en
~/.bashrcy solosource ~/.bashrcen .profile.Esto permite que las sesiones de pantalla y xterm (y supongo que tmux) hereden mi entorno ya que las sesiones sin inicio de sesión solo se ejecutan
.bashrc, mientras que las sesiones de inicio de sesión (por ejemplo, terminal o iTerm) solo se ejecutan.profile.fuente
.profilees común a varios shells y solo debe contener un código sh compatible con POSIX. Si lo fuente.bashrc, posiblemente contenga código específico de Bash (la existencia del.bashrcarchivo es específica de Bash). Recomiendo cambiarle el nombre.profilea.bash_profileya que lo está utilizando de una manera específica de Bash. O, ingrese un código genérico.profiley cree un código.bash_profilefuente.profiley.bashrc.Hay dos escenarios:
Para ambos, desea obtener
~/.bashrcen su perfil que se carga o obtiene cuando se inicia el shell de su terminal.LINUX
En Linux,
~/.profilese fuente automáticamente en su shell cuando se inicia. Entonces, si va a su terminal y escribecd ~; ls -A, verá todos sus archivos y directorios en su directorio de inicio (/home/usrname/). Deberías ver un archivo llamado.profile. Este es el archivo que se "origina" automáticamente cuando inicia el terminal.Si desea agregar alias y funciones a
~/.bashrc(que es lo que hago), entonces debe (dentro de~/.profileagregar una instrucción if que verifique si~/.bashrces un archivo no vacío y luego lo fuente.Para verificar si
~/.profileya lo hace, ingresenano ~/.profile. Esto lo abrirá en un editor de texto (puede usar gedit si sabe que lo tiene o incluso vim si sabe cómo usarlo). Puede obtener un archivo de texto vacío (no debería), pero si lo hace, simplemente continúe. Si no ve una línea en ninguna parte que digasource ~/.bashrc, ingrese las siguientes líneas en algún lugar (colóquelo en un lugar razonable como al final o al principio y no en el medio de una instrucción if):Esto comprueba si
~/.bashrces un archivo no vacío (con if[ -s ~/.bashrc ]), y si es así, lo obtiene. Bastante simple. Ahora, puede agregar cualquier alias válido, función, variable, etc. a~/.bashrc.MAC OS X
Por defecto, las fuentes Max OS X
~/.bash_profile. Para poder agregar cosas a~/.bashrc(que es, de nuevo, lo que hago también en OS X), entonces sigue el mismo procedimiento que Linux. En la terminal ingresecd ~; nano .bash_profile. Verifique si hay una línea que digasource ~/.bashrcy si no está allí agregue la instrucción if anterior (if [ -s ~/.bashrc ]; then source ~/.bashrc; fi).NOTAS
Al escribir una declaración if, asegúrese de dejar espacios entre básicamente todo (por ejemplo
if [ -s ~/.bashrc]; then echo "found"; fi, no funciona porque no hay espacio entre ellos~/.bashrcy]el intérprete pensará que esta es una palabra).Si desea descubrir cómo verificar mejor las cosas en una declaración if, vaya a la terminal e ingrese
man \[; esto esencialmente le da el desglose de una declaración if. Por ejemplo,if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; ficomprueba si/path/to/filees un archivo y si se imprime en stdout en consecuencia. Siempre hago referencia a esto también para una referencia más fácil a los ojos y rápida: 7.2. Operadores de prueba de archivos .Espero que esto ayude. Recuerdo lo confundido que estaba cuando comencé todo esto (que no fue hace mucho tiempo); así que, ¡buena suerte con tus futuros esfuerzos de UNIX!
fuente
.profilesolo se obtiene si su shell es un shell de inicio de sesión, de lo contrario.bashrcse obtieneSourcing .profile en .bash_profile lo hizo por mí
fuente
.bashrcsu fuente.bash_profiley no la suya.profile..bash_profilees específico de Bash y debería generar los otros dos.Descubrí que después de instalar rvm (autoinstalador, sin modificaciones manuales) había creado un
~/.bash_loginarchivo para sí mismo, donde anteriormente nunca tuve uno.Sin embargo, esto significa que mis
~/.profileconfiguraciones y alias ya no se cargaron. Muchos atajos desaparecieron. Pensé que corrían secuencialmente, no exclusivamente: - /yo añadí
para
~/.bash_loginencadenar las cosas como esperaba.fuente
.profilees común a varios shells diferentes y solo debe contener código sh compatible con POSIX..bash_profilees específico de Bash y puede contener código específico de Bash. En general, si está usando Bash, debería preferir a.bash_profilemenos que tenga cuidado de asegurarse de que su código de inicio no contenga nada que dependa de Bash. Cualquier programa creado.bash_loginprobablemente lo hizo porque contiene código específico de Bash, pero debería haber incluido el código fuente.profilesi existe.Poniendo...
... en
~/.bashrc, y luego la fuente~/.bashrcen mi~/.bash_profileno funcionó para el programa Terminal que viene instalado.Pero luego fui al menú desplegable Editar> Preferencias de perfil , Título y pestaña Comando , y seleccioné Ejecutar comando como un shell de inicio de sesión en la sección de comandos de esa página.
Después de hacerlo, iniciar un nuevo terminal muestra el resultado deseado cuando escribo
es decir, "rvm es una función". Que no lo hizo hasta que hice este cambio, y es el único cambio que hice después de las
.bash_profiley.bashrclos cambios que se describen en otras respuestas aquí.fuente
En primer lugar, permítame decirle que ese
~/.bashrces el archivo que se ejecuta cada vez que se llama a un segundo shell (cuando se ejecuta un script de shell, por ejemplo), y~/.profilese llama en cada inicio de sesión.Por lo tanto, le recomiendo que escriba el
. ~/.bashrccomando en su~/.profilearchivo, y este comando ejecutará el archivo bashrc cada vez que inicie sesión.fuente
Me encontré con el mismo problema después de instalar rbenv en mi servidor remoto (Digital Ocean) Ubuntu 16.04.
De alguna manera se creó
~/.bash_profile. Es lo mismo~/.bashrcen un sistema OS X.Y Ubuntu comenzó a leer solo
~/.bash_profile, pero no~/.bashrccomo debería.Así que solo hice una copia de seguridad de mis datos
~/.bash_profilecon esto:Y renombró el viejo
~/.bashrca~/.bash_profileFuncionó para mi. Después de mi inicio de sesión ssh tengo todo cargado
~/.bashrc.fuente
En caso de que esto pueda ayudar a alguien más ...
Asegúrese de editar el
.bashrcarchivo correcto para el usuario correcto. Tuve un problema similar al usar Vagrant. Después de ejecutarvagrant sshmi.bashrcarchivo no se estaba ejecutando. La solución fue simple porque pensé que vagabundo estaba iniciando sesión con el usuario llamado vagabundo, y en realidad estaba iniciando sesión como otro usuario. Entonces estaba editando el.bashrcarchivo incorrecto . Después de editar el.bashrcarchivo correcto, se reconocieron mis alias.fuente
Por cierto, si has activado ZSH, ¡reemplaza bash!
Entonces, todos esos
~/.bashrcarchivos no se cargan.En su
~/.zshrclugar, debe establecer sus alias .fuente
Para seguir con el inicio de sesión de estilo OSX
.profiley admitir el comportamiento bash normal.bashrc, puede usar un.bashrcarchivo si cambia entre nix normal y OSX proporcionando un enlace simbólico a su.bashrcarchivo llamado.bash_profile. Solo asegúrate de que este archivo no exista antes de intentarlo, pero así es como lo hago.fuente
.bash_profile) y una inicialización diferente en cada nivel de shell (.bashrc)./ etc / bashrc es para perfiles globales en sistemas mac. Puede agregar: alias ls = "ls -G" en la parte superior de este archivo y, bueno, todos tendrán archivos y carpetas coloreados en el sistema, por lo que no tendrá que configurar nada adicional para cada usuario individual. También notará, junto con "sudo su -" para rootear de usted mismo, todavía tendrá archivos y carpetas coloreados sin dolores de cabeza adicionales.
Otro consejo divertido: al usar el Iterm2 de mac, la importación de perfiles de color generará el color de los archivos y carpetas inmediatamente de acuerdo con su esquema de color después de tener esta opción "/ etc / bashrc" establecida.
fuente