Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Painel-Multifuncional
Por izaias
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



.Conf

.bashrc

edps
19/10/2011
Configuração personalizada de .bashrc para Arch Linux
Categoria: Miscelânea
Software: bash
[ Hits: 3506 ]


Publicado primeiramente em meu blog [ http://gnu2all.blogspot.com/2011/10/arch-linux-bashrc.html ], aqui apresento a minha configuração de .bashrc que certamente tornará o uso de seu Arch Linux mais proveitoso, muitos aliases, funções etc.

Também é possível utilizá-lo noutras distros, porém a parte referente ao gerenciamento de pacotes do Arch, deverá ser descartada ou ignorada.

No artigo do blog existe uma outra configuração necessária: a do .dir_colors, salve ambos os arquivos em sua $HOME e ou faça logout ou digite num terminal:

$ bash

Resumindo são 2 arquivos necessários ( ~/.bashrc e ~/.dir_colors ).

* quando possível postarei um outros para o Debian e uma dica com diversos estilos de bash_prompts.

Numa screen postada lá no blog, exemplifico como aplicar sombra numa imagem e esta função está presente neste .bashrc:

http://gnu2all.blogspot.com/2011/10/screenshot-arch-linux-kde.html

# ~/.bashrc: executed by bash(1) for non-login shells.

bash_prompt_command() {
# How many characters of the $PWD should be kept
local pwdmaxlen=25
# Indicate that there has been dir truncation
local trunc_symbol=".."
local dir=${PWD##*/}
pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
NEW_PWD=${PWD/#$HOME/\~}
local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen ))
if [ ${pwdoffset} -gt "0" ]
then
NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen}
NEW_PWD=${trunc_symbol}/${NEW_PWD#*/}
fi
}

bash_prompt() {
case $TERM in
xterm*|rxvt*)
local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]'
;;
*)
local TITLEBAR=""
;;
esac
local NONE="\[\033[0m\]" # unsets color to term's fg color

# regular colors
local K="\[\033[0;30m\]" # black
local R="\[\033[0;31m\]" # red
local G="\[\033[0;32m\]" # green
local Y="\[\033[0;33m\]" # yellow
local B="\[\033[0;34m\]" # blue
local M="\[\033[0;35m\]" # magenta
local C="\[\033[0;36m\]" # cyan
local W="\[\033[0;37m\]" # white

# emphasized (bolded) colors
local EMK="\[\033[1;30m\]"
local EMR="\[\033[1;31m\]"
local EMG="\[\033[1;32m\]"
local EMY="\[\033[1;33m\]"
local EMB="\[\033[1;34m\]"
local EMM="\[\033[1;35m\]"
local EMC="\[\033[1;36m\]"
local EMW="\[\033[1;37m\]"

# background colors
local BGK="\[\033[40m\]"
local BGR="\[\033[41m\]"
local BGG="\[\033[42m\]"
local BGY="\[\033[43m\]"
local BGB="\[\033[44m\]"
local BGM="\[\033[45m\]"
local BGC="\[\033[46m\]"
local BGW="\[\033[47m\]"

local UC=$W # user's color
[ $UID -eq "0" ] && UC=$R # root's color


# prompt
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[m\n\e[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:\!)\$ '
}

PS1="\e[01;31m+-[\e[01;35m\u\e[01;31m]--[\e[00;37m${HOSTNAME%%.*}\e[01;32m]:\w$\e[01;31m\n\e[01;31m+--\e[01;36m>>\e[00m"

#PS1="+-[\[\e[34m\]\h\[\e[0m\]][\[\e[32m\]\w\[\e[0m\]]\n+-? "

#PS1='[\u@\h \W]\$ '

PROMPT_COMMAND=bash_prompt_command
bash_prompt
unset bash_prompt

# share history across all terminals
PROMPT_COMMAND='history -a'

# Bash completion
set show-all-if-ambiguous on

# visual bell
set bell-style visible

# colour coreutils
eval $(dircolors -b ~/.dir_colors)
export GREP_COLOR="1;31"
alias grep="grep --color=auto"
alias ls="ls --color=auto"

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 HISTCONTROL=ignoreboth

alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias ll='ls -l --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias grep='grep --color=tty -d skip'
alias cp="cp -i" # confirm before overwriting something
alias df='df -h' # human-readable sizes
alias free='free -m' # show sizes in MB

#
## Cores para manpages.
alias man="TERMINFO=~/.terminfo TERM=mostlike LESS=C PAGER=less man"

#
## Nautilus 'light'.
alias nautilus='gconftool-2 -s -t bool /apps/nautilus/preferences/show_desktop false & gconftool-2 -s -t bool /desktop/gnome/background/draw_background false & gconftool-2 -s -t bool /apps/nautilus/preferences/always_use_browser true & gconftool-2 -s -t bool /apps/nautilus/preferences/show_advanced_permissions true &'

#
## Archive extractor.
## usage: ex <file>
#
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
}

#
## Nano Text Editor.
export EDITOR=nano
export VISUAL=nano
alias vi=nano

#
## Arch Aliases.
alias repos='sudo leafpad /etc/pacman.conf'
alias mirrors='sudo leafpad /etc/pacman.d/mirrorlist'
alias rcconf='sudo leafpad /etc/rc.conf'
alias mkpkg='sudo leafpad /etc/makepkg.conf'
alias fstab='sudo leafpad /etc/fstab'
alias pacsearch="pacman -Sl | cut -d' ' -f2 | grep "
alias clean="sudo pacman -Sc --noconfirm"
alias orphans="sudo pacman -Qtdq > ~/orphans.txt && less orphans.txt"
alias pacback='sudo pacman -Qqe | grep -v "$(sudo pacman -Qmq)" > ~/Dropbox/h4rd3r/pklist.txt'
alias atualizar='sudo pacman -Syu'
alias instalar='sudo pacman -S'
alias remover='sudo pacman -Rnsc'
alias listar='sudo pacman -Qq > pacotes-instalados.txt'
alias procurar='sudo pacman -Ss.txt'
alias otimizar='sudo pacman-optimize'
alias repack='sudo repacman'
alias packer-upgrd='sudo packer -Syu'
alias yaourt-install='sudo yaourt -S'
alias packer-install='packer -S --noedit --skipinteg'
alias removelock='sudo rm -fv /var/lib/pacman/db.lck'
alias sincroniza='repo-add /home/h4rd3r/PkgBuilds/packages/my_packages.db.tar.gz /home/h4rd3r/PkgBuilds/packages/*.pkg.tar.xz'
alias pacupd='removelock && sincroniza && sudo pacman-color -Syu'
alias packer-aur='removelock && sincroniza && sudo packer -Syu --auronly'

#
## Pesquisa colorida para os repos do Arch.
search() {
echo -e "$(pacman -Ss $@ | sed \
-e 's#core/.*#\\033[1;31m&\\033[0;37m#g' \
-e 's#extra/.*#\\033[0;32m&\\033[0;37m#g' \
-e 's#community/.*#\\033[1;35m&\\033[0;37m#g' \
-e 's#^.*/.* [0-9].*#\\033[0;36m&\\033[0;37m#g' )"
}

#
## Baixa pacotes do AUR com o Yaourt e depois os compila.
yaourtd() { cd $HOME/Build && yaourt -d "$1" && cd "$_" && makepkg -i; }

#
## Copiar ou Mover arquivos e seguir para o destino.
cpf() { cp "$@" && goto "$_"; }
mvf() { mv "$@" && goto "$_"; }
goto() { [ -d "$1" ] && cd "$1" || cd "$(dirname "$1")"; }

#
## TimeZone.
zone() { TZ="$1"/"$2" date; }
zones() { ls /usr/share/zoneinfo/"$1" ;}

#
## Nice mount output.
nmount() { (echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t; }

#
## Notas simples.
n() { $EDITOR $HOME/.notas/"$*".txt ; }
nls() { tree -CR --noreport $HOME/.notas | awk '{ if ((NR > 1) gsub(/.txt/,"")); if (NF==1) print $1; else if (NF==2) print $2; else if (NF==3) printf " %s\n", $3 }' ;}
nd() { rm $HOME/.notas/"$*".txt ; }

#
## Imprimir ManPages.
manp() { man -t "$@" | lpr -pPrinter; }

#
## Criar PDFs de ManPages (requer ghostscript e mimeinfo).
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && xdg-open /tmp/manpdf_$1.pdf ;}

# MOC (Music On Console).
alias music='mocp -m /media/sda1/MULTIMIDIA/MUSIC/'
alias killmoc='killall mocp'

#
# Pings:
alias google='ping -i 3 www.google.com'
alias globo='ping -i 3 www.globo.com'
alias uol='ping -i 3 www.uol.com.br'
alias yahoo='ping -i 3 www.yahoo.com'

# Converter WMA para WAV.
alias wma2wav='for i in *.wma; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader:file="${i%.wma}.wav" "$i" ; done'

#
## Top 10 (mostra os 10 comandos mais utilizados).
function top10() {
# copyright 2007 - 2010 Christopher Bratusek
history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head
}

#
## RTFM (Read The Fucking Manual!).
function rtfm()
{ help $@ || man $@ || lynx "http://www.google.com/search?q=$@"; }

#
## Screenshot.
function shot()
{
import -frame -strip -quality 75 "$HOME/$(date +%s).png"
}

#
## Zipar arquivos ou diretórios.
function zipf() { zip -r "$1".zip "$1" ; }

#
# Processos.
alias processos='ps -aux | grep '
alias matar='sudo kill -9 '
alias finalizar='sudo killall '

#
# Rádios OnLine.
alias kissfm='mplayer -playlist "http://www.crosshost.com.br/cbs/kiss/ouvir.m3u"'
alias kissfm2='mplayer -playlist http://www.crosshost.com.br/cbs/kiss/radio.asx'
alias metalmilitia='mplayer -playlist "http://www.server1.bouncestream.com.br/tunein.php/metal/playlist.pls"'
alias globoamsp='mplayer http://wm-sgr-live.globo.com/sgr_off_globoamsp_live.wma'
alias cbnfmsp='mplayer http://wm-sgr-live.globo.com/sgr_off_cbnfmsp_live.wma'
alias bandamsp='mplayer http://servidor25.crossdigital.com.br:8000/bandeirantesam'

#
## Shred.
#alias shred-sda-r='sudo shred -v -z -n 1 /dev/sda'
#alias shred-sda='sudo shred -v -z -n 0 /dev/sda'
#alias shred-sdb-r='sudo shred -v -z -n 1 /dev/sdb'
#alias shred-sdb='sudo shred -v -z -n 0 /dev/sdb'
#alias shred-sdc-r='sudo shred -v -z -n 1 /dev/sdc'
#alias shred-sdc='sudo shred -v -z -n 0 /dev/sdc'

#
## Xterm e Aterm.
alias aterm='xterm -ls -fg gray -bg black'
alias termr='xterm -bg AntiqueWhite -fg DarkRed &'
alias xsu='xterm -fn 7x14 -bg Red -fg white -e su &'
alias xtop='xterm -fn 6x13 -bg LightSlateGray -fg black -e top &'

#
## Ejetar Modem 3G.
alias ejetar='sudo eject /dev/sr1'

#
## Preligar binários (requer prelink).
alias preligar='sudo prelink --all'

#
## Atualizar índices com o updatedb (requer mlocate).
alias index='sudo updatedb'

#
## Image Shadow.
image-shadow () {
out=${1%.*}-shadow.${1#*.}
in=$1
echo "Converted file : $out"
if [ ! -z $2 ] ; then
convert $in -frame $2 $out
in=$out
fi
convert $in \( +clone -background black -shadow 60x5+10+10 \) \
+swap -background white -layers merge +repage $out
}

#
## Mapa de Teclado ABNT2.
setxkbmap -model abnt2 br

#
## Control + ALT + Backspace (ou use AltGr + PrintScrn + K).
setxkbmap -option terminate:ctrl_alt_bksp

#
## Plymouth.
alias plylist='sudo /usr/sbin/plymouth-set-default-theme --list' # lista os temas disponíveis.
alias plytheme='sudo /usr/sbin/plymouth-set-default-theme' # altera o tema do Plymouth.
alias plyupdate='sudo update-initramfs -u' # atualiza o initrd para implementar as mudanças.
alias plymouth-details='sudo /usr/sbin/plymouth-set-default-theme details && sudo update-initramfs -u'

#
## Youtube-dl (requer youtube-dl).
alias youtube='youtube-dl -c -t'

#
## VideoDesk (requer xwinwrap).
alias videodesk='xwinwrap -ni -o 0.6 -fs -s -st -sp -b -nf -- mplayer -wid WID '

#
## Compilar.
alias compile='./configure --prefix=/usr --sysconfdir=/etc && make'

#
## Bash Completion.
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

# ~/.bashrc: executed by bash(1) for non-login shells.


Comentários
[1] Comentário enviado por david.sousarj em 20/10/2011:

.

[2] Comentário enviado por xerxeslins em 27/12/2011:

AH! perfect!

Favoritado


Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.