Tuesday, April 29. 2008Comments (0) Trackbacks (0) | Top Exits (0) A few things you'll like, if you like unixUse this: (.bashrc): [stetter@fedora-vm 4] ~ > cat .bashrc #=============================================================== # # my (semi-borrowed) attempt at making bash my bitch # # Thanks to Emmanuel Rouat(emmanuel.rouat@wanadoo.fr), and the # authors of the wonderfully complete Bash HOWTO. # Read that at http://tldp.org/LDP/abs/html/index.html # # Last updated: April 28, 2008 # #=============================================================== #----------------------------------- # Source global definitions (if any) #----------------------------------- if [ -f /etc/bashrc ]; then . /etc/bashrc fi #------------------------------------------------------------- # Automatic setting of $DISPLAY (if not set already) # This works for linux - your mileage may vary.... # The problem is that different types of terminals give # different answers to 'who am i'...... # I have not found a 'universal' method yet #------------------------------------------------------------- function get_xserver () { case $TERM in xterm ) XSERVER=$(who am i | awk '{print $NF}' | tr -d ')''(' ) # Ane-Pieter Wieringa suggests the following alternative: # I_AM=$(who am i) # SERVER=${I_AM#*(} # SERVER=${SERVER%*)} XSERVER=${XSERVER%%:*} ;; aterm | rxvt) # find some code that works here..... ;; esac } if [ -z ${DISPLAY:=""} ]; then get_xserver if [[ -z ${XSERVER} || ${XSERVER} == $(hostname) || ${XSERVER} == "unix" ]]; then DISPLAY=":0.0" # Display on local host else DISPLAY=${XSERVER}:0.0 # Display on remote host fi fi export DISPLAY #--------------- # Some settings #--------------- ulimit -S -c 0 # Don't want any coredumps set -o notify set -o noclobber set -o ignoreeof set -o nounset #set -o xtrace # Useful for debuging # Enable options: shopt -s cdspell shopt -s cdable_vars shopt -s checkhash shopt -s checkwinsize shopt -s mailwarn shopt -s sourcepath shopt -s no_empty_cmd_completion # bash>=2.04 only shopt -s cmdhist shopt -s histappend histreedit histverify shopt -s extglob # Necessary for programmable completion # Disable options: shopt -u mailwarn unset MAILCHECK # I don't want my shell to warn me of incoming mail export TIMEFORMAT=$'\nreal %3R\tuser %3U\tsys %3S\tpcpu %P\n' export HISTIGNORE="&:bg:fg:ll:h" export HOSTFILE=$HOME/.hosts # Put a list of remote hosts in ~/.hosts export TMOUT=0 export HOST=`hostname` export PLATFORM=`uname -s` #----------------------- # Greeting, motd etc... #----------------------- # Define some colors first: red='\e[0;31m' RED='\e[1;31m' blue='\e[0;34m' BLUE='\e[1;34m' cyan='\e[0;36m' CYAN='\e[1;36m' NC='\e[0m' # No Color if [ -x /usr/games/fortune ]; then /usr/games/fortune -s # makes our day a bit more fun.... fi function _exit() # function to run upon exit of shell { echo -e "Performing session cleanup..." } trap _exit EXIT #--------------- # Shell Prompt #--------------- # perform test. show red if on local system, cyan if ssh'ed in HILIT=${cyan} # remote machine: prompt will be partly cyan # --> Replace instances of \W with \w in prompt functions below #+ --> to get display of full path name. function fastprompt() { unset PROMPT_COMMAND case $TERM in term | rxvt ) PS1="${HILIT}[\u@\h]$NC \W > " ;; linux ) PS1="${HILIT}[\u@\h]$NC \W > " ;; ) PS1="${HILIT}[\u@\h]$NC \W > " ;; #PS1="${HILIT}[\h] \W > " ;; esac } function powerprompt() { _powerprompt() { LOAD=$(uptime|sed -e "s/.*: \([^,]*\).*/\1/" -e "s/ //g") } PROMPT_COMMAND=_powerprompt case $TERM in term | rxvt | linux ) PS1="${HILIT}[\A - \$LOAD]$NC\n[\u@\h #] \W > " ;; ) PS1="[\A - \$LOAD]\n[\u@\h #] \W > " ;; esac } powerprompt # This is the default prompt -- might be slow. # If too slow, use fastprompt instead. #=============================================================== # # ALIASES AND FUNCTIONS # # Arguably, some functions defined here are quite big # (ie 'lowercase') but my workstation has 512Meg of RAM, so ... # If you want to make this file smaller, these functions can # be converted into scripts. # # Many functions were taken (almost) straight from the bash-2.04 # examples. # #=============================================================== #------------------- # Personnal Aliases #------------------- alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # -> Prevents accidentally clobbering files. alias mkdir='mkdir -p' alias h='history' alias j='jobs -l' alias s='ssh' alias which='type -all' alias ..='cd ..' alias path='echo -e ${PATH//:/\\n}' alias print='/usr/bin/lp -o nobanner -d $LPDEST' # Assumes LPDEST is defined alias pjet='enscript -h -G -fCourier9 -d $LPDEST' # Pretty-print using enscript alias background='xv -root -quit -max -rmode 5' # Put a picture in the background alias du='du -kh' alias df='df -kTh' # The 'ls' family (this assumes you use the GNU ls) case $PLATFORM in Darwin) alias la='ls -AlG' alias l='ls -lG' alias ls='ls -hFG' alias lx='ls -lXBG' alias lk='ls -lSrG' alias lc='ls -lcrG' alias lu='ls -lurG' alias lr='ls -lRG' alias lt='ls -ltrG' alias lm='ls -alG |more' ;; Linux) alias la='ls -Al' alias l='ls -hF --color' alias ls='ls -hF --color' alias lx='ls -lXB' alias lk='ls -lSr' alias lc='ls -lcr' alias lu='ls -lur' alias lr='ls -lR' alias lt='ls -ltr' alias lm='ls -al |more' ;; "*") ;; esac alias tree='tree -Csu' # nice alternative to 'ls' # tailoring 'less' alias more='less' export PAGER=less export LESSCHARSET='latin1' export LESSOPEN='|/usr/bin/lesspipe.sh %s 2>&-' # Use this if lesspipe.sh exists. export LESS='-i -N -w -z-4 -g -e -M -X -F -R -P%t?f%f \ :stdin .?pb%pb%:?lbLine %lb:?bbByte %bb:-...' # spelling typos - highly personnal alias xs='cd' alias vf='cd' alias moer='more' alias moew='more' alias kk='ll' #---------------- # a few fun ones #---------------- function xtitle () { case "$TERM" in term | rxvt) echo -n -e "\033]0;$*\007" ;; ) ;; esac } # aliases... alias top='xtitle Processes on $HOST && top' alias make='xtitle Making $(basename $PWD) ; make' alias ncftp="xtitle ncFTP ; ncftp" # .. and functions function man () { for i ; do xtitle The $(basename $1|tr -d .[:digit:]) manual command man -F -a "$i" done } function ll() { ls -l "$@"| egrep "^d" ; ls -lXB "$@" 2>&-| egrep -v "^d|total "; } function te() # wrapper around xemacs/gnuserv { if [ "$(gnuclient -batch -eval t 2>&-)" == "t" ]; then gnuclient -q "$@"; else ( xemacs "$@" &); fi } #----------------------------------- # File & strings related functions: #----------------------------------- # Find a file with a pattern in name: function ff() { find . -type f -iname '*'$*'' -ls ; } # Find a file with pattern $1 in name and Execute $2 on it: function fe() { find . -type f -iname '*'$1'*' -exec "${2:-file}" {} \; ; } # find pattern in a set of filesand highlight them: function fstr() { OPTIND=1 local case="" local usage="fstr: find string in files. Usage: fstr [-i] \"pattern\" [\"filename pattern\"] " while getopts :it opt do case "$opt" in i) case="-i " ;; ) echo "$usage"; return;; esac done shift $(( $OPTIND - 1 )) if [ "$#" -lt 1 ]; then echo "$usage" return; fi local SMSO=$(tput smso) local RMSO=$(tput rmso) find . -type f -name "${2:-*}" -print0 | xargs -0 grep -sn ${case} "$1" 2>&- | \ sed "s/$1/${SMSO}\0${RMSO}/gI" | more } function cuttail() # Cut last n lines in file, 10 by default. { nlines=${2:-10} sed -n -e :a -e "1,${nlines}!{P;N;D;};N;ba" $1 } function lowercase() # move filenames to lowercase { for file ; do filename=${file##*/} case "$filename" in /*) dirname==${file%/*} ;; ) dirname=.;; esac nf=$(echo $filename | tr A-Z a-z) newname="${dirname}/${nf}" if [ "$nf" != "$filename" ]; then mv "$file" "$newname" echo "lowercase: $file --> $newname" else echo "lowercase: $file not changed." fi done } function swap() # swap 2 filenames around { local TMPFILE=tmp.$$ mv "$1" $TMPFILE mv "$2" "$1" mv $TMPFILE "$2" } #----------------------------------- # Process/system related functions: #----------------------------------- function my_ps() { ps $@ -u $USER -o pid,%cpu,%mem,bsdtime,command ; } function pp() { my_ps f | awk '!/awk/ && $0~var' var=${1:-".*"} ; } # This function is roughly the same as 'killall' on linux # but has no equivalent (that I know of) on Solaris function killps() # kill by process name { local pid pname sig="-TERM" # default signal if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then echo "Usage: killps [-SIGNAL] pattern" return; fi if [ $# = 2 ]; then sig=$1 ; fi for pid in $(my_ps| awk '!/awk/ && $0~pat { print $1 }' pat=${!#} ) ; do pname=$(my_ps | awk '$1~var { print $5 }' var=$pid ) if ask "Kill process $pid <$pname> with signal $sig?" then kill $sig $pid fi done } function my_ip() # get IP adresses { case "$PLATFORM" in Linux) ADAPTER="eth0" ;; Darwin) ADAPTER="en1" ;; esac MY_IP=$(/sbin/ifconfig $ADAPTER | awk '/inet/ { print $2 } ' | \ sed -e s/addr://) MY_ISP=$(/sbin/ifconfig $ADAPTER | awk '/P-t-P/ { print $3 } ' | \ sed -e s/P-t-P://) } function ii() # get current host related info { echo -e "\nYou are logged on ${RED}$HOST" echo -e "\nAdditionnal information:$NC " ; uname -a echo -e "\n${RED}Users logged on:$NC " ; w -h echo -e "\n${RED}Current date :$NC " ; date echo -e "\n${RED}Machine stats :$NC " ; uptime echo -e "\n${RED}Memory stats :$NC " ; free my_ip 2>&- ; echo -e "\n${RED}Local IP Address :$NC" ; echo ${MY_IP:-"Not connected"} echo -e "\n${RED}ISP Address :$NC" ; echo ${MY_ISP:-"Not connected"} echo } # Misc utilities: function repeat() # repeat n times command { local i max max=$1; shift; for ((i=1; i <= max ; i++)); do # --> C-like syntax eval "$@"; done } function ask() { echo -n "$@" '[y/n] ' ; read ans case "$ans" in y*|Y*) return 0 ;; ) return 1 ;; esac } #======================================================================= # # PROGRAMMABLE COMPLETION - ONLY SINCE BASH-2.04 # Most are taken from the bash 2.05 documentation and from Ian McDonalds # 'Bash completion' package # (http://www.caliban.org/bash/index.shtml#completion) # You will in fact need bash-2.05a for some features # #======================================================================= if [ "${BASH_VERSION%.*}" \< "2.05" ]; then echo "You will need to upgrade to version 2.05 \ for programmable completion" return fi shopt -s extglob # necessary set +o nounset # otherwise some completions will fail complete -A hostname rsh rcp telnet rlogin r ftp ping disk complete -A export printenv complete -A variable export local readonly unset complete -A enabled builtin complete -A alias alias unalias complete -A function function complete -A user su mail finger complete -A helptopic help # currently same as builtins complete -A shopt shopt complete -A stopped -P '%' bg complete -A job -P '%' fg jobs disown complete -A directory mkdir rmdir complete -A directory -o default cd # Compression complete -f -o default -X '*.+(zip|ZIP)' zip complete -f -o default -X '!*.+(zip|ZIP)' unzip complete -f -o default -X '*.+(z|Z)' compress complete -f -o default -X '!*.+(z|Z)' uncompress complete -f -o default -X '*.+(gz|GZ)' gzip complete -f -o default -X '!*.+(gz|GZ)' gunzip complete -f -o default -X '*.+(bz2|BZ2)' bzip2 complete -f -o default -X '!*.+(bz2|BZ2)' bunzip2 # Postscript,pdf,dvi..... complete -f -o default -X '!*.ps' gs ghostview ps2pdf ps2ascii complete -f -o default -X '!*.dvi' dvips dvipdf xdvi dviselect dvitype complete -f -o default -X '!*.pdf' acroread pdf2ps complete -f -o default -X '!*.+(pdf|ps)' gv complete -f -o default -X '!*.texi*' makeinfo texi2dvi texi2html texi2pdf complete -f -o default -X '!*.tex' tex latex slitex complete -f -o default -X '!*.lyx' lyx complete -f -o default -X '!*.+(htm*|HTM*)' lynx html2ps # Multimedia complete -f -o default -X '!*.+(jp*g|gif|xpm|png|bmp)' xv gimp complete -f -o default -X '!*.+(mp3|MP3)' mpg123 mpg321 complete -f -o default -X '!*.+(ogg|OGG)' ogg123 complete -f -o default -X '!*.pl' perl perl5 # This is a 'universal' completion function - it works when commands have # a so-called 'long options' mode , ie: 'ls --all' instead of 'ls -a' _get_longopts () { $1 --help | sed -e '/--/!d' -e 's/.*--\([^[:space:].,]*\).*/--\1/'| \ grep ^"$2" |sort -u ; } _longopts_func () { case "${2:-*}" in -*) ;; ) return ;; esac case "$1" in \~*) eval cmd="$1" ;; ) cmd="$1" ;; esac COMPREPLY=( $(_get_longopts ${1} ${2} ) ) } complete -o default -F _longopts_func configure bash complete -o default -F _longopts_func wget id info a2ps ls recode _make_targets () { local mdef makef gcmd cur prev i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} # if prev argument is -f, return possible filename completions. # we could be a little smarter here and return matches against # `makefile Makefile .mk', whatever exists case "$prev" in -*f) COMPREPLY=( $(compgen -f $cur ) ); return 0;; esac # if we want an option, return the possible posix options case "$cur" in -) COMPREPLY=(-e -f -i -k -n -p -q -r -S -s -t); return 0;; esac # make reads `makefile' before `Makefile' if [ -f makefile ]; then mdef=makefile elif [ -f Makefile ]; then mdef=Makefile else mdef=*.mk # local convention fi # before we scan for targets, see if a makefile name was specified # with -f for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do if [[ ${COMP_WORDS[i]} == -*f ]]; then eval makef=${COMP_WORDS[i+1]} # eval for tilde expansion break fi done [ -z "$makef" ] && makef=$mdef # if we have a partial word to complete, restrict completions to # matches of that word if [ -n "$2" ]; then gcmd='grep "^$2"' ; else gcmd=cat ; fi # if we don't want to use .mk, we can take out the cat and use # test -f $makef and input redirection COMPREPLY=( $(cat $makef 2>/dev/null | \ awk 'BEGIN {FS=":"} /^[^.# ][^=]*:/ {print $1}' \ | tr -s ' ' '\012' | sort -u | eval $gcmd ) ) } complete -F _make_targets -X '+($*|.[cho])' make gmake pmake # cvs(1) completion _cvs () { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} if [ $COMP_CWORD -eq 1 ] || [ "${prev:0:1}" = "-" ]; then COMPREPLY=( $( compgen -W 'add admin checkout commit diff \ export history import log rdiff release remove rtag status \ tag update' $cur )) else COMPREPLY=( $( compgen -f $cur )) fi return 0 } complete -F _cvs cvs _killall () { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # get a list of processes (the first sed evaluation # takes care of swapped out processes, the second # takes care of getting the basename of the process) COMPREPLY=( $( /usr/bin/ps -u $USER -o comm | \ sed -e '1,1d' -e 's#[]\[]##g' -e 's#^.*/##'| \ awk '{if ($0 ~ /^'$cur'/) print $0}' )) return 0 } complete -F _killall killall killps # A meta-command completion function for commands like sudo(8), which # need to first complete on a command, # then complete according to that command's own # completion definition - currently not quite foolproof # (e.g. mount and umount don't work properly), # but still quite useful -- # By Ian McDonald, modified by me. _my_command() { local cur func cline cspec COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [ $COMP_CWORD = 1 ]; then COMPREPLY=( $( compgen -c $cur ) ) elif complete -p ${COMP_WORDS[1]} &>/dev/null; then cspec=$( complete -p ${COMP_WORDS[1]} ) if [ "${cspec%%-F }" != "${cspec}" ]; then # complete -F # # COMP_CWORD and COMP_WORDS() are not read-only, # so we can set them before handing off to regular # completion routine # set current token number to 1 less than now COMP_CWORD=$(( $COMP_CWORD - 1 )) # get function name func=${cspec#*-F } func=${func%% # get current command line minus initial command cline="${COMP_LINE#$1 }" # split current command line tokens into array COMP_WORDS=( $cline ) $func $cline elif [ "${cspec#*-[abcdefgjkvu]}" != "" ]; then # complete -[abcdefgjkvu] #func=$( echo $cspec | sed -e 's/^.*\(-[abcdefgjkvu]\).*$/\1/' ) func=$( echo $cspec | sed -e 's/^complete//' -e 's/[^ ]*$//' ) COMPREPLY=( $( eval compgen $func $cur ) ) elif [ "${cspec#*-A}" != "$cspec" ]; then # complete -A func=${cspec#*-A } func=${func%% *} COMPREPLY=( $( compgen -A $func $cur ) ) fi else COMPREPLY=( $( compgen -f $cur ) ) fi } complete -o default -F _my_command nohup exec eval \ trace truss strace sotruss gdb complete -o default -F _my_command command type which man nice # Local Variables: # mode:shell-script # sh-shell:bash # End: Monday, April 7. 2008JadClipse== BlissSaturday, April 5. 2008Comments (0) Trackbacks (0) | Top Exits (0) Laws of War
After reading about The Laws Of War [wikipedia.org], I kinda realized that the United States doesn't seem to have to follow these Laws.
Why do we constantly have to live under the umbrella of such obvious paradox? It slays me. I wonder if re-enacting The Sedition Act [wikipedia.org] won't be too far down the road. Oh, wait. Bush will be gone soon enough. Never mind. Sunday, March 30. 2008Madonna or Godzilla?
All I have to say is that she needs to crawl back into her henna-enscribed crypt.
She just looks so...pointy?
Thursday, March 6. 2008Memories or Dreams?I just had a moment where, after a very long and tiring day of work, I'm sitting on my couch, winding up my work day, listening to my favorite "Cool Down" music (which I haven't listened to in *forever*), Chill Out by The KLF, and I had this moment. I closed my eyes and pictured something. At first, I thought it was a video game I played a long, long time ago. One of those when 'graphic story' games first came out. Adventure-like, you know, like right after Zork, but before they got too Cheesy? But, I digress. What I pictured seemed so *real*. Like I remember being there? Or playing a game about this place? Or just remembering a place I always, at one point or other in my life, have always dreamt about. Odd, I know. But the memory (or game, or whatever) was just that, a story-type adventure, you are on roads, there are bushes, trees, dirt roads, a hill, and a grassy green meadow with a big tree in it. Fuck, man....maybe it is just an odd, weird concoction in my head. Back to closing my eyes and meditating on it. Saturday, February 16. 2008
Broadcasting what you're listening to... Posted by Stetson
at
00:21
Comments (0) Trackbacks (0) | Top Exits (0) Broadcasting what you're listening to...So, when you choose to have your status display what you're currently listening to, it's kind of like jamming to tunes with the windows open, doing your thing, and making sure those around you dig the music as much as you do. I am reminded of spring days as a kid, windows wide open, speakers pointing out of the windows, with old UK Punk Vinyl Playing (Short, Sharp Shock, to be particular...Chaos UK) and wanting other to hear the music that I thought was so good. Weird. I know. Monday, February 11. 2008Comment (1) Trackbacks (0) | Top Exits (0) My new favorite error message
This one is -excellent-
"CPU Starvation". I'm giddy. Tuesday, January 22. 2008Auto login XPstart > run > type in the box 'control userpasswords2' (without quotes) and click ok up comes the old school user accounts windows, put a check mark in the 'users must enter a name and password...' box at the top and click ok, restart windows to check you work. now no auto log-on, and you need to sign in. or if you want the auto log-on feature, you could correct the password to match the new password you added. same as above, but after putting a check mark in the 'must enter a name...' box, click apply (not ok), then remove the check mark and click apply again which will bring up the auto log-on dialog box, enter 'administrator' and type your new password twice, click 'ok' twice, reboot windows to check your work. now should boot straight to the desktop. Saturday, January 19. 2008PSP HackerySo, I just got my Pandora's Battery in the mail, downgraded to 1.50, then upgraded to 3.80-M33-2. Had some issues ("This game could not be started" errors), but then found the following blurb, which fixed it all: Much thanks to Larry at Afterdawn in posting this. Made my whole PSP hackery experience worth it. Now I have a boatload of games to play -- Here are a few things you can try... Make sure you have the ISO/CSO in the ms0:/ISO folder Make sure you have a legit ProDuo Memory Stick. Go to Game menu memory Stick and press Triangle. A side bar will pop out go to information and press X. If the MagicGate entry says supported then you have a legit Memory Stick. If it says unkown or unsupported it is a fake memory stick. -------------------------------------------------------------------- Make sure the title of the ISO/CSO is short. Example: Correct -- Fifa07.iso Not Correct -- FIFA-07-[PSP][EUR][www.torrent site.com].iso Go into recovery mode (Hold R shoulder button down while turning on PSP) Now go to configuration then to UMD MODE and keep pressing X till you see Sony NP9660 NO UMD. When it is set to the above setting go to BACK and press X. Now go to ADVANCED and press X. Go to ADVANCED CONFIGURATION and press X. Make sure all the settings here are disabled. Now EXIT out of recovery. Now try the ISO/CSO. -- Worked like a champ!! Sunday, January 13. 2008Addresses |
CategoriesQuicksearchCalendar
ArchivesSyndicate This Blog |
|||||||||||||||||||||||||||||||||||||||||||||||||
