43 lines
1.9 KiB
Markdown
43 lines
1.9 KiB
Markdown
# 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.
|