ABK tool environment setup for developers
[TOC]
- Quick automated install of required developer tools
- Quick automated install of required developer apps
- Quick automated install of developer fonts
- Easy updates
- Easy user friendly prompt config
- Useful aliases
- Company wide password manager (WIP)
- MacOS
- Linux / Debian distro
- Linux / Ubuntu distro
- Linux / Raspbian distro
- Windows
- /bin/bash
- /bin/csh
- /bin/ksh453945
- /bin/sh
- /bin/tcsh
- /bin/zsh
To determine what shell is currently used in your environment, run following command in your terminal:
echo $SHELL
MacOS users: macOS switched the default shell from bash
to zsh
with the release of macOS Catalina (version 10.15). If you are still using bash
, recommendation is to switch to zsh
, since bash
is not being updated on MacOS. To change shell:
chsh -s /bin/zsh
Linux users: zsh
or bash
... what ever floats your boat :)
- pre-installed homebrew tool: brew is a command line tool to install apps and tools on MacOS. To install brew, run and follow prompt requests:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
There are no pre-requisites for Linux. We will use apt
tool to install packages. There is home brew for Linux, called Linuxbrew, but the installation packages are not widely available yet.
If you want to specify which tools are installed, please take a look at the file tools.json
tool | description |
---|---|
awscli | provides a unified command line interface to Amazon Web Services |
direnv | can load and unload env variables depending on the current project directory |
git | Newest version of git |
gnuPG | Gnu Privacy Guard: tool to create and maintain GPG keys |
jq | is a lightweight and flexible command-line JSON processor |
nmap | network scanner to discover hosts and services on a computer network |
nodenv | lets you easily switch between multiple versions of nodejs |
oh-my-posh | lets you easiliy configure your terminal prompt |
parallel | CLI tool to execute shell commands in parallel |
pass | password manager, which works well with direnv tool |
pyenv | lets you easily switch between multiple versions of Python |
pyenv-virtualenv | is a pyenv plugin, which manages virtualenvs for Python |
serverless | lets you deploy serverless infrastructure services to AWS |
tfenv | lets you easily switch between multiple versions of Terraform |
tree | lists files in tree from |
wget | utility for downloading files from the web |
yq | is a lightweight and flexible command-line YAML, JSON and XML processor |
zsh-autocomplete | Autocomplete for Zsh adds real-time type-ahead autocompletion to Zsh |
zsh-syntax-highlighting | syntax highlighting for the shell zsh Zsh |
tool | description |
---|---|
balenaetcher | Etcher is a powerful OS image flasher built with web technologies |
brave-browser | Secure, fast Web browser based on Chromium just like Chrome |
docker | Docker helps developers to abstract virtual environments |
flycut | Flycut is a clean and simple clipboard manager for developers |
iterm2 | MacOS terminal app |
microsoft-teams | Company's online meeting app |
mqttx | MQTTX makes developing and testing MQTT applications faster and easier. |
onedrive | Company's online storage. |
raspberry-pi-imager | Raspberry Pi Imaging Utility |
slack | Company's quick message communication app |
visual-studio-code | The best code editor ever :) |
vlc | VLC is a libre and open source media player and multimedia engine |
Those font are useful for coding and for oh-my-posh
- font-agave-nerd-font
- font-comic-shanns-mono-nerd-font
- font-droid-sans-mono-nerd-font"
- font-cascadia-code
- font-cascadia-code-pl
- font-caskaydia-cove-nerd-font
- font-hack-nerd-font
There is a pre-configured theme located in folder ./unixBin/env/omp/themes
. If you like to configure your own theme follow: oh-my-posh documentation. There are also many other predefined themes. You can activate them in the file: ./unixBin/env/XXX_oh-my-posh.env
Default is configured fro ABK customized prompt: code>./unixBin/env/omp/themes/powerlevel10k_abk.omp.json, which looks like this:
- Note 1: if you don't see correct symbols in the prompt, please use font which is capable to display glyphs (symbols) in your terminal app settings. A good font example: Hack Nerd Font
- Note 2: The default oh-my-posh theme is based on dark background terminal app profile. If you like to use my profile please import it from
./unixBin/env/terminal/profiles/Solarized Dark.terminal
Don't forget to check out many aliases configured in ./unixBin/env/002_aliases.env
and ./unixBin/env/002_abk_aliases.env
. Here are few good examples:
alias | description |
---|---|
epoch | copies current epoch time into clipboard |
getAwsAccount | copies currently configured AWS account number into clipboard |
glrt | Git List Remote Tags |
dpps | Display Python Package Size |
ncpu | Number of CPUs |
ppp | Pretty Print PATH |
pppp | Pretty Print PYTHONPATH |
prg | git push - Push it Real Good - when deploying new release |
snp | git push - Salt 'N Pepper version |
This script will install tools and apps described in the tools.json
. If you already installed a tool previously, the installation will skip that tool installation and configuration. All installed tools are recorded in ./unixPackages/installed.json
./install.sh
This script will update tools and apps described in the tools.json
.
./update.sh
If at some point you'd like to uninstall everything installed (the installed tools are recorded in ./unixPackages/installed.json
), simply run:
./uninstall.sh