Skip to content

relaynetwork/profile

 
 

Repository files navigation

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

Releases

No releases published

Packages

No packages published

Languages

  • Vim Script 87.7%
  • Shell 8.2%
  • Ruby 3.9%
  • Other 0.2%