This repository contains all of my personal automation scripts and tools.
| Script Folder | Global Command | Description |
|---|---|---|
| 📁 repo-updater | update |
Automatically loops through multiple local repositories and fast-forwards all active branches. |
| 📁 brave-profiles | brave-profile |
Interactively creates fully isolated Brave browser profiles, each with its own launcher, window name and optional custom DNS. |
| 📁 (More Coming Soon...) |
Each folder has its own README with features, prerequisites, usage and troubleshooting.
I store all of my scripts in this central repository and execute them globally by symlinking them to my ~/.local/bin/ directory. Because the commands are symlinks, a git pull updates every command instantly with no re-linking needed.
When on a new machine, clone the repo once, then symlink the scripts you want so you can run them from anywhere in your terminal:
# 1. Clone the repository (adjust the path to wherever you keep your projects)
git clone git@github.com:JaMuad/Scripts.git ~/project/Scripts
# 2. Make sure your local bin directory exists
mkdir -p ~/.local/bin
# 3. Create a symlink for each script you want to use
ln -s ~/project/Scripts/repo-updater/update ~/.local/bin/update
ln -s ~/project/Scripts/brave-profiles/brave-profile ~/.local/bin/brave-profile
# 4. Make sure the original scripts are executable
chmod +x ~/project/Scripts/repo-updater/update ~/project/Scripts/brave-profiles/brave-profileTo see which commands you have installed and where each one points:
ls -l ~/.local/binWarning
Broken Symlinks (Moving the Project)
Symlinks use absolute, exact paths. If you ever move this repository to a different folder (e.g. from ~/project/ to ~/Documents/), the symlink will break and your commands will stop working (outputting a command not found error). If this happens, simply delete the old link and recreate it pointing to the new location:
rm ~/.local/bin/update
ln -s ~/Documents/Scripts/repo-updater/update ~/.local/bin/updateIf you've never used ~/.local/bin/ before, your terminal needs to know to look there for commands. Check first, since many distros (including Fedora and Ubuntu) already include it:
echo "$PATH" | tr ':' '\n' | grep -x "$HOME/.local/bin"If that prints the path, you're done. If it prints nothing, add it:
- Open your shell config file. Use
~/.bashrcfor Bash (the default on Fedora, Ubuntu and Debian) or~/.zshrcfor Zsh (the default on macOS and Kali):nano ~/.bashrc - Scroll to the very bottom of the file and paste this exact line:
export PATH="$HOME/.local/bin:$PATH"
- Save the file (if using nano, press
Ctrl+O, thenEnter, thenCtrl+Xto exit). - Reload your terminal so the changes take effect immediately:
source ~/.bashrc
Once your PATH is set up and the script is symlinked, you can execute it from any folder simply by typing its name!
For example:
update # run the repo updater
brave-profile # create a new isolated Brave profile- Do not commit actual
.conffiles. Always use.conf-exampletemplates and keep your local, personal configurations excluded from Git. - Add
*.confto a global.gitignoreor this repository's.gitignoreto prevent accidentally uploading sensitive paths or usernames. - Run
chmod +xbefore committing a new script. Git stores the executable flag, and downloaded files usually lose it. - Keep scripts free of personal data. Use
$HOMEinstead of hard-coded paths, and generic examples instead of real account or profile names.