0% found this document useful (0 votes)
68 views40 pages

NDG LEv2 Ch05

This module covers the basics of using the Linux command line, including the command line interface, the shell, commands, variables, command types, quoting, and control statements. The shell is the command line interpreter that translates commands for the operating system. Common commands are used to view files and directories. Variables can store information for the shell or user. Command history allows reusing previous commands.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views40 pages

NDG LEv2 Ch05

This module covers the basics of using the Linux command line, including the command line interface, the shell, commands, variables, command types, quoting, and control statements. The shell is the command line interpreter that translates commands for the operating system. Common commands are used to view files and directories. Variables can store information for the shell or user. Command history allows reusing previous commands.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

Module 05

Command Line Skills


Exam Objective
2.1 Command Line Basics

Objective Description
Basics of Using the Linux Command Line
Introduction
Introduction
● This module will cover the basics of the command line such as:
○ The command line interface
○ The shell
○ Commands
○ Variables
○ Command Types
○ Quoting
○ Control Statements
Command Line Interface
Command Line Interface
● The Linux community promotes the CLI due to its power, speed and ability to
accomplish a vast array of tasks with a single command line instruction.

● The CLI provides more precise control, greater speed and the ability to automate tasks more
easily through scripting.

● By learning the CLI, a user can easily be productive almost instantly on ANY flavor or
distribution of Linux
The Shell
The Shell
● Once a user has entered a command the terminal then accepts what the user has typed and passes
to a shell.

● The CLI provides more precise control, greater speed and the ability to automate tasks more
easily through scripting.

● The shell is the command line interpreter that translates commands entered by a
user into actions to be performed by the operating system.

● The Linux environment allows the use of many different shells.

● The most commonly used shell for Linux distributions is called the Bash shell.
The Shell
● The Bash shell also has many popular features, a few of which are listed below:
○ Command line history
○ Inline editing
○ Scripting
■ The ability to place commands in a file and then interpret (effectively use Bash to execute the
contents of) the file, resulting in all of the commands being executed.

○ Aliases
■ The ability to create short nicknames for longer commands.

○ Variables
■ Used to store information for the Bash shell and for the user.
The Shell
● When a terminal application is run, and a shell appears, displaying an important part
of the interface — the prompt.
● Typically the prompt contains information about the user and the system. Below is a
common prompt structure:

sysadmin@localhost:~$

● The prompt shown contains the following information:


○ Username (sysadmin)
○ System name (localhost)
○ Current Directory (~)

The ~ symbol is used as shorthand for the user's home directory.


Commands
Commands
● A command is a software program that when executed on the CLI, performs an action
on the computer.

● To execute a command, the first step is to type the name of the command.

● If you type ls and hit Enter. The result should resemble the example below:

sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Commands
● Some commands require additional input to run correctly.

● This additional input comes in two forms: options and arguments.


○ Options are used to modify the core behavior of a command.
○ Arguments are used to provide additional information (such as a filename or a username).

● The typical format for a command is as follows:

command [options] [arguments]


Arguments
Commands
command [options] [arguments]

● An argument can be used to specify something for the command to act upon.

● If the ls command is given the name of a directory as an argument, it lists the


contents of that directory:

sysadmin@localhost:~$ ls /etc/ppp
ip-down.d ip-up.d

● Some commands (such as ls) accept multiple arguments:

sysadmin@localhost:~$ ls /etc/ppp /etc/ssh


Options
Options
command [options] [arguments]

● Options can be used with commands to expand or modify the way a command behaves.

● For example, using the -l option of the ls command results in a long listing, providing additional
information about the files that are listed.
sysadmin@localhost:~$ ls -l
total 0
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Desktop
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Documents
Output Omitted...

● Often the character is chosen to be mnemonic for its purpose, like choosing the letter l for long
or r for reverse.
Options
● Options can be used in conjunction with other options:

sysadmin@localhost:~$ ls -lr

● Options are often single letters; however, sometimes they are words or phrases as well.
● Typically, older commands use single letters while newer commands use complete words for
options.
○ Single-letter options are preceded by a single dash - character, like the -h option.
○ Full-word options are preceded by two dash -- characters like the full-word form of the -h option, the --
human-readable option
Command History
● When a command is executed in the terminal, it is stored in a history list.

● This makes it easy to execute the same command later eliminating the need to
retype the entire command.
● Pressing the Up Arrow ↑ key displays the previous command on the prompt line.
● To view the entire history list of a terminal, use the history command:

sysadmin@localhost:~$ history
1 date
2 ls
3 cal 5 2030
4 history
Command History
● If the desired command is in the list that the history command generates, it can be executed
by typing an exclamation point ! character and then the number next to the command (i.e., !3)

● If the history command is passed a number as an argument, it outputs that number of previous
commands from the history list.
sysadmin@localhost:~$ history 3
6 date
7 ls /home
8 history 3

● To execute the most recent command type !! and hit Enter:


● To execute the most recent iteration of a specific command, type !command and hit Enter.
Variables
Variables
● A variable is a feature that allows the user or the shell to store data.

● Variables are given names and stored temporarily in memory.

● There are two types of variables used in the Bash shell, local and
environment.
Local Variables
● Local or shell, variables exist only in the current shell. When the user closes a terminal window or
shell, all of the variables are lost.

● To set the value of a variable, use the following assignment expression.

variable=value

● The following example creates a local variable named variable1 and assigns it a value of
Something:
sysadmin@localhost:~$ variable1='Something'

● To display the value of the variable, use a dollar sign $ character followed by the variable name
as an argument to the echo command:

sysadmin@localhost:~$ echo $variable1


Something
Environment Variables
● Environment variables, also called global variables, are available system-wide.

● Examples include the PATH, HOME, and HISTSIZE variables.

● The command in the example below displays the value of the HISTSIZE variable:

sysadmin@localhost:~$ echo $HISTSIZE


​ 1000

● The env command outputs a list of the environment variables.

● The export command is used to turn a local variable into an environment variable.
sysadmin@localhost:~$ export variable1
sysadmin@localhost:~$ env | grep variable1
variable1=Something

● Exported variables can be removed using the unset command:


Path Variable
● One of the most important Bash shell variables to understand is
the PATH variable.
● The PATH variable lists all the places that the system can look for programs
to execute.

● The following command displays the path of the current shell:


sysadmin@localhost:~$ echo $PATH
/
home/sysadmin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/g
ames

● If the command is not found in any directory listed in the PATH variable,


then the shell returns a command not found error.
Command Types
Command Types
● The type command can be used to determine information about command type.

type command

● There are several different sources of commands within the shell of your CLI:
○ Internal commands
○ External commands
○ Aliases
○ Functions
Internal Commands
● Also called built-in commands, these commands are built into the shell itself.

● A good example is the cd  (change directory) command as it is part of the Bash shell.

● The type command identifies the cd command as an internal command:

sysadmin@localhost:~$ type cd
cd is a shell builtin
External Commands
● External commands are stored in files that are searched by the shell.

● It can be beneficial to know where the shell is finding the command or which version
it is using.

● The which command searches for the location of a command by searching


the PATH variable.

sysadmin@localhost:~$ which ls
/bin/ls
sysadmin@localhost:~$ which cal
/usr/bin/cal
External Commands
● External commands can be executed by typing the complete path to the command.
sysadmin@localhost:~$ /bin/ls

Desktop Documents Downloads Music Pictures Public Templates Videos

● For external commands, the type command displays the location of the command:

sysadmin@localhost:~$ type cal


cal is /usr/bin/cal

● To display all locations that contain the command name, use the -a option to the
type command:

sysadmin@localhost:~$ type -a echo


Aliases
● An alias can be used to map longer commands to shorter key sequences.

● For example, the command ls -l is commonly aliased to l or ll.

● To determine what aliases are set on the current shell use the alias command:

sysadmin@localhost:~$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
Output Omitted...

● The type command can identify aliases to other commands:

sysadmin@localhost:~$ type ll
ll is aliased to `ls -alF'
Functions
● Functions can also be built using existing commands to:

○ Create new commands


○ Override commands built-in to the shell or commands stored in files

● Aliases and functions are normally loaded from the initialization files when the shell first starts.
Quoting
Double Quotes
● Double quotes stop the shell from interpreting some metacharacters, including glob characters.

Glob characters, also called wild cards, are symbols that have special meaning to the shell (i.e, *, ?).

● This is useful when you want to display something on the screen that is normally a
special character to the shell.
● In the example below, the Bash shell doesn't convert the glob pattern into filenames
that match the pattern (like it normally does):

sysadmin@localhost:~$ echo "The glob characters are *, ? and [ ]"


The glob characters are *, ? and [ ]
● Double quotes still allow for command substitution, variable substitution, and permit some other
shell metacharacters (i.e., the PATH variable)
Single Quotes
● Single quotes prevent the shell from doing any interpreting of special characters, including
globs, variables, command substitution and other metacharacters.

sysadmin@localhost:~$ echo The car costs $100


The car costs 00
sysadmin@localhost:~$ echo 'The car costs $100'
The car costs $100
Backslash Character
● A technique to essentially single quote a single character is to use the backslash character \.
● If the phrase below is placed in single quotes, $1and $PATH are not variables:
sysadmin@localhost:~$ echo "The service costs $1 and the path is $PATH"
‌he service costs and the path is
​T
/usr/bin/custom:/home/sysadmin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
:/usr/games

● What if you want to have $PATH treated as a variable and $1 not?


● In this case, use a backslash \ character in front of the dollar sign $ character to prevent the
shell from interpreting it:

sysadmin@localhost:~$ echo The service costs \$1 and the path is $PATH
The service costs $1 and the path is
/usr/bin/custom:/home/sysadmin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bi
n:/usr/games
Backquotes
● Backquotes, or backticks, are used to specify a command within a command, a
process called command substitution.

● Note the output of the echo Today is date command line:


sysadmin@localhost:~$ echo Today is date
Today is date

● To execute the date command so the output of that command is sent to


the echo command, put the date command inside of two backquotes:

sysadmin@localhost:~$ echo Today is `date`


Today is Mon Nov 4 03:40:04 UTC 2030
Control Statements
Control Statements
● Control statements allow you to use multiple commands at once or run additional
commands.

● Control statements include:


○ Semicolon (;)
○ Double ampersand (&&)
○ Double pipe (||)
Control Statements
● The semicolon can be used to run multiple commands, one after the other:
sysadmin@localhost:~$ cal 1 2015; cal 2 2015; cal 3 2015

● The double ampersand && acts as a logical "and" if the first command is successful, then the
second command (to the right of the &&) will also run:

sysadmin@localhost:~$ ls /etc/xml && echo success


catalog catalog.old xml-core.xml xml-core.xml.old
success

● The double pipe || is a logical "or". It works similarly to &&; depending on the result of the first
command, the second command will either run or be skipped:

sysadmin@localhost:~$ ls /etc/junk || echo failed


ls: cannot access /etc/junk: No such file or directory
failed

You might also like