Um novo .bashrc


Veremos aqui um novo estilo de .bashrc que estou utilizando no Slackware.

Para facilitar, caso queiram troquem a linha:

echo ‘ °v° ** Bem-vindo ao Slackware **’

por:

echo ‘ °v° ** Welcome to ‘`hostname`’ **’

Ou melhor, por:

echo ‘ °v° ** Welcome to ‘`cat /etc/*version`’ **’

A primeira sugestão informará o nome da máquina, enquanto que na segunda será informado o nome e a versão do sistema instalado, isso geralmente é descrito num arquivo *-version visto em /etc (/etc/debian_version, /etc/slackware-version, etc), substitua *version pelo nome correto, vejam como fica:

Bash Styles no Slackware

Abaixo vejam o .conf a ser salvo em ~/.bashrc:

# INFO.
#
# http://gnu2all.blogspot.com/2011/10/o-bashrc-de-meu-debian.html
# http://gnu2all.blogspot.com/2011/10/estilos-de-bash-prompts.html
# http://gnu2all.blogspot.com/2011/11/archey-bash-info-tool.html
# http://www.vivaolinux.com.br/artigo/Desktop-Debian-Ubuntu/
# http://www.vivaolinux.com.br/dica/screenFetch-The-Bash-Screenshot-Information-Tool
# http://www.vivaolinux.com.br/dica/Dicas-no-terminal-para-Debian-Ubuntu-e-distros-derivadas/
# http://www.vivaolinux.com.br/topico/vivaolinux/[DICA]-bashrc/

# ----------------------------------------------------------------------------------------------
 
# Stupid Welcome intro.

setterm -foreground red -bold on -term linux 
echo '   _ '
echo '  °v° ** Bem-vindo ao Slackware **'
echo ' /(_) '
echo '  ^ ^ ' `date`
echo ' '
 
#PS1="[e[01;31m]┌─[[e[01;36mue[01;31m]]──[[e[01;32m]${HOSTNAME%%.*}[e[01;31m]]──[[\033[1;33m]w[\033[1;31m]]-[e[01;33m]$[e[01;31m]n[e[01;31m]└──[e[01;92m]>>[e[0m]"

# ----------------------------------------------------------------------------------------------

# Bash Prompt Elite.
#function elite()
# {
# local GRAY="[\033[1;30m]"
# local LIGHT_GRAY="[\033[0;37m]"
# local CYAN="[\033[0;36m]"
# local LIGHT_CYAN="[\033[1;36m]"
# case $TERM in
# xterm*)
# local TITLEBAR='[\033]0;u@h:w\007]'
# ;;
# *)
# local TITLEBAR=""
# ;;
# esac
# local GRAD1=$(tty|cut -d/ -f3)
# PS1="$TITLEBAR
# $GRAY-$CYAN-$LIGHT_CYAN(
# $CYANu$GRAY@$CYANh
# $LIGHT_CYAN)$CYAN-$LIGHT_CYAN(
# $CYAN#$GRAY/$CYAN$GRAD1
# $LIGHT_CYAN)$CYAN-$LIGHT_CYAN(
# $LIGHT_CYAN)$CYAN-$GRAY-
# $LIGHT_GRAYn
# $GRAY-$CYAN-$LIGHT_CYAN(
# $CYAN$$GRAY:$CYANw
# $LIGHT_CYAN)$CYAN-$GRAY-$LIGHT_GRAY "
# PS2="$LIGHT_CYAN-$CYAN-$GRAY-$LIGHT_GRAY "
# }
# PROMPT_COMMAND=elite

# ----------------------------------------------------------------------------------------------

# Outro Bash Style.
#PS1="[\033[01;31m]h[\033[00m][\033[01;32m] [\033[01;32m]u [\033[00;33m]wn[\033[01;30m]$ [\033[00m]"

# ----------------------------------------------------------------------------------------------

# E mais outro Bash Style.
#set_prompt_style () {
#  PS1="┌─[[\033[1;34m]u[\033[1;32m]@[\033[1;34m] h[e[0m]][[e[1;32m]w[e[0m]]n└─╼ "
#}
#set_prompt_style

# ----------------------------------------------------------------------------------------------

# E novamente mais um Bash Style.
# Se usar este, deixe descomentadas as duas linhas abaixo!

PROMPT_COMMAND='history -a;echo -en "\033[m\033[38;5;2m"$(( `sed -nu "s/MemFree:[t ]+([0-9]+) kB/1/p" /proc/meminfo`/1024))"\033[38;5;22m/"$((`sed -nu "s/MemTotal:[t ]+([0-9]+) kB/1/Ip" /proc/meminfo`/1024 ))MB"t\033[m\033[38;5;55m$(< /proc/loadavg)\033[m"'
PS1='[e[mne[1;30m][$$:$PPID j:![e[1;30m]][e[0;36m] T d [e[1;30m][[e[1;34m]u@H[e[1;30m]:[e[0;37m]${SSH_TTY} [e[0;32m]+${SHLVL}[e[1;30m]] [e[1;37m]w[e[0;37m] n($SHLVL:!)$ '

# ----------------------------------------------------------------------------------------------

# Barrinhas coloridas! rsrs

FGNAMES=('▐▐▐' '▐▐▐' '▐▐▐' '▐▐▐' '▐▐▐' '▐▐▐' '▐▐▐' '▐▐▐')
BGNAMES=('  ')

for b in $(seq 0 0); do
    if [ "$b" -gt 0 ]; then
      bg=$(($b+39))
    fi
#echo -en "\033[0m ${BGNAMES[$b]}"
echo
    for f in $(seq 0 7); do
      echo -en "\033[${bg}m\033[$(($f+30))m ${FGNAMES[$f]} "
      echo -en "\033[${bg}m\033[1;$(($f+30))m ${FGNAMES[$f]} "
    done
echo
  echo -e "\033[0m"  
done

# ----------------------------------------------------------------------------------------------

# Opções para o bash_history, cores, aliases e autocomplete.
#
# INFO: http://dan-scientia.blogspot.com/2010/05/usando-o-historico-do-bash-com.html

if [ -f ~/.bash_aliases ]; then
 . ~/.bash_aliases
fi

if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

alias ll='ls -lhGpt --color=always'
alias la='ls -A'
alias l='ls -CF'
alias la='ls -ac --color=auto'
alias ll='ls -lah --color=auto'
alias lsd='ls -d */'
alias lsg='ls --color=auto | g'
alias lag='ls -a --color=auto | g'
alias llg='ls -lah --color=auto | g'
alias g="grep --color=always"
alias gi="grep -i --color=always"

#alias mv='mv -i'
#alias cp='cp -i'
#alias rm='rm -i'
#alias rmf='rm -Rfvi'
#alias cpf='cp -vi'
#alias mvf='mv -vi'
#alias rmd='rm -Rfvi'

alias psa='ps auxf'
alias psg='ps aux | grep'  # alguma coisa
alias cal='echo -e "${CYAN}"; cal""'
alias hist='history | g $1' # alguma coisa
alias du='du -sh'
alias dul='du -h | less'
alias df='df -h'
alias nano='nano -w'
alias nanob='nano -w -B'
 
complete -cf sudo
 
shopt -s cdspell
shopt -s checkwinsize
shopt -s cmdhist
shopt -s dotglob
shopt -s expand_aliases
shopt -s extglob
shopt -s histappend
shopt -s hostcomplete
shopt -s nocaseglob
 
export HISTSIZE=10000
export HISTFILESIZE=${HISTSIZE}
export HISTIGNORE="pwd:ls:ls -la:exit:bash:clear:cd:./configure:make:sudo make install:"
export HISTCONTROL=ignoredups
export HISTCONTROL=ignorespace
export HISTCONTROL=erasedups
#export HISTCONTROL=ignoreboth

# Bash Completion.

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi

# ----------------------------------------------------------------------------------------------

# Teclado abnt-2 e Ctrl+Alt+Backspace.

setxkbmap -model abnt2 -layout br -variant abnt2
setxkbmap -option terminate:ctrl_alt_bksp

# ----------------------------------------------------------------------------------------------

# Setar o Editor de Texto padrão (requer: nano).

export EDITOR=nano
export VISUAL=nano
alias editor=nano
alias vi=nano

# ----------------------------------------------------------------------------------------------

# Opera Tweaks. (melhorar a performance do Flash no Opera).

export BROWSER="opera"
export OPERAPLUGINWRAPPER_PRIORITY=0
export OPERA_KEEP_BLOCKED_PLUGIN=1

# ----------------------------------------------------------------------------------------------

# Extrair arquivos.

extract() { 
 if [ -f $1 ] ; then
 case $1 in
*.tar.bz2) tar xvjf $1 ;; 
*.tar.gz) tar xvzf $1 ;; 
*.tar.xz) tar xvJf $1 ;; 
*.bz2) bunzip2 $1 ;; 
*.rar) unrar x $1 ;; 
*.gz) gunzip $1 ;; 
*.tar) tar xvf $1 ;; 
*.tbz2) tar xvjf $1 ;; 
*.tgz) tar xvzf $1 ;; 
*.zip) unzip $1 ;; 
*.Z) uncompress $1 ;; 
*.7z) 7z x $1 ;; 
*.xz) unxz $1 ;; 
*.exe) cabextract $1 ;; 
*) echo "`$1': unrecognized file compression" ;; 
 esac 
 else
 echo "`$1' is not a valid file"
 fi
}

# ----------------------------------------------------------------------------------------------

# Ouvir ou Ripar Radios Web (requer: mplayer e streamripper).
#
# INFO: https://edpsblog.wordpress.com/2012/10/05/ripando-uma-radio-web-no-terminal/

alias metalmilitia='mplayer -playlist "http://www.server1.bouncestream.com.br/tunein.php/metal/playlist.pls"'
alias metalmilitia_rip='streamripper http://www.server1.bouncestream.com.br/tunein.php/metal/playlist.pls'
alias rockradio1='mplayer -playlist "http://87.98.146.216/castcontrol/playlist.php?port=8000"'
alias rockradio1_rip='streamripper http://87.98.146.216/castcontrol/playlist.php?port=8000'
alias godsfskenradio='mplayer -playlist "http://mixstream.net/stream/usa3-vn/8922/play.pls"'
alias godsfskenradio_rip='streamripper http://mixstream.net/stream/usa3-vn/8922/play.pls'
alias powerprogradio='mplayer -playlist "http://www.powerprogradio.net/playlist/main/playlist.pls"'
alias powerprogradio_rip='streamripper http://www.powerprogradio.net/playlist/main/playlist.pls'
alias kissfm='mplayer -playlist "http://7289.live.streamtheworld.com/SAOPAULO1021AAC"'
alias kissfm_rip='streamripper http://7289.live.streamtheworld.com/SAOPAULO1021AAC'
alias backstage='mplayer http://67.212.166.210:8424'
alias backstage_rip='streamripper http://67.212.166.210:8424'

# ----------------------------------------------------------------------------------------------

PATH="$PATH:/usr/bin:/usr/local/bin:/sbin:/bin:$HOME/bin:"."" 
export PATH

#
# FIM!
#

Esse mesmo .conf pode ser baixado em:

http://pastebin.com/PvB2wKpF

Outras opções e estilos podem ser vistos em:

http://www.vivaolinux.com.br/topico/vivaolinux/[DICA]-bashrc/

Uma screenshot pode ser vista em:

http://www.vivaolinux.com.br/screenshot/LXDE-Slack-Bash-Styles/

Conf. mínimo.

Tomando como base o .bashrc padrão do Debian, fiz somente pequenas alterações de modo a ter uma configuração baśica e ao mesmo tempo bem estilosa, a começar pelo fato de que dependendo do usuário logado, as cores do prompt serão diferentes, ei-lo:

[ -z "$PS1" ] && return

HISTSIZE=10000
HISTFILESIZE=${HISTSIZE}
HISTIGNORE="pwd:ls:ls -la:exit:bash:clear:cd:./configure:make:sudo make install:su:sudo su:editar_sources.list:sudo apt-get update:sudo apt-get update:sudo apt-get dist-upgrade:sudo apt-get autoclean:history:screenfetch:"
HISTCONTROL=ignoredups
HISTCONTROL=ignorespace
HISTCONTROL=erasedups

shopt -s histappend
shopt -s checkwinsize

[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}[\033[01;32m]u@h[\033[00m]:[\033[01;34m]w[\033[00m]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
fi
unset color_prompt force_color_prompt

case "$TERM" in
xterm*|rxvt*)
    PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1"
    ;;
*)
    ;;
esac

if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

alias l='ls -CF'
alias la='ls -ac --color=auto'
alias ll='ls -lah --color=auto'
alias lsd='ls -d */'
alias lsg='ls --color=auto | g'
alias lag='ls -a --color=auto | g'
alias llg='ls -lah --color=auto | g'
alias g="grep --color=always"
alias gi="grep -i --color=always"

alias mv='mv -i'
alias cp='cp -i'
alias rm='rm -i'
alias rmf='rm -Rfvi'
alias cpf='cp -vi'
alias mvf='mv -vi'
alias rmd='rm -Rfvi'

alias psa='ps auxf'
alias cal='echo -e "${CYAN}"; cal""'
alias hist='history | g $1' # termo
alias du='du -sh'
alias dul='du -h | less'
alias df='df -h'
alias nano='nano -w'
alias nanob='nano -w -B'

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

#

echo '   _ '
echo '  °v° ** Welcome to '`cat /etc/debian_version`' **'
echo ' /(_) '
echo '  ^ ^ ' `date`
echo ' '
if [ "$(id -un)" == "root" ]; then
 PS1='n[e[0;90m][h] [[e[0;33m]w[e[0;90m]]n[e[0;90m][[e[0;31m]u[e[0;90m]] >>[e[0m] '
 PS2='[e[0;90m][[e[0;31m]u[e[0;90m]] >>[e[0m] '
else
 PS2='[e[0;90m][[e[0;32m]u[e[0;90m]] >>[e[0m] '
 PS1='n[e[0;90m][h] [[e[0;33m]w[e[0;90m]]$(__git_ps1 " [[e[0;34m]%s[e[0;90m]]")n[e[0;90m][[e[0;32m]u[e[0;90m]] >>[e[0m] '
fi
Bash Prompt com cores diferentes para os usuários…
Anúncios
Um novo .bashrc

10 comentários sobre “Um novo .bashrc

  1. Bom, muito bom! Eu já pensei em deixar o meu terminal no mesmo estilo que o seu, mas até agora a coragem não deixou.. rsrs. O motivo é que sou bastante instável com relação a super personalizações e acabo querendo voltar a algo mais neutro muito rápido.. rsrs. Ainda crio coragem!

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s