The command line interface, with its powerful shell environments like Bash and Zsh, allows you to interact with your computer using text-based commands. On opening up your terminal, you’ll see a prompt where you can start typing commands. Assuming your default shell is either Bash or Zsh, this tutorial should work just fine.
Please note that this guide is not intended to be an exhaustive resource on shell configuration or advanced command usage. Instead, we will focus on laying a basic foundation that will enable you to navigate the command line and get started.
What is Bash?
Bash, short for "Bourne Again SHell," is a popular command-line shell and scripting language used in Unix-based systems like Linux and macOS. It provides a text-based interface for interacting with the operating system and executing various commands.
What is Zsh?
Zsh, short for "Z Shell," is another powerful command-line shell available as an alternative to Bash. It offers additional features and customization options, making it a popular choice for many users.
Getting Started with Bash or Zsh
To begin, open your terminal. You can find it in your applications or use a
keyboard shortcut like
Ctrl + Alt + T on most Linux distributions. On macOS,
you can find it in the "Utilities" folder within the "Applications" directory.
Once the terminal is open, you will see a prompt where you can start entering commands. This is where it all begins!
Let’s start with some basic commands that you can try out in your terminal:
pwd(Print Working Directory): This command displays the current directory you are in. For example, if you are in the home directory, running
ls(List): Use this command to list the files and directories in the current directory. For example, running
lswill display a list of files and directories in the current directory.
cd(Change Directory): This command allows you to navigate to a different directory. For example, running
cd Documentswill change your current directory to the "Documents" directory.
mkdir(Make Directory): Use this command to create a new directory. For example, running
mkdir myfolderwill create a new directory named "myfolder" in the current directory.
touch(Create File): This command creates a new file. For example, running
touch myfile.txtwill create a new empty file named "myfile.txt" in the current directory.
Remember to press
Enter after typing each command to execute it.
Command Options and Arguments
Commands often come with options and arguments that modify their behavior.
Options are typically specified using a hyphen followed by a letter or word,
--help. Arguments are additional information provided to a
command, such as a file or directory name.
ls -l: Lists files in the long format. Here
-lis the option being specified. Running
ls -lwill display detailed information about each file in the current directory, including permissions, owner, size, and modification date.
mkdir myfolder: Creates a directory named "myfolder". Here
myfolderis the argument. Running this command will create a new directory named "myfolder" in the current directory.
Bash and Zsh keep track of the commands you’ve previously entered, allowing you
to access them easily. You can use the up and down arrow keys to navigate
through your command history. Press
Enter to execute a previously entered
Tab completion is a helpful feature that saves you from typing out long file or
directory names. When you start typing, press the
Tab key, and the shell will
try to auto-complete the rest of the name for you. If there are multiple
Tab twice will show you the available options.
For better tab completions, auto-complete, and syntax highlighting you can
.zshrc file. I have a github
repository with sensible
defaults (in my opinion) and all the necessary configuration for a better
If you want to use a package instead you can look into ‘Oh My Zsh’.
Scripting with Bash or Zsh
Bash and Zsh can also be used as scripting languages, allowing you to automate tasks and create more complex programs. Shell scripts are plain text files with a series of commands that can be executed together.
To create a script, open a text editor and save the file with a
myscript.sh). Make the file executable by running the command
chmod +x myscript.sh. Now, you can run the script by typing
./myscript.sh in the
Here are some articles that I found useful when I started out with bash:
While there is much more to learn about Bash and Zsh, this guide should provide you with a solid foundation to start exploring and using the command line effectively. As you gain more experience, you can delve into advanced topics and configurations to enhance your command-line experience even further.
Note: The commands and examples provided in this article are primarily targeted at Unix-based systems like Linux and macOS. Some commands or options may differ on other operating systems.