Americas

  • United States
sandra_henrystocker
Unix Dweeb

Getting started on the Linux (or Unix) command line, Part 2

How-To
Nov 20, 20235 mins
Linux

Commands that provide help are essential. Here's a look at some of the help you can get from the Linux system itself.

Casual tired office worker sitting at desk using computer and doing overtime project in lamplight.
Credit: Altitude Visual / Shutterstock

Even after you’ve used Linux for a while, you will still find yourself needing help from time to time, whether you’re learning a new command or you need more details on some of the command’s numerous options. So let’s examine some of the help that you can get from the system itself.

Commands that provide help

Among the most useful commands for getting help on Linux is the man (i.e., manual) command that provides information on what a command does and what options are available. Almost every command will have a man page available that you can use to view a screenful at a time. To view a man page, you would simply use a command like “man ls” or “man date”.

The command below displays the man page for the date. In the command output shown below, the content is passed to the head command to limit the display to the top eleven lines. I did this so that I didn’t need to include the entire man page in this post!

$ man date | head -11
DATE(1)                         User Commands                           DATE(1)

NAME
       date - print or set the system date and time

SYNOPSIS
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

DESCRIPTION
       Display date and time in the given FORMAT.  With -s, or with [MMDDhhmm[[CC]YY][.ss]], set the date and time.

Another helpful command is simply named “help”. This command provides information on bash built-ins, which are commands that are embedded in the bash executable and, because of this, don’t have their own man pages.

To start with this, the command below provides no information on the date command because it is not a builtin. Don’t be surprised if you get this response from time to time.

$ help date
-bash: help: no help topics match `date'.  Try `help help' or `man -k date' or `info date'.

If you type “help help”, you will get output like this:

$ help help
help: help [-dms] [pattern ...]
    Display information about builtin commands.

    Displays brief summaries of builtin commands.  If PATTERN is
    specified, gives detailed help on all commands matching PATTERN,
    otherwise the list of help topics is printed.

    Options:
      -d        output short description for each topic
      -m        display usage in pseudo-manpage format
      -s        output only a short usage synopsis for each topic matching
                PATTERN

    Arguments:
      PATTERN   Pattern specifying a help topic

    Exit Status:
    Returns success unless PATTERN is not found or an invalid option is given.

To get a list of bash builtins, you can use a command like the help command by itself. Be forewarned that the response will be quite overwhelming for a Linux newbie. Only the first lines of the output are shown below. This output is followed by the list with descriptions of each builtin.

$ help | head -7
GNU bash, version 5.2.15(1)-release (x86_64-redhat-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

The output below makes it clear that the help command is itself a bash builtin.

$ help | grep help
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
 help [-dms] [pattern ...]	<=== it’s in the builtins list

The complete output will contain more than 40 lines, but you can view it a screenful at a time if you pipe the output to the more command like this:

$ help | more

Lines in the rest of the output will look like this – using a 2-column format:

alias [-p] [name[=value] ... ]                      logout [n]

As you may have noticed in the help command output above, you can also make use of the man -k command to provide short descriptions of commands related to the search term. Here’s an example that has only a single description. Most search terms will generate many more command descriptions.

$ man -k calendar
cal (1)              - display a calendar

Using the echo command

The echo command is one that will repeat what you type. If you use a string, it will simply display it. If you ask it to display a variable, on the other hand, it will display the variable’s value. In the second command below, the value of the $SHELL variable is the shell that is being used.</strong<echo<>

$ echo hello!
hello!
$ echo $SHELL
/bin/bash

You can also determine which shell you are using by looking at your entry in the /etc/passwd file. It’s the last field in the colon-separated line that describes your account. You can also see the numeric userid and groupid – both 1004 in this example.

$ grep justme /etc/passwd
justme:x:1004:1004:Just Me:/home/justme:/bin/bash

Saving command output to a file

To save the output of a command to a file, use a > sign to redirect the output. In the example below, the output from the date command is sent to a file named “times” – overwriting the file if it already exists. The second adds to it.

$ date > times
$ date >> times
$ cat times
Wed Nov  8 03:15:18 PM EST 2023
Wed Nov  8 03:15:24 PM EST 2023

Wrap-up

The more you get used to the Linux command line, the more you are likely to appreciate how easy it is to get a lot of work done without a lot of effort. Part 3 of this intro to Linux will introduce a series of very useful commands.

sandra_henrystocker
Unix Dweeb

Sandra Henry-Stocker has been administering Unix systems for more than 30 years. She describes herself as "USL" (Unix as a second language) but remembers enough English to write books and buy groceries. She lives in the mountains in Virginia where, when not working with or writing about Unix, she's chasing the bears away from her bird feeders.

The opinions expressed in this blog are those of Sandra Henry-Stocker and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.