#!/bin/bash # Author: Jorge Pereira # Last Change: Sun 22 Mar 2009 03:11:42 AM BRT ## PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH" export PATH my-nmap() { echo "Gerando o arquivo scan.out" nmap -sS -sU -P0 -oN scan.out --version-all -O -sV $@ } my-sync-scripts-from-jorgepereira() { from="http://blog.jorgepereira.com.br/wp-content/dist/scripts/" cd ~ && \ wget -c $(lynx -dump http://blog.jorgepereira.com.br/wp-content/dist/scripts/ | sed '/http:\/\//!d; /dot\./!d; s/.* //') && \ ls dot.* | while read a; do mv -fv $a "$(echo $a | sed 's/dot//g')"; done } my-renice-byname() { sudo renice $1 $(pidof $2) } my-addalias() { echo "alias $@" >> ~/.bash_alias source ~/.bash_alias } my-set-simple-path() { export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" } my-set-old-ps1() { export PS1="[\u@\h \W]\\$ " } my-valgrind() { log=$(basename $1).valgrind.log export G_SLICE=always-malloc export G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=${log} $@ } my-df-devices() { df -Th / /boot /home /coisas /media/Movies /media/Musics /media/WindowsXP 2>&- } ver() { lynx -dump -head http://$1 } my-show-size-of-my-home() { cd ~ && { ls -a | grep -v "^\\.\\.\?$" | xargs du -hs | sort --key=1 } } # utilizado para reiniciar servico my-service-restart() { if [ -z "$*" ];then echo "Usage: `basename $0` " else for prog in $*; do { echo -n "Restarting ${prog} ..." sudo /etc/init.d/${prog} restart echo "ok" } done fi } # altera permissoes do diretorio atual my-perm() { chmod="chmod" echo "Deseja alterar as permissoes do diretorio \"$(pwd)\"?" echo "Diretorios (rwx,r-x,r-x) & Arquivos (rw-,r--,r--)" echo -n "Alterar? [s/n] " read opt if [ "${opt}" = "s" ] then { if [ "$1" = "-v" -o "$1" = "v" ] then { chmod="chmod -v" } fi find . -type f -exec $chmod 644 {} \; find . -type d -exec $chmod 755 {} \; } else { echo "Abortando..." } fi } # liga o capslock my-start-of-all-capslock() { # Teclado (NUMLOCK) INITTY="1 2 3 4 5 6 7 8 9 10 11" for tty in $INITTY; do { setleds -D +num < /dev/tty$tty setleds -D -num < /dev/tty$tty setleds -D +num < /dev/tty$tty } done } # clean of backups my-nobacks() { find . -name "*~" -exec rm -rfv {} \; find . -name ".*~" -exec rm -rfv {} \; } # sabe o tamanho do home my-size-of-home() { rm -f ~/mysize.txt ls -a ~ | while read _file_; do { du -hs ${_file_} } done | sort -n --key=1 > /tmp/mysize-$$ mv -f /tmp/mysize-$$ ~/mysize.txt } # gravar cd my-cdrecord() { if [ $# -lt 1 ];then echo "Usage: $(basename $0) " exit 1 else cdrecord dev=ATAPI:/dev/hdc -pad -speed=32 -eject -data -force -v $1 fi } # clean buff of memory my-clean-buffersmemory() { echo "(*) Limpando cache..." sudo sysctl -w vm.drop_caches=1 sudo sysctl -w vm.drop_caches=2 sudo sysctl -w vm.drop_caches=3 } # kill kill-evolution() { ps aux | grep evolution | awk '{print $2}' | xargs kill -9 1> /dev/null 2>&1 TASK=$? if [ ${TASK} -eq 1 ];then echo "N�o existe processo do evolution sendo executado..." fi } # clean my-clean-home() { rm -rf ~/.gqview rm -rf ~/.thumbnails rm -rf ~/.mozilla/firefox/default/Cache/* # pidgin rm -rf ~/.purple/logs/jabber/* rm -rf /home/jorge/.xchat2/xchatlogs/* /home/jorge/.xchat2/scrollback/* # emesene rm -f ~/.config/emesene1.0/jorge_pereira_cesar_org_br/logs/* rm -f ~/.config/emesene1.0/jorge_jorgepereira_com_br/logs/* rm -f ~/.config/emesene1.0/muitabronca_hotmail_com/logs/* } # faz busca por um bin nos PATH's findbin() { ACHOU=12 if [ -z "$1" ];then echo "Usage: $0 " else echo $PATH | sed "s/:/ /g" | xargs ls 2> /dev/null | grep -i $1 | \ sort -n | uniq | \ while read _file; do if ( (which ${_file} 1> /dev/null 2>&1));then echo $(which ${_file}) else echo ":${_file}" fi done | sort -n if [ "${ACHOU}" = "false" ];then echo "Nãda encontrado referente a ($1) no \$PATH." exit 1 fi fi } # exibe o ip real para internet myip() { _ip=$(lynx -dump http://www.ossec.net/userinfo/ | sed '/Ip Address/!d; s/\(.*:\| \)//g;') echo "Meu IP: http://${_ip}:8080$1" } # limpa os arquivos de log clean-var-log() { find /var/log -maxdepth 1 -type f | \ while read l do > $l done } # coloca as chaves no apt apt-chave() { gpg --keyserver hkp://subkeys.pgp.net --recv-keys $1 gpg --armor --export $1 | sudo apt-key add - } # atualiza e monta um mirror de debs debian-update-mirror() { debdir="/var/www/ubuntu/" mkdir -p /var/www/ubuntu/ rm -f /var/www/ubuntu/debs ln -fs /var/cache/apt/archives /var/www/ubuntu/debs if [ ! -d "${debdir}" ];then echo "Diretorio (${debdir}) invalido!" exit 1 fi echo -n "Atualizando Packages.gz..." ( cd ${debdir}/debs ls *.deb | grep "%3a" | \ while read huhu do mv -fv ${huhu} $(echo ${huhu} | sed "s/%3a/:/g") done ) cd $debdir touch temp dpkg-scanpackages debs temp 2> /dev/null | gzip > debs/Packages.gz rm -f ${temp} echo "finalizado!!" } # remove os caracteres errados dos pacotes debian-update-debs() { ls | while read f; do { if ( (echo $f | grep "%3a" 1> /dev/null 2> /dev/null)) then mv -fv $f $(echo $f| sed "s/%3a/:/g") fi } done } edit-sourcelist() { sudo vi /etc/apt/sources.list } # edita um script passado como parametro, caso o mesmo exista! edit-this() { if [ -f $(which $1) ];then vi $(which $1) else echo "O Arquivo $1 nao existe fera! :(" fi } # executa o comando cp com um progress bar cp_p() { set -e strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \ | awk '{ count += $NF if (count % 10 == 0) { percent = count / total_size * 100 printf "%3d%% [", percent for (i=0;i<=percent;i++) printf "=" printf ">" for (i=percent;i<100;i++) printf " " printf "]\r" } } END { print "" }' total_size=$(stat -c '%s' "${1}") count=0 } # edita o bashrc edit-bashrc() { vi ~/.bashrc source ~/.bashrc } # edita o vimrc edit-vimrc() { vi ~/.vimrc } # edita a var PATH em bashrc edit-path() { vi ~/.bashrc +/^PATH source ~/.bashrc } # recarrega o bash_functions reload-functions() { source ~/.bash_functions } # recarrega o bashrc reload-bash() { source ~/.bashrc } # faz uma copia do cd copyCdrom2Iso() { arg0=copyCdrom2Iso if [ -z $1 ];then echo "Usage: $arg0 $HOME/.bash_alias 2>&- source $HOME/.bash_alias } # edita o arquivo personalizado de alias edit-alias() { if [ ! -f $HOME/.bash_alias ];then echo "AVISO: Arquivo de alias invalido!" exit 0 fi vi $HOME/.bash_alias unalias -a source $HOME/.bash_alias } # edita este arquivo edit-functions() { if [ ! -f $HOME/.bash_functions ];then echo "AVISO: Arquivo de alias invalido!" exit 0 fi vi $HOME/.bash_functions source $HOME/.bash_functions } # faz atualizcao debian-update() { apt-get -f -y --force-yes update apt-get -f -y --force-yes dist-upgrade apt-get -f -y --force-yes upgrade }