Saltar al contenido

¿Cuál es el propósito de .bashrc y cómo funciona?

Ten en cuenta que en las ciencias un problema casi siempere suele tener diversas soluciones, así que te compartiremos lo más óptimo y mejor.

Solución:

.bashrc es un script de shell de Bash que Bash ejecuta siempre que se inicia de forma interactiva. Inicializa una sesión de shell interactiva. Puede poner cualquier comando en ese archivo que podría escribir en el símbolo del sistema.

Aquí coloca comandos para configurar el shell para su uso en su entorno particular, o para personalizar las cosas según sus preferencias. Una cosa común para poner .bashrc son alias que desea que estén siempre disponibles.

.bashrc se ejecuta en cada lanzamiento de shell interactivo. Si usted dice:

$ bash ; bash ; bash

y luego golpea Ctrl-D tres veces, .bashrc se ejecutará tres veces. Pero si dices esto en su lugar:

$ bash -c exit ; bash -c exit ; bash -c exit

entonces .bashrc no correrá en absoluto, ya que -c hace que la llamada Bash no sea interactiva. Lo mismo es true cuando ejecuta un script de shell desde un archivo.

Contraste .bash_profile y .profile que solo se ejecutan al inicio de un nuevo shell de inicio de sesión. (bash -l) Tú eliges si un comando entra .bashrc vs .bash_profile dependiendo de si desea que se ejecute una vez o para cada inicio de shell interactivo.

Como contraejemplo de los alias, que prefiero poner en .bashrc, quieres hacer PATH ajustes en .bash_profile en cambio, dado que estos cambios no suelen ser idempotentes:

export PATH="$PATH:/some/addition"

Si pones eso en .bashrc en cambio, cada vez que lanzaba un sub-shell interactivo, :/some/addition se clavaría en el final de la PATH de nuevo, creando trabajo extra para el shell cuando escribe mal un comando.

Obtienes un nuevo shell Bash interactivo cada vez que sales de vi con :sh, por ejemplo.

El propósito de un .bashrc file es proporcionar un lugar donde puede configurar variables, funciones y alias, definir su indicador (PS1) y definir otras configuraciones que desea usar cada vez que abre una nueva ventana de terminal.

Funciona al ejecutarse cada vez que abre una nueva terminal, ventana o panel.

Uno súper mínimo podría tener lo siguiente:

export CLICOLOR=1
export LANG="en_US.UTF-8"
alias cp="cp -i"
alias ls="ls --color=auto"
export PS1="[33[01;32m][email protected]h[33[00m]:[33[01;34m]w[33[00m]$ "
export EDITOR="vim"

Eso es todo lo que realmente sabes para empezar.


Aquí está la versión “exagerada”, útil para desarrolladores experimentados:

Un desarrollador experimentado a menudo tendrá mucho más.
Puedes ver el mío aquí (imagen con resaltado de sintaxis):

HISTCONTROL=ignoreboth:erasedups HISTSIZE=100000 HISTFILESIZE=200000
ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
md () 
git_branch ()  git branch 2> /dev/null 
HOST='33[02;36m]h'; HOST=' '$HOST
TIME='33[01;31m]t 33[01;32m]'
LOCATION=' 33[01;34m]`pwd | sed "s#(/[^/]1,/[^/]1,/[^/]1,/).*(/[^/]1,/[^/]1,\)/,1#1_2#g"`'
BRANCH=' 33[00;33m]$(git_branch)[33[00m]n$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
PS2='[33[01;36m]>'
set -o vi # vi at command line
export EDITOR=vim
test -f ~/.bash_aliases && . $_
test -f ~/.git-completion.bash && . $_
test -s ~/.autojump/etc/profile.d/autojump && . $_
[ $BASH_VERSINFO[0] -ge 4 ] && shopt -s autocd
[ -f /etc/bash_completion ] && ! shopt -oq posix && . /etc/bash_completion
[ -z $TMUX ] && export TERM=xterm-256color && exec tmux
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$home/.rvm/scripts/rvm"

Explicación:

-1. Configurar mi archivo de historial para ignorar los duplicados y ser mucho más grande que el predeterminado.
-2. Opción de color para ls dependiendo de si está utilizando Linux o OSX
-3. Función “md“para hacer un cd en un directorio con un comando
-4. Encuentre la rama de git actual si está en un repositorio de git y …
-5. -9. Defina un mensaje de PS1 impresionante, como en <code>
<div class=

20:00:43 durrantm Castle2012 /hom/durrantm/Dropnot/_/rails_apps/linker master n $ _“src =” https://i.stack.imgur.com/slR41.png “/>
-10. Mensaje de PS2 mejorado
-11. Establecer vi como editor en la línea de comando
-12. Establecer vi como el editor predeterminado
-13. ejecutar mi .bash_aliases archivo si existe
-14. Ejecute mi script de finalización de la pestaña git (para controles remotos y sucursales) si existe.
-15. Ejecute autojump si existe
-dieciséis. Permitir cd’ing sin escribir la parte del cd si la versión de bash> = 4
-17. Ejecute un script de finalización de bash si existe
-18. Utilice TMUX si está presente
-19. Agregar rvm a mi RUTA
-20. Utilice rvm si existe.

Lo hice portátil para que funcione en cualquiera de mis máquinas Linux u OSX sin personalización; por lo tanto, se realizan varias pruebas de presencia antes de usar ciertas funciones y otros scripts.

Esto también hace que sea más fácil usar todo el archivo inmediatamente en una nueva máquina sin tener problemas que afecten la apertura de una nueva ventana de terminal.

RECORDATORIO: si cambia su .bashrc, asegúrese de iniciar una nueva ventana de terminal para asegurarse de que funcione ANTES de reiniciar (la mejor práctica: hágalo inmediatamente después del cambio). Si alguna vez estropea su .bashrc y reinicia, ¡ES POSIBLE QUE NO SEA CAPAZ DE INICIAR SESIÓN! Personalmente, también creo un segundo usuario ‘administrador’ en máquinas personales para que, en tal emergencia (inicio de sesión roto), pueda iniciar sesión y usar y luego usar sudo para arreglar mi otro archivo .bashrc de inicio de sesión.

Es un bash archivo de configuración.

Shells interactivos (sin inicio de sesión), luego la configuración se lee de estos archivos:

Para los shells de inicio de sesión, la configuración se lee de estos archivos:

En la siguiente imagen se muestra una ilustración simple de cómo y cuándo se cargan.

Agregué un echo para mi .bashrc y .bash_profile

Shell interactivo vs shell de inicio de sesión

ver man bash para más información

Eres capaz de sustentar nuestra investigación añadiendo un comentario y puntuándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *