Skip to content

dscleaver/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 .profile.d/*.conf file, or put it in a folder for your `uname` (Darwin, Linux, SunOS are already there). The load order is.

  1. .profile.d/init
  2. .profile.d/`uname`/init
  3. .profile.d/*.conf
  4. .profile.d/`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

Planned features

  • Tab completion for ssh hosts in Solaris
  • Single-command for SSH key distribution and profile distribution

About

My shell profile

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 85.7%
  • Ruby 7.1%
  • Perl 6.9%
  • Other 0.3%