Posts Tagged ‘bashrc’
Funções legais para o bashrc
Posted by Hugo Doria | Filed under Arch Linux, Linux
Decidi melhorar o meu bashrc e colar aqui algumas das funções que incorporei a ele. Para quem não sabe, o bashrc é um arquivo executado durante o login de seu usuário. Ele é oculto, fica no seu home e geralmente possui aliases, comandos e variáveis.
Na verdade, o bashrc é apenas um dos possíveis arquivos a serem carregados durante o login de um usuário. Tudo depende de como este login está sendo feito. Procurando mais informações sobre isso encontrei a seguinte explicação em um email de Flávio Torres:
Quando é carregado através de um shell que requer login (nome e senha), o bash procura estes arquivos em seqüência e executa os comandos contidos, caso existam:
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
Ele interrompe a pesquisa assim que localiza o primeiro arquivo no diretório do usuário (usando a sequência acima). Por exemplo, se você tem o arquivo ~/.bash_login e ~/.bash_profile em seu diretório de usuário, ele processará o /etc/profile e após isto o ~/.bash_profile, mas nunca processará o ~/.bash_login (a menos que o ~/.bash_profile seja apagado ou renomeado).
Caso o bash seja carregado através de um shell que não requer login (um terminal no X, por exemplo), o seguinte arquivo é executado: ~/.bashrc
No Arch Linux o arquivo .bash_profile só faz chamar o ~/.bashrc.
Depois de um breve desvio no foco do post para fazer a explicação acima, seguem as funções (e aliases) que uso no meu ~/.bashrc:
NOTA: cuidado com as quebras de linha e com os dois hífens (o wordpress muda isso).
$ cat .bashrc
################################
# Aliases
################################alias ls=’ls –color=auto’
alias np=’nano PKGBUILD’
alias paq=’pacman -Q | grep’
alias pac=’pacman -S’
alias pacy=’pacman -Sy’
alias pacu=’pacman -Suy’
alias pau=’pacman -U’
alias par=’pacman -R’
alias prc=’pacman -Rc’
alias prs=’pacman -Rs’
alias prm=’pacman -Rscn’
alias prp=’pacman -Rn’
alias psp=’pacman -Rsn’
alias pcp=’acman -Rcn’
alias pmp=’pacman -Rscn’
alias pcc=’pacman -Scc’#############################
# PS1
#############################PS1=’[\u@\h \W]\$ ‘
############################
# Functions
#############################myip - finds your current IP if your connected to the internet
myip ()
{
lynx -dump -hiddenlinks=ignore -nolist http://checkip.dyndns.org:8245/ | awk ‘{ print $4 }’ | sed ‘/^$/d; s/^[ ]*//g; s/[ ]*$//g’
}#clock - A bash clock that can run in your terminal window.
clock ()
{
while true;do
clear;
echo “===========”;
date +”%r”;
echo “===========”;
sleep 1;
done
}#netinfo - shows network information for your system
netinfo ()
{
echo “————— Network Information —————”
/sbin/ifconfig | awk /’inet addr/ {print $2}’
/sbin/ifconfig | awk /’Bcast/ {print $3}’
# /sbin/ifconfig | awk /’inet addr/ {print $4}’
/sbin/ifconfig | awk /’HWaddr/ {print $4,$5}’
myip=`lynx -dump -hiddenlinks=ignore -nolist http://checkip.dyndns.org:8245/ | sed ‘/^$/d; s/^[ ]*//g; s/[ ]*$//g’ `
echo
echo “${myip}”
echo “—————————————————”
}#shot - takes a screenshot of your current window
shot ()
{
import -w root -quality 75 “$HOME/shot-$(date +%s).png”
}#Translate a Word - USAGE: translate house
translate ()
{
TRANSLATED=`lynx -dump “http://dictionary.reference.com/browse/${1}” | grep -i -m 1 -w “Portuguese (Brazil):” | sed ’s/^[ \t]*//;s/[ \t]*$//’`
if [[ ${#TRANSLATED} != 0 ]] ;then
echo “\”${1}\” in ${TRANSLATED}”
else
echo “Sorry, I can not translate \”${1}\” to Portuguese (Brazil)”
fi
}if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Este foi meu bashrc, por enquanto. E o de vocês, como é? Quais funções e aliases vocês usam?
Ah! Quem quiser pode ver mais funções aqui.
Hugo Dória é pai, músico, desenvolvedor oficial e empacotador do Arch Linux, sysadmin e trabalha com instalação e configuração de servidores Linux. :)