Linux OS Overview

Linux OS Overview

Introduction to Linux, free crash course.

What is Linux?

Linux is a free and open-source operating system based on the Linux kernel. Some of the key points about Linux are:

  • It is a Unix-like operating system that was first created by Linus Torvalds in 1991.

  • Linux is distributed under the GNU General Public License (GPL), making it free to use, modify and distribute.

  • Linux is highly customizable and comes in a variety of distributions like Ubuntu, Debian, Fedora, openSUSE, etc. Each distribution offers a different set of applications and tools.

  • Linux uses a command line interface and GUI interfaces like GNOME, KDE Plasma, Xfce, etc.

  • Linux is widely used for servers, embedded systems, supercomputers and as a development platform.

  • Linux offers a multi-user environment where multiple users can use the system simultaneously.

  • Linux has a modular design that makes it flexible, stable and secure.

  • Linux comes with a vast collection of open-source software that is freely available.

So in summary, Linux is a free and open-source operating system kernel created by Linus Torvalds with a modular design that is highly customizable, secure and stable.


Command Line

The command line and the terminal are essentially the same thing in Linux. They refer to the text-based interface where users can enter commands to perform tasks. Here are the details:

  • The command line interface or CLI is where users can enter text commands to interact with and control the Linux operating system.

  • The terminal is a program that provides the user interface for the command line. Common terminal programs in Linux are Gnome Terminal, Konsole, Xterm, etc.

  • In the terminal, users can run commands, check the system status, manage files and directories, install software, configure settings and much more.

  • The command line provides a simple yet powerful interface for performing tasks quickly and efficiently.

  • For advanced users, the command line is often faster and more customizable than a graphical user interface.

  • Some advantages of the command line are:

    • It requires minimal system resources.

    • It allows for automation through scripts.

    • It provides access to many commands not available in GUIs.

  • To open a terminal in Linux, you can usually press Ctrl + Alt + T or search for "Terminal" in the application launcher.

Next, you can see a terminal window on my own laptop, I have made a screenshot. A terminal window can be opened in GNU Linux and it points to my home directory (~) follow by $. This is the prompt for you to enter a command. My laptop is called ECHOHERO and my user name is elucian therefore I have the prompt below, but you may have a different prompt. Try to open the command window on your Linux laptop or MAC-OS.

So in summary, the command line and terminal refer to the text-based interface where users can enter Linux commands. The terminal is the application that provides the user interface for interacting with the command line.


What is CLI?

The command line interface (CLI) is available and similar on MacOS, Linux and other Unix-like operating systems like FreeBSD, but is different on Windows. Here are the details:

On MacOS, Linux and other Unix-like systems:

  • The CLI is based on the Unix shell, which uses commands like ls, cat, grep, cp, mv, etc.

  • The default shell is Bash, but others like zsh, tcsh and ksh are also available.

  • Users can open a terminal window to access the CLI.

  • Common terminal programs are Terminal.app on MacOS and Gnome Terminal, Konsole, Xterm, etc on Linux.

On Windows:

  • The CLI is based on the Windows Command Prompt, not the Unix shell.

  • It uses commands like dir, copy, rename, del, etc which are different from Unix commands.

  • The default shell is cmd.exe, the Windows command-line interpreter.

  • Users open Command Prompt to access the CLI.

  • The commands, syntax, and overall experience is quite different from Unix-like systems.

The differences stem from the fact that:

  • MacOS, Linux and Unix were originally developed by AT&T Bell Labs and use the Unix operating system as their base.

  • Windows was developed independently by Microsoft and is based on MS-DOS, not Unix.

So in summary, though the CLI is available on both Unix-like systems and Windows, the underlying shells, commands, syntax and experience differ significantly because of their different origins and design. But the CLI remains an important and useful interface for both types of systems.


Motivation

There are a few main reasons why professional software developers need to learn the command line interface (CLI) and why it's important:

  1. Efficiency - Many development tasks can be done much faster and more efficiently using CLI commands instead of a GUI. Things like compiling code, installing dependencies, managing files and repositories, etc.

  2. Automation - The CLI allows developers to automate repetitive tasks through shell scripts and batch files. This saves a lot of time and effort.

  3. Troubleshooting - When development tools have issues, the CLI often provides more detailed information and error messages that can help debug and fix problems.

  4. Release processes - Many build, test and release processes for software projects are defined and executed using CLI commands. Developers need to be familiar with this.

  5. Understanding systems - Gaining a deeper understanding of operating systems and infrastructure often requires using the CLI to view system information and manage components.

  6. Cross-platform skills - Being comfortable with the CLI translates to skills that work across Linux, MacOS and Windows. This is valuable for developers working on multiple platforms.

  7. Flexibility - The CLI provides access to many commands that aren't available in GUI tools. This flexibility and exposure to "under the hood" operations improve a developer's skill set.

So in summary, the CLI provides efficiency, automation, troubleshooting aids, cross-platform skills and flexibility that professional developers need to be effective. Though GUI tools continue to improve, the CLI remains an essential skill for any serious software developer.


Don't fear the command line!

You are invited to Sage-Code Laboratory's free course on
taming the scary command line! Join us to learn Linux and Bash scripting in a beginner-friendly way.

We know the command line can seem intimidating at first, but we promise our teachers will hold your hand and walk you through it step-by-step. By the end of the course, you'll be typing commands like a pro and realizing the command line isn't so scary after all!

The course will start on Saturday, 1 September 2023 and streamed live on Twitch. It's free, no signup required - just show up ready to conquer your command line fears!

So what are you waiting for? This could be the first step to an in-demand tech career. We'll see you on September 1st - bring your courage and we'll provide the rest! Together we'll prove to the command line who's boss!


Bookmark and follow my Twitch channel:
https://twitch.tv/eluchn

Did you find this article valuable?

Support Software Engineering by becoming a sponsor. Any amount is appreciated!