|
| 以 PDF 格式下載這本書 (736 KB)
Chapter 10 Customizing Your Working EnvironmentYou can modify the environment variables in your system initialization files to control and adjust many aspects of your working environment. When you log in, your system reads the initialization files and uses the environment variables to configure your system. By setting the environment variables, you can customize your system to make it easier and more efficient to do your work. This chapter describes the following tasks. Modifying Initialization FilesThe particular initialization files responsible for your system's configuration depend on which shell the system administrator has specified as your default shell when your system was first installed. The Bourne shell is the default shell for the Solaris operating environment, but you can also use the C shell or Korn shell. Each of these shells has its own initialization file (or files). To determine your default shell (your login shell), follow these steps.
Regardless of the shell you are using, when you first log in your system generally runs the system profile file, /etc/profile. This file is generally owned by the system administrator and is readable (but not writable) by all users. After your system executes the system profile, it runs the user profile. The user profile is one (or more) initialization files that define your working environment. For example, if you're in the CDE environment your system checks this file (or set of files) each time you start a new terminal or window. Depending on which shell is set up as your default, your user profile can be one of the following:
Your user profile file(s) is located in your home directory and enables you to configure your working environment to your preference. Setting Environment VariablesYour 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:
Note – You can also use the env command to identify your login shell. It is specified in the User ProfileThis 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=.:/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.
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 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.
Command aliases that are created by using the alias command apply only to the current session.
The syntax you use to change your command prompt depends on what shell you are using.
In the Bourne, Bourne Again, Korn, and Z shells, use the PS1 command to redefine your command prompt. The following are three examples:
To set the prompt to a colon (:), followed by a space, type the following command.
PS1=": " |
To create a prompt that consists of your machine name, followed by a colon and a space, type the following command.
PS1="`hostname`: " |
To set the prompt to your machine name, followed by your login name in braces {}, a colon, and a space, type the following command
PS1="`hostname`{`logname`}: "
|
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.
For the C and TC shells, you personalize your command prompt with the set prompt command. The following are three examples:
To set the prompt to a percent sign followed by a space, type the following command.
example% set prompt="% " |
To create a prompt that consists of your machine name, followed by the history number of the command (hostname1, hostname2, hostname3, and so on), followed by a colon, type the following command.
example% set prompt="`hostname`\!: " |
To set the prompt to your machine name, followed by your login name in braces, a colon, and a space, type the following command.
example% set prompt="`hostname`{`logname`}: "
|
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.
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 VariableUse 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 VariableThe 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 |
The umask command sets a default file permission for all the files and directories you create. For example, if you are security conscious and you want to grant members of your group, and all users, only read and execute permissions (-rwxr-xr-x) on your directories and files, you can set the umask in your user profile file so that every new file or directory you create is protected with these permissions.
Like the chmod command, umask uses a numeric code to represent absolute file permissions. However, the method that is used to calculate the code for umask is different from the method for chmod.
For example, if umask is set to 000, all files you create have the following (read and write, but not execute) permissions:
rw-rw-rw- (mode 666)
All directories that are created have the following (read, write, and execute) permissions:
rwxrwxrwx (mode 777)
To determine the value to use for umask, you subtract the value of the permissions you want (using the value you would specify for the chmod command) from the current default permissions assigned to files. The remainder is the value to use for the umask command.
For example, suppose you want to change the default mode for files from 666 (rw-rw-rw-) to 644 (rw-r--r--). Subtract 644 from 666. The remainder, 022, is the numeric value you would use with umask as follows:
$ umask 022 |
Similar to the numeric code for the chmod command, the three numbers that are used with umask are as follows.
The first digit controls user permissions
The second controls group permissions
The third digit controls permissions for all others
Table 10-1 shows the file permissions that are created for each digit of the umask command's numeric code.
Table 10–1 Permissions for umask|
umask code |
Permissions |
|---|---|
|
0 |
rwx |
|
1 |
rw- |
|
2 |
r-x |
|
3 |
r-- |
|
4 |
-wx |
|
5 |
-w- |
|
6 |
--x |
|
7 |
---(none) |
For more information on the umask command, refer to the man Pages(1): User Commands.