From the course: Learning Linux Command Line

What is the command line? - Linux Tutorial

From the course: Learning Linux Command Line

What is the command line?

- [Narrator] Many of us are familiar with using a computer that has a graphical user interface often called a GUI or gooey. We're accustomed to seeing visual elements like scroll areas, images, buttons, and dropdown menus. We can drag windows around, click links and view charts and graphs. In a lot of cases, that's exactly what we want for photo editing, document layout, browsing the web, graphic design, watching movies and playing games. Many tools that we use in software development, system administration and data analysis don't use graphical interfaces to operate. Sometimes the software runs on computers and data centers, but it can also run on home servers, on our own computers or on specialized hardware like a network router or other smart device. But we still need a way of interacting with these programs to send them information, to control their operation and to retrieve the results of what they do. One way we do this is through a command line interface or CLI. The command line is a common name for a text-based interface, where we type commands and where we can see the output of those commands written to the screen. Command line interfaces are common in many tools, but especially on Linux systems controlling the system, or working with programs and a command-line interface is often the primary mode of using the system. Command-line programs can read from and write to files, or use information from, or send information to other programs or systems. While the idea of typing a command into a computer can seem like something outdated or historical or something only dangerous hackers do when they're breaking into other people's computers. Working with the command-line in a terminal or console is something many system administrators, developers, scientists, hobbyists, and others do every day. The software will use to work with command line software, is called a shell, or command-line interpreter. And there are many shells out there. Bash, the Bourne Again Shell, was first released by Brian Fox in 1989. It's still one of the most widely used shells on Linux systems. And it's the one you're likely to need to become familiar with as you begin your Linux command line journey. Bash extends the capabilities of earlier shells and adds newer features too. Bash builds on an earlier shell created by Steven Bourne called the Bourne shell. And that itself built on the idea of the command-line interpreter called the Thompson shell for Unix. Over time, these shells evolved, and they continue to evolve and develop today. Bash is the shell that comes enabled by default with most of the popular Linux distributions. It's available in Windows, with a Windows Subsystem for Linux. And it's also available on macOS, though it's not the default shell there. I'll be using Bash throughout the course. Though I encourage you to explore some of the other shells out there, once you have a foundation working in Bash, if you're curious. In most cases, command-line users will use a shell like Bash, through a terminal application, either in full screen mode or as a window in their graphical environment. It's common to use both graphical and text-based modes of interaction at the same time. And it's common to have more than one terminal window open at the same time to perform different tasks. And some programs, like software development tools, include a built in terminal as well. The terms can seem a little confusing at first. The command-line, is the general name for a text environment where we issue commands by typing. The shell is the software that accepts and runs those commands. And the terminal emulator is the software the shell runs inside of. Because these pieces are so closely linked, many people call the shell, the terminal and vice versa. And really there isn't any harm in doing so. Generally people will know what you mean. But it's important to know that each of these components are different, because their roles will become more distinct, once your usage becomes more advanced.

Contents