Skip to main content

One post tagged with "Environment"

View All Tags

Environment setup

· 3 min read
Dani Vorobiev
Front End Engineer

You will need a terminal.

As a developer, you gonna spend some time with your terminal. Even if you like GUI. You will run tests, install packages and use Git, for exaple. Terminal is one of our main tools and it's nice to have a visually pleasant and powerful terminal instead of borring and limited default one. In this post I gonna explain how I like to configure and personalize my Terminal and the main concepts thet we need to know: what is the shell, what is the terminal, what is a CLI, what different kinds of shelld do we have and how to take the better advantage of our terminal and shell configuration.

Terminal or Shell?

There are a lot of terms that usually are used to refer to the same thing: Terminal, Shell, CLI and Console. But not everything is the same. To better understand what we're about to do we need to understand the difference between Shell and Terminal.

Differences between terminal and shell. Different shells: -sh (Bourne Shell) -bash (Bourne Again Shell) -zsh (Z Shell) -csh (C Shell) -ksh (Korn Shell)

Different terminals: -GNOME Terminal -Konsole -xterm -iTerm2 -Kitty -Warp (with AI)

On macOS, iTerm is the most popular terminal emulator. While it resembles a classic console, it offers powerful features like split views, multiple tabs, customizable hotkeys, and extensive configuration options. Accessing the Preferences menu in iTerm reveals a wide range of settings you can adjust to personalize your experience.

iTerm key features:

-Multiple tabs (with color options), split views. -Find and filter content in the terminal

  • Session Managment. Reopen all the tabs exactly as they were.
  • BONUS: broadcast inputs

Tip: depending on your default permission settings you can experience the "operation not permitted error". If this happens to you, you need to go to your MacOS setting, select Privacy and Security and give Full disk acess to iTerm2.

Shell: Interprets and executes commands. Terminal: Provides the interface for interacting with the shell.

Indeed, there are linux distros without Desktop Manager, like Arch Linux.

UNIX based systems

We often hear about UNIX based systems and we know that MacOS and Linux are UNIX based systems. But what is really a UNIX system? Indeed, UNIX has a lot of history behind

What shell am I using?

echo $SHELL

As of macOS Catalina (10.15), the default shell for macOS was changed from Bash to Zsh due to licensing reasons (GPLv3).

Unleash your terminal

Unleash your terminal is the slogan of Oh My Zsh, an open source community driven Zsh manager. This is one of the quickest an easiest ways to get a powerful yet beautiful terminal in a few steps. They promise you: Once installed, your terminal shell will become the talk of the town or your money back!

-MY ZSH + Fonts + iTerm -Aliases with custom scripts

-Mac plugins: Alfred, Rectangle

Chrome plugins

-Chrome plugins: JSON, CSS Outline, DarkMode, ShewTabNumbers, React DeveloprTools, ModHeader, Redux DevTools.