post your .bashrc profiles!

Discussion in 'all things UNIX' started by x942, Nov 7, 2011.

Thread Status:
Not open for further replies.
  1. x942

    x942 Guest

    I have been doing alot of tinkering with bashrc so I thought we should share what we have!

    Code:
    # .bashrc
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
    	. /etc/bashrc
    fi
    
    # User specific aliases and functions
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
    
    # Pager
    export PAGER=most
    
    # If not running interactively, don't do anything
    [ -z "$PS1" ] && return
    
    # don't put duplicate lines in the history. See bash(1) for more options
    # don't overwrite GNU Midnight Commander's setting of `ignorespace'.
    HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
    # ... or force ignoredups and ignorespace
    HISTCONTROL=ignoreboth
    
    # append to the history file, don't overwrite it
    shopt -s histappend
    
    # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
    
    # check the window size after each command and, if necessary,
    # update the values of LINES and COLUMNS.
    shopt -s checkwinsize
    
    # make less more friendly for non-text input files, see lesspipe(1)
    #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
    
    # set variable identifying the chroot you work in (used in the prompt below)
    if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
        debian_chroot=$(cat /etc/debian_chroot)
    fi
    
    # set a fancy prompt (non-color, unless we know we "want" color)
    case "$TERM" in
        xterm-color) color_prompt=yes;;
    esac
    
    # uncomment for a colored prompt, if the terminal has the capability; turned
    # off by default to not distract the user: the focus in a terminal window
    # should be on the output of commands, not on the prompt
    force_color_prompt=yes
    
    if [ -n "$force_color_prompt" ]; then
        if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
        else
        color_prompt=
        fi
    fi
    
    if [ "$color_prompt" = yes ]; then
        PS1='\[\033[1;34m\]┌────[\u@\h]──────────────────────────────────────────────────────[\t]────┐ \n└───>[${PWD}] \$ \[\033[0;34m\]'
    else
        PS1='┌────[\u@\h]──────────────────────────────────────────────────────[\t]────┐ \n└───>[${PWD}] \$ '
    fi
    unset color_prompt force_color_prompt
    
    # If this is an xterm set the title to user@host:dir
    case "$TERM" in
    xterm*|rxvt*)
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac
    
    # Alias definitions.
    # You may want to put all your additions into a separate file like
    # ~/.bash_aliases, instead of adding them here directly.
    # See /usr/share/doc/bash-doc/examples in the bash-doc package.
    
    #if [ -f ~/.bash_aliases ]; then
    #    . ~/.bash_aliases
    #fi
    
    # enable color support of ls and also add handy aliases
    if [ -x /usr/bin/dircolors ]; then
        test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
        alias ls='ls --color=auto'
        #alias dir='dir --color=auto'
        #alias vdir='vdir --color=auto'
    
        #alias grep='grep --color=auto'
        #alias fgrep='fgrep --color=auto'
        #alias egrep='egrep --color=auto'
    fi
    
    # some more ls aliases
    #alias ll='ls -l'
    #alias la='ls -A'
    #alias l='ls -CF'
    # enable programmable completion features (you don't need to enable
    # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
    # sources /etc/bash.bashrc).
    if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
        . /etc/bash_completion
    fi
    
    
    #------------------------------------------////
    # Colors:
    #------------------------------------------////
    black='\e[0;30m'
    blue='\e[0;34m'
    green='\e[0;32m'
    cyan='\e[0;36m'
    red='\e[0;31m'
    purple='\e[0;35m'
    brown='\e[0;33m'
    lightgray='\e[0;37m'
    darkgray='\e[1;30m'
    lightblue='\e[1;34m'
    lightgreen='\e[1;32m'
    lightcyan='\e[1;36m'
    lightred='\e[1;31m'
    lightpurple='\e[1;35m'
    yellow='\e[1;33m'
    white='\e[1;37m'
    nc='\e[0m'
    
    #------------------------------------------////
    # Colors:
    #------------------------------------------////
    black='\e[0;30m'
    blue='\e[0;34m'
    green='\e[0;32m'
    cyan='\e[0;36m'
    red='\e[0;31m'
    purple='\e[0;35m'
    brown='\e[0;33m'
    lightgray='\e[0;37m'
    darkgray='\e[1;30m'
    lightblue='\e[1;34m'
    lightgreen='\e[1;32m'
    lightcyan='\e[1;36m'
    lightred='\e[1;31m'
    lightpurple='\e[1;35m'
    yellow='\e[1;33m'
    white='\e[1;37m'
    nc='\e[0m'
    
    #------------------------------------------////
    # Aliases:
    #------------------------------------------////
    ## make ls list by size
    ##alias ls='du -s */* | sort -n'
    alias findbig='find . -type f -exec ls -s {} \; | sort -n -r | head -5'
    alias music='vlc'
    alias ports='netstat -nape --inet'
    alias ping='ping -c 4'
    #alias ns='netstat -alnp --protocol=inet'
    #alias update='sudo'
    #alias refresh='sudo pacman -Syy'
    alias ls='ls --color=always'
    alias la='ls -Al'
    alias lx='ls -lXB'
    alias lk='ls -lSr'
    alias lc='ls -lcr'
    alias lu='ls -lur'
    alias lr='ls -lR'
    alias lt='ls -ltr'
    alias lm='ls -al |more'
    alias lr='ls -R' # using ls recursively - Handy with grep
    alias reload='source ~/.bashrc'
    alias bashmod='nano ~/.bashrc'
    alias secscan='sudo rkhunter -c'
    alias update='sudo yum update'
    alias byebye='sudo poweroff'
    alias chrome='/opt/google/chrome/chrome'
    alias download='sudo yum install'
    #------------------------------------------////
    # Functions and Scripts:
    #------------------------------------------////
    localnet ()
    {
    /sbin/ifconfig | awk /'inet addr/ {print $2}'
    echo ""
    /sbin/ifconfig | awk /'Bcast/ {print $3}'
    echo ""
    }
    upinfo ()
    {
    echo -ne "${green}$HOSTNAME ${red}uptime is ${cyan} \t ";uptime | awk /'up/ {print $3,$4,$5,$6,$7,$8,$9,$10}'
    }
    cd()
    {
      if [ -n "$1" ]; then
        builtin cd "$@" && ls
      else
        builtin cd ~ && ls
      fi
    }
    encrypt ()
    {
    gpg -ac --no-options "$1"
    }
    
    decrypt ()
    {
    gpg --no-options "$1"
    }
    
    extract()
    {
    if [ -f "$1" ] ; then
    case "$1" in
    *.tar.bz2) tar xjf "$1" ;;
    *.tar.gz) tar xzf "$1" ;;
    *.tar.Z) tar xzf "$1" ;;
    *.bz2) bunzip2 "$1" ;;
    *.rar) unrar x "$1" ;;
    *.gz) gunzip "$1" ;;
    *.jar) unzip "$1" ;;
    *.tar) tar xf "$1" ;;
    *.tbz2) tar xjf "$1" ;;
    *.tgz) tar xzf "$1" ;;
    *.zip) unzip "$1" ;;
    *.Z) uncompress "$1" ;;
    *) echo "'$1' cannot be extracted." ;;
    esac
    else
    echo "'$1' is not a file."
    fi
    }
    
    #------------------------------------------////
    # Prompt:
    #------------------------------------------////
    
    PS1='\[\033[01;32m\]\u\[\033[01;34m\]@\[\033[01;31m\]\h\[\033[00;34m\]{\[\033[01;34m\]\w\[\033[00;34m\]}\[\033[01;32m\]:\[\033[00m\]'
    
    #------------------------------------------////
    # System Information:
    #------------------------------------------////
    clear
    echo -e "${purple}Welcome To X942's System"
    echo -e  "${purple}Authorized Users Only"
    echo -e  "${purple}Unauthorized is strictly prohibited and will be prosecuted to the fullest"
    echo -e  "${purple}Extent of the law."
    echo -e  "${red}Fedora 15";
    echo ""
    echo -ne "${red}Today is:\t\t${cyan}" `date`; echo ""
    echo -e "${red}Kernel Information: \t${cyan}" `uname -smr`
    echo -ne "${cyan}";upinfo;echo ""
    echo -e "${lightgray}"; cal -1
    
    Parts were taken from another poster elsewhere.

    I love aliases so much easier! :thumb:
     
  2. tlu

    tlu Guest

    I haven't modified the standard Ubuntu .bashrc but I'm using the following .bash_aliases file:

    Code:
    alias u="sudo apt-get update ; sudo apt-get upgrade"
    alias U="sudo apt-get update ; sudo apt-get dist-upgrade"
    alias i="sudo apt-get install"
    alias r="sudo apt-get remove"
    alias s="wajig search"
    alias S="wajig show"
    alias up="sudo apt-get dist-upgrade"
    alias ar="sudo apt-get autoremove"
    alias cleanup="wajig autoremove ; wajig auto-clean ; wajig purge-orphans"
     
  3. x942

    x942 Guest

    Aliases make life so much easier. I have one (bashmod) that lets me modify .bashrc quickly :D

    Also what is "wajig"? Never heard of it before.
     
  4. Ocky

    Ocky Registered Member

    Joined:
    May 6, 2006
    Posts:
    2,677
    Location:
    George, S.Africa
    Like tlu I aslo 'rediscovered' wajig. Check it out here
    and
    the commands list
     
  5. tlu

    tlu Guest

    Another idea is adding

    to .bashrc - see this site. The command offers the following options (you have to loggoff and logon again first):

    apt-history install | remove | upgrade | rollback

    Example output:

     
  6. Ocky

    Ocky Registered Member

    Joined:
    May 6, 2006
    Posts:
    2,677
    Location:
    George, S.Africa
    Nice ! (mack_guy will be pleased with the rollback feature). Oops, I misunderstood the rollback function - not like that in yum history at all.
    Did you compile from the tar.bz2 or did you install the 32 bit deb on your
    64 bit system ? I suppose you may have had 32 bit libraries installed like I have, and simply installed the deb ?

    > Wieder mal ein Knüller von tlu ! :D <
     
    Last edited: Dec 4, 2011
  7. tlu

    tlu Guest

    Neither :D Adding that function to .bashrc is sufficient.

    Thanks - but I didn't invent it, just found it somewhere ;)
     
  8. Ocky

    Ocky Registered Member

    Joined:
    May 6, 2006
    Posts:
    2,677
    Location:
    George, S.Africa
    There may be something to be concerned about. The dpkg.log files - the older
    ones - are gzipped. So I don't think rollback/install/upgrade/remove will work when a gzip needs to be accessed.
    In this regard I have found a script which purports to fix this.

    Code:
    #!/bin/bash
    
    ### Author:      Benjamin York
    ### Date:        2011-01-08
    ###
    ### Based On:
    ### http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
    ###
    ### Hosted At:
    ### https://github.com/blyork/apt-history
    ### 
    ### Git Repository:
    ### git://github.com/blyork/apt-history.git
    ###
    ### Description:
    ### Parses dpkg log files to get package installation, removal, and rollback
    ### information.
    ###
    ### Ubuntu Server likes to split up the dpkg.log file and then compress the
    ### various pieces. After seeing LinuxCommando's function, I added functionality
    ### to pull the pieces back together. I also slightly adjusted the output to
    ### avoid false positives.
    
    function echoHistory(){
        if [[ $1 == *.gz ]] ; then
            gzip -cd $1
        else
            if [[ $1 == *.log || $1 == *.log.1 ]] ; then
                cat $1
            else
                echo "\*\*\* Invalid File: ${1} \*\*\*" 1>&2
            fi
        fi
    }
    
    FILES=( `ls -rt /var/log/dpkg.log*` ) || exit 1
    
    for file in "${FILES[@]}"
    do
        case "$1" in
            install)
                echoHistory $file | grep " install "
            ;;
    
            upgrade|remove)
                echoHistory $file | grep " ${1} "
            ;;
                      
            rollback)
                echoHistory $file | grep upgrade | \
                    grep "$2" -A10000000 | \
                    grep "$3" -B10000000 | \
                    awk '{print $4"="$5}'
            ;;
    
            list)
                echoHistory $file
            ;;
    
            *)
                echo "Parameters:"
                echo "     install  - Lists all packages that have been installed."
                echo "     upgrade  - Lists all packages that have been upgraded."
                echo "     remove   - Lists all packages that have been removed."
                echo "     rollback - Lists rollback information."
                echo "     list     - Lists all contents of dpkg logs."
                break
            ;;
        esac
    done
    
    exit 0
    
    BTW, tlu, you did use sudo didn't you ?
     
    Last edited: Dec 4, 2011
  9. vasa1

    vasa1 Registered Member

    Joined:
    May 1, 2010
    Posts:
    4,152
    Do we run that as admin?
     
  10. Ocky

    Ocky Registered Member

    Joined:
    May 6, 2006
    Posts:
    2,677
    Location:
    George, S.Africa
    su -i is the one to use there vasa1 ... :D really deep root access. :blink:
     
  11. Ocky

    Ocky Registered Member

    Joined:
    May 6, 2006
    Posts:
    2,677
    Location:
    George, S.Africa
    Here is another to extract archives. (I see x942 has similar function script)

    Code:
    ##################################################
    # Extract - extract most common compression      #
    # types                                          #
    ##################################################
     
    function extract() {
      local e=0 i c
      for i; do
        if [[ -f $i && -r $i ]]; then
            c=''
            case $i in
              *.t@(gz|lz|xz|b@(2|z?(2))|a@(z|r?(.@(Z|bz?(2)|gz|lzma|xz)))))
                     c='bsdtar xvf' ;;
              *.7z)  c='7z x'       ;;
              *.Z)   c='uncompress' ;;
              *.bz2) c='bunzip2'    ;;
              *.exe) c='cabextract' ;;
              *.gz)  c='gunzip'     ;;
              *.rar) c='unrar x'    ;;
              *.xz)  c='unxz'       ;;
              *.zip) c='unzip'      ;;
              *)     echo "$0: cannot extract \`$i': Unrecognized file extension" >&2; e=1 ;;
            esac
            [[ $c ]] && command $c "$i"
        else
            echo "$0: cannot extract \`$i': File is unreadable" >&2; e=2
        fi
      done
      return $e
    }
    
    
    
    
    Example on a 7zip..

    severin@severin-desktop:~/Desktop$ extract new.7z

    7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
    p7zip Version 9.20 (locale=en_ZA.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

    Processing archive: new.7z

    Extracting BitDefender Command Line Options
    Extracting BitDefender Install Instructions
    Extracting Bitdefender email script.mht

    Everything is Ok

    Files: 3
    Size: 145747
    Compressed: 70131


    And renaming the previously extracted files.

    severin@severin-desktop:~/Desktop$ extract new.7z

    7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
    p7zip Version 9.20 (locale=en_ZA.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

    Processing archive: new.7z

    file BitDefender Command Line Options
    already exists. Overwrite with
    BitDefender Command Line Options?
    (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? u
    Extracting BitDefender Command Line Options
    Extracting BitDefender Install Instructions
    Extracting Bitdefender email script.mht

    Everything is Ok

    Files: 3
    Size: 145747
    Compressed: 70131
    severin@severin-desktop:~/Desktop$
     
    Last edited: Dec 4, 2011
  12. tlu

    tlu Guest

    Not necessary.
     
  13. tlu

    tlu Guest

    Thanks, Ocky - yes, that's actually a better one.:thumb:
     
  14. iceni60

    iceni60 ( ^o^)

    Joined:
    Jun 29, 2004
    Posts:
    5,116
    there are some nice things in this bashrc if you care to go through it
    http://gnome-look.org/content/show.php/Ultimate%20Bashrc%20File?content=129746

    right now there seems to be a database error, but i'm sure it will get worked out soon. here's the cached paged
    http://webcache.googleusercontent.com/search?q=cache:wrhaTd-JUuEJ:gnome-look.org/content/show.php%3Fcontent%3D129746+&cd=1&hl=en&ct=clnk&gl=uk&client=ubuntu

    i looked through it and found it has some stuff i made in the Network/Internet -oriented stuff section :cool: (not sure if that's a good thing, or not lol)


    i had the file already downloaded and uploaded it to one of those multiupload sites until it can be downloaded from gnome-look again :)

    $ md5sum bashrc.tar.gz
    e50af765bb3e41470de6c15559c4fab5 bashrc.tar.gz

    http://www.zshare.net/download/97063735619438f5/
    https://rapidshare.com/#!download|52l34|1462077921|bashrc.tar.gz|148|R~B46FEB2669BC115D074416697B3D7A6D|0|0
    http://hotfile.com/dl/136911702/b010e30/bashrc.tar.gz.html
    http://www.mediafire.com/?8ff66pi82dp7mub#1
    http://turbobit.net/download/free/kx73o85jh0xm
     
  15. raspb3rry

    raspb3rry Registered Member

    Joined:
    Jun 8, 2010
    Posts:
    37
    Code:
    # Check for an interactive session
    [ -z "$PS1" ] && return
    
    # Start tmux if it is not running already
    [[ $TERM != "screen-256color" ]] && tmux attach #&& exit
    
    # FRIGGIN' COLOURS!
    if [[ ${EUID} == 0 ]] ; # We are root 
     then
        PS1='\[\e[1;31m\]\u\[\e[m\]:\[\e[0;34m\]\w\[\e[m\] \[\e[0;31m\]\$ \[\e[m\]\[\e[0;32m\]'
     else
        PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[0;34m\]\w\[\e[m\] \[\e[0;32m\]\$\[\e[m\] \[\e[0;37m\]'
    fi
    
    # Autocomplete sudo
    complete -sf sudo
    
    # check the window size after each command and, if necessary,
    # update the values of LINES and COLUMNS.
    shopt -s checkwinsize
    
    # Include the following files:
    
    # Exports
    if [ -f /home/raspb3rry/.bash_exports ]; then
        source /home/raspb3rry/.bash_exports
    fi
    
    # Aliases
    if [ -f /home/raspb3rry/.bash_aliases ]; then
        source /home/raspb3rry/.bash_aliases
    fi
    
    # Functions
    if [ -f /home/raspb3rry/.bash_functions ]; then
        source /home/raspb3rry/.bash_functions
    fi
    
    # Advanced bash-completion (requires the package "bash-completion")
    if [ -f /etc/bash_completion ]; then
        source /etc/bash_completion
    fi
    
    if [ -f /home/raspb3rry/.bash_colours ]; then
        source /home/raspb3rry/.bash_colours
    fi
    
    Got tired of having an insanely huge .bashrc, so I decided to split it up.

    I'm running tmux inside all my terminals.

    Another great thing to try is to set PS1 to
    Code:
    PS1="C:\$( pwd | sed -e 's:/:\\\\\:g' -e 's:\\\\\*\$:\\\\\:g' )> "
     
Loading...
Thread Status:
Not open for further replies.