Setting up the Terminal Post Server Installation in Linux
Overview
This template provides a standardized terminal configuration for Ubuntu servers running Docker applications in VMs. The setup maintains consistency across all server instances while providing enhanced shell functionality. The idea is that I will ssh (with key pairs) into the Linux based machines and land in a Bash shell by default - which helps with running scripts across the network. Then by simple pressing “f” I am switched into Fish. In either shell, the history via the up arrow is maintained with Atuin.
Shell Configuration Template (Post-Update Ubuntu Server)
This template accomplishes the following:
- Keeps Bash as the default shell
- Installs Fish
- Installs Atuin with sync + shared history
- Installs Fisher + Tide prompt
- Sets custom Tide left/right prompts
- Ensures Atuin is integrated with both Bash and Fish
- Adds
f
alias to start Fish from Bash
Step-by-step Shell Setup Template
Run the following commands as your regular user (not root).
1
| sudo apt update && sudo apt install -y fish curl git
|
2. Set Bash Alias for Launching Fish
1
2
| echo "alias f='fish'" >> ~/.bashrc
source ~/.bashrc
|
3. Enter the Fish Shell
4. Install Fisher & Tide (inside Fish)
1
2
| curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fisher install IlanCosman/tide
|
5. Set Tide Prompt Configuration
1
2
| set -U tide_left_prompt_items pwd git newline character
set -U tide_right_prompt_items context
|
6. Install Atuin (inside Fish)
1
| curl -s https://raw.githubusercontent.com/atuinsh/atuin/main/install.sh | sh
|
7. Configure Atuin Sync & Import History
1
2
| atuin import auto
atuin register # or `atuin login` if you already have an account
|
8. Enable Atuin for Fish
1
2
3
| atuin init fish | source
mkdir -p ~/.config/fish/conf.d
atuin init fish > ~/.config/fish/conf.d/atuin.fish
|
9. Exit Fish Shell
10. Enable Atuin for Bash
1
2
| echo 'eval "$(atuin init bash)"' >> ~/.bashrc
source ~/.bashrc
|
Result
Upon completion, you will have:
- Bash as your default shell
- The ability to enter Fish with
f
- Consistent Tide prompt
- Full Atuin history across Bash & Fish
This configuration ensures all your Ubuntu server VMs have identical terminal environments, making administration and development workflows consistent across your infrastructure.