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.
# 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 .profile.d/*.conf file, or put it in a folder for your `uname` (Darwin, Linux, SunOS are already there). The load order is.
- .profile.d/init
- .profile.d/`uname`/init
- .profile.d/*.conf
- .profile.d/`uname`/*.conf
- Tab completion for ssh hosts on OS X.
- Tab completion for rake and ant tasks
- Git aliases
- “Safe” edit. Makes a 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
- Reactive prompt. Includes date and exit code of last command if error condition.
- Auto setup of .foward file on Linux and Solaris
- Integration with CDArgs (http://bit.ly/ZHvBF)
- Tab completion for ssh hosts in Solaris
- Single-command for SSH key distribution and profile distribution
- Auto setup of .irbrc, .vimrc, .ssh/config, .pythonrc.py, etc…