HB Computer Security | Aide Memoire
  • Introduction
  • Core Technical Skills
    • Core Skills
      • Linux
        • Getting to Know Linux
          • Using the Shell
            • Shells, Terminals, and Virtual Consoles
            • Choose your Shell
            • Shell Commands
              • Non-PATH Commands
              • Command History
                • Command Line Editing
                  • Keystrokes for Navigating Command Lines
                  • Keystrokes for Editing Command Lines
                  • Keystrokes for Cutting and Pasting Text from within Command Lines
                • Command Line Recall
                  • Keystrokes for Command Line Recall
              • Connecting and Expanding Commands
                • Piping Between Commands
                • Sequential Commands
                • Expanding Commands
            • Shell Variables
              • Common Shell Variables
            • Aliases
            • Create your Own Shell Environment
              • Modification Ideas
          • Navigating the Linux File System (LFS)
            • Filesystem Commands
            • Listing Files and Directories
            • File Permissions and Ownership
              • Modifying Permissions with chmod
              • Modifying Default Permissions with umask
              • Change File Ownership with chown
            • Copying, Moving, and Removing Files
            • Finding Files
              • locate
              • find
              • grep
            • Downloading Files
              • axel
              • wget
              • curl
                • User-Agent: Googlebot
          • Working with Text Files
            • Using vim and vi to Edit Text Files
              • Starting with vi
              • Adding Text
              • Moving Around in the Text
            • Text Manipulation
        • System Administration
          • Installing Linux
            • Installing from Live Media
            • Installing in the Enterprise
            • Partitioning Hard Disks
              • Tips for Creating Partitions
          • Account Administration
            • The root Account
              • Becoming root with su
              • sudo
                • The /etc/sudoers File
                • Granting sudo privileges
                  • visudo Guidance
                • Useful sudo Hints
            • Other Administrative Accounts
            • Standard User Accounts
              • Risks of userdel: Orphaned Files
          • Graphical Remote Administration
            • Cockpit
              • Installation Guide
            • Remote Desktop Protocol with xrdp
              • Installation and Configuration
            • Remote Desktop with vnc
              • Installation and Configuration
              • Running VNC as a System Service
          • Managing Running Processes
            • Listing Processes
              • ps
              • top
              • htop
            • Backgrounding and Foregrounding
              • Starting a Background Process
              • Using Foreground and Background Commands
            • Killing and Recining Processes
              • kill and killall
          • Managing Software
            • Managing Software from the Desktop
            • Going Beyond the Limitations of Software Center
              • Debian Packages
                • Advanced Package Tool (apt)
                • Repositories
                • dpkg
        • Shell Scripting
          • Variables
            • Command Substitution
            • Arguments
          • Reading User Input
          • if, else, and elif
          • BOOLEAN Logic
          • Loops
            • for Loops
            • while Loops
          • Functions
          • Local Vs Global Variables
          • Summary
        • Securing Linux
      • Windows
        • Security Hardening
Powered by GitBook
On this page

Was this helpful?

  1. Core Technical Skills
  2. Core Skills
  3. Linux
  4. Getting to Know Linux
  5. Using the Shell

Shell Variables

PreviousExpanding CommandsNextCommon Shell Variables

Last updated 1 year ago

Was this helpful?

The shell has a clever way of holding onto bits of info that might come in handy during your session - they're stashed in things called variables. Here are a few examples to give you a taste:

  • $SHELL - Identifies the shell you are using

  • $PS1 - Shapes the look of your shell prompt

  • $MAIL - Points to your user's mailbox

Fancy a peek at all the variables your shell's holding onto? Just type in the set command. Oh, and a special group within these variables are the environment variables. These are shared with any new shells you pop open from the current one. To take a look at them, simply type env:

env

You can type echo $VALUE, where VALUE is replaced by the name of a particular environment variable you want to list.

Because there are always multiple ways to do anything in Linux, you can also type declare to get a list of the current environment variables and their values along with a list of shell functions.

Now, not all these variables are of your own making. The system itself sets a bunch, helping it remember things like where it's stashed configuration files, the whereabouts of mailboxes, or directories in your PATH. These variables can also hold onto little helpful nuggets, like how your shell prompts look, the length of your history list, or even the kind of operating system you're on.

Fancy referencing the value of a variable? Pop a $ before it, and drop it anywhere in a command line. Here's an example:

echo is like saying "Hey, show this on the screen!"

When you kick off a shell session, be it by logging in through a virtual console or firing up a Terminal window, there's already a whole host of environment variables ready and waiting. The next section lays out a few of these variables - some come preset with a bash shell, while others are there for you to tweak as you fancy for various features.

Running env on a host
This command prints the value of the USER variable, which holds your username