Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

My shell profile

tree: d1d2700287

Fetching latest commit…

Cannot retrieve the latest commit at this time


My Bash Profile

This is Steve Francia’s fork of Mat Schaffer’s profile.


  • Reactive prompt – includes date and exit code of last command and git branch.
  • Tab completion for Git and Subversion
  • Tab completion for Rake, Maven 2 and Ant
  • Tab completion for ssh hosts on OS X.
  • Git aliases
  • ‘safeedit’ function that makes a timestamped backup copy of a file before editing
  • Basic java set up on solaris and Darwin
  • Maven memory settings
  • ‘profile_push’ function for pushing these files out to other servers
  • ‘link_dotfiles’ command that will create symlinks for all the files listed in the dotfiles directory
  • Auto setup of .foward file on Linux and Solaris
  • Integration with CDArgs
  • Autojump

SPF13 Enhancements

  • Bundling a bin directory so that autojump, etc work out of the box.
  • Tab completion for git flow
  • Extract (xt: extract all common compressions)
  • A better du (duf: du ordered by size)
  • Common bash aliases
  • Separate aliases for Linux and OS X

What’s it look like?

Feature Diagram


# Go home
cd ~

# Clone mine or your own fork
git clone git:// .profile.d

# All *.conf files are loaded alphabetically, so this will retain your original settings
mv .profile .profile.d/z_myoldsettings.conf

# .profile.d/init kicks off the whole thing
ln -s .profile.d/init .profile

# Make sure you don't have any .bash_profile or .bashrc hanging out which might override .profile
# and reload your profile
source .profile


Once installed you can now put any *.conf in ~/.profile.d and it’ll get loaded in alphabetical order. You can also put conf files in ~/.profile.d/`uname` to get platform-specific configuration or ~/.profile.d/$USER to get user-specific configuration. The load order (defined in the init file) is:

  1. .profile.d/init
  2. .profile.d/*.conf
  3. .profile.d/$USER/*.conf
  4. .profile.d/`uname`/*.conf
  5. .profile.d/$USER/`uname`/*.conf

Additional Installation

To install AutoJump

AutoJump comes ready to use out of the box. If you wish to update it follow the following steps
1. Goto
2. Download autojump.
3. Extract/Create in the following locations.

  • autojump to /usr/bin
  • to /etc/profile.d # already done for you ;)
  • autojump.1 to /usr/share/man/man1

To install CDargs

Profile contains support for cdargs, but requires the binary to be installed. It may already be on your system, but here are some basic directions if you need to install it.
1. Goto
2. Download the latest tarball and Extract
3. Run the following

$ configure
$ make

then become root and do:

# make install-strip

Planned features

  • Tab completion for ssh hosts in Solaris/Ubuntu
  • Single-command for SSH key distribution and profile distribution
Something went wrong with that request. Please try again.