Wiedza Collection of Custom BASH modifications and themes (Part 2)

Dyskusja w 'Research Tuts/Notes' rozpoczęta przez użytkownika Silas Mariusz, 1 Lipiec 2016.

Ładowanie...
Tagi:
  1. Silas Mariusz
    Offline

    Silas Mariusz SysOp Administrator

    Dołączył:
    5 Kwiecień 2008
    Wiadomości:
    6 045
    Miejscowość:
    Nowy Sącz
    Local Time:
    23:31
    Oceny:
    +1 341 / 30 / -5
    Followers:
    22
    QNAP:
    TVS-x71
    Ethernet:
    1 GbE
    TVS-x71 1 GbE
    Jak sprawdzić bez instalacji?
    Kod (Bash):
    1. curl -O http://static.askapache.com/askapache-bash-profile.txt && source askapache-bash-profile.txt
    Kod (Bash):
    1. #!/bin/bash
    2. #
    3. #  The recommeded way to keep updated is to save this file and source it from your .bash_profile or any script, like:
    4. #
    5. #      #!/bin/bash
    6. #      dos2unix -dv ~/sites/askapache.com/static/askapache-bash-profile.txt
    7. #      [[ -r ~/sites/askapache.com/static/askapache-bash-profile.txt ]] && . ~/sites/askapache.com/static/askapache-bash-profile.txt
    8. # curl -O http://static.askapache.com/askapache-bash-profile.txt && source askapache-bash-profile.txt
    9. #   or
    10. # curl -o ~/.bash_profile http://static.askapache.com/askapache-bash-profile.txt && bash -l
    11. #
    12. # To run automatically at login: In your ~/.bash_profile or similar login script do
    13. # [[ -f path-to-askapache-bash-profile.txt ]] && source path-to-askapache-bash-profile.txt
    14. #
    15. # To update to the newest version, by overwriting your current .bash_profile and executing a new environment, run
    16. #   aaup
    17. #
    18. #
    19. # Copyright (C) 2009 www.AskApache.com
    20. #
    21. # This program is free software: you can redistribute it and/or modify
    22. # it under the terms of the GNU General Public License as published by
    23. # the Free Software Foundation, either version 3 of the License, or
    24. # (at your option) any later version.
    25. #
    26. # This program is distributed in the hope that it will be useful,
    27. # but WITHOUT ANY WARRANTY; without even the implied warranty of
    28. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    29. # GNU General Public License for more details.
    30. #
    31. # You should have received a copy of the GNU General Public License
    32. # along with this program. If not, see <http://www.gnu.org/licenses/>.
    33. ############################################################################################################################################################
    34.  
    35.  
    36. # http://www.linuxfromscratch.org/lfs/view/6.4/chapter06/chapter06.html
    37.  
    38.  
    39.  
    40.  
    41.  
    42.  
    43.  
    44.  
    45.  
    46.  
    47. ##################################################################################################################################################################################
    48. # Advanced Shell (set)tings, (u)ser(limit)s, and (sh)ell(opt)ions
    49. ##################################################################################################################################################################################
    50. [[ ! -z "${BASH_ARGC}${BASH_ARGV}" ]] && ISINCLUDED=yes || ISINCLUDED=no
    51. [[ -z "$PS3" ]] && [[ "$ISINCLUDED" == "no" ]] && return # dont do anything for non-interactive shells
    52. [[ $- != *v* && $- != *x* ]] && set +C +f +H +v +x +n -b -h -i -m -B
    53. ulimit -S -c 0 # Don't want any coredumps
    54. shopt -s histappend histreedit histverify cmdhist extglob dotglob checkwinsize cdable_vars checkhash promptvars
    55. umask 0022
    56.  
    57. export N6=/dev/null
    58.  
    59.  
    60.  
    61.  
    62.  
    63. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    64. # ahave - Function to check if a program exists in path
    65. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    66. function ahave()
    67. { unset -v ahave; command command type $1 &>$N6 && ahave="yes" || return 1; }
    68.  
    69.  
    70. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    71. # ahelp - Function to check if help has been called
    72. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    73. function ahelp()
    74. { unset -v ahelp; [[ "$#" -gt "0" ]] && [[ "$1" == "-h" || "$1" == "--h" || "$1" == "--help" || "$1" == "-help" || "$1" == "-?" ]] && ahelp="yes"; }
    75.  
    76. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    77. # pm - Function
    78. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    79. function pm()
    80. {
    81.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    82.   local I=${1:-3};
    83.   echo -en "$R\n"; #tm 0;
    84.     case ${2:-1} in
    85.      0) echo -en "${CC[6]}-- $X$R";  ;;
    86.      1) echo -e  "${CC[2]}>>> $X$I$R"; ;;
    87.      2) echo -en  "${CC[4]} > $X$I$R"; ;;
    88.      3) echo -e  "${CC[4]} :: $X$I$R"; ;;
    89.     esac;
    90. }
    91.  
    92.  
    93. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    94. # aa_try_for_path - Function that automatically sets up your path
    95. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    96. function aa_try_for_path()
    97. {
    98.   local GP=$HOME/bin:$HOME/sbin
    99.   [[ -z "$PATH" || "$PATH" == "/bin:/usr/bin" ]] && export PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
    100.   local P=$PATH:$HOME/libexec
    101.   [[ "$EUID" -eq 0 ]] && P="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
    102.  
    103.   P=${P}:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
    104.   P=${P}:/bin:/etc:/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/bin/mh:/usr/libexec
    105.   P=${P}:/usr/X11R6/bin:/usr/libexec:/etc/X11:/etc/X11/xinit
    106.   [[ "$DREAMHOST" == "yes" ]] && (
    107.     P=${P}:/usr/local/dh/apache/template/bin:/usr/local/dh/apache2/template/bin
    108.     P=${P}:/usr/local/dh/apache2/template/build:/usr/local/dh/apache2/template/sbin
    109.     P=${P}:/usr/local/dh/bin:/usr/local/dh/java/bin:/usr/local/dh/java/jre/bin
    110.     P=${P}:/usr/lib/ruby/gems/1.8/bin:$HOME/.gem/ruby/1.8/bin
    111.   )
    112.   P=${P}:/usr/local/php5/bin
    113.   for p in ${P//:/ }; do [[ -d "${p}" && -x "${p}" ]] && GP=${GP}:$p; done;
    114.  
    115.   export PATH=$( echo -en "${GP//:/\\n}" | sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; h; P' | tr "\n" : ).;
    116. }
    117.  
    118.  
    119. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    120. # aa_safe_aliases - Function that sets up safe shell aliases with warnings for common commands, run if root usually
    121. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    122. function aa_safe_aliases()
    123. {
    124.   local MYMVR=$(command type -t mymvmymv)
    125.   [[ "$MYMVR" == "alias" ]] && pm "Turning Safe Aliases Off" && for fa in "chmod" "mkdir" "rm" "cp" "mv" "mymvmymv"; do unalias $fa; done && return;
    126.   pm "Turning Safe Aliases On"
    127.   alias chmod='command chmod -c'
    128.   alias mkdir='command mkdir -pv'
    129.   alias rm='command rm -v'
    130.   alias cp='command cp -v'
    131.   alias mv='command mv -v'
    132.   alias mymvmymv='echo'
    133. }
    134.  
    135.  
    136.  
    137.  
    138.  
    139.  
    140.  
    141.  
    142.  
    143.  
    144.  
    145.  
    146. #----------------------------
    147. # CUSTOM SETTING VARIABLES
    148. #----------------------------
    149. # uncomment this manually to use root
    150. [[ "$EUID" -eq 0 ]] && echo "If root you should edit this file $0 before letting it run"
    151.  
    152.  
    153. AAPN='AskApache Bash Profile Script'
    154. AAPV='6.8'
    155. AAPT='12/07/2009'
    156. AAPS=`echo "$0" | sed -e 's,.*/,,'`
    157.  
    158.  
    159. # Be Bourne compatible
    160. (unset GREP_OPTIONS GREP_COLOR) >/dev/null 2>&1 && unset GREP_OPTIONS GREP_COLOR
    161.  
    162.  
    163. : ${PATH_SEPARATOR=:}
    164. : ${SHELL=`command type -P bash 2>$N6`}
    165. [[ "$SHELL" == *jail* ]] && export SHELL=`command type -P bash 2>$N6` && exec bash -l
    166. : ${LANG=C} #en_US.UTF-8
    167. : ${LC_ALL=C}
    168. : ${LC_COLLATE=C}
    169. : ${LC_CTYPE=C}
    170. : ${LC_MESSAGES=C}
    171. : ${LC_MONETARY=C}
    172. : ${LC_NUMERIC=C}
    173. : ${LC_TIME=C}
    174.  
    175. : ${HOME=~}
    176. : ${USER=`whoami 2>$N6 || id -un 2>$N6 || logname 2>$N6`}
    177. : ${GROUPNAME=`id -gn 2>$N6`}
    178. : ${HOSTNAME=`(hostname || uname -n) 2>$N6 | sed 1q`}
    179. : ${TMPDIR=/tmp}
    180.  
    181.  
    182. # try and make sure the awesome ll function will work
    183. alias ll='ll';alias ls='ls';unalias ll;unalias ls;(unset ll) >/dev/null 2>&1 && unset ll
    184.  
    185. # setup DREAMHOST variable for DH-specific stuff
    186. DREAMHOST=no;test -f /usr/local/dh/cgi-system/php.cgi && export DREAMHOST=yes
    187.  
    188. # first set up path
    189. aa_try_for_path
    190.  
    191. [[ "$EUID" -eq 0 ]] && aa_safe_aliases;
    192.  
    193.  
    194. # setup SSHTTY to send to pty or logfile
    195. ahave tty && SSHTTY=`tty 2>$N6` || SSHTTY=''; export SSHTTY
    196.  
    197.  
    198.  
    199.  
    200.  
    201.  
    202.  
    203.  
    204.  
    205.  
    206.  
    207.  
    208.  
    209. [[ "$DREAMHOST" == "yes" ]] && (
    210. : ${CFLAGS=-Wall -g -O2}
    211.   # please use tzselect or tzconfig to set yours
    212.   export TZ=${TZ:-America/Indianapolis}
    213.   export LDFLAGS="-L${HOME}/lib -L/lib -L/usr/lib -L/usr/lib/libc5-compat -L/lib/libc5-compat -L/usr/i486-linuxlibc1/lib -L/usr/X11R6/lib"
    214.   export LD_LIBRARY_PATH=$HOME/lib
    215.   export CPPFLAGS="-I${HOME}/include -I/usr/i486-linuxlibc1/include"
    216.   [[ -r ${HOME}/etc/ld.so.conf && -r ${HOME}/etc/ld.so.cache ]] && alias ldconfig="ldconfig -v -f ${HOME}/etc/ld.so.conf -C ${HOME}/etc/ld.so.cache"
    217. )
    218.  
    219.  
    220. ##################################################################################################################################################################################
    221. # Create some config files for the user
    222. ##################################################################################################################################################################################
    223. ahave lesspipe && (
    224.   export PAGER=less
    225.   # Less Colors for Man Pages
    226.   export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking
    227.   export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
    228.   export LESS_TERMCAP_me=$'\E[0m'           # end mode
    229.   export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    230.   export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
    231.   export LESS_TERMCAP_ue=$'\E[0m'           # end underline
    232.   export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
    233.   export LESSCHARSET='latin1'
    234.   export LESSOPEN='|gzip -cdfq %s | `type -P lesspipe` %s 2>&-'
    235.   export LESS='-i -N -w  -z-4 -e -M -X -J -s -R -P%t?f%f :stdin .?pb%pb\%:?lbLine %lb:?bbByte %bb:-...'
    236.   #alias more='less'
    237. )
    238.  
    239.  
    240.  
    241. #----------------------------
    242. # MAIL, PROGRAMS, EDITOR
    243. #----------------------------
    244. ahave nano && export EDITOR="`type -P nano`" && export VISUAL=$EDITOR
    245. ahave lynx && export BROWSER="`type -P lynx`" && [[ -r $HOME/.lynx/lynx.cfg ]] && export LYNX_CFG=$HOME/.lynx/lynx.cfg;
    246. ahave locate && [[ -r $HOME/var/locatedb ]] && export LOCATE_PATH=$HOME/var/locatedb && export LOCATE_DB=$HOME/var/locatedb
    247.  
    248.  
    249.  
    250.  
    251.  
    252.  
    253.  
    254. COLORTERM=no; case ${TERM:-dummy} in linux*|con80*|con132*|console|xterm*|vt*|screen*|putty|Eterm|dtterm|ansi|rxvt|gnome*|*color*) COLORTERM=yes; ;; esac; export COLORTERM
    255.  
    256. export AAC=' --color=auto'
    257.  
    258. # used by functions below
    259. export RJ=0;
    260.  
    261.  
    262.  
    263.  
    264.  
    265.  
    266.  
    267.  
    268. ##################################################################################################################################################################################
    269. # Alias definitions.
    270. # You may want to put all your additions into a separate file like
    271. # ~/.bash_aliases, instead of adding them here directly.
    272. # See /usr/share/doc/bash-doc/examples in the bash-doc package.
    273. ##################################################################################################################################################################################
    274.  
    275. #---------------
    276. # ls aliases
    277. #---------------
    278. alias llh="ll -h"
    279. alias la="command ls -Al${AAC}"      # show hidden files
    280. alias lx="command ls -lAXB${AAC}"    # sort by extension
    281. alias lk="command ls -lASr${AAC}"    # sort by size
    282. alias lc="command ls -lAcr${AAC}"    # sort by change time
    283. alias lu="command ls -lAur${AAC}"    # sort by access time
    284. alias lr="command ls -lAR${AAC}"     # recursive ls
    285. alias lt="command ls -lAtr${AAC}"    # sort by date
    286. alias lll="stat -c %a\ %N\ %G\ %U \${PWD}/*|sort"
    287.  
    288.  
    289.  
    290. #---------------
    291. # func aliases
    292. #---------------
    293. [[ "$UNAME" != "Linux" ]] && ahave gsed && alias sed='gsed'
    294. alias subash="sudo sh -c 'export HOME=/root; cd /root; exec bash -l'"
    295. ahave updatedb && alias updatedb='( ( updatedb 2>/dev/null ) & )'
    296. alias chmod='command chmod -c'
    297. alias diff='diff -up'
    298. ahave colordiff && alias diff='colordiff -up'
    299. alias env='command env | sort'
    300. alias who='command who -ar -pld'
    301. ahave which || alias which='command type -path'
    302. ahave tree || alias tree='command ls -FR'
    303. ahave tree && alias tree='command tree -Csuflapi'
    304. ahave vim && [[ -r $HOME/.vimrc ]] && alias less='vless'
    305.  
    306. alias top='top -c'  #command top -d 1 -u $USER
    307. ahave vim && alias vim='command vim --noplugin'
    308. alias du='command du -kh'
    309. alias df='command df -kTh'
    310. alias path='echo -e ${PATH//:/\\n}'
    311.  
    312. ahave php && alias php='php -d report_memleaks=1 -d report_zend_debug=1 -d log_errors=0 -d ignore_repeated_errors=0 -d ignore_repeated_source=0 -d error_reporting=30719 -d display_startup_errors=1 -d display_errors=1'
    313. alias mann='command man -H'
    314.  
    315. alias pp='command ps -HAcl -F S -A f'
    316. alias p='command ps -HAcl -F S -A f|uniq -w3'
    317. alias ps2='command ps -H'
    318. alias ps1='command ps -lFA'
    319.  
    320. alias resetw="echo $'\33[H\33[2J'"
    321. alias df1='command df -iTa'
    322. alias n="${EDITOR}"3
    323. ahave ionice && ahave nice && alias inice='ionice -c3 -n7 nice'
    324. alias dsiz='du -sk * | sort -n --'
    325. alias h='history'
    326. alias j='jobs -l'
    327. alias wtf='watch -n 1 w -hs'
    328. alias cpr='command cp -rpv'
    329. ahave ccze && alias lessc='ccze -A |`type -P less` -R'
    330.  
    331.  
    332.  
    333.  
    334.  
    335.  
    336.  
    337.  
    338.  
    339.  
    340.  
    341.  
    342.  
    343.  
    344.  
    345.  
    346.  
    347.  
    348. ##################################################################################################################################################################################
    349. ###
    350. ### FUNCTIONS
    351. ###
    352. ###########################################################################==-==-==-==-==-==-==-==-==-==-==#
    353. #declare -a DNST=( A NS MD MF CNAME SOA MB MG MR NULL WKS PTR HINFO MINFO MX TXT RP AFSDB X25 ISDN RT NSAP NSAP_PTR SIG KEY PX GPOS AAAA LOC SRV AXFR MAILB MAILA NAPTR ANY );
    354. #sed '/./=' ~/.bash_profile | sed '/./N; s/\n/ /'
    355. #sed = ~/.bash_profile |sed 'N; s/^/     /; s/ *\(.\{6,\}\)\n/\1  /'
    356. #find . -type f -iname '*htaccess*' -print0 | xargs -0 grep -sn -i "THE_REQUEST" | sed "s/THE_REQUEST/${SMSO}\0$RMSO}/gI"
    357. #ahave tput && export SMSO=$(tput smso &>$N6);export RMSO=$(tput rmso &>$N6);
    358. #            Color       #define       Value       RGB
    359. #             black     COLOR_BLACK       0     0, 0, 0
    360. #             red       COLOR_RED         1     max,0,0
    361. #             green     COLOR_GREEN       2     0,max,0
    362. #             yellow    COLOR_YELLOW      3     max,max,0
    363. #             blue      COLOR_BLUE        4     0,0,max
    364. #             magenta   COLOR_MAGENTA     5     max,0,max
    365. #             cyan      COLOR_CYAN        6     0,max,max
    366.  
    367.  
    368. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    369. # aaup - Function
    370. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    371. function aaup()
    372. { curl3 -0 -o ~/.bash_profile http://static.askapache.com/askapache-bash-profile.txt && dos2unix -dv ~/.bash_profile && ( rm -rf ~/{.bash_logout,.toprc,.lynxrc,.ncftp} || echo; echo; ) && aa_savehist && exec bash -l; }
    373.  
    374. #for DM in `cat /opt/domains.txt`; do dig @8.8.8.8 +nocl +nostats +nocomment +recurse +multiline +besteffort +additional +noqr -t ANY $DM; done
    375.  
    376. function oddeven()
    377. { [[ $# -eq 0 ]] && exec sed -e "1~2 s/^/`tput smso;`/; s/$/`tput setaf $(( $RANDOM % 7 + 1 ));tput rmso`/" || sed -e "1~2 s/^/`tput smso;`/; s/$/`tput setaf $(( $RANDOM % 7 + 1 ));tput rmso`/" "$@"; }
    378.  
    379.  
    380. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    381. # du1 - Function
    382. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    383. du1()
    384. { find . -mindepth 1 -maxdepth 1 -type d -print0 | xargs -P5 -0 -iFF sh -c '( echo `du -sb "FF"` `du -sh "FF"` | sed -e "s%^\([0-9]*\)\ \([^ ]*\)\ \([^ ]*\).*$%\1 \3 \2%g" )' | sort -n | cut -d ' ' -f2,3 | command grep --color=always '^[0-9\.]*[GMK]'; }
    385.  
    386.  
    387. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    388. # du2 - Function
    389. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    390. du2()
    391. { find . -maxdepth 1 -mindepth 1 -type f | tr ' ' "\n" | xargs -P20 -iFF sh -c 'sed -e "s%^\([0-9]*\)\ \([^ ]*\)\ \([^ ]*\).*$%\1 \3 \2%g" <<< $( echo "`( du -sb FF && du -sh FF ) | tr --squeeze \t\n `" )' | sort -n | tail -n 20 | awk '{print $2,$3}' | tr ' ' "\t";}
    392.  
    393.  
    394. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    395. # vless - Function
    396. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    397. function vless()
    398. {
    399.   [[ $# -eq 0 ]] && command vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
    400.   [[ $# -eq 0 ]] || command vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
    401. }
    402.  
    403.  
    404. #0111 ---x--x--x
    405. #0110 ---x--x---
    406. #0100 ---x------
    407. #0000 ----------
    408. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    409. # aa_find_exec - Function that finds executable files on directory or current directory
    410. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    411. function aa_find_exec()
    412. { find -L ${1:-.} -type f -perm +0100 2>$N6 | xargs file | sed -e 's%^\([^:]*\):\([^,]*\).*$%\1:\2%g'; }
    413.  
    414.  
    415.  
    416. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    417. # curl1 - Function
    418. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    419. function curl1()
    420. { command curl -A 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5' -e -L -H 'Accept: */*' "$@"; }
    421.  
    422. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    423. # curl2 - Function
    424. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    425. function curl2()
    426. {
    427.     (
    428.     echo "\n\nurl_effective:\t\t%{url_effective}\ncontent_type:\t\t%{content_type}"
    429.     echo "http_code:\t\t%{http_code}\t\tThe numerical code that was found in the last retrieved HTTPS page"
    430.     echo "http_connect:\t\t%{http_connect}\t\tThe numerical code that was found in the last response from a proxy to a curl CONNECT request"
    431.     echo "time_total:\t\t%{time_total}\t\tThe time will be displayed with millisecond resolution"
    432.     echo "time_namelookup:\t%{time_namelookup}\t\tThe time, in seconds, it took from the start until the name resolving was completed"
    433.     echo "time_connect:\t\t%{time_connect}\t\tThe time, in seconds, it took from the start until the connect to the remote host or proxy was completed"
    434.     echo "time_pretransfer:\t%{time_pretransfer}\t\tThe time, in seconds, it took from the start until the file transfer is just about to begin. This includes all pre-transfer commands and negotiations to the particular protocols involved"
    435.     echo "time_redirect:\t\t%{time_redirect}\t\tThe time, in seconds, it took for all redirection steps. time_redirect shows the complete execution time for multiple redirections"
    436.     echo "time_starttransfer:\t%{time_starttransfer}\t\tThe time, in seconds, it took from the start until the first byte is just about to be transferred. This includes time_pretransfer and also the time the server needs to calculate the result"
    437.     echo "size_download:\t\t%{size_download}\t\tThe total amount of bytes that were downloaded"
    438.     echo "size_upload:\t\t%{size_upload}\t\tThe total amount of bytes that were uploaded"
    439.     echo "size_header:\t\t%{size_header}\t\tThe total amount of bytes of the downloaded headers"
    440.     echo "size_request:\t\t%{size_request}\t\tThe total amount of bytes that were sent in the HTTP request"
    441.     echo "speed_download:\t\t%{speed_download}\tThe average download speed that curl measured for the complete download"
    442.     echo "speed_upload:\t\t%{speed_upload}\t\tThe average upload speed that curl measured for the complete upload"
    443.     echo "num_connects:\t\t%{num_connects}\t\tNumber of new connects made in the recent transfer"
    444.     ) |curl "$@" -w '@-'
    445. }
    446.  
    447. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    448. # curl3 - Function
    449. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    450. function curl3()
    451. {
    452.   ahave curl && ( curl -A 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5' -e -L -b ~/.curl_cookie.$$ --cookie-jar ~/.curl_cookie.$$ -H 'Accept: */*' "$@"; )
    453.   ahave curl || ( command wget `sed -e 's/^-o /-O /g' -e 's/ -o / -O /g' -e 's/^--output /--output-file /g' -e 's/ --output / --output-file /g' <<< "$@"`; )
    454. }
    455.  
    456.  
    457.  
    458.  
    459.  
    460.  
    461. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    462. # grepp - Function that searches current directory for match
    463. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    464. function grepp()
    465. {
    466.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    467.   export GREP_COLOR=`echo -en "\e[1;3$(( $RANDOM % 7 + 1 ))"`
    468.   command grep -i --color=always "$@" -r .
    469. }
    470.  
    471.  
    472. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    473. # grepc - Function shortcut for grep with color
    474. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    475. function grepc()
    476. {
    477.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    478.   export GREP_COLOR=`echo -en "\e[1;3$(( $RANDOM % 7 + 1 ))"`
    479.   command grep --color=always "$@"
    480. }
    481.  
    482.  
    483. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    484. # nob - Function remove blank lines from output
    485. # cat file | nob
    486. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    487. function nob()
    488. { [[ $# -eq 0 ]] && exec grep -v ^$|sed -e '/[^ \t]\{1,\}/!d'; }
    489.  
    490. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    491. # nobl - Function remove leading whitespace
    492. # cat file | nobl
    493. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    494. function nobl()
    495. { [[ $# -eq 0 ]] && exec sed -e 's/^[ \t]*//'; }
    496.  
    497. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    498. # nobt - Function remove trailing whitespace
    499. # cat file | nobt
    500. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    501. function nobt()
    502. { [[ $# -eq 0 ]] && exec sed -e 's/[ \t]*$//'; }
    503.  
    504. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    505. # nobb - Function to remove both leading and trailing whitespace
    506. # cat file | nobb
    507. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    508. function nobb()
    509. { [[ $# -eq 0 ]] && exec sed -e 's/^[ \t]*//;s/[ \t]*$//' -e '/[^ \t]\{1,\}/!d'; }
    510.  
    511.  
    512.  
    513. function aa_hexdump()
    514. {
    515.   local EX
    516.   [[ $# -eq 1 ]] && EX=exec
    517.   [[ -f "$1" ]] && EX='cat "$1"'
    518.    
    519.   case ${2:-1} in
    520.     0) $EX hexdump -C  ;;
    521.     1) $EX hexdump -Cc  ;;
    522.     2) $EX hexdump -Cx  ;;
    523.     3) $EX hexdump -C -e '""  10/1 "'\''%_c'\''\t" "\n"' -e '"" 10/1 "0x%02x\t" "\n\n"'  ;;
    524.     4) $EX hexdump -e '""  10/1 "'\''%_c'\''\t" "\n"'  ;;
    525.     5) $EX hexdump -e '""  10/1 "'\''%_c'\''\t" "\n"' -e '"" 10/1 "0x%04x\t" "\n\n"'  ;;
    526.     6) $EX hexdump -e '90/1 "%_p" "\n"'  ;;
    527.     7) $EX hexdump -e '1/1 "%04_u" "%4_p" "   " 1/1 "%04x" "  " 1/1 "%04_c"  "\n"'  ;;
    528.     8) $EX hexdump -v -e '"x" 1/1 "%02X" " "'  ;;
    529.     9) $EX od -Ax -tx1 -v  ;;
    530.    10) $EX od -t o1z -w1 -Ao -v  ;;
    531.    11) $EX xxd -  ;;
    532.    12) $EX xxd -c1  ;;
    533.    13) $EX xxd -h  ;;
    534.    14) $EX  ;;
    535.   esac;
    536. #o=1;i=1;while [[ "$i" -lt 256 ]];do pp="00$o";echo -en "\\0${pp: -3}";((i++,o++));((i % 8==0))&&((o+=2));((i % 64==0))&&((o+=20));done | od -t o1z -w2 -Ao -v
    537. }
    538.  
    539.  
    540.  
    541.  
    542.  
    543.  
    544.  
    545.  
    546.  
    547.  
    548. #nice mysqldump --opt --add-drop-table -u$_U -p$_P -h$_H $_N | (cd $BD; ionice -c3 -n7 nice gpg -evr connected -o $FS - &>$N6 ) & &>$N6
    549. function nicest()
    550. {
    551.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    552.   local ncmd icmd='';
    553.   ahave ionice && icmd='ionice -c3 -n7'
    554.   ahave nice && ncmd='nice -n 19'
    555.   $icmd $ncmd "$@"
    556.  
    557.   ahave ionice
    558. }
    559.  
    560.  
    561.  
    562.  
    563.  
    564.  
    565. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    566. # diffdirs  - Function
    567. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    568. function diffdirs ()
    569. {
    570.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    571.   [[ "$#" -lt "2" ]] && echo "Usage: $FUNCNAME dir1 dir2" >&2 && return 2
    572.   ahave colordiff && colordiff -urp -w $1 $2;
    573. }
    574.  
    575.  
    576.  
    577.  
    578.  
    579. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    580. # wcdir - Function that outputs every dir in the currect directory, and how many files each contains
    581. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    582. function wcdir()
    583. {  
    584.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    585.   find ${1:-.} -mindepth 1 -type d -print0 | xargs -0 -iFF sh -c 'echo `find "FF"/ -type f 2>/dev/null|wc -l;echo "FF"`' | sort -n | sed -e 's/^\([0-9]*\) \(.*\)$/ \1\t\2/g'
    586. }
    587.  
    588.  
    589.  
    590.  
    591.  
    592. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    593. # locate1 - Function
    594. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    595. function locate1()
    596. {
    597.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    598.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    599.   command locate "$@" | xargs -iFF stat -c %a\ %A\ \ A\ %x\ \ M\ %y\ \ C\ %z\ \ %N FF ;
    600. }
    601.  
    602.  
    603.  
    604.  
    605. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    606. # figtest - Function to show all the variations figlet can do to a word
    607. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    608. function figtest()
    609. {
    610.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME word" && return 2
    611.   for a in /usr/share/figlet/*.flf; do r=`basename ${a%%.flf}`; echo -e "${r}"; figlet -t -f "$r" "$1"; done;
    612. }
    613.  
    614.  
    615. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    616. # asetup_colors - Function to setup dircolors, PS1, and LS_COLORS
    617. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    618. function asetup_colors()
    619. {
    620.   create_colors
    621.   ahave dircolors && eval "`dircolors -b`"
    622.   export GREP_COLOR=`echo -en "\e[1;3$(( $RANDOM % 7 + 1 ))"`
    623.   echo $R;
    624.  
    625.   [[ -r $HOME/.dircolors ]] && eval "`dircolors $HOME/.dircolors`" || dircolors --print-database > $HOME/.dircolors
    626.   local L="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31"
    627.   L="${L}:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31"
    628.   L="${L}:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;35"
    629.   L="${L}:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35"
    630.   L="${L}:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.cpio=01;31"
    631.   export LS_COLORS="${L}:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.htaccess=01;31:*.htpasswd=01;31:*.htpasswda1=01;31:*config.php=01;31:*wp-config.php=01;31:";
    632. }
    633.  
    634.  
    635.  
    636. declare -a AAPS
    637. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    638. # aa_prompt - Function that creates prompt
    639. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    640. function aa_prompt()
    641. {
    642.  
    643.   N=$(( $RANDOM % 7 + 1 ));C2=`echo -en "\E[0m\E[3"${N}m`;C1=`echo -en "\E[0m\E[1;3"${N}m`;C3=`echo -en "\E[0m\E[1;37m"`
    644.  
    645.   AAPS[0]='\n\e[1;30m[\e[0;37m${SHLVL}\e[1;30m:\e[0;37m\j:\!\e[1;30m][${C1}\u${C2}@${C1}\h\e[1;30m:\e[1;37m${SSHTTY/\/dev\/}\e[1;30m]\e[0;37m[\e[0;37m\w\e[0;37m]\e[1;30m\n\[${R}\]\$ '
    646.   AAPS[1]='\n\e[1;30m[\e[0;37m${SHLVL}\e[1;30m:\e[0;37m\j:\!\e[1;30m][${C1}\u${C2}@${C1}\h\e[1;30m:\e[1;37m${SSHTTY/\/dev\/}\e[1;30m]\e[0;37m[\e[0;37m\w\e[0;37m]\e[1;30m\n\[${R}\]\$ '
    647.   AAPS[2]='\n\e[1;30m[\e[0;37m${SHLVL}\e[1;30m:\e[0;37m\j:\!\e[1;30m][\e[0;35m\u\e[1;35m@\e[0;35m\h\e[1;30m:\e[1;37m${SSHTTY/\/dev\/}\e[1;30m]\e[0;37m[\e[0;37m\w\e[0;37m]\e[1;30m\n\[${R}\]\$ '
    648.   : ${PLVL=0};
    649.   [[ "${#AAPS[@]}" -lt "$PLVL" || "${#AAPS[@]}" -eq "$PLVL" ]] && PLVL=0
    650.   export PS1=${AAPS[$PLVL]} && (( PLVL++ )) && export PLVL
    651.   echo "PLVL=$PLVL"
    652. }
    653.  
    654.  
    655.  
    656. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    657. # create_colors - Function that creates the colors in the CC array
    658. #
    659. # 30 - Black, 31 - Red, 32 - Green, 33 - Yellow, 34 - Blue, 35 - Magenta, 36 - Blue/Green, 37 - White, 30/42 - Black on Green '30\;42'
    660. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    661. function create_colors()
    662. {
    663.   for i in `seq 0 7`;do ii=$(($i+7));CC[$i]="\033[1;3${i}m";CC[$ii]="\033[0;3${i}m";done;CC[15]="\033[30;42m"
    664.   export R=`tput sgr0`
    665.   export X=$'\033[1;37m'
    666.   export CC;
    667. }
    668.  
    669.  
    670.  
    671.  
    672.  
    673.  
    674. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    675. # test_colors - Function to output all colors stored in the CC array
    676. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    677. function test_colors(){ echo -e "$R"; ahave tput && tput sgr0; for ((i=0; i<=${#CC[@]} - 1; i++)); do echo -e "${CC[$i]}[$i]\n$R"; done; }
    678.  
    679.  
    680.  
    681.  
    682.  
    683.  
    684. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    685. # aa_show_all_colors - Function to show all available colors, maybe your term supports alot
    686. # http://frexx.de/xterm-256-notes/
    687. # http://frexx.de/xterm-256-notes/data/colortable16.sh
    688. # http://www.vim.org/scripts/script.php?script_id=1349
    689. # http://www.linuxjournal.com/article/1124
    690. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    691. function aa_show_all_colors()
    692. {
    693.   for c in `seq 0 255`;do t=5;[[ $c -lt 108 ]]&&t=0;for i in `seq $t 5`;do echo -e "\e[0;48;$i;${c}m|| $i:$c `seq -s+0 $(($COLUMNS/2))|tr -d '[0-9]'`\e[0m";done;done;
    694.   tput init
    695.   tput reset
    696.   echo
    697.   echo Table for 16-color terminal escape sequences.
    698.   echo Replace ESC with \\033 in bash.
    699.   echo
    700.   echo "Background | Foreground colors"
    701.   echo "---------------------------------------------------------------------"
    702.   for((bg=40;bg<=47;bg++)); do for((bold=0;bold<=1;bold++)) do echo -en "\033[0m"" E[${bg}m   | "; for((fg=30;fg<=37;fg++)); do [[ $bold == "0" ]] && echo -en "\033[${bg}m\033[${fg}m [${fg}m  " || echo -en "\033[${bg}m\033[1;${fg}m [1;${fg}m"; done; echo -e "\033[0m"; done; done
    703.    
    704.   echo
    705.   echo
    706. }
    707.  
    708.  
    709.  
    710.  
    711.  
    712.  
    713.  
    714. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    715. # clean_exit - Function to run on clean exit
    716. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    717. function clean_exit() { lin 0;lin 1;lin 2 "COMPLETED SUCCESSFULLY";lin 1;lin 3; }
    718.  
    719.  
    720.  
    721.  
    722.  
    723.  
    724. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    725. # dirty_exit - Function to run on bad exit
    726. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    727. function dirty_exit() { echo "See ya..";sleep 1;exit; }
    728.  
    729.  
    730.  
    731.  
    732.  
    733.  
    734. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    735. # get_latest_revision - Function to get latest revision of svn repository
    736. # 1 - URL of repository - Defaults to http://svn.automattic.com/wordpress/trunk
    737. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    738. function get_latest_revision()
    739. {
    740.   local URL=${1:-http://svn.automattic.com/wordpress/trunk}
    741.   svn info $URL | grep ^Rev|sed -e 's/Revision: \([0-9]*\)/\1/g';
    742. }
    743.  
    744.  
    745.  
    746.  
    747.  
    748.  
    749. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    750. # get_crypt_user - Function to get encryption user to use for encryption/decryption
    751. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    752. function get_crypt_user()
    753. {
    754.   ahave gpg || return;
    755.   local U=`gpg --list-keys|sed -e '/^uid /!d' -e 's/^uid[ ]*\(.*\)/\1/g'` || unknown; [[ $# -ne 0 ]] && U=${U//\<*}; echo -n $U;
    756. }
    757.  
    758.  
    759.  
    760.  
    761.  
    762.  
    763. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    764. # aa_random_under - Function echos a random number between 1 and $1
    765. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    766. function aa_random_under()
    767. {
    768.   echo $(( $RANDOM % ${1:-$RANDOM} + 1 ));
    769. }
    770.  
    771.  
    772.  
    773.  
    774.  
    775.  
    776. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    777. # uniqf - Function
    778. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    779. function uniqf()
    780. {
    781.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    782.   awk '!($0 in a) {a[$0];print}' "$1";
    783. }
    784.  
    785.  
    786.  
    787.  
    788.  
    789.  
    790. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    791. # sleeper - Function that sleeps and outputs dots until process id is done running
    792. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    793. function sleeper()
    794. {
    795.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME <process id>" >&2 && return 2
    796.   echo -en "\n${2:-.}"; while `command ps -p $1 &>$N6`; do echo -n "${2:-.}"; sleep ${3:-1}; done; echo;
    797. }
    798.  
    799.  
    800.  
    801.  
    802.  
    803.  
    804. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    805. # aa_isalpha  - Function Tests whether *entire string* is alphabetic.
    806. # FROM:  http://tldp.org/LDP/abs/html/
    807. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    808. function aa_isalpha ()
    809. {
    810.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME str" >&2 && return 2
    811.   case $1 in *[!a-zA-Z]*|"") return -1; ;; *) return 0; ;; esac;
    812. }
    813.  
    814.  
    815.  
    816.  
    817.  
    818.  
    819. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    820. # aa_isdigit  - Function tests whether *entire string* is numerical integer variable.
    821. # FROM:  http://tldp.org/LDP/abs/html/
    822. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    823. function aa_isdigit ()
    824. {
    825.   case $1 in *[!0-9]*|"") return -1; ;; *) return 0; ;; esac;
    826. }
    827.  
    828.  
    829.  
    830.  
    831.  
    832.  
    833. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    834. # find_symlinks - Function to find symlinks in a given directory or current directory
    835. # FROM http://tldp.org/LDP/abs/html/loops1.html#SYMLINKS
    836. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    837. function find_symlinks()
    838. {
    839.   # Null IFS means no word breaks
    840.   local O=$IFS;IFS='';for file in "$( find ${1:-`pwd`} -type l )"; do echo "$file"; done | sort;
    841. }
    842.  
    843.  
    844.  
    845.  
    846.  
    847.  
    848. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    849. # arepeat - Function that repeats evaluated expressions x number of times
    850. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    851. function arepeat()
    852. {
    853.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    854.   local i max=$1; shift; for ((i=1; i <= max ; i++)); do eval "$@"; done;
    855. }
    856.  
    857.  
    858.  
    859.  
    860.  
    861.  
    862. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    863. # cuttail - Function
    864. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    865. function cuttail()
    866. {
    867.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    868.   sed -n -e :a -e "1,${2:-10}!{P;N;D;};N;ba" $1;
    869. }
    870.  
    871.  
    872.  
    873.  
    874.  
    875.  
    876.  
    877.  
    878. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    879. # aa_ips - Function that uses the ip command to show all inet ips
    880. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    881. function aa_ips()
    882. {
    883.   ahave ip && ip -o -f inet addr 2>&1 | sed -e 's/.*inet \([^/]*\).*/\1/g' | sort -u
    884.   ahave ss && ss -n 2>&1 | sed -e 's/[^:]*\ \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)\:.*/\1/' -e '/^\([^0-9]\|127\.\|10\.\|172\.\)/d' | sort -u
    885.   [[ -f "$HOME/.cpanel/datastore/_sbin_ifconfig_-a" ]] && sed -e '/inet/!d' -e 's/.*addr:\([0-9\.]*\).*/\1/g' "$HOME/.cpanel/datastore/_sbin_ifconfig_-a" | sort -u
    886.   sed -e 's/^\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/' -e '/^\([^0-9]\|127\.\|10\.\|172\.\|$\)/d' /etc/hosts |sort -u
    887. }
    888.  
    889.  
    890.  
    891.  
    892.  
    893.  
    894. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    895. # print_ascii_chart - Function that prints the ascii table
    896. # print_ascii_chart | cat -ts
    897. # print_ascii_chart | hexdump
    898. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    899. function print_ascii_chart()
    900. {
    901.   #local p pp o i=1; o=1;
    902.   #while [[ $i -lt 256 ]];do p="    $i";echo -n "${p: -5}  ";pp="00$o";echo -e "\\0${pp: -3}";((i++,o++));((i % 8==0))&&((o+=2));((i % 64==0))&&((o+=20));done
    903.   #for i in `seq 0 256`; do echo -en "\n$i: ";printf \\$(($i/64*100+$i%64/8*10+$i%8)); done
    904.   for i in `seq 0 256`; do echo -e "\\0$(( $i/64*100 + $i%64/8*10 + $i%8 ))"; done
    905. }
    906.  
    907. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    908. # aa_functions - Function
    909. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    910. function aa_functions()
    911. {
    912.   local F=`for i in $(declare -F | sed -e 's/declare -f //g'); do echo $i; done| sed -e :a -e 's/^.\{1,25\}$/& /;ta'|tr ' ' '\032'`
    913.   i=1; for f in ${F}; do echo -en "$f"; (( $i % 4 ==0 )) && echo -en "\n";  i=$(( $i + 1)); done | tr '\032' " "
    914. }
    915.  
    916. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    917. # aa_aliases - Function
    918. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    919. function aa_aliases()
    920. {
    921.   local F=`for i in $(alias|awk -F= '{print $1}');do echo $i;done|sed -e :a -e 's/^.\{1,15\}$/& /;ta'|tr ' ' '\032'`; i=1;
    922.   for f in ${F}; do echo -en "$f"; (( $i % 4 ==0 )) && echo -en "\n"; i=$(( $i + 1)); done | tr '\032' " ";
    923. }
    924.  
    925.  
    926.  
    927.  
    928.  
    929.  
    930.  
    931.  
    932. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    933. # aa_mkdir - Function that makes directories
    934. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    935. function aa_mkdir()
    936. {
    937.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    938.  
    939.   local e=0; for f in ${1+"$@"};do set fnord `echo ":$f"|sed -e 's/^:\//%/' -e 's/^://' -e 's/\// /g' -e 's/^%/\//'`;shift;p=;for d in ${1+"$@"};do p="$p$d";
    940.   case "$p" in -*)p=./$p; ;; ?:)p="$p/";continue ;; esac; [[ ! -d "$p" ]] && mkdir -v "$p"||e=$?;p="$p/";done;done;return $e;
    941. }
    942.  
    943.  
    944.  
    945.  
    946.  
    947.  
    948. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    949. # set_window_title - Function
    950. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    951. function set_window_title()
    952. {
    953.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    954.   echo -n -e "\033]0;$*\007";
    955. }
    956.  
    957.  
    958.  
    959.  
    960.  
    961.  
    962.  
    963. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    964. # pd - Function Prints message notifying user of end of the current task
    965. # 1 - Text - Defaults to DONE
    966. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    967. function pd() { echo -e  "\n ${CC[15]} ${1:-DONE} $R\n\n"; }
    968.  
    969.  
    970.  
    971.  
    972.  
    973.  
    974. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    975. # cont - Function
    976. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    977. function cont() { local ans; echo -en "\n\n ${CC[15]}[ ${1:-Press any key to continue} ]$R\n\n"; read -n 1 ans; aa_beep 1; }
    978.  
    979.  
    980.  
    981.  
    982.  
    983.  
    984. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    985. # do_sleep  - Function Sleeps until global process PID $RJ does not exist
    986. #
    987. # 1
    988. # 2 - Length of pause between output
    989. # 3 - Character to show progress - Defaults to .
    990. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    991. function do_sleep () { local E D; echo -en "${CC[6]}${3:-.}"; while `command ps -p $RJ &>$N6`; do sleep ${2:-3}; echo -en "${3:-.}"; done; echo -e "${CC[0]}" && sleep 1 && pd; }
    992.  
    993. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    994. # aa_sleep  - Function Sleeps until global process PID $RJ does not exist
    995. #
    996. # 1
    997. # 2 - Length of pause between output
    998. # 3 - Character to show progress - Defaults to .
    999. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1000. function aa_sleep () { echo -en "${CC[6]}${3:-.}"; while `command ps -p $1 &>/dev/null`; do echo -n "${3:-.}"; sleep ${3:-1}; done; echo -e "$R$X" && sleep 1 && pd; }
    1001.  
    1002.  
    1003. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1004. # aa_num_procs - Function
    1005. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1006. function aa_num_procs()
    1007. { echo -n `command ps aux|wc -l`; }
    1008.  
    1009. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1010. # aa_free_mem - Function
    1011. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1012. function aa_free_mem()
    1013. { echo -n "`[[ -r /proc/meminfo ]] && sed '/^MemFree: */!d; s///;q' /proc/meminfo`"; }
    1014.  
    1015. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1016. # aa_current_users - Function
    1017. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1018. function aa_current_users()
    1019. { echo -n "`command who -q |sed '/^# users=\([0-9]*\).*/!d; s//\1/;q'`"; }
    1020.  
    1021. # The average number of jobs running, followed by the number of runnable processes and the total number of processes (if your kernel is recent enough), followed by the PID of the last process run (idem).
    1022. #echo -n "`[[ -r /proc/loadavg ]] && sed -e 's/^\(.*\)$/[ \1 ]/' /proc/loadavg`"
    1023. #echo -n "[ `command uptime | sed -e 's/.*: \([^,]*\).*/\1/'` / `aa_num_procs` ]"
    1024. # uptime1
    1025. function uptime1()
    1026. { command uptime |sed '/.*,  \([0-9]*\) users,  load average: \(.*\)/!d; s//[ \2, \1 users ]/;q'; }
    1027.  
    1028.  
    1029. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1030. # ex - Function
    1031. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1032. function ex ()
    1033. {
    1034.   [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    1035.   until [[ -z "$1" ]]; do
    1036.     if [[ -f "$1" ]] ; then
    1037.       pm "Extracting $1 ..."
    1038.       case $1 in
    1039.         *.tar.bz2) tar xjf $1 ;;
    1040.         *.tar.gz)  tar xzf $1 ;;
    1041.         *.tar)     tar xf $1 ;;
    1042.         *.tbz2)    tar xjf $1 ;;
    1043.         *.tgz)     tar xzf $1 ;;
    1044.         *.bz2)     bunzip2 $1 ;;
    1045.         *.rar)     unrar x $1 ;;
    1046.         *.gz)      gunzip $1 ;;
    1047.         *.zip)     unzip $1 ;;
    1048.         *.Z)       uncompress $1 ;;
    1049.         *.7z)      7z x $1 ;;
    1050.         *)        pm "Don't know how to extract '$1'" ;;
    1051.       esac;
    1052.     else
    1053.       pm "'$1' is not a valid file"
    1054.     fi
    1055.     shift
    1056.   done
    1057.  
    1058. }
    1059.  
    1060.  
    1061.  
    1062.  
    1063.  
    1064.  
    1065. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1066. # yes_no - Function
    1067. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1068. function yes_no()
    1069. {
    1070.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME Question" >&2 && return 2
    1071.   local a YN=65; echo -en "${1:-Answer} [Y/n] ?"; read -n 1 a; case $a in [yY]) YN=0; ;; esac; return $YN;
    1072. }
    1073. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1074. # yn - Function
    1075. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1076. function yn()
    1077. {
    1078.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    1079.   local a YN=65; echo -en "\n ${CC[6]}@@ ${1:-Q} $R$X[y/N] ?$R"; read -n 1 a; echo; case $a in [yY]) echo -n "Y"; YN=0; ;; *) echo -n "N"; ;; esac; return $YN;
    1080. }
    1081.  
    1082.  
    1083.  
    1084.  
    1085.  
    1086.  
    1087. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1088. # lin - Function that prints various lines
    1089. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1090. function lin()
    1091. {
    1092.   local L2 L1='__________________________________________________________________________'
    1093.   case ${1:-1} in
    1094.     0) echo -e "\n ${CC[0]}${L1}"; ;;
    1095.     1) L2=`echo '                                                                          '`;echo -e "${CC[0]}|${CC[15]}${L2}${CC[0]}|"; ;;
    1096.     2) echo -en "${CC[0]}|${CC[15]}"; echo -en "${2:-1}" | sed -e :a -e 's/^.\{1,72\}$/ & /;ta' -e "s/\(.*\)/\1/";   echo -e "${CC[0]} |"; ;;
    1097.     3) echo -e "${CC[0]} ${L1} $R$X\n\n"; ;;
    1098.   esac;
    1099. }
    1100.  
    1101.  
    1102.  
    1103.  
    1104. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1105. # pwd - Function that prints the working directory
    1106. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1107. function pwd(){ command pwd -LP "$@"; }
    1108.  
    1109.  
    1110.  
    1111.  
    1112.  
    1113.  
    1114. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1115. # kill_jobs - Function that kills with a SIG 9 SIGKILL all currently running jobs
    1116. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1117. function kill_jobs() { for i in `command jobs -p`; do kill -9 $i; done; }
    1118.  
    1119.  
    1120.  
    1121.  
    1122.  
    1123.  
    1124. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1125. # aa_beep - Function that beeps $1 amount of times every second using term escapes
    1126. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1127. function aa_beep() { local i; for i in `seq 1 ${1:-5}`;do echo -en "\a" && sleep 1; done; }
    1128.  
    1129.  
    1130.  
    1131.  
    1132.  
    1133. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1134. # l - Function that displays a directory listing in non-long mode
    1135. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1136. function l() { command ls -AhFp $AAC "$@"; }
    1137.  
    1138.  
    1139.  
    1140.  
    1141.  
    1142.  
    1143. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1144. # la - Function
    1145. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1146. function la() { du *|awk '{print $2,$1}'|sort -n|tr ' ' "\t"; }
    1147.  
    1148.  
    1149.  
    1150.  
    1151.  
    1152.  
    1153. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1154. # ll - Function that shows the directory listing
    1155. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1156. function ll() { command ls -lABls1c $AAC "$@"; }
    1157.  
    1158.  
    1159.  
    1160.  
    1161.  
    1162.  
    1163. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1164. # aa_getsrc - Function that downloads a srcfile into the dist dir, then unarchives it and cds into it
    1165. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1166. function aa_getsrc()
    1167. {
    1168.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME <url>" >&2 && return 2
    1169.   [[ -z "$CPPFLAGS" ]] && pm "Setting CPPFLAGS" && export CPPFLAGS="-I/usr/local/include/libxml2 -I/opt/libiconv/include"
    1170.   [[ -z "$LD_FLAGS" ]] && pm "Setting LD_FLAGS" && export LD_FLAGS="-L/usr/local/lib -L/usr/local/lib/python2.4/site-packages -L/usr/local/lib -lxml2 -lz -L/opt/libiconv/lib -liconv -lm"
    1171.  
    1172.   aa_err() { echo $'\a'; local s; echo -en "\n [ ${1:-Press any key to continue} ]\n"; read -n 1 s; }
    1173.   aa_install() { ./configure --help; ./configure --prefix=/usr/local "$*" && make -j3 && sudo make install || aa_err; echo -en "\a"; }
    1174.  
    1175.   local OD=`pwd -L`; local FN=$(echo $1 | sed -e 's/^.*\/\([^\/]\{3,\}\)$/\1/g'); local SN=$(echo $FN |  sed -e 's/\(.\{1\}\)\([^-.]\{1,\}\).*/\1\2/g');
    1176.   echo -e "OD: $OD \n1: $1 \nFN: $FN \nSN: $SN" && sleep 1
    1177.  
    1178.   cd /opt/dist
    1179.   ( curl -# -L -f -b c.txt --cookie-jar c.txt -m 400 -O -H 'Accept: */*' -s -S -A 'Mozilla/5.0 (Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/2009 Firefox/3.5.5' -e "$1" --url "$1" || v_err "CURL FAILED for $1"; )
    1180.  
    1181.   [[ -f "$FN" ]] && ex "$FN" || aa_err "EXTRACTING FAILED for $FN, go manual it"
    1182.   [[ -d "/opt/$SN" ]] && mv -v /opt/$SN /opt/.old-$SN;
    1183.   mv -v /opt/source/`echo $1|sed -e 's/.*\/\(.*\)\.\([tgz7bar2v]*\)\(\.[tgz7bar2v]*\)$/\1/g'` /opt/$SN || aa_err "Please mv $1 to /opt/$SN"
    1184.   cd /opt/$SN && command ls -lABls1c $AAC && aa_install
    1185.   cd $OD
    1186. }
    1187.  
    1188.  
    1189.  
    1190.  
    1191.  
    1192.  
    1193. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1194. # stat1 - Function that displays a verbose stat for all files in current directory, or files passed in $1
    1195. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1196. function stat1()
    1197. {
    1198.   local D=${1:-$PWD/*}; stat -c %a\ %A\ \ A\ %x\ \ M\ %y\ \ C\ %z\ \ %N ${D} |sed -e 's/ [0-9:]\{8\}\.[0-9]\{9\} -[0-9]\+//g' |tr  -d "\`\'"|sort -r;
    1199. }
    1200.  
    1201.  
    1202.  
    1203.  
    1204.  
    1205.  
    1206. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1207. # stat2 - Function that displays a verbose stat for all files in current directory, or files passed in $1
    1208. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1209. function stat2()
    1210. {
    1211.  local D=${1:-$PWD/*}; stat -c %a\ %A\ \ A\ %x\ \ M\ %y\ \ C\ %z\ \ %N ${D} |sed -e 's/\.[0-9]\{9\} -[0-9]\+//g'|tr  -d "\`\'"|sort -r;
    1212. }
    1213.  
    1214.  
    1215.  
    1216.  
    1217.  
    1218. #--=--=--=--=--=--=--=--=--=--=--#
    1219. # processes
    1220. #==-==-==-==-==-==-==-==-==-==-==#
    1221.  
    1222.  
    1223. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1224. # psu - Function that shows the processes of the user
    1225. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1226. function psu()
    1227. {
    1228.   command ps -Hcl -F S f -u ${1:-$USER};
    1229. }
    1230.  
    1231.  
    1232.  
    1233.  
    1234.  
    1235.  
    1236. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1237. # ps - Function that displays the process environment, or if args uses the normal ps
    1238. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1239. function ps()
    1240. {
    1241.   [[ -z "$1" ]] && command ps -Hacl -F S -A f && return; command ps "$@";
    1242. }
    1243.  
    1244.  
    1245.  
    1246.  
    1247.  
    1248.  
    1249. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1250. # make_nice - Function that makes a process have a nice CPU slice
    1251. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1252. function make_nice()
    1253. {
    1254.   ahave renice || return;
    1255.   local thenicelevel thepid
    1256.   thepid=${1:-$$}
    1257.   thenicelevel=${2:-19}
    1258.   pm "Making process $thepid $thenicelevel nice."
    1259.   pm 0 0
    1260.   command renice $thenicelevel -p $theppid
    1261.   pd
    1262. }
    1263.  
    1264.  
    1265.  
    1266.  
    1267.  
    1268.  
    1269. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1270. # make_ionice - Function that makes the process ioniced
    1271. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1272. function make_ionice()
    1273. {
    1274.   ahave ionice || return;
    1275.   local theclass thenicelevel thepid
    1276.   thepid=${1:-$$}
    1277.   theclass=${2:-3}
    1278.   thenicelevel=${3:-7}
    1279.   pm "Making IONice class: $theclass, nicelevel: $thenicelevel, process: $thepid"
    1280.   pm 0 0
    1281.   command ionice -c$theclass -n$thenicelevel -p $thepid
    1282.   pd
    1283. }
    1284.  
    1285.  
    1286.  
    1287.  
    1288.  
    1289.  
    1290. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1291. # aa_ps_env - Function
    1292. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1293. function aa_ps_env()
    1294. {
    1295.   pm "PROCESS ENVIRONMENTS"
    1296.   ( command ps aux | command grep ${USER:0:3} | command awk '{print $2}' | xargs -t -ipid /bin/sh -c 'test -r /proc/pid/environ && cat /proc/pid/environ | tr "\000" " "' )
    1297.   ps aux | grep dhapache |awk '{print $2 }'| xargs -t -ipid find /proc/pid -type f 2>$N6 | xargs -iRR cat RR
    1298. }
    1299.  
    1300.  
    1301. function aa_ps_cmdlines()
    1302. {
    1303.   pm "CMDLINES"
    1304.   ( command ps axo pid|sed 1d| xargs -ipid sh -c '[[ $PPID -ne pid && -r /proc/pid/cmdline ]] && ( echo -en "\n[pid] CMDLINE: "; cat /proc/pid/cmdline | tr "\000" " " | tr "\033" "E" )' )
    1305. }
    1306.  
    1307.  
    1308.  
    1309.  
    1310. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1311. # procinfo1 - Function that displays a more verbose procinfo
    1312. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1313. function procinfo1()
    1314. {
    1315.   PI=($(strace -s1 procinfo -a 2>&1|sed -e '/^op/!d' -e '/pro/!d' -e '/= -1/d'|sed -e 's%o.*"/proc/\(.*\)".*% \1%g'));
    1316.   for i in ${PI[*]}; do echo -e "\n---===[  /proc/$i  ]\n" && cat /proc/$i && echo -e "\n\n"; done
    1317. }
    1318.  
    1319.  
    1320.  
    1321.  
    1322.  
    1323.  
    1324. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1325. # pss - Function
    1326. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1327. function pss()
    1328. {
    1329.   local U PPS PL PX PXX UUS=( $(command ps uax|awk '{print $1}'|command tail -n +2|sort|uniq) ); UL=$((${#UUS[@]} - 1))
    1330.   exec 6>&1; exec > ~/proc.$$
    1331.   ps aux | grep ${USER:0:3} | awk '{print $2}' | xargs -t -ipid cat /proc/pid/environ
    1332.   for UX in $(seq 0 1 $UUS); do U=${UUS[$UX]}; PPS=( $(pgrep -u ${U}) ); PL=$((${#PPS[@]} - 1));
    1333.    for PX in $(seq 0 1 $PL); do PXX=${PPS[$PX]};echo -e "\n\n\n----- PROCESS ID: ${PXX} -----\n\n";cat /proc/${PXX}/cmdline 2>$N6 || echo;echo -e "\n\n"; command tree -Csuflapi /proc/Q/${PXX};done
    1334.   done
    1335.   exec 1>&6 6>&-; cat ~/proc.$$ | more
    1336. }
    1337.  
    1338.  
    1339.  
    1340.  
    1341.  
    1342. ##################################################################################################################################################################################
    1343. # history setup
    1344. ##################################################################################################################################################################################
    1345.  
    1346.  
    1347. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1348. # uniq2 - Function - warning, only works for small files.. it can mess it up bigtime
    1349. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1350. function uniq2()
    1351. {
    1352.   [[ -f "$1" ]] && sed = $1 | sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P';
    1353. }
    1354.  
    1355.  
    1356.  
    1357.  
    1358.  
    1359.  
    1360. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1361. # asetup_history - Function
    1362. #   history [n]
    1363. #   history -c
    1364. #   history -d offset
    1365. #   history -anrw [filename]
    1366. #   history -p arg [arg ...]
    1367. #   history -s arg [arg ...]
    1368. #
    1369. #   With no options, display the command history list with line numbers. Lines listed with a * have been modified. An argument of n lists only the
    1370. #   last n lines. If filename is supplied, it is used as the name of the history file; if not, the value of HISTFILE is
    1371. #   used. Options, if supplied, have the following meanings:
    1372. #
    1373. #   -c Clear the history list by deleting all the entries.
    1374. #   -d offset Delete the history entry at position offset.
    1375. #   -a Append the ``new'' history lines (history lines entered since the beginning of the current bash session) to the history file.
    1376. #   -r Read the contents of the history file and use them as the current history.
    1377. #   -w Write the current history to the history file, overwriting the history file's contents.
    1378. #   -s Store the args in the history list as a single entry. The last command in the history list is removed before the args are added.
    1379. #
    1380. #   -n
    1381. #   Read the history lines not already read from the history file into the current history list. These are lines appended to the history
    1382. #   file since the beginning of the current bash session.
    1383. #
    1384. #   -p
    1385. #   Perform history substitution on the following args and display the result on the standard output. Does not store the results in the
    1386. #   history list. Each arg must be quoted to disable normal history expansion.
    1387. #
    1388. #   The return value is 0 unless an invalid option is encountered, an error occurs while reading or writing the history file, an invalid
    1389. #   offset is supplied as an argument to -d, or the history expansion supplied as an argument to -p fails.
    1390. #
    1391. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1392. function asetup_history()
    1393. {
    1394.  
    1395. #   HISTFILE - The name of the file in which command history is saved (see HISTORY below). If unset, the command history is not saved when an interactive shell exits.
    1396.   export HISTFILE=${HISTFILE:-$HOME/.bash_history}
    1397.  
    1398. #   HISTCONTROL
    1399. #   If set to a value of ignorespace, lines which begin with a space character are not entered on the history list. If set to a value of ignoredups, lines matching the last
    1400. #   history line are not entered. A value of ignoreboth combines the two options. If unset, or if
    1401. #   set to any other value than those above, all lines read by the parser are saved on the history list, subject to the value of HISTIGNORE. This variable's function is
    1402. #   superseded by HISTIGNORE. The second and subsequent lines of a multi-line compound command are
    1403. #   not tested, and are added to the history regardless of the value of HISTCONTROL.
    1404.   export HISTCONTROL=${HISTCONTROL:-'ignoreboth'};
    1405. #   HISTSIZE
    1406. #   The number of commands to remember in the command history (see HISTORY below). The default value is 500.
    1407.   export HISTSIZE=500
    1408. #   HISTFILESIZE
    1409. #   The maximum number of lines contained in the history file. When this variable is assigned a value, the history file is truncated, if necessary, to contain no more than
    1410. #   that number of lines. The default value is 500. The history file is also truncated to this
    1411. #   size after writing it when an interactive shell exits.
    1412.   export HISTFILESIZE=500
    1413.    
    1414. #   HISTIGNORE
    1415. #   A colon-separated list of patterns used to decide which command lines should be saved on the history list. Each pattern is anchored at the beginning of the line and must
    1416. #   match the complete line (no implicit `*' is appended). Each pattern is tested against the
    1417. #   line after the checks specified by HISTCONTROL are applied. In addition to the normal shell pattern matching characters, `&' matches the previous history line. `&' may be
    1418. #   escaped using a backslash; the backslash is removed before attempting a match. The second
    1419. #   and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of HISTIGNORE.
    1420.   export HISTIGNORE='clear:ls:ll:updatedb:top:h2:h1:h3:dir:cd ..:date:exit'
    1421. #   HISTTIMEFORMAT
    1422. #   If this variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each history entry displayed
    1423. #   by the history builtin. If this variable is set, time stamps are written to the history file so they may be preserved across shell sessions. This uses the history
    1424. #   comment character to distinguish timestamps from other history lines.
    1425. #   unsetting this keeps timestamps out of the history files, as only newer bash versions support this
    1426.   unset HISTTIMEFORMAT
    1427.  
    1428.  
    1429.  
    1430.   # this is the directory for your history master files
    1431.   HISTFILEMASTER_DIR=$HOME/backups/.history
    1432.   [[ ! -d "$HISTFILEMASTER_DIR/" ]] && mkdir -pv $HISTFILEMASTER_DIR
    1433.  
    1434.   # if no readable HISTFILE then create one with current history
    1435.   [[ ! -r ${HISTFILE} ]] && history -w $HISTFILE
    1436.  
    1437.  
    1438.   # if no HISTFILEMASTER then create one with current history
    1439.   HISTFILEMASTER=${HISTFILEMASTER_DIR}/combined.log
    1440.   [[ ! -f $HISTFILEMASTER ]] && history -r && history -w $HISTFILEMASTER && history -c && echo "" > $HISTFILE
    1441.   export HISTFILEMASTER
    1442.  
    1443.  
    1444.   HISTFILEMASTER_C=$HISTFILEMASTER_DIR/combined-uniq.log;
    1445.   [[ ! -f "$HISTFILEMASTER_C" ]] && echo "" > $HISTFILEMASTER_C
    1446.   export HISTFILEMASTER_C
    1447.  
    1448.   #[[ $SHLVL -eq 1 ]] && cat $HISTFILE $HISTFILEMASTER >> $HISTFILEMASTER_C &&
    1449.   #ahave nice && nice -n 19 sed -i -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P' $HISTFILEMASTER_C &
    1450.   #[[ $SHLVL -eq 1 ]] && eval $(echo "sh -c 'cd $HISTFILEMASTER_DIR; echo *|tr \" \" \"\n\"
    1451.   #|xargs -iFF sed -i -e \"s/^[ \t]*//;s/[ \t]*$//\" FF && echo *|tr \" \" \"\n\"
    1452.   #|xargs -iFF sed -i -e \"/./!d\" FF && echo *|tr \" \" \"\n\"|xargs -iFF sed -i -n \"/^.\{10\}/p\" FF'" ) &>$N6 & &>$N6
    1453. }
    1454.  
    1455.  
    1456. function histfilemaster()
    1457. {
    1458.   set -vx;
    1459.   history -a
    1460.   [[ "`wc -l < $HISTFILE`" -gt "$HISTSIZE" ]] && (
    1461.      cat $HISTFILE >> $HISTFILEMASTER;
    1462.      cat $HISTFILE > `date +$HISTFILEMASTER_DIR/%m-%d-%y.history`
    1463.      cat $HISTFILE $HISTFILEMASTER_C | sort | uniq > $HISTFILEMASTER_DIR/hc.tmp
    1464.      [[ "`wc -l < $HISTFILEMASTER_DIR/hc.tmp`" -gt "`wc -l < $HISTFILEMASTER_C`" ]] && mv $HISTFILEMASTER_DIR/hc.tmp $HISTFILEMASTER_C || cat $HISTFILE >> $HISTFILEMASTER_C;
    1465.      echo "" > $HISTFILE
    1466.   )
    1467.   set +vx;
    1468. }
    1469.  
    1470.  
    1471. function aa_uniqhistory()
    1472. {
    1473.   ( echo $HISTFILE; find $HISTFILEMASTER_DIR -type f 2>$N6 ) | xargs -iFFF cat FFF 2>$N6 | sed -e 's/^[ \t]*//;s/[ \t]*$//' -e '/[^ \t]\{1,\}/!d' | tr --squeeze ' ' | sort -u
    1474. }
    1475.  
    1476.  
    1477. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1478. # exitall - Function
    1479. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1480. # no matter how many SHLVL's deep you are, this kills all so you don't have to exit out of them all
    1481. function exitall()
    1482. { aa_savehist; pkill -9 -t "${SSH_TTY/\/dev\/}"; }
    1483.  
    1484.  
    1485. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1486. # aa_savehist - Function
    1487. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1488. function aa_savehist()
    1489. { history ${HISTCMD:-5000} | sed -e 's/^[ 0-9]*\(.*\)/\1/g' | tee -a $HISTFILEMASTER_C >> $HISTFILEMASTER; cat $HISTFILE | tee -a $HISTFILEMASTER_C >> $HISTFILEMASTER; history -w; echo; }
    1490.  
    1491.  
    1492.  
    1493.  
    1494.  
    1495.  
    1496.  
    1497. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1498. # h2 - Function
    1499. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1500. function h2()
    1501. {
    1502.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME query" >&2 && return 2
    1503.   command grep -h "$@" $HISTFILEMASTER_C
    1504. }
    1505. function h2i()
    1506. {
    1507.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME query" >&2 && return 2
    1508.   command grep -h -i "$@" $HISTFILEMASTER_C
    1509. }
    1510. function h2c()
    1511. {
    1512.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME query" >&2 && return 2
    1513.   export GREP_COLOR=`echo -en "\e[1;3$(( $RANDOM % 7 + 1 ))"`
    1514.   command grep --color=always -h "$@" $HISTFILEMASTER_C
    1515. }
    1516.  
    1517.  
    1518.  
    1519.  
    1520.  
    1521.  
    1522.  
    1523.  
    1524.  
    1525. #ionice -c3 -n7 nice mysqldump --opt --add-drop-table -u$_U -p$_P -h$_H $_N | (cd $BD; ionice -c3 -n7 nice gpg -evr connected -o $FS - &>$N6 ) & &>$N6
    1526.  
    1527. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1528. # rmb - Function that removes an entire directory forcefully but in the background
    1529. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1530. function rmb()
    1531. {
    1532.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME dirnametoremove" >&2 && return 2
    1533.   ( ( command rm -rf "$@" >&$N6 && pd "Finished $FUNCNAME $@" ) & );
    1534. }
    1535.  
    1536.  
    1537.  
    1538. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1539. # tard - Function that removes an entire directory forcefully but in the background
    1540. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1541. function tard()
    1542. {
    1543.   [[ "$#" -lt "2" ]] && echo "Usage: $FUNCNAME dest-file (auto adds tgz" >&2 && return 2
    1544.   #yn "Tarring $2 to $1" && ( ( command tar -cpf "$1" "$2" &>$N6 ) & )
    1545.   pm "Tarring $2 to $1" && ( ( command tar -cpf "$1" "$2" >&$N6 ) & )
    1546. }
    1547.  
    1548. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1549. # tarr - Function that removes an entire directory forcefully but in the background
    1550. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1551. function tarr ()
    1552. { pm "Tarring $1 to $1.rz" && ( ( command tar -cpf "$1.tar" "$1" >&$N6; [[ -f "$1.rz" ]] && command rm -vf "$1.rz"; command rzip -0 "$1.tar" && pd "Finished $1.rz" ) & ); }
    1553.  
    1554.  
    1555.  
    1556.  
    1557.  
    1558.  
    1559. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1560. # nh - Function to run command detached from terminal and without output
    1561. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1562. nh()
    1563. {
    1564.   [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME <command>" >&2 && return 2
    1565.   nohup "$@" &>$N6 & echo;
    1566. }
    1567.  
    1568.  
    1569.  
    1570.  
    1571.  
    1572.  
    1573.  
    1574.  
    1575.  
    1576.  
    1577. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1578. # dos2unixx - Function
    1579. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1580. function dos2unixx()
    1581. {
    1582.  [[ $# -eq 0 ]] && exec tr -d '\015\032' || [[ ! -f "$1" ]] && echo "Not found: $1" && return
    1583.  for f in "$@"; do
    1584.    [[ ! -f "$f" ]] && continue
    1585.    tr -d '\015\032' < "$f" > "$f.t" && cmp "$f" "$f.t" >$N6 && rm -f "$f.t" || ( touch -r "$f" "$f.t" && mv "$f" "$f.b" && mv "$f.t" "$f" && rm -f "$f.b" ) &>$N6
    1586.  done
    1587. }
    1588.  
    1589.  
    1590.  
    1591.  
    1592.  
    1593.  
    1594. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1595. # lin - Function that prints various lines
    1596. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1597. function lin()
    1598. {
    1599.   local C3=`echo -en "\E[0m\E[1;37m"`;
    1600.   local L2 L1='__________________________________________________________________________'
    1601.   case ${1:-1} in
    1602.     0) echo -e "\n ${CC[0]}${L1}"; ;;
    1603.     1) L2=`echo '                                                                          '`;echo -e "${CC[0]}|${C3}${L2}${CC[0]}|"; ;;
    1604.     2) echo -e "${CC[0]}|${C3} $(echo "${2:-1}" | sed -e :a -e 's/^.\{1,71\}$/ & /;ta' -e "s/\([ \t]*\)=\(.*\)=\([ \t]*\)/\1 \2 \3/g" )${CC[0]}|"; ;;
    1605.    3) echo -e "${CC[0]} ${L1} $R${CC[0]}\n\n"; ;;
    1606.  esac;
    1607. }
    1608.  
    1609.  
    1610. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1611. # ascript_title - Function that shows the title of the script
    1612. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1613. function ascript_title()
    1614. {
    1615. ahave tput && tput clear && tput cup 1;
    1616. N=$(( $RANDOM % 7 + 1 ));C2=`echo -en "\E[0m\E[3"${N}m`;C1=`echo -en "\E[0m\E[1;3"${N}m`;C3=`echo -en "\E[0m\E[1;37m"`;lin 0;
    1617. echo -e "| ${C1}                   ___       __    ___                 __               ${CC[0]} |";
    1618. echo -e "| ${C1}                  / _ | ___ / /__ / _ | ___  ___ _____/ /  ___          ${CC[0]} |";
    1619. echo -e "| ${C2}                 / __ |(_-</  '_// __ |/ _ \/ _ \`/ __/ _ \/ -_)         ${CC[0]} |";
    1620. echo -e "| ${C2}                /_/ |_/___/_/\_\/_/ |_/ .__/\_,_/\__/_//_/\__/          ${CC[0]} |";
    1621. echo -e "| ${C2}                                     /_/                                ${CC[0]} |";
    1622. lin 1;lin 2 "=${1:-$AAPN}=" | sed -e "s/=\(.*\)=/`tput setaf $N;tput smso`\1`tput setaf 0;tput rmso`/g";
    1623. lin 2 "v: ${2:-$AAPV} - ${3:-$AAPT}"; lin 1; lin 3; tput cup $LINES;
    1624. }
    1625.  
    1626.  
    1627. ascript_title ()
    1628. {
    1629.    ahave tput && tput cup 0 3;
    1630.    clear;
    1631.    lin 0;
    1632.    echo -e "| ${C1}                ___       __    ___                 __                  ${CC[0]} |";
    1633.    echo -e "| ${C1}               / _ | ___ / /__ / _ | ___  ___ _____/ /  ___             ${CC[0]} |";
    1634.    echo -e "| ${C2}              / __ |(_-</  '_// __ |/ _ \/ _ \`/ __/ _ \/ -_)            ${CC[0]} |";
    1635.    echo -e "| ${C2}             /_/ |_/___/_/\_\/_/ |_/ .__/\_,_/\__/_//_/\__/             ${CC[0]} |";
    1636.    echo -e "| ${C2}                                  /_/                                   ${CC[0]} |";
    1637.    lin 1;
    1638.    lin 2 "${USER} ";
    1639.    lin 2 "${1:-$AAPN} ";
    1640.    lin 2 "Version ${2:-$AAPV} - Built: ${3:-$AAPT} ";
    1641.    lin 3
    1642. }
    1643.  
    1644.  
    1645.  
    1646. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1647. # aa_motd - Function that shows the message of the day, if available
    1648. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1649. function aa_motd()
    1650. {
    1651.  [[ -r /etc/motd && `cat /etc/motd |wc -l` -gt 7 ]] && ( echo -e "\n\n${CC[2]}`head -n 7 /etc/motd | tail -n 6`${R}\n" ) && return
    1652.  ahave figlet && figlet $HOSTNAME
    1653. }
    1654.  
    1655.  
    1656.  
    1657.  
    1658.  
    1659.  
    1660. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1661. # aa_weather - Function that shows the weather for the server, if IP is found
    1662. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1663. function aa_weather()
    1664. {
    1665.  ahave lynx || return;
    1666.  local city weather=$HOME/.weather
    1667.  echo -e "${CC[3]}";
    1668.  local res=`pkill -9 -f 15m &>$N6 || echo -n`
    1669.  [[ -r $weather ]] && cat $weather && ( ( sleep 15m && command rm $HOME/.weather &>$N6 ) & )  
    1670.  [[ ! -r $weather ]] && (
    1671. ( ( city=`lynx -dump http://api.hostip.info/get_html.php|sed -e '/^City/!d' -e 's/City: \([^,]*\), \(.*\)/\1+\2/g'`\
    1672. && lynx -dump "http://www.google.com/search?hl=en&q=weather+${city}"|sed -n '/Weather for/,/Search Res/p'|\
    1673. tr -d '\260' | sed -e '/iGoogle/d' -e 's/^[ \t]*//;s/[ \t]*$//' | sed '$d' | head -n 6 >$weather ) & &>/dev/null )
    1674. )
    1675.  echo -e $R;
    1676. }
    1677.  
    1678.  
    1679.  
    1680.  
    1681.  
    1682.  
    1683. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1684. # aa_calendar - Function that shows the calendar, if available
    1685. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1686. function aa_calendar()
    1687. {
    1688.  [[ -d /usr/share/calendar/ ]] && echo -en "\n${CC[4]}" && ( sed = $(echo /usr/share/calendar/calendar*) | sed -n "/$(date +%m\\/%d\\\|%b\*\ %d)/p" ) && echo -en "${R}";
    1689. }
    1690.  
    1691.  
    1692.  
    1693.  
    1694.  
    1695.  
    1696. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1697. # aa_fortune - Function that shows the fortune, if available
    1698. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1699. function aa_fortune()
    1700. {
    1701.  local FORTUNE=`command type -P fortune`
    1702.  [[ -x $FORTUNE ]] && echo -en "\n${CC[5]}" && $FORTUNE -s && echo -en "${R}";
    1703.  [[ -x $FORTUNE ]] && echo -en "\n${CC[6]}" && $FORTUNE -s && echo -en "${R}";
    1704.  [[ -x $FORTUNE ]] && echo -en "\n${CC[7]}" && $FORTUNE -s && echo -en "${R}";
    1705.  [[ -x $FORTUNE ]] && echo -en "\n${CC[8]}" && $FORTUNE -s && echo -e "${R}";
    1706. }
    1707.  
    1708.  
    1709.  
    1710.  
    1711.  
    1712.  
    1713. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1714. # askapache - Function to display information about the current machine
    1715. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1716. function askapache()
    1717. {
    1718.  ascript_title;
    1719.  aa_motd;
    1720.  aa_weather
    1721.  
    1722.  ahave who && pm "Users" && pm "Logged In" 3; command who -ar -pld && pm "Current Limits" 3;command ulimit -a
    1723.  
    1724.  pm "Machine stats"; ahave uptime && pm "uptime" 3 && command uptime; [[ -d /proc ]] && [[ -f /proc/meminfo ]] && cat /proc/meminfo
    1725.  ahave who && pm "Users" 3 && command who
    1726.  pm "Networking"
    1727.  ahave ip && pm "interfaces" 3 && ip -o addr|sed -e 's/ \{1,\}/\t/g'
    1728.  [[ -r /proc/net/sockstat ]] && pm "Sockets" 3 && head -n 2 /proc/net/sockstat
    1729.  ahave ss && pm "Networking Stats" 3 && ss -s; ahave netstat && pm "Routing Information" 3 && netstat -r
    1730.  
    1731.  pm "Disk"; pm "Mounts" 3; command df -hai
    1732.  #[[ -d /sys/block/ ]] && pm "IO Scheduling" 3; for d in /sys/block/[a-z][a-z][a-z]*/queue/*; do [[ -d $d ]] && tree $d; echo "$d => $(cat $d)";done
    1733.  ahave iostat && pm "I/O on Disks" && iostat -p ALL
    1734.  
    1735.  pm "Processes"; pm "process tree" 3;  command ps -HAcl -F S -A f | uniq -w3
    1736.  ahave procinfo && pm "procinfo" 3 && procinfo|head -n 13|tail -n 11
    1737.  #procinfo1
    1738.  pm "Functions"; aa_functions
    1739.  pm "Aliases"; aa_aliases
    1740. }
    1741.  
    1742.  
    1743.  
    1744.  
    1745.  
    1746.  
    1747.  
    1748.  
    1749.  
    1750.  
    1751.  
    1752.  
    1753.  
    1754.  
    1755.  
    1756.  
    1757. ##################################################################################################################################################################################
    1758. ###
    1759. ###  MAIN - Runs on exec
    1760. ###
    1761. ##################################################################################################################################################################################
    1762. [[ -f $HOME/.bash_login ]] && . $HOME/.bash_login
    1763.  
    1764. [[ ! -f $HOME/.bash_logout ]] && (
    1765. cat >$HOME/.bash_logout <<_AABASHLOGOUTTXT
    1766. #!$SHELL
    1767. exit_status=\$?
    1768. echo "SAVING HISTORY..."
    1769. history \${HISTCMD:-5000} | sed -e 's/^[ 0-9]*\(.*\)/\1/g' | tee -a \$HISTFILEMASTER_C >> \$HISTFILEMASTER;
    1770. cat \$HISTFILE | tee -a \$HISTFILEMASTER_C >> \$HISTFILEMASTER;
    1771. history -w
    1772. { echo -e "--- [\$exit_status \$?] LINENO:\$LINENO \$SECONDS seconds" >&2; }
    1773. exit \$exit_status
    1774. _AABASHLOGOUTTXT
    1775. )
    1776.  
    1777.  
    1778. ahave top && [[ ! -f $HOME/.toprc ]] && (
    1779. cat >$HOME/.toprc <<_AATOPRC
    1780. RCfile for "top with windows"           # shameless braggin'
    1781. Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
    1782. Def     fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
    1783.        winflags=129016, sortindx=19, maxtasks=0
    1784.        summclr=2, msgsclr=5, headclr=7, taskclr=7
    1785. Job     fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
    1786.        winflags=63416, sortindx=13, maxtasks=0
    1787.        summclr=6, msgsclr=6, headclr=7, taskclr=6
    1788. Mem     fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
    1789.        winflags=65464, sortindx=13, maxtasks=0
    1790.        summclr=5, msgsclr=5, headclr=4, taskclr=5
    1791. Usr     fieldscur=ABDECGfhijlopqrstuvyzMKNWX
    1792.        winflags=65464, sortindx=12, maxtasks=0
    1793.        summclr=3, msgsclr=3, headclr=2, taskclr=7
    1794. _AATOPRC
    1795. )
    1796.  
    1797.  
    1798. ahave lynx && [[ ! -f $HOME/.lynxrc ]] && (
    1799. cat >$HOME/.lynxrc <<_AALYNXRC
    1800. accept_all_cookies=on
    1801. cookie_file=$HOME/.lynx_cookies
    1802. bookmark_file=$HOME/.lynx_bookmarks
    1803. case_sensitive_searching=off
    1804. character_set=Western (ISO-8859-1)
    1805. dir_list_order=ORDER_BY_NAME
    1806. dir_list_style=MIXED_STYLE
    1807. emacs_keys=off
    1808. file_editor=$EDITOR
    1809. file_sorting_method=BY_FILENAME
    1810. keypad_mode=LINKS_ARE_NOT_NUMBERED
    1811. lineedit_mode=Default Binding
    1812. preferred_language=en
    1813. select_popups=on
    1814. show_color=default
    1815. show_cursor=on
    1816. show_dotfiles=on
    1817. sub_bookmarks=OFF
    1818. user_mode=NOVICE
    1819. verbose_images=off
    1820. vi_keys=off
    1821. visited_links=LAST_REVERSED
    1822. STARTFILE:http://www.askapache.com/
    1823. HELPFILE:http://lynx.isc.org/release/lynx2-8-6/lynx_help/lynx_help_main.html
    1824. HELPFILE:http://lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx_help/lynx_help_main.html
    1825. DEFAULT_INDEX_FILE:http://www.askapache.com/
    1826. _AALYNXRC
    1827. export LYNX_CFG=$HOME/.lynxrc
    1828. )
    1829.  
    1830.  
    1831. ahave ncftp && [[ ! -d $HOME/.ncftp || ! -f $HOME/.ncftp/bookmarks ]] && (
    1832. mkdir $HOME/.ncftp
    1833. cat >$HOME/.ncftp/bookmarks <<_AANCFTPBOOKMARKS
    1834. NcFTP bookmark-file version: 8
    1835. Number of bookmarks: ??
    1836. GNU,ftp.gnu.org,,,,,I,0,1259026516,1,1,1,1,140.186.70.20,,,,,,S,-1,
    1837. ncsa,ftp.ncsa.uiuc.edu,,,,Web,I,21,285960729237,1,1,1,1,141.142.2.14,,,,,,S,-1,
    1838. ArchLinux FTP,ftp.archlinux.org,,,,,I,21,1259026553,1,1,1,1,209.85.41.143,,,,,,S,-1,
    1839. Mozilla,ftp.mozilla.org,,,,,I,21,1259026675,1,1,1,1,63.245.208.138,,,,,,S,-1,
    1840. _AANCFTPBOOKMARKS
    1841. )
    1842.  
    1843.  
    1844. ahave wget && [[ ! -f $HOME/.wgetrc ]] && (
    1845. cat >$HOME/.wgetrc <<_AAWGETRC
    1846. header = Accept-Language: en-us,en;q=0.5
    1847. header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    1848. header = Accept-Encoding: gzip,deflate
    1849. header = Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    1850. header = Keep-Alive: 300
    1851. user_agent = Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
    1852. referer = http://www.google.com
    1853. robots = off
    1854. _AAWGETRC
    1855. )
    1856.  
    1857.  
    1858. ahave vim && [[ ! -f $HOME/.vimrc ]] && (
    1859. cat > $HOME/.vimrc <<_AAVIMRC
    1860. set showmatch
    1861. set nocompatible backspace=indent,eol,start autoindent ts=4 textwidth=0 backupcopy=yes history=500 ruler so=5 cmdheight=2 hh=20 wh=65 hlsearch ic nofoldenable t_Co=256 t_Sf=m t_Sb=m bg=dark showcmd incsearch
    1862.  
    1863. let $PAGER=''
    1864. syntax on
    1865. let use_xhtml = 1
    1866. let html_use_css = 1
    1867.  
    1868. if has("autocmd")
    1869.  if has("filetype")
    1870.    filetype on
    1871.    filetype plugin on
    1872.    filetype indent on
    1873.    set fileformats=unix,dos,mac
    1874.  endif
    1875.  
    1876.  au BufRead,BufNewFile * setfiletype sh
    1877.  autocmd FileType html set isk+=:,/,~
    1878.  autocmd FileType *             set shiftwidth=4
    1879.  autocmd FileType xml,html      set shiftwidth=2
    1880.  autocmd FileType java,c,cc,cpp set nocindent
    1881.  autocmd FileType text setlocal textwidth=78    " For all text files set 'textwidth' to 78 characters.
    1882.  
    1883.   augroup ApacheModule
    1884.     au BufRead,BufNewFile httpd*.conf*,srm.conf*,access.conf*,apache.conf*,apache2.conf*,.htaccess,.htpasswd setfiletype apache
    1885.     autocmd BufReadPost mod_*.c set ts=4
    1886.     autocmd BufReadPost mod_*.c set sw=4
    1887.   augroup END
    1888.  
    1889.   autocmd BufReadPost *
    1890.     \ if line("'\"") > 0 && line("'\"") <= line("\$") |
    1891.     \   exe "normal g\`\"" |
    1892.    \ endif
    1893.  augroup END
    1894. endif
    1895.  
    1896. if filereadable("/etc/vim/vimrc.local")
    1897.  source /etc/vim/vimrc.local
    1898. endif
    1899.  
    1900. _AAVIMRC
    1901. )
    1902.  
    1903.  
    1904.  
    1905. asetup_colors
    1906. aa_prompt
    1907. asetup_history
    1908. #[[ "$ISINCLUDED" == "no" ]] &&
    1909. export PROMPT_COMMAND='echo -ne "\033]0;$USER@$HOSTNAME  +$SHLVL @${SSH_TTY/\/dev\/} - `uptime1` \007";(( $HISTCMD % 10 == 0 )) && aa_prompt'
    1910.  
    1911.  
    1912.  
    1913. # temp hack for being able to source all the functions in this file from a script
    1914. [[ $- == *i* ]] && (
    1915.  export PROMPT_C=$( echo -ne "\033]0;$USER@$HOSTNAME  +$SHLVL @${SSH_TTY/\/dev\/} - `uptime1` \007" );
    1916.  echo $PROMPT_C
    1917.  export PROMPT_COMMAND='echo -ne "\033]0;$USER@$HOSTNAME  +$SHLVL @${SSH_TTY/\/dev\/} - `uptime1` \007";(( $HISTCMD % 10 == 0 )) && aa_prompt'
    1918.  ascript_title 1 8
    1919.  #aa_motd
    1920.  #ahave pstree && command pstree -A -u | uniq
    1921.  #aa_weather
    1922.  echo; pm "Functions"; aa_functions; echo; echo; pm "Aliases"; aa_aliases; echo;
    1923.  
    1924.  aa_calendar
    1925.  aa_fortune
    1926.  ahave tput && tput cup 99 0;
    1927.  (exit $?); exit $?
    1928. ) || ( echo; pm "Functions"; aa_functions; echo; echo; pm "Aliases"; aa_aliases; echo; )
    1929.  
    1930.  
    1931.  
    1932.  
    1933.  
    1934.  
    1935.  
    1936.  
    1937.  
    1938.  
    1939.  
    1940.  
    1941.  
    1942.  
    1943.  
    1944.  
    1945.  
    1946.  
    1947.  
    1948.  
    1949.  
    1950.  
    1951.  
    1952. BETA=no; [[ "$BETA" == "yes" ]] && (
    1953.  
    1954. # ( cd /dev; ln -sf /proc/self/fd /dev/fd; ln -sf fd/0 /dev/stdin; ln -sf fd/1 /dev/stdout; ln -sf fd/2 /dev/stderr )
    1955.  
    1956. fix_bad_perms()
    1957. {
    1958.  find ${1:-.} -type d ! -perm 751 -exec chmod 751 {} \; 2>$N6
    1959.  find ${1:-.} -type f ! -perm 640 -exec chmod 640 {} \; 2>$N6
    1960. }
    1961.  
    1962.  
    1963. function aa_flash_screen() { echo -e "\E[?5h$<100/>\E[?5l"; }
    1964.  
    1965.  
    1966. function aa_terminfo()
    1967. {
    1968.  ahave infocmp && infocmp  -I -q && infocmp  -I -q -L
    1969.  ahave stty && stty -a
    1970. }
    1971.  
    1972.  
    1973.  
    1974. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1975. # aa_apt_build - Function
    1976. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1977. function aa_apt_build()
    1978. { aptitude search $1; sleep 4; apt-get -u -V build-dep $1 && apt-get -u -V -b source $1; }
    1979.  
    1980. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1981. # aa_aptb - Function
    1982. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1983. function aa_aptb()
    1984. {
    1985.    aptitude search $@
    1986.    aptitude show $@
    1987.    cont
    1988.    apt-get -u -V build-dep $@ && apt-get -u -V -b source $@ || apt-get -u -V --reinstall install $@
    1989. }
    1990.  
    1991.  
    1992.  
    1993.  
    1994.  
    1995. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1996. # h1 - Function
    1997. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    1998. function h1()
    1999. {
    2000.  [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME query" >&2 && return 2
    2001.  command grep -h -i "$@" $HISTFILEMASTER
    2002. }
    2003.  
    2004. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2005. # h1c - Function
    2006. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2007. function h1c()
    2008. {
    2009.  [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME query" >&2 && return 2
    2010.  command grep --color=always -h -i "$@" $HISTFILEMASTER
    2011. }
    2012.  
    2013.  
    2014. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2015. # hpopular - Function
    2016. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2017. function hpopular()
    2018. {
    2019.  cat $HISTFILEMASTER | awk '{print $2}' | sort | uniq -c | sort -rn | head -n ${1:-50};
    2020. }
    2021.  
    2022. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2023. # centerit - Function
    2024. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2025. function centerit()
    2026. { echo "$@" | awk '
    2027. { spaces = ('$COLUMNS' - length) / 2
    2028.  while (spaces-- > 0) printf (" ")
    2029.  print
    2030. }'
    2031. }
    2032.  
    2033.  
    2034. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2035. # tac1  - Function
    2036. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2037. function tac1()
    2038. {
    2039.  [[ "$#" -gt "0" && $1 == *-h* ]] && ahelp $1 && echo "Usage: $FUNCNAME" && return 2
    2040.  [[ $# -eq 0 ]] && exec sed -n '{ 1! G; $ p; h; }' || sed -n '{ 1! G; $ p; h; }' $@
    2041. }
    2042.  
    2043.  
    2044. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2045. # quote - Function
    2046. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2047. function quote()
    2048. {
    2049.  [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    2050.  echo \'${1//\'/\'\\\'\'}\';
    2051. }
    2052.  
    2053.  
    2054.  
    2055.  
    2056.  
    2057.  
    2058. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2059. # dequote - Function
    2060. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2061. function dequote()
    2062. {
    2063.  [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    2064.  eval echo "$1";
    2065. }
    2066.  
    2067.  
    2068.  
    2069.  
    2070.  
    2071.  
    2072. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2073. # get_pids_on_system - Function to show pids on system
    2074. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2075. function get_pids_on_system()
    2076. {
    2077.  command ps axo pid|sed 1d;
    2078. }
    2079.  
    2080.  
    2081.  
    2082.  
    2083.  
    2084.  
    2085. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2086. # get_pgids_on_system - Function to show pgids on system
    2087. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2088. function get_pgids_on_system()
    2089. {
    2090.  command ps axo pgid|sed 1d;
    2091. }
    2092.  
    2093.  
    2094.  
    2095.  
    2096.  
    2097.  
    2098. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2099. # get_users_on_system - Function that uses the getent program to display all users on system
    2100. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2101. function get_users_on_system()
    2102. {
    2103.  [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    2104.  ahave getent &>$N6 && getent passwd|awk -F: '{print $1}' && return; awk 'BEGIN {FS=":"} {print $1}' /etc/passwd;
    2105. }
    2106.  
    2107.  
    2108.  
    2109.  
    2110.  
    2111.  
    2112. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2113. # get_groups_on_system - Function that uses the getent program to display all groups on system
    2114. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2115. function get_groups_on_system()
    2116. {
    2117.  [[ "$#" -lt "1" ]] && echo "Usage: $FUNCNAME " >&2 && return 2
    2118.  ahave getent &>$N6 && getent group|awk -F: '{print $1}' && return; awk 'BEGIN {FS=":"} {print $1}' /etc/group;
    2119. }
    2120.  
    2121.  
    2122.  
    2123.  
    2124.  
    2125.  
    2126. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2127. # mp3info - Function that uses ffmpeg to display information for mp3files in the current directory
    2128. #--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--#
    2129. function mp3info()
    2130. {
    2131.  ahave ffmpeg || return;
    2132.  ls *.mp3 |xargs -ix 2>&1 ffmpeg -i x|grep -v "^Must" |grep -v "built\|libavutil\|libavcodec\|configuration\|FFmpeg\|libavformat";
    2133. }
    2134.  
    2135. find_execs(){ file *| grep "shell\|executable"|sed -e 's/:.*$//g'; }
    2136.  
    2137.  
    2138.  
    2139.  
    2140.  
    2141. ### END BETA FUNCTIONS
    2142. )
    2143.  
    2144.  
    2145.  
    2146.  
    2147.  
    2148.  
    2149.  
    2150.  
    2151.  
    2152.  
    2153.  
    2154.  
    2155.  
    2156.  
    2157. #       gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]
    2158. #       gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ...  ]
    2159. #       zcat [ -fhLV ] [ name ...  ]
    2160. #
    2161. #       gunzip  takes a list of files on its command line and replaces each file whose name ends with .gz, -gz, .z, -z, _z or .Z and which begins with the correct magic number with an uncompressed
    2162. #       file without the original extension.  gunzip also recognizes the special extensions .tgz and .taz as shorthands for .tar.gz and .tar.Z respectively.  When compressing, gzip uses  the  .tgz
    2163. #       extension if necessary instead of truncating a file with a .tar extension.
    2164. #
    2165. #       zcat  is identical to gunzip -c.  (On some systems, zcat may be installed as gzcat to preserve the original link to compress.)  zcat uncompresses either a list of files on the command line
    2166. #       or its standard input and writes the uncompressed data on standard output.  zcat will uncompress files that have the correct magic number whether they have a .gz suffix or not.
    2167. #       -l --list
    2168. #              The uncompressed size is given as -1 for files not in gzip format, such as compressed .Z files. To get the uncompressed size for such a file, you can use:
    2169. #                  zcat file.Z | wc -c
    2170. #
    2171. #              The compression methods currently supported are deflate, compress, lzh (SCO compress -H) and pack.  The crc is given as ffffffff for a file not in gzip format.
    2172. #              With --verbose, the size totals and compression ratio for all files is also displayed, unless some sizes are unknown. With --quiet, the title and totals lines are not displayed.
    2173. #       -r --recursive
    2174. #              Travel the directory structure recursively. If any of the file names specified on the command line are directories, gzip will descend into the directory and compress all  the  files
    2175. #              it finds there (or decompress them in the case of gunzip ).
    2176. #       If you want to recompress concatenated files to get better compression, do:
    2177. #             gzip -cd old.gz | gzip > new.gz
    2178.  
    2179. #       If a compressed file consists of several members, the uncompressed size and CRC reported by the --list option applies to the last member only. If you need the  uncompressed  size  for  all
    2180. #       members, you can use:
    2181. #             gzip -cd file.gz | wc -c
    2182.  
    2183.  
    2184.  
    2185.  
    2186.  
    2187.  
    2188. #   Note that the order of redirections is significant. For example, the command
    2189. #   ls > dirlist 2>&1
    2190. #   directs both standard output and standard error to the file dirlist, while the command
    2191. #
    2192. #   ls 2>&1 > dirlist
    2193. #   directs only the standard output to file dirlist, because the standard error was duplicated as standard output before the standard output was redirected to dirlist.
    2194.  
    2195.  
    2196.  
    2197.  
    2198. ##################################################################################################################################################################################
    2199. # personalized colors
    2200. ##################################################################################################################################################################################
    2201. # Attribute codes:    00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
    2202. # Text color codes:   30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
    2203. # Background color codes: 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
    2204. # NORMAL 00       # global default, although everything should be something.
    2205. # FILE 00         # normal file
    2206. # DIR 01;34       # directory
    2207. # LINK 01;36      # symbolic link.
    2208. # FIFO 40;33      # pipe
    2209. # SOCK 01;35      # socket
    2210. # DOOR 01;35      # door
    2211. # BLK 40;33;01    # block device driver
    2212. # CHR 40;33;01    # character device driver
    2213. # ORPHAN 40;31;01 # symlink to nonexistent file
    2214. # EXEC 01;32      # executables
    2215. ##################################################################################################################################################################################
    2216.  
    2217.  
    2218.  
    2219. # Advanced Shell Limits
    2220. ##################################################################################################################################################################################
    2221. # -S      use the `soft' resource limit
    2222. # -H      use the `hard' resource limit
    2223. # -a      all current limits are reported
    2224. # -c      the maximum size of core files created
    2225. # -d      the maximum size of a process's data segment
    2226. # -f      the maximum size of files created by the shell
    2227. # -l      the maximum size a process may lock into memory
    2228. # -m      the maximum resident set size
    2229. # -n      the maximum number of open file descriptors
    2230. # -p      the pipe buffer size
    2231. # -s      the maximum stack size
    2232. # -t      the maximum amount of cpu time in seconds
    2233. # -u      the maximum number of user processes
    2234. # -v      the size of v
    2235. # [see man getrlimit, help ulimit]
    2236. ##################################################################################################################################################################################
    2237. ##################################################################################################################################################################################
    2238. # Trapping Signals to Catch Errors
    2239. ##################################################################################################################################################################################
    2240. # The first digit selects the set user ID (4) and set group ID (2) and sticky (1) attributes.
    2241. # The second digit selects permissions for the user who owns the file: read (4), write (2), and execute (1)
    2242. # The third selects permissions for other users in the file's group, with the same values
    2243. # The fourth for other users not in the file's group, with the same values.
    2244. # [see man chmod, help umask]
    2245. ##################################################################################################################################################################################
    2246. ##################################################################################################################################################################################
    2247. # 1      2      3       4      5       6       7      8      9       10      11      12      13      14      15      17      18      19      20      21
    2248. # SIGHUP SIGINT SIGQUIT SIGILL SIGTRAP SIGABRT SIGBUS SIGFPE SIGKILL SIGUSR1 SIGSEGV SIGUSR2 SIGPIPE SIGALRM SIGTERM SIGCHLD SIGCONT SIGSTOP SIGTSTP SIGTTIN
    2249. # [see man bash, man signal, help trap]
    2250. ##################################################################################################################################################################################
    2251.  
    2252.  
    2253.  
    2254. # http://tldp.org/LDP/abs/html/sample-bashrc.html
    2255. ##################################################################################################################################################################################
    2256. # e [errexit]     Exit immediately if a command exits with a non-zero status.
    2257. # B [braceexpand] The shell will perform brace expansion.
    2258. # h [hashall]     Remember the location of commands as they
    2259. # f [noglob]      Disable file name generation (globbing).
    2260. # H [histexpand]  Enable ! style history substitution.
    2261. # v [verbose]     Print shell input lines as they are read.
    2262. # x [xtrace]      Print commands and their arguments as they are executed.
    2263. # n [noexec]      Read commands but do not execute them.
    2264. #   [history]       Enable command history
    2265. ##################################################################################################################################################################################
    2266.  
    2267.  
    2268. ##################################################################################################################################################################################
    2269. # [see man bash, help set]
    2270. # cdable_vars   an argument to the cd builtin command that is not a directory is assumed to be the name of a variable dir to change to.
    2271. # cdspell     minor errors in the spelling of a directory component in a cd command will be corrected.  
    2272. # checkhash     bash checks that a command found in the hash table exists before execute it.  If no longer exists, a path search is performed.
    2273. # checkwinsize    bash checks the window size after each command and, if necessary, updates the values of LINES and COLUMNS.
    2274. # cmdhist     bash attempts to save all lines of a multiple-line command in the same history entry.  Allows re-editing of multi-line commands.
    2275. # dotglob     bash includes filenames beginning with a `.' in the results of pathname expansion.
    2276. # execfail      a non-int shell will not exit if it cannot execute the file specified as an argument to the exec builtin command, like int sh.
    2277. # expand_aliases  aliases are expanded as described above under ALIASES.  This option is enabled by default for interactive shells.
    2278. # extglob       the extended pattern matching features described above under Pathname Expansion are enabled.
    2279. # histappend    the history list is appended to the file named by the value of the HISTFILE variable when shell exits, no overwriting the file.
    2280. # hostcomplete    and readline is being used, bash will attempt to perform hostname completion when a word containing a @ is being completed
    2281. # huponexit     bash will send SIGHUP to all jobs when an interactive login shell exits.
    2282. # interactive_comments    allow a word beginning with # to cause that word and all remaining characters on that line to be ignored in an interactive shell
    2283. # lithist       if cmdhist option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon
    2284. # login_shell     shell sets this option if it is started as a login shell (see INVOCATION above).  The value may not be changed.
    2285. # mailwarn        file that bash is checking for mail has been accessed since the last checked, ``The mail in mailfile has been read'' is displayed.
    2286. # no_empty_cmd_completion bash will not attempt to search the PATH for possible completions when completion is attempted on an empty line.
    2287. # nocaseglob    bash matches filenames in a case-insensitive fashion when performing pathname expansion (see Pathname Expansion above).
    2288. # nullglob      bash allows patterns which match no files (see Pathname Expansion above) to expand to a null string, rather than themselves.
    2289. # progcomp      the programmable completion facilities (see Programmable Completion above) are enabled.  This option is enabled by default.
    2290. # promptvars    prompt strings undergo variable and parameter expansion after being expanded as described in PROMPTING above.  
    2291. # shift_verbose   the shift builtin prints an error message when the shift count exceeds the number of positional parameters.
    2292. # sourcepath    the source (.) builtin uses the value of PATH to find the directory containing the file supplied as an argument.
    2293. # xpg_echo      the echo builtin expands backslash-escape sequences by default.
    2294. # [see man bash, help shopt]
    2295. ##################################################################################################################################################################################
    2296.  
    2297. ##################################################################################################################################################################################
    2298. # \a     an ASCII bell character (07)
    2299. # \d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
    2300. # \D{format}  the format is passed to strftime(3) and the result is inserted into the prompt string;
    2301. # \e     an ASCII escape character (033)
    2302. # \h     the hostname up to the first `.'
    2303. # \H     the hostname
    2304. # \j     the number of jobs currently managed by the shell
    2305. # \l     the basename of the shell's terminal device name
    2306. # \n     newline
    2307. # \r     carriage return
    2308. # \s     the name of the shell, the basename of $0 (the portion following the final slash)
    2309. # \t     the current time in 24-hour HH:MM:SS format
    2310. # \T     the current time in 12-hour HH:MM:SS format
    2311. # \@     the current time in 12-hour am/pm format
    2312. # \A     the current time in 24-hour HH:MM format
    2313. # \u     the username of the current user
    2314. # \v     the version of bash (e.g., 2.00)
    2315. # \V     the release of bash, version + patchelvel (e.g., 2.00.0)
    2316. # \w     the current working directory
    2317. # \W     the basename of the current working directory
    2318. # \!     the history number of this command
    2319. # \#     the command number of this command
    2320. # \$     if the effective UID is 0, a #, otherwise a $
    2321. # \nnn   the character corresponding to the octal number nnn
    2322. # \\     a backslash
    2323. # \[     begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
    2324. # \]     end a sequence of non-printing characters
    2325. ##################################################################################################################################################################################
    2326.  
    2327.  
    2328. ##################################################################################################################################################################################
    2329. # HISTCONTROL
    2330. #    If  set  to a value of ignorespace, lines which begin with a space character are not entered on the history list.  
    2331. #    If set to a value of ignoredups, lines matching the last history line are not entered.  A value of ignoreboth combines the two options.
    2332. #    If unset, or if set to any other value than those above, all lines read by the parser are saved on the history list, subject to the value of HISTIGNORE.  
    2333. # HISTFILE
    2334. #    The name of the file in which command history is saved (see HISTORY below).  The default value is ~/.bash_history.  If unset, the command history is not saved when an interactive shell exits.
    2335. # HISTFILESIZE
    2336. #    The  maximum number of lines contained in the history file.  When this variable is assigned a value, the history file is truncated, if necessary, to contain no more than that number of lines.  
    2337. #    The default value is 500.  The history file is also trun-cated to this size after writing it when an interactive shell exits.
    2338. # HISTIGNORE
    2339. #    A colon-separated list of patterns used to decide which command lines should be saved on the history list.  Each pattern is anchored at the beginning of the line and must match the complete line (no implicit `*' is appended).
    2340. #    Each pattern is  tested against  the  line  after  the  checks  specified  by HISTCONTROL are applied.  In addition to the normal shell pattern matching characters, `&' matches the previous history line.  
    2341. #    `&' may be escaped using a backslash; the backslash is removed before attempting a match.  The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of HISTIGNORE.
    2342. # HISTSIZE
    2343. #    The number of commands to remember in the command history (see HISTORY below).  The default value is 500.
    2344. #
    2345. ##################################################################################################################################################################################
    2346.  
    2347.  
    2348.  
    2349. ############################################################################################################################################################
    2350. # bash defines the following built-in commands:
    2351. #   :, ., [, alias, bg, bind, break, builtin, case, cd, command, compgen, complete, continue, declare, dirs
    2352. #   disown, echo, enable, eval, exec, exit, export, fc, fg, getopts, hash, help, history, if, jobs, kill,
    2353. #   let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend
    2354. #   test, times, trap, type, typeset, ulimit, umask, unalias, unset, until, wait, while
    2355.  
    2356.  
    2357.  
    2358. # Connectives for `test'
    2359. # ! EXPR  -  True if EXPR is false.
    2360. # EXPR1 -a EXPR2  -  True if both EXPR1 and EXPR2 are true.
    2361. # EXPR1 -o EXPR2  -  True if either EXPR1 or EXPR2 is true.
    2362.  
    2363. # File type tests
    2364. # -b FILE  -  True if FILE exists and is a block special device.
    2365. # -c FILE  -  True if FILE exists and is a character special device.
    2366. # -d FILE  -  True if FILE exists and is a directory.
    2367. # -f FILE  -  True if FILE exists and is a regular file.
    2368. # -L FILE  -  True if FILE exists and is a symbolic link.
    2369. # -p FILE  -  True if FILE exists and is a named pipe.
    2370. # -S FILE  -  True if FILE exists and is a socket.
    2371. # -t FD  -  True if FD is a file descriptor that is associated with a terminal.
    2372.  
    2373. # Access permission tests
    2374. # -g FILE  -  True if FILE exists and has its set-group-id bit set.
    2375. # -k FILE  -  True if FILE has its "sticky" bit set.
    2376. # -r FILE  -  True if FILE exists and is readable.
    2377. # -u FILE  -  True if FILE exists and has its set-user-id bit set.
    2378. # -w FILE  -  True if FILE exists and is writable.
    2379. # -x FILE  -  True if FILE exists and is executable.
    2380. # -O FILE  -  True if FILE exists and is owned by the current effective user id.
    2381. # -G FILE  -  True if FILE exists and is owned by the current effective group id.
    2382.  
    2383. # File characteristic tests
    2384. # -e FILE  -  True if FILE exists.
    2385. # -s FILE  -  True if FILE exists and has a size greater than zero.
    2386. # FILE1 -nt FILE2  -  True if FILE1 is newer (according to modification date) than FILE2, or if FILE1 exists and FILE2 does not.
    2387. # FILE1 -ot FILE2  -  True if FILE1 is older (according to modification date) than FILE2, or if FILE2 exists and FILE1 does not.
    2388. # FILE1 -ef FILE2  -  True if FILE1 and FILE2 have the same device and inode numbers,  i.e., if they are hard links to each other.
    2389.  
    2390. # String tests
    2391. # -z STRING  -  True if the length of STRING is zero.
    2392. # -n STRING
    2393. # STRING  -  True if the length of STRING is nonzero.
    2394. # STRING1 = STRING2  -  True if the strings are equal.
    2395. # STRING1 != STRING2  -  True if the strings are not equal.
    2396.  
    2397. # Numeric tests
    2398. # ARG1 -eq ARG2
    2399. # ARG1 -ne ARG2
    2400. # ARG1 -lt ARG2
    2401. # ARG1 -le ARG2
    2402. # ARG1 -gt ARG2
    2403. # ARG1 -ge ARG2
    2404. ############################################################################################################################################################
    2405.  
    2406.  
    2407.  
    2408. ############################################################################################################################################################
    2409. # Optional Software that is awesome
    2410. #
    2411. # ftp://ftp.gnu.org/pub/gnu/gawk/gawk-3.1.7.tar.gz
    2412. # ftp://alpha.gnu.org/pub/gnu/libidn/libidn-1.9.tar.gz
    2413. # ftp://ftp.berlios.de/pub/smake/alpha/smake-1.2a45.tar.gz
    2414. # ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz
    2415. # ftp://ftp.gnu.org/gnu/gdb/gdb-7.0.tar.bz2
    2416. # ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.1.tar.gz
    2417. # ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.64.tar.gz
    2418. # ftp://ftp.gnu.org/pub/gnu/automake/automake-1.11.tar.gz
    2419. # ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0.tar.gz
    2420. # ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.2.tar.gz
    2421. # ftp://ftp.gnu.org/pub/gnu/bash/bashref.texi.gz
    2422. # ftp://ftp.gnu.org/pub/gnu/bash/readline-5.1.tar.gz
    2423. # ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.19.tar.gz
    2424. # ftp://ftp.gnu.org/pub/gnu/bison/bison-2.4.tar.gz
    2425. # ftp://ftp.gnu.org/pub/gnu/findutils/findutils-4.4.2.tar.gz
    2426. # ftp://ftp.gnu.org/pub/gnu/fontutils/fontutils-0.7.tar.gz
    2427. # ftp://ftp.gnu.org/pub/gnu/g77/g77-0.5.23.tar.gz
    2428. # ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.4.2/gcc-4.4.2.tar.gz
    2429. # ftp://ftp.gnu.org/pub/gnu/gnutls/gnutls-2.8.4.tar.bz2
    2430. # ftp://ftp.gnu.org/pub/gnu/grep/grep-2.5.4.tar.gz
    2431. # ftp://ftp.gnu.org/pub/gnu/groff/groff-1.20.tar.gz
    2432. # ftp://ftp.gnu.org/pub/gnu/gzip/gzip-1.3.9.tar.gz
    2433. # ftp://ftp.gnu.org/pub/gnu/less/less-418.tar.gz
    2434. # ftp://ftp.gnu.org/pub/gnu/m4/m4-1.4.13.tar.gz
    2435. # ftp://ftp.gnu.org/pub/gnu/make/make-3.81.tar.gz
    2436. # ftp://ftp.gnu.org/pub/gnu/nano/nano-2.1.9.tar.gz
    2437. # ftp://ftp.gnu.org/pub/gnu/readline/readline-6.0.tar.gz
    2438. # ftp://ftp.gnu.org/pub/gnu/screen/screen-4.0.3.tar.gz
    2439. # ftp://ftp.gnu.org/pub/gnu/sed/sed-4.2.1.tar.gz
    2440. # ftp://ftp.gnu.org/pub/gnu/tar/cpio-2.8.tar.gz
    2441. # ftp://ftp.gnu.org/pub/gnu/tar/tar-1.22.tar.gz
    2442. # ftp://ftp.gnu.org/pub/gnu/termcap/termcap-1.3.tar.gz
    2443. # ftp://ftp.gnu.org/pub/gnu/termutils/termutils-2.0.tar.gz
    2444. # ftp://ftp.gnu.org/pub/gnu/wget/wget-1.12.tar.gz
    2445. # ftp://ftp.gnu.org/pub/gnu/which/which-2.20.tar.gz
    2446. # ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
    2447. # ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.1.tar.bz2
    2448. # ftp://xmlsoft.org/libxml2/libxml2-2.7.6.tar.gz
    2449. # ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
    2450. # http://c-ares.haxx.se/c-ares-1.6.0.tar.gz
    2451. # http://curl.haxx.se/download/curl-7.19.4.tar.gz
    2452. # http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz
    2453. # http://downloads.sourceforge.net/libpng/libpng-1.2.40.tar.gz
    2454. # http://downloads.sourceforge.net/sourceforge/docutils/docutils-0.5.tar.gz
    2455. # http://downloads.sourceforge.net/sourceforge/freetype/freetype-2.3.11.tar.gz
    2456. # http://downloads.sourceforge.net/sourceforge/ghostscript/ghostscript-8.70.tar.bz2
    2457. # http://downloads.sourceforge.net/sourceforge/mcrypt/mcrypt-2.6.8.tar.gz
    2458. # http://downloads.sourceforge.net/sourceforge/mhash/mhash-0.9.9.9.tar.gz
    2459. # http://downloads.sourceforge.net/sourceforge/strace/strace-4.5.18.tar.bz2
    2460. # http://lynx.isc.org/current/lynx2.8.8dev.1.tar.gz
    2461. # http://mirrors.kernel.org/gnu/libiconv/libiconv-1.13.1.tar.gz
    2462. # http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.5/pysqlite-2.5.5.tar.gz
    2463. # http://php.net/distributions/php-5.3.0.tar.gz
    2464. # http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg
    2465. # http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz
    2466. # http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz
    2467. # http://www.dillo.org/download/dillo-2.1.1.tar.bz2
    2468. # http://www.ijg.org/files/jpegsrc.v7.tar.gz
    2469. # http://www.libgd.org/releases/gd-2.0.35.tar.gz
    2470. # http://www.lua.org/ftp/lua-5.1.4.tar.gz
    2471. # http://www.lzop.org/download/lzop-1.02rc1.tar.gz
    2472. # http://www.mavetju.org/download/dnstracer-1.9.tar.gz
    2473. # http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
    2474. # http://www.oberhumer.com/opensource/lzo/download/minilzo-2.03.tar.gz
    2475. # http://www.python.org/ftp/python/2.6.3/Python-2.6.3.tgz
    2476. # http://www.python.org/ftp/python/3.1.1/Python-3.1.1.tgz
    2477. # http://www.sqlite.org/sqlite-3.6.12.tar.gz
    2478. # http://www.zlib.net/zlib-1.2.3.tar.gz
    2479. #
    2480. ############################################################################################################################################################
    2481.  
    2482.  
    2483.  
    2484. # Local Variables:
    2485. # mode:shell-script
    2486. # sh-shell:bash
    2487. # End:
     

    Załączone pliki:

    • Piwo Piwo x 1

Poleć tę stronę