A **terminal** is an interface that enables users to interact with a computer’s operating system or applications by inputting text commands and viewing textual output. Historically, terminals were physical devices consisting of a keyboard and display, allowing communication with mainframe computers. In modern computing, terminals are typically software-based applications, known as **terminal emulators**, that replicate the functionality of these older hardware terminals within a graphical user interface (GUI).  **Role of the Terminal in Relation to the Shell:** • **Terminal Emulator:** Acts as a windowed application that provides a text-based interface within a GUI environment. It captures user input and displays output from command-line programs. • **Shell:** A command-line interpreter that processes user commands entered via the terminal. It interprets these commands and communicates with the operating system to execute them. In summary, using a terminal involves connecting to a shell of some sort so that you can issue commands to the operating system. # Changing Shells The chsh (change shell) command is a standard utility on Unix-like operating systems, including Linux and macOS, that allows users to change their default login shell. This command is not specific to any particular shell like Bash or Zsh; rather, it functions independently to modify the user’s shell setting. When you execute the chsh command, it updates your user profile—typically by modifying the /etc/passwd file—to specify a different default shell. This change affects which shell is launched by default when you log in or open a new terminal session. For example, to change your default shell to Zsh, you would run: ``` chsh -s /bin/zsh ``` Conversely, to switch back to Bash, you would execute: ``` chsh -s /bin/bash ``` After running the chsh command, it’s important to log out and log back in for the changes to take effect. This ensures that the system recognizes the new default shell for your user account. In summary, the chsh command is a universal tool available to users of various shells, enabling them to set their preferred default shell environment.