1. if [ -f /etc/bash_completion ]; then
  2. . /etc/bash_completion
  3. fi
  4. xhost +local:root > /dev/null 2>&1
  5. complete -cf sudo
  6. shopt -s cdspell
  7. shopt -s checkwinsize
  8. shopt -s cmdhist
  9. shopt -s dotglob
  10. shopt -s expand_aliases
  11. shopt -s extglob
  12. shopt -s histappend
  13. shopt -s hostcomplete
  14. export HISTSIZE=10000
  15. export HISTFILESIZE=${HISTSIZE}
  16. export HISTCONTROL=ignoreboth
  17. export JAVA_FONTS=/usr/share/fonts/TTF
  18. export EDITOR=/usr/bin/nano
  19. alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
  20. alias ll='ls -l --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
  21. alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
  22. alias grep='grep --color=tty -d skip'
  23. alias cp="cp -i" # confirm before overwriting something
  24. alias df='df -h' # human-readable sizes
  25. alias free='free -m' # show sizes in MB
  26. alias np='nano PKGBUILD'
  27. alias fixit='sudo rm -f /var/lib/pacman/db.lck && sudo pacman-mirrors -g && sudo pacman -Syyuu &&
  28. sudo pacman -Suu'
  29. # ex - archive extractor
  30. # usage: ex <file>
  31. ex ()
  32. {
  33. if [ -f $1 ] ; then
  34. case $1 in
  35. *.tar.bz2) tar xjf $1 ;;
  36. *.tar.gz) tar xzf $1 ;;
  37. *.bz2) bunzip2 $1 ;;
  38. *.rar) unrar x $1 ;;
  39. *.gz) gunzip $1 ;;
  40. *.tar) tar xf $1 ;;
  41. *.tbz2) tar xjf $1 ;;
  42. *.tgz) tar xzf $1 ;;
  43. *.zip) unzip $1 ;;
  44. *.Z) uncompress $1;;
  45. *.7z) 7z x $1 ;;
  46. *) echo "'$1' cannot be extracted via ex()" ;;
  47. esac
  48. else
  49. echo "'$1' is not a valid file"
  50. fi
  51. }
  52. #
  53. # ~/.bashrc
  54. #
  55. # Archivo ~/.bashrc
  56. # Hecho por "Inukaze" (De Venezuela
  57. # Sitio Web de Inukaze-> http://inukaze.wordpress.com
  58. # Ajustado y Adaptado segun varios sitios de Internet
  59. # Para facilitar , la personalizacion del "prompt" de las terminales que usan bash
  60. # Sitios Web , donde puedes encontrar más ejemplos :
  61. # 1 -> http://www.askapache.com/linux/bash-power-prompt.html
  62. function colores_en_terminal () {
  63. local CDU=$BLANCO # Colores del Usuario Actual
  64. [ $UID -eq "0" ] && CDU=$ROJO # Colores del SuperUsuario Root
  65. INV="\[\033[7m\]" # Intercambiar Colores de Frente & Fondo
  66. NEGRITA='\033[01m'
  67. ADORNO='\342\234\227'
  68. REAJUSTE="\[\033[0m\]" # Reinicio / Sin Color
  69. COLORIDO="\[\033[1m\]" # Color de Alta Intensidad
  70. MARCADOR='\342\234\223'
  71. SUBRAYADO="\[\033[4m\]"
  72. # Colores Regulares
  73. GRIS='\[\033[1;30m\]'
  74. CYAN="\[\033[0;36m\]"
  75. AZUL="\[\033[0;34m\]"
  76. ROJO="\[\033[0;31m\]"
  77. VERDE="\[\033[0;32m\]"
  78. NEGRO="\[\033[0;30m\]"
  79. BLANCO="\[\033[0;37m\]"
  80. SINCOLOR="\[\033[00m\]"
  81. MAGENTA="\[\033[0;35m\]"
  82. MARRON="\[\033[00;33m\]"
  83. PURPURA="\[\033[00;35m\]"
  84. AMARILLO="\[\033[0;33m\]"
  85. # Colores Resaltados (Osea con Negrita)
  86. NEGRITA_ROJO="\[\033[1;31m\]"
  87. NEGRITA_AZUL="\[\033[1;34m\]"
  88. NEGRITA_CYAN="\[\033[1;36m\]"
  89. NEGRITA_VERDE="\[\033[01;32m\]"
  90. NEGRITA_NEGRO="\[\033[1;30m\]"
  91. NEGRITA_GRIS="\[\033[01;37m\]"
  92. NEGRITA_BLANCO="\[\033[1;37m\]"
  93. NEGRITA_MAGENTA="\[\033[1;35m\]"
  94. NEGRITA_PURPURA="\[\033[01;35m\]"
  95. NEGRITA_AMARILLO="\[\033[1;33m\]"
  96. # Colores del Primer Plano
  97. PP_ROJO="\[\033[31m\]"
  98. PP_AZUL="\[\033[34m\]"
  99. PP_CYAN="\[\033[36m\]"
  100. PP_NEGRO="\[\033[30m\]"
  101. PP_VERDE="\[\033[32m\]"
  102. PP_BLANCO="\[\033[37m\]"
  103. PP_MAGENTA="\[\033[35m\]"
  104. PP_AMARILLO="\[\033[33m\]"
  105. # Colores de Fondo
  106. CF_ROJO="\[\033[41m\]"
  107. CF_AZUL="\[\033[44m\]"
  108. CF_CYAN="\[\033[46m\]"
  109. CF_NEGRO="\[\033[40m\]"
  110. CF_VERDE="\[\033[42m\]"
  111. CF_BLANCO="\[\033[47m\]"
  112. CF_MAGENTA="\[\033[45m\]"
  113. CF_AMARILLO="\[\033[43m\]"
  114. # EXPLICACION :
  115. # PS1 -> Prompt Shell 1 -> En español seria algo como "Capa Inmediata 1"
  116. # Aqui vamos a definar unicamente la capa 1 de las 4 ó 5 que existen
  117. #
  118. # Puedes usar comandos de Linux directamente en la Variable de
  119. # Entorno del sistema llamada "PS1"
  120. #
  121. # Aparte de ello existen varios codigos que puedes usar en el PS1=
  122. # Aqui te explicare algunos de ellos , para que puedas personalizar
  123. #
  124. # La mayoria de ellos son los mismos que al utilizar en la terminal
  125. # echo -e "Algun texto de prueba\nComo este por ejemplo"
  126. # Explicacion de Codigos :
  127. # \a -> Caracter ASCII 07 : "Campana"
  128. # \d -> La fecha en "Nombre del dia de Semana Mes Numero del Dia de Semana " (Ejemplo : "vie may 30")
  129. # \e -> Caracter ASCII 033 : "Escape"
  130. # \h -> Nombre de la primera parte del anfitrión en uso
  131. # \H -> Nombre del anfitrión
  132. # \j -> El numero actual de trabajos controlados actualmente por la consola
  133. # \l -> Nombre base del dispositivo terminal de la capa inmediata (puede ser del 1 al 4/5)
  134. # \n -> Salto de Linea
  135. # \r -> Retorno del carro
  136. # \s -> Nombre del interprete , comando `basename $0` (la parte siguiente de la barra final)
  137. # \t -> Hora Acutal en Formato de 24 Horas -> Hora:Minutos:Segundos
  138. # \T -> Hora Acutal en Formato de 12 Horas -> Hora:Minutos:Segundos
  139. # \@ -> Hora Acutal en Formato de 12 Horas -> Hora:Minutos: am/pm
  140. # \A -> Hora Acutal en Formato de 24 Horas -> Hora:Minutos
  141. # \u -> Nombre de usuario del usuario actual
  142. # \v -> La version de Bash (Ejemplo : 2.0)
  143. # \V -> La version de Bash + Nivel de Parche (Ejemplo : 2.0.00) the release of bash, version + patch level
  144. # \w -> Muestra La Ruta Acortada Del Directorio de Trabajo Actual , en $HOME se abrevia con una tilde
  145. # \W -> Muestra La Ruta Completa Del Directorio de Trabajo Actual , en $HOME se abrevia con una tilde
  146. # \! -> el número de historia de este comando
  147. # \# -> el número de comando de este comando
  148. # \$ -> si el UID efectivo es 0, un #, de lo contrario un $
  149. # \\ -> barra invertida
  150. # \[ -> comenzar una secuencia de caracteres no imprimibles, que podría ser utilizado para incrustar una secuencia de control de terminal en el interprete
  151. # \] -> terminar una secuencia de caracteres no imprimibles
  152. #
  153. #
  154. # \nnn -> el carácter correspondiente al número octal nnn
  155. # en la terminal puedes usar el comando `man ascii`
  156. # alli veras que una Columna dice "OCT" alli estan los valores octales
  157. # que puedes usar , por ejemplo para el caracter / el octal es 057
  158. #
  159. # Ejemplo(s)
  160. # PS1='[\u@\h: \W] (\057) \$ '
  161. #
  162. #
  163. # \D -> Fecha y Hora Personalizada se usan los valores de "date --help"
  164. # por ejemplo %H:%M:%S (Hora:Minitos:Segundos) si quieres usar am/pm en
  165. # lugar de usar "%S" para los segundos debes usar "%p" para "am/pm"
  166. #
  167. # Ejemplo(s) :
  168. # PS1="[\u@\h: \W] (\D{%T %p) \$ "
  169. # PS1=(\D{%H:%M %p) "[\u@\h: \W] \$ "
  170. #
  171. # Tambien puedes meter comandos yo lo hago con () por ejemplo
  172. # PS1="$(date +%d-%m-%Y)@$(date +%I:%M%p)\n${NEGRITA_VERDE}$ ${SINCOLOR}"
  173. #
  174. # Si se fijan bien , en el ejemplo anterior use el comando date
  175. # obviamente que con las opciones , uno para la fecha y otro para la hora
  176. # el "@" arroba que esta de por medio es solo un adorno.
  177. #
  178. # NOTA FINAL : No se si te abras percatado de lo siguiente , es importante que se entienda
  179. # Primer Ejemplo -> PS1='[\u@\h \W]\$ '
  180. # Segundo Ejemplo -> PS1="[\u@\h \W]\$ "
  181. #
  182. # Posiblemente cuando los uses solo el primero o el segundo , no veas problema alguno
  183. # Pero cuando intentes usar por ejemplo
  184. #
  185. # Primero -> PS1='[${CYAN}\u@\h ${NEGRITA_VERDE}\W]\$ ${SINCOLOR}'
  186. # Y te percates de que en la terminal , luce asi :
  187. #
  188. # [\[\033[0;36m\]inukaze@Inukaze \[\033[01;32m\]Linux]$ \[\033[00m\]
  189. #
  190. # La solucion es simplemente cambias las '' por "" , osea como en el segundo ejemplo
  191. # Te tenie que quedar asi
  192. # Segundo -> PS1="[${CYAN}\u@\h ${NEGRITA_VERDE}\W]\$ ${SINCOLOR}"
  193. #
  194. # Esto es debido a que colocar texto entre ' es para un entrecomillado fuerte y literal
  195. # de esta manera las variables no pueden cambiar su valor al establecido previamente.
  196. #
  197. # Al colocarlo entre " es un entrecomillado más pasivo y las varibles usan sus valores
  198. [ -z "$PS1" ] && return
  199. alias ls='ls -p --color=auto'
  200. # EJEMPLOS :
  201. # PS1='[\u@\h \W]\$ '
  202. # PS1="$NEGRITA_VERDE\u $AMARILLO[$ROJO\w$AMARILLO]$SINCOLOR "
  203. # PS1="$NEGRITA_VERDE\u $AMARILLO[$ROJO\w$AMARILLO] $NEGRITA_BLUE(\$(date +%H:%M:%S))$SINCOLOR: "
  204. # PS1="\n\e[1;37m[\e[0;32m\u\e[0;35m@\e[0;32m\h\e[1;37m]\e[1;37m[\e[0;31m\w\e[1;37m]\n$ \e[0m
  205. # PS1="\[\033[01;32m\]\D{%d-%m-%Y}@`(date +%I:%M%p)`\[\033[00m\]:\[\033[34m\]\w\[\033[00m\]\$ "
  206. # PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[Ubicacion Actual : \w]\n${CDU}${NEGRITA_GRIS}$(date +%d-%m-%Y)@$(date +%I:%M%p)\n${NEGRITA_VERDE}$ ${SINCOLOR}"
  207. # PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[Hora : \@ ][Fecha : $(date +%d-%m-%Y) ]\n${NEGRITA_AZUL}[Usuario : \u ]\n${SINCOLOR}${NEGRITA_ROJO}[Ubicacion : \W ]${NEGRITA_VERDE}$ ${SINCOLOR}"
  208. # PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[Usuario : \u ]${SINCOLOR}${NEGRITA_AZUL}\n[Hora : \@ ]\n[Fecha : $(date +%d-%m-%Y) ]\n${NEGRITA_ROJO}[Ubicacion : \W ]\n${NEGRITA_VERDE}$ ${SINCOLOR}"
  209. # PS1="\n${SINCOLOR}[ ${NEGRITA_AMARILLO}\u ${SINCOLOR}${NEGRITA_AZUL}| $(date +%d-%m-%Y) | \@ ${SINCOLOR}]\n[${NEGRITA_ROJO}\W${SINCOLOR}]${NEGRITA_VERDE}$ ${SINCOLOR}"
  210. # Definiendo la variable de entorno PS1 :
  211. # Que yo uso actualmente
  212. PS1="\n${SINCOLOR}${NEGRITA_AMARILLO}[ \u ${SINCOLOR}${NEGRITA_AZUL}| $(date +%d-%m-%Y) | ${NEGRITA_ROJO}\@ ]${SINCOLOR}\n[\W]${NEGRITA_VERDE}$ ${SINCOLOR}"
  213. # El Predeterminado de ArchLinux, le cambie los '' por "" , debido a lo que explique más arriba.
  214. #PS1="[\u@\h \W]\$ "
  215. # NOTA : Puedes guardar este archivo como por ejemplo ~/pruebash
  216. # y al ejecutar una consola / terminal , o como quieras llamarlo
  217. # puedes usar el comando :
  218. #
  219. # $ source ~/pruebash
  220. #
  221. # Asi veras como luce , esto tomara el ultimo valor asignado a PS1
  222. }
  223. colores_en_terminal
  224. # Establecer mi idioma en el Sistema :
  225. export LC_CTYPE=es_VE.UTF-8
  226. export LC_MESSAGES=es_VE.UTF-8
  227. export LC_ALL=es_VE.UTF-8
  228. # Establecer Puertos para Reproduccion Midi
  229. # Si Tienes Instalado y estas Usando " Timidity / Timidity++ " :
  230. export ALSA_OUTPUT_PORTS="128:0","128:1","128:2","128:3"