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