shell-base/README.md

43 lines
1.9 KiB
Markdown
Raw Normal View History

# Bash Shell Setup Repo
A better way to keep organized and share interactive (.bashrc) environment, aliases, functions, modules
## Install
Clone to a directory
`git clone https://git.kebler.net/bashrc <repo path>` e.g. /opt/shell
now edit your `~/.bashrc` with nano or other available editor
add this
```
export BASH_SHELL_REPO=<repo path>/setup.
source $BASH_SHELL_REPO/setup.sh
```
The idea is to keep the .bashrc file completely clean and manage this repo instead
so you should really find a home for all the existing content of your .bashrc file within the repo
Every file in `env` `functions`,`aliases` and `misc` subdirectories will be sourced in that order (in setup.sh). Within each folder all files are sourced except ones ending with a `.off` extension, starting with `.` and the README.md file plus any in any subfolder except `/archive` or ` /dep`
The sourced files in this repo should be NOT be user/machine/network specific
if you include any of these environment variables all files in there directories will be sourced where
export BASH_SHELL_USER=<path> # will be in home/<USER>
export BASH_SHELL_MACHINE=<path> #parent directory e.g. opt/shell/machine
export BASH_SHELL_NETWORK=<path> #parent directory e.g. opt/shell/network
if there is a script setup.sh in the root of these directoies it will be run. If not then all files no matter how deep will be sourced in alpha order order.
For those
If need to turn off a file just add `.off` to the file name rather than move or delete the file...simple.
If you are really done with something but want to keep a copy in the repo move it to /archive folder within the primary subfolders
if sourcing some file depends on another preface with numbers to put it before. Functions are all sourced before aliases so can be refered to there.
Be aware that an alias or function set in the repo could be subsuming some existing binary or script.