| Shell Scripting Tutorials Shell Scripting Tutorials Discussions |
![]() |
| LinkBack | Thread Tools | Search this Thread |
|
|||
|
Environment & its variables in linux/unix
Hi Jennifer,
The following summary might be helpful for you, Have nice time reading this, Cheers, Ram. Shell Environment All the programs that run under Linux are called as processes. Processes run continuously in Linux and you can kill or suspend different processes using various commands. When you start a program a new process is created. This process runs within what is called an environment. This particular environment would be having some characteristics which the program/process may interact with. Every program runs in its own environment. You can set parameters in this environment so that the running program can find desired values when it runs. Setting a particular parameter is as simple as typing VARIABLE=value . This would set a parameter by the name VARIABLE with the value that you provide. To see a list of the environment variables that are already set on your machine, type the following $ env This would produce a long list. Just go through the list before reading the next part of the article. Linux by default sets many environment variables for you. You can modify the values of most of these variables. A few of the variables that are set are HOME=/home/david would set the home directory to /home/david. This is perfect in case your login name is david and you have been given a directory named /home/david . In case you don't want this to be your home directory but some other one you could indicate so by typing the new directory name. The HOME directory is always the directory that you are put in when you login. There are many advantages of using the HOME variable. You can always reach your home directory by only typing ' cd ' at the prompt, irrespective of which directory you are presently within. This would immediately transfer you to your HOME directory. Besides in case you write scripts that have $HOME present in them to refer to the current HOME directory, these scripts can be used by other users as well since $HOME in their case would refer to their home directories. - PATH=/usr:/bin/:usr/local/bin:. This is a very important environment variable. This sets the path that the shell would be looking at when it has to execute any program. It would search in all the directories that are present in the above line. Remember that entries are separated by a ' : ' . You can add any number of directories to this list. The above 3 directories entered is just an example. Note : The last entry in the PATH command is a ' . ' (period). This is an important addition that you could make in case it is not present on your system. The period indicates the current directory in Linux. That means whenever you type a command, Linux would search for that program in all the directories that are in its PATH. Since there is a period in the PATH, Linux would also look in the current directory for program by the name (the directory from where you execute a command). Thus whenever you execute a program which is present in the current directory (maybe some scripts you have written on your own) you don't have to type a ' ./programname ' . You can only type ' programname ' since the current directory is already in your PATH. Remember that the PATH variable is a very important variable. In case you want to add some particular directory to your PATH variable and in case you try typing the following PATH =/newdirectory This would replace the current PATH value with the new value only. What you would want is to append the new directory to the existing PATH value. For that to happen you should type PATH=$PATH:/newdirectory This would add the new directory to the existing PATH value. Always a $VARIABLE is substituted with the current value of the variable. - PS1=boss PS1 is the shell prompt. It defines what you want your shell prompt to look like. By default it looks like a ' $ ' in bash shell. The above case would replace the default ' $ ' with a new 'boss' . Hence an ls command would look something like boss> ls All your commands would now be typed at a ' boss ' prompt instead of a ' $ ' prompt. - SHELL=/bin/bash This tells where the program that represents your shell is to be found. In case you typed /bin/ksh in the above, then your bash shell would be replaced with the ksh shell (korn shell). So in case you are not happy with the bash shell, you could replace the bash with some other shell. - LOGNAME=david The LOGNAME is automatically set for you as the same as your login name. This variable is used in case you want to use your own login name in any script. This is the simplest way of getting your login name from within a script. Thus in case you use $LOGNAME in any script the script would work for all users since the LOGNAME always holds the name of the current user. A good use is in case you have been given a temporary directory to work with and to make temporary files then you would want to delete the files that you created. You could use a command with the $LOGNAME in it to locate files that were created by you and then you could pass the result of this command to a rm command. This would be a neat way to delete all the files at one go, rather than find them one at a time. Note : Finding files based on a particular criteria and then passing those files to another program is explained in Article No. 21 - There are more environment variables then the ones that are mentioned here. But most users would find the ones given here to be useful. Important : To make the above changes permanent (that is it should work every time you login) make the changes to the .profile file that exists in your HOME directory. Simply type the required commands one line for each. And there you go. It will be available every time you login. You could check the variables using 'env' command. |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
|
|