Skip to content
My shell profile
VimL Shell Ruby Other
Pull request Compare This branch is 167 commits ahead, 87 commits behind trotter:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Darwin
Linux
SunOS
dotfiles
scripts
users
.gitignore
LICENSE
README.textile
autojump.conf
cdargs.conf
chef.conf
colors.conf
ec2.conf
editors.conf
environment.conf
git.conf
hoopla.conf
init
install.sh
java.conf
lein.conf
mvn.conf
profile.conf
rails.conf
ruby.conf
sbt.conf
ssh.conf
svn.conf
utils.conf
vagrant.conf
web.conf

README.textile

My Bash Profile

This is the profile that I’m now using across a number of machines that I administer. Most of the tricks I use are fairly general and could be reused by anyone.

What’s it look like?

Feature Diagram

Usage

# Go home
cd ~

# Clone mine or your own fork
git clone git://github.com/matschaffer/profile.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

From here 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

Features

  • 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

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.