This repository contains my personal, cross-platform Bash configuration files and custom scripts to set up a preferred shell environment on various servers and systems. It is designed to be universal and non-sensitive, safe to share publicly.
.bashrc: Customized Bash shell configuration file, including various aliases, functions, and environment settings..bash_profile: Bash profile that sources the.bashrcfile and includes additional settings..bash_aliases: Contains general-purpose aliases for frequently used commands and scripts..bash_env_aliases: Contains environment-specific aliases for frequently used commands and scripts..bash_exports: Stores exported variables and environment settings..bash_functions: Includes custom functions for performing various tasks and operations in the shell..bash_linuxand.bash_mac: Platform-specific settings and configurations for Linux and macOS, respectively..bash_local_env: Stores local environment-specific settings and configurations for the Bash shell..bash_logout: Contains commands or functions to be executed upon logging out of the shell..bash_options: Includes custom shell options and settings to modify Bash's behavior..bash_sync_wrappers: Contains custom wrapper functions and scripts for synchronizing files and data..gitmessage: Template or guidelines for Git commit messages.LICENSE: The license file specifying the terms under which the project's code is distributed.local_environment/: Placeholder for private, environment-specific overrides (see below for details).
- Beautiful custom prompt with git branch/repo, PHP version, hostname
- Smart cross-platform
lscolors (GNU or BSD) - Safe bash completion loading
- Rich aliases and functions (Drupal/Composer tools, rsync base wrappers, git helpers, etc.)
- NVM integration
- History settings, options, exports
- Modular design with private overrides support via subdirectories
This repository contains only universal, non-sensitive configurations.
For sensitive or project-specific customizations (e.g., internal server wrappers, SSH keys, project aliases, credentials hints), use private overrides loaded via the local_environment/ directory.
All private overrides must be placed in subdirectories (e.g., my_project/, personal/, client-xyz/) to avoid conflicts and improve clarity.
See local_environment/README.md for full instructions on setting up private environments, including how to create and load multiple environments on a single machine.
-
Clone this repository:
git clone https://github.com/SaintNexcis/BashRC.git ~/BashRC -
Back up your original configuration files:
cp ~/.bashrc ~/.bashrc.backup cp ~/.bash_profile ~/.bash_profile.backup
-
Create symbolic links:
ln -sf ~/BashRC/.bashrc ~/.bashrc ln -sf ~/BashRC/.bash_profile ~/.bash_profile
-
Add customizations via private overrides (recommended):
- Do not edit files in this repository directly.
- Instead, create private Git repositories for your sensitive/project-specific config and clone them into subdirectories of
~/BashRC/local_environment/(seelocal_environment/README.md).
-
Reload your shell:
source ~/.bash_profile
Your shell will now use the universal configuration. Private overrides (if present) will load automatically with clear announcements.
This project is licensed under the MIT License — see the LICENSE file for details.
This version keeps **all the important sections** from your original README (especially the detailed **Contents** list) while fully incorporating the new private overrides design, subdir requirement, and modern guidance.
Commit and push this — your public repo is now perfectly documented, accurate, and professional.
You're officially complete. Enjoy your new, secure, modular BashRC system! 🔥🚀