---
title: Profile Scripts Overview
description: Learn about how Install Doctor incorporates well-thought, meticulously organized, and performant Bash / ZSH profile and environment setup scripts.
sidebar_label: Profile Scripts
slug: /scripts/profile
---

Install Doctor's expertly configured and optimized system configuration collection includes masterfully created Bash / ZSH profile scripts. These scripts are seperated into a handful of files that are only imported when necessary.

The default configuration ensures ZSH is the default shell. When combined with the [Oh-My-ZSH](https://ohmyz.sh/) framework, this gives the user access to advanced auto-completion, type ahead, and predictive features.

A well-optimized Bash configuration is also provided for cases where a simpler terminal shell engine might be more desirable. Bash makes use of the [Bash It!](https://github.com/Bash-it/bash-it) framework.

## Profile Scripts

The Bash / ZSH entrypoint scripts are stored at `~/.bashrc` and `~/.zshrc`. Both of these configurations include imports that reference a few different files located in the `home/dot_config/shell/` folder. This way, shell initialization code that should be common to both the Bash and ZSH configurations is stored in a single file, reducing duplicate code. Bash-specific and ZSH-specific configuration logic is stored in their respective `~/.*rc` files.

The following chart outlines the purpose of the various shared profile setup scripts:

| File Path                        | Description                                                        |
|----------------------------------|--------------------------------------------------------------------|
| [`~/.config/shell/aliases.sh`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/shell/aliases.sh.tmpl) | Stores command aliases / shortcuts |
| [`~/.config/shell/exports.sh`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/shell/exports.sh.tmpl) | Houses all the environment variables |
| [`~/.config/shell/functions.sh`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/shell/functions.sh.tmpl) | Stored all the functions / more-complicated aliases |
| [`~/.config/shell/motd.sh`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/shell/motd.sh.tmpl) | Includes code that invokes a useful, pretty MOTD |
| [`~/.config/shell/private.sh`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/shell/private.sh.tmpl) | Stores environment variables that are intended to be private (e.g. API keys) |
| [`~/.config/shell/profile.sh`](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_config/shell/profile.sh.tmpl) | Main profile script that is invoked by `~/.bashrc` and `~/.zshrc` that includes all of the other scripts as well as some other initialization logic |

## Related Links

* [Profile scripts folder](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/shell)
* [`~/.bashrc` source file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_bashrc)
* [`~/.zshrc` source file](https://github.com/megabyte-labs/install.doctor/blob/master/home/dot_zshrc)
