Solaris Advanced User's Guide

Setting Environment Variables

Your system sets up your system environment by using a set of specifications that are defined in the initialization files. If you want to temporarily modify your environment for the current work session, you can issue commands directly at the command prompt. However, if you want to modify your working environment on a more permanent basis, you can store “permanent” environment variables in the appropriate user profile files.

To display the environment variables that are currently set on your system, use the env command.

    Type the env command and press Return:


    $ env
    HOME=/home/user2
    PATH=/usr/bin:
    LOGNAME=user2
    HZ=100
    TERM=dtterm
    TZ=US/Mountain
    SHELL=/bin/csh
    MAIL=/var/mail/user2
    PWD=/home/user2
    USER=user2
    $

    Note –

    You can also use the env command to identify your login shell. It is specified in the SHELL environment variable. In the previous example, the shell is set to /bin/csh (the C shell).


User Profile

This section describes some of the more commonly used environment variables. Many of these variables might already be in your user profile. As previously mentioned, your user profile file is located in your home directory.


Note –

To view hidden (“dot”) files, use the -la options of the ls command.


The following is a partial list of environment variables that you can include in your user profile. Your current shell determines the syntax for defining environment variables.

Setting the PATH Variable

The PATH environment variable is used to locate commands within the SunOS directory hierarchy. By setting the PATH, you create a fixed set of directories that the system always searches whenever you type the name of a command.

For example, if you have no PATH variable set and you want to copy a file, you need to type the full path name for the command, /usr/bin/cp. However, if you have set the PATH variable to include the directory /usr/bin, then you can simply type cp and your system will always execute the command. This is because your system searches for the cp command in every directory that is named in the PATH variable, and executes it when it is found. You can significantly streamline your work by using the PATH variable to list the commonly used SunOS command directories.

For the Bourne, Bourne Again, and Korn shells, you can specify the PATH variable in your user profile file (in your home directory) by using the following syntax.


PATH=.:/usr/bin:/home/bin

In the previous example, home represents the path name of your home directory.

For the C, TC, and Z shells, you can specify the PATH variable in your user profile file (in your home directory) by using the following syntax:


set path=(/usr/bin home/bin .)

In this command, home is the path name of your home directory.


Note –

In the C, Korn, TC, and Z shells you can use the shortcut ~ to represent the path name of your home directory.


If you modify the PATH variable, and you are running the C, TC, or Z shell, use the source command to make the changes effective in your current window without having to log out:


example% source user-profile-file 

If you are running the Bourne, Bourne Again, or Korn shell, type the following to make the changes effective in your current window without having to log out:


$ . user-profile-file

Command Aliases

Command aliases are helpful shortcuts for commands you often type. For example, the default setting for the remove command (rm) does not ask for confirmation before it removes files. Sometimes this default is inconvenient, as a typing error can remove the wrong file. However, you can use the alias variable to change this setting by editing your user profile file.

In the C and TC shells, add the following line to your user profile file.


alias rm  'rm -i'

In the Bourne Again, Korn, and Z shells, add the following line to your user profile file.


alias rm='rm -i'

With this line in your user profile file, typing rm is now the same as typing rm -i, which is the interactive form of the rm command. You will then always be asked to confirm the command before any files are deleted. The quote marks around rm -i in the previous example are necessary to include the blank space between rm and -i. Without the quotation marks, the shell cannot correctly interpret the text after the space.

To make your changes to your user profile file effective immediately in your current window, you need to type an additional command. In the C and TC shells, type the following command to make your alias effective immediately.


example% source user-profile-file

The source command causes the system to read the current user profile file and execute the commands in this file.

In the Bourne Again, Korn, and Z shells, type the following command to make your alias effective immediately.


$ . user-profile-file

In the Bourne Again, Korn, and Z shells, the . command performs the same actions as the source command in the C and TC shells.


Note –

Command aliases that are created by using the alias command apply only to the current session.


Changing Your Command Prompt

The syntax you use to change your command prompt depends on what shell you are using.

Bourne, Bourne Again, Korn, and Z Shells

In the Bourne, Bourne Again, Korn, and Z shells, use the PS1 command to redefine your command prompt. The following are three examples:

Type any of the previous examples to change your current command prompt. This change applies until you change your command prompt again or log out.

If you want to make your changes more permanent, add one of the previous examples (or a prompt of your own creation) to your user profile file. If you follow this guideline, the prompt you specify appears each time you log in in or start a new shell.

C and TC Shells

For the C and TC shells, you personalize your command prompt with the set prompt command. The following are three examples:

Type any of the previous examples to change your current command prompt. This change applies until you change your command prompt again or log out.

If you want to make your changes more permanent, add one of the previous examples (or a prompt of your own creation) to your user profile file. If you follow this procedure, the prompt you specify appears each time you log in or start a new shell.

Other Useful Variables

You can set many other variables in your user profile file. For a complete list, refer to the man Pages(1): User Commands. The following sections describe some of the more commonly used options.

noclobber Variable

Use set noclobber to prevent unintentional overwriting of files when you use the cp command to copy a file. This variable affects the Bourne Again, C, Korn, and TC shells. Type the following in your user profile file:


set noclobber

history Variable

The history variable enables you to set the number of commands that you saved in your history list. The history command is useful to view commands you have previously typed. You can also use the history file to repeat earlier commands. Type the following in your .cshrc or .tcshrc file:


set history=100

You can also affect the Bourne, Bourne Again, Korn, and Z shells in the same manner by typing the following line in your user profile file.


HISTORY=100