Categories
Linux Tutorial Series

Linux Tutorial Series – 13 – What is a command?

Here is a video version, if you prefer it:

This may be a very simple question – what is a command? What is a command in the context of the Linux shell environment?

Commands are, in essence, running a program with options and arguments. (Barrett, 2016)⁠ If you write, for example, ls -l file.txt, you are calling a program called ls with the option -l and the argument file.txt. But wait a minute – how does the operating system know where to find the ls program? This is not the focus of this article so we don’t currently care. As far as we are right now concerned, the operating system “does its magic” so it can find the program ls and call it with the specified options.

There are a lot of things you can do with commands – commands can be piped, meaning output of one command is input to another and there can exist scripts which within themselves contain lots of commands. But again, essentially, a command is just a single program, with its options and arguments.

Hope you found this useful!

References

Barrett, D. J. (2016). Linux pocket guide (3rd ed.). O’Reilly Media. Pages 3-4

Categories
Linux Tutorial Series

Linux Tutorial Series – 12 – What is a shell?

Here is the video version, if you prefer it:

The shell, the shell… We all heard that. We know you can type some command in the shell in a Linux environment and get some output. But what does the shell actually mean?

“A shell is a program that runs commands”, says (Ward, 2014)⁠. That is basically it. You type some commands in, the shell executes them, then you get some output. Shell scripts, another popular term, are essentially just commands typed in a file called a shell script; so the shell has the same job – execute commands.

There are multiple kinds of shells. You can find more information here: (“5 Most Frequently Used Open Source Shells for Linux,” n.d.)

Before I end, it is important to note that programs like Terminal are not actually shells – they are graphical user interfaces running shell on your behalf. (Barrett, 2016)⁠ Figure 1 depicts this. This program with a graphical user interface, called a terminal emulator, interacts with the shell. (Shotts, 2019)⁠

Figure 1 – Relationship between graphical user interfaces to the shell and the shell itself (modeled after figure on page 15 of (Barrett, 2016)⁠)

Hope you learned something new!

References

5 Most Frequently Used Open Source Shells for Linux. (n.d.). Retrieved December 22, 2019, from https://www.tecmint.com/different-types-of-linux-shells/

Barrett, D. J. (2016). Linux pocket guide (3rd ed.). O’Reilly Media. Page 15

Shotts, W. (2019). The Linux Command Line, Fifth Internet Edition. Retrieved from http://linuxcommand.org/tlcl.php. Page 26

Ward, B. (2014). How Linux Works: What Every Superuser Should Know (2nd ed.). No Starch Press. Page 12

Categories
Linux Tutorial Series

Linux Tutorial Series – 11 – Checkpoint

Here is the video version, if you prefer it:

In the following section of the posts, we will talk about some really foundational things, such as what is a shell, what is a command, what are absolute and what are relative paths and so on.

All of the conceptual things covered here will be of crucial importance later on, so it pays to pay attention.

Talk soon!

Categories
Linux Stories

Linux Stories #1 – Interview with Daniel J. Barrett (author of Linux Pocket Guide)

In this podcast episode of Linux Stories, I interview Daniel J. Barrett, the author of Linux Pocket Guide book, which is among the 3 books I based my Linux tutorial series on.

Here is the video:

Here is the audio:

https://soundcloud.com/mislav-juri-993274625/linux-stories-1-interview-with-daniel-j-barrett-author-of-linux-pocket-guide

Let me know what you thought!

Links mentioned in this podcast episode:

Note: After the interview, Daniel sent me an email with a script showcasing some in-depth Linux command line features. See the script and the instructions on how to run it here.

Timestamps:

  • 00:00 – 00:55 – Introduction
  • 00:55 – 05:19 – Dan’s career path
  • 05:19 – 10:11 – Dan’s startup experience
  • 10:11 – 13:02 – Dan’s experience with music
  • 13:02 – 23:14 – How did Dan’s understanding of Linux evolved over the years
  • 23:14 – 25:08 – Does Dan prefer Linux over other operating systems?
  • 25:08 – 28:27 – Can people who use computers professionaly benefit from knowing Linux?
  • 28:27 – 31:34 – Can everyday people and people who want to become software engineers benefit from learning Linux?
  • 31:34 – 34:35 – Dan’s Google Education job
  • 34:35 – 35:44 – Parting thoughts