Files: ~/.profile, ~/.profile.d/00-env.sh, ~/.profile.d/10-aliases.sh, ~/.profile.d/20-functions.sh, ~/.profile.d/30-tools.sh
Executed for login shells. Three jobs:
~/.bashrc if bash is running~/bin and ~/.local/bin to PATH~/.newuser check)export EDITOR=micro export VISUAL=micro export PAGER=less export LESS="-R" # pass ANSI colours through less export PATH="$HOME/bin:$HOME/.local/bin:$PATH" export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export TZ=America/Calgary export TERM=xterm-256color export COLORTERM=truecolor export HISTSIZE=10000 export HISTFILESIZE=20000 export HISTCONTROL=ignoreboth:erasedups export GPG_TTY=$(tty)
Aliases with availability checks — gracefully falls back to standard tools:
# eza replaces ls (if available) if command -v eza &> /dev/null; then alias ls='eza --icons --git' alias ll='eza -l --icons --git' alias la='eza -la --icons --git' alias lt='eza --tree --level=2 --icons --git' fi # ripgrep replaces grep (if available) if command -v rg &> /dev/null; then alias grep='rg' fi # bat replaces cat/less (if available) if command -v bat &> /dev/null; then alias cat='bat' alias less='bat' fi # fastfetch replaces neofetch (if available) if command -v fastfetch &> /dev/null; then alias neofetch='fastfetch' fi alias ttbp='~/.ttbp/bin/ttbp' alias town='town'
| Function | Usage | Description |
|---|---|---|
mkcd | mkcd dirname | mkdir + cd in one step |
extract | extract file.tar.gz | Universal archive extractor (tar, zip, bz2, rar, 7z…) |
replace | replace old new file | sed in-place find/replace |
ff | ff pattern | Find files by name pattern |
fd | fd pattern | Find directories by name pattern |
myip | myip | Get current public IP (via ifconfig.me) |
backup | backup file | Copy file with datestamped suffix |
gitinit | gitinit | git init + initial commit |
path | path | Print PATH one entry per line |
All wrapped in availability checks:
| Tool | Init method |
|---|---|
| fzf | Sources ~/.config/fzf/fzf.bash |
| starship | eval “$(starship init bash)” |
| nvm | Sources $NVM_DIR/nvm.sh |
| pyenv | eval “$(pyenv init -)” |
| rbenv | eval “$(rbenv init -)” |
| direnv | eval “$(direnv hook bash)” |
| asdf | Sources ~/.asdf/asdf.sh |