How to Customize Your Shell for Efficiency

Written by noaahhh | Published 2023/03/28
Tech Story Tags: web-development | productivity | linux-terminal | productivity-hacks | bash | software-development | linux | oh-my-zsh

TLDRThis post has been written to create a beautiful and useful custom operating system shell setup for developers, data scientists, or everyone who wants to have an unusual Linux,\*nix, or macOS shell. This is a completely simple guide for the installation of the shell setup. To install the tools: install zsh and ohmyzsh.via the TL;DR App

Hi, this post has been written to create a beautiful and useful custom operating system shell setup for developers, data scientists, or everyone who wants to have an unusual Linux,*nix, or macOS shell. This is a completely simple guide for the installation of shell setup for the best efficiency.

Install zsh and ohmyzsh

 ## for Debian/Ubuntu
sudo apt-get install zsh

## for RHEL/Centos/Fedora
sudo yum install zsh
## for only Fedora 
sudo dnf install zsh


## for arch
sudo pacman install zsh
## for mac
brew install zsh

The package manager installed the shell on the system.

To install ohmyzsh’s latest version:

#using curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
#or using wget
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

ohmyzsh installed under the /home/user directory as hidden. You can see the folder .oh-my-zsh and .zshrc config files. ohmyzsh will change zsh config file contents.

Change the Theme

Open .zshrc* config file with nano or vim and change themes:

nano ~/.zshrc
#or
vim ~./zshrc 

ZSH_THEME="fino-time"

You can find different themes on the pages.

Install Custom Plugins

zsh-autosuggestion

git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

zsh-autocomplete

git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git $ZSH_CUSTOM/plugins/zsh-autocomplete

And add these to the plugins tuple in .zshrc

plugins = ( git
            sudo
            zsh-autosuggestions 
            zsh-syntax-highlighting 
            zsh-autocomplete
            )

Install pyenv for Python Version Control

Pyenv is a tool that can manage python environments and versions. It's a very useful tool for all types of developers. To install the tools:

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

and to define environment variables:

(for zsh)

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

after that:

exec "$SHELL"

To create python virtual environments, virtualenv plugin installation is required.

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

Usage

You can install many of the python, conda versions with these tools easily. You can check GitHub repositories for more information.

## install a python environment
pyenv install 3.8.5 
## create a virtual environment
pyenv virtualenv 3.8.5 myenv

After creating a virtual environment, it's usable with this command:

pyenv activate myenv
(myenv)$  

Also published here


Written by noaahhh | A software engineer, tech enthusiast, reader and writer for opensource world, master of data
Published by HackerNoon on 2023/03/28