/bash.functions
http://github.com/brinkman83/bashrc · Bash · 272 lines · 246 code · 26 blank · 0 comment · 0 complexity · 617e02876614ecb686483dae53efe960 MD5 · raw file
- #!/bin/bash
- ##############################################
- echo -e "sh /etc/bash.functions ::\n\n"
- ##############################################
- psnice()
- {
- if [[ -z $1 || -z $2 ]] ; then
- echo "Usage: psnice procname [-/+ nice]"
- return 1
- fi
- ps ax | grep $1 | grep -v grep | awk '{ print $1 }' | xargs sudo renice $2 -p
- }
- function chmog()
- {
- if [ $# -ne 4 ] ; then
- echo "usage: chmog mode owner group file"
- return 1
- else
- chmod $1 $4
- chown $2 $4
- chgrp $3 $4
- fi
- }
- psgrep()
- {
- ps aux | grep $1 | grep -v grep
- }
- pskill()
- {
- local pid
- pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
- echo -n "killing $1 (process $pid)..."
- kill -9 $pid
- echo "slaughtered."
- }
- ## Display a printout of the largest installed packages, useful for when diskspace is low.
- function show-largest-packages {
- if [ -z $1 ]; then
- echo 'Usage: show-largest-packages [# pkgs to show]'
- return
- fi
- dpkg-query --show --showformat='${Package}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}' | tail -n $1
- }
- ## Attempt to auto add as many unknown keys to apt using default keyserver ##
- function fix-apt-keys {
- if [ ! -x /usr/sbin/add-apt-key ]; then
- echo -e Needed add-apt-key util not installed, attempting to fix this...
- sudo apt-get install add-apt-key
- fi
- echo Running apt-get update -q to log unknown keys...
- sudo apt-get update -q 2>&1 | grep -Po -e '\w{16}$' | xargs -d '\n' -n1 sudo add-apt-key
- echo Removing temp file created to run fix-apt-keys...
- rm /tmp/apterr -fv
- }
- ## ack-grep files ##
- function agrep {
- if [ ! -x /usr/bin/ack-grep ]; then
- echo Need to get ack-grep before we can use it...
- sudo apt-get install ack-grep
- fi
- if [ -z "$1" ]; then
- if [ -z "$2" ]; then
- echo usage: agrep [pattern] [path / file]
- return
- fi
- fi
- ack-grep --color -awHQ $1 $2
- }
- ## Reliably copies the id_rsa.pub to remote machines, reguardless of if ssh-agent is running or working! ##
- function sshadd {
- if [ -z "$1" ]; then
- echo usage: sshadd [user@]hostname
- return
- fi
- ssh-copy-id -i ~/.ssh/id_rsa.pub $1
- }
- ## Alias apt-get with wajig, but make sure its installed ##
- function wajig {
- if [ -x /usr/bin/wajig ]; then
- sudo wajig $@
- else
- sudo apt-get -y install wajig wget fping debconf-english apt-move dpkg-repack alien fakeroot gkdebconf lynx elinks python-gtk2 python-glade2 python-gnome2 deborphan equivs debdelta vrms apt-show-versions apt-show-source
- sudo wajig $@
- fi
- }
- ## Dynamic icecc loader ##
- function icecc {
- if [ -x /usr/bin/icecc ]; then
- sudo icecc $@
- else
- sudo apt-get -y install icecc
- sudo icecc $@
- fi
- }
- ## Dynamic distcc loader ##
- function distcc {
- if [ -x /usr/bin/distcc ]; then
- sudo distcc $@
- else
- sudo apt-get -y install distcc
- sudo distcc $@
- fi
- }
- ## Dynamic vfu loader ##
- function vfu {
- if [ -x /usr/bin/vfu ]; then
- sudo vfu $@
- else
- sudo apt-get -y install vfu
- sudo vfu $@
- fi
- }
- ## Dynamic rdist loader ##
- function rdist {
- if [ -x /usr/bin/rdist ]; then
- sudo rdist $@
- else
- sudo apt-get -y install rdist
- sudo rdist $@
- fi
- }
- ## Dynamic galternatives loader ##
- function galternatives {
- if [ -x /usr/sbin/galternatives ]; then
- gksudo /usr/sbin/galternatives
- else
- sudo apt-get -y install galternatives
- gksudo /usr/sbin/galternatives
- fi
- }
- ## Dynamic htop loader ##
- function htop {
- if [ -x /usr/bin/htop ]; then
- sudo htop $@
- else
- sudo apt-get -y install htop
- sudo htop $@
- fi
- }
- ## Dynamic renameutils (icp) loader ##
- function icp {
- if [ -x /usr/bin/icp ]; then
- sudo icp $@
- else
- sudo apt-get -y install renameutils
- sudo icp $@
- fi
- }
- ## Dynamic renameutils (imv) loader ##
- function imv {
- if [ -x /usr/bin/imv ]; then
- sudo imv $@
- else
- sudo apt-get -y install renameutils
- sudo imv $@
- fi
- }
- ## Dynamic dlocate loader ##
- function dlocate {
- if [ -x /usr/bin/dlocate ]; then
- sudo dlocate $@
- else
- sudo apt-get -y install dlocate
- sudo dlocate $@
- fi
- }
- ## Dynamic apparix loader ##
- function apparix {
- if [ -x /usr/bin/apparix ]; then
- sudo apparix $@
- else
- sudo apt-get -y install apparix
- sudo apparix $@
- fi
- }
- ### Apparix (cdargs fork) functions ###
- function to () {
- if test "$2"; then
- cd "$(apparix "$1" "$2" || echo .)";
- else
- cd "$(apparix "$1" || echo .)";
- fi
- pwd
- }
- function bm () {
- if test "$2"; then
- apparix --add-mark "$1" "$2";
- elif test "$1"; then
- apparix --add-mark "$1";
- else
- apparix --add-mark;
- fi
- }
- function portal () {
- if test "$1"; then
- apparix --add-portal "$1";
- else
- apparix --add-portal;
- fi
- }
- # function to generate list of completions from .apparixrc
- function _apparix_aliases ()
- { cur=$2
- dir=$3
- COMPREPLY=()
- if [ "$1" == "$3" ]
- then
- COMPREPLY=( $( cat $HOME/.apparix{rc,expand} | \
- grep "j,.*$cur.*," | cut -f2 -d, ) )
- else
- dir=`apparix -favour rOl $dir 2>/dev/null` || return 0
- eval_compreply="COMPREPLY=( $(
- cd "$dir"
- \ls -d *$cur* | while read r
- do
- [[ -d "$r" ]] &&
- [[ $r == *$cur* ]] &&
- echo \"${r// /\\ }\"
- done
- ) )"
- eval $eval_compreply
- fi
- return 0
- }
- ### (END) Apparix (cdargs fork) functions (END) ###
- ### Apt-history replacement: invoke as apt-history ( install | upgrade | remove | rollback ) w/o parens ###
- function apt-history(){
- case "$1" in
- install)
- cat /var/log/dpkg.log | grep 'install '
- ;;
- upgrade|remove)
- cat /var/log/dpkg.log | grep $1
- ;;
- rollback)
- cat /var/log/dpkg.log | grep upgrade | \
- grep "$2" -A10000000 | \
- grep "$3" -B10000000 | \
- awk '{print $4"="$5}'
- ;;
- *)
- cat /var/log/dpkg.log
- ;;
- esac
- }
- ### (END) Apt-history fn (END) ###