COS 3100:
Intro to GIT
menu ▾
lessons
tags
extras
links
syllabus
homeworks
online terminal
view full lesson
lessons
tags
extras
links
syllabus
homeworks
online terminal
view full lesson
## 0. The terminal & the shell Overview of the terminal and shell - what are they and why is it still worth it to learn to use them today --- ## What is the terminal? The terminal is a program that provides a window where you can interact with the command line. It's essentially the "container" that displays text and accepts keyboard input. --- Popular modern terminal emulators include: - Alacritty - Ghostty - Kitty - Windows Terminal (windows only) - iTerm2 (macOS only) - and many more --- Each terminal emulator might have a variety of advanced and unique features. > _For example_, Kitty was the first terminal to use GPU-based rendering and is able to display images. --- ## The Shell The shell is the actual command interpreter that processes the commands you type. It's the program running inside the terminal that understands and executes your commands. --- Popular shells include: - sh - bash - zsh - PowerShell - fish - nushell - and more --- ## sh sh is the original Unix shell It is designed to be simple and portable across different Unix-like operating systems. It is a specification defined by the POSIX standard. --- ## Bash Bash is a shell interpreter first released in 1989, with the latest version (5.3) released in July 2025. It is popular and powerful with more advanced features and quality-of-life improvements. Bash is a **superset** of sh. --- ## POSIX The **Portable Operating System Interface** is a standard specified by the IEEE to ensure compatibility between different operating system. It has been evolving since 1988. --- It encompasses a large number of tools, programs and operating systems behaviours such as: - Process creation and control - File system operations - Signals - Pipes - Utility programs - and more --- ## GNU coreutils GNU coreutils is a implementation of common Unix utilities It aims to be POSIX-compliant, but extends tools with multiple additional features. --- There are also multiple other implementations of the common Unix toolset such as: - Plan9 - BSD - BusyBox - uutils - and more --- Each of these implementations comes with its owns specifics, features and quirks that are too numerous and finicky to cover in detail. > This course does NOT aim to teach you how to write the _most_ portable shell scripts, so we are NOT limiting ourselves to the POSIX standard.
Bash basics
Bash basics