25
Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Embed Size (px)

Citation preview

Page 1: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Introduction to Unix (CA263)

Your Environment

By

Tariq Ibn AzizDammam Community College

Page 2: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Objectives

• In this lecture you will learn – Local variable

– Subshells

– Exported Variables

– PS1 and PS2

– Your PATH

Page 3: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Objectives

• In this lecture you will learn – Your Current Directory

– More on Subshells

– Your .profile File

– The TERM Variable

Page 4: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Local Variables[1]

• The vartest consists of echo command that display value of x, surrounded by colons

$ cat vartestecho :$x:$ x=100$vartest::$• vartest doesn’t know about the value of x.

Therefore its value is null.

Page 5: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Local Variables[2]

$ cat vartest2x=50echo :$x:$ x=100$vartest2:50:$• Now question is what is the value of x?$ echo $x100$

Page 6: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Subshells

• The behavior exhibited by vartest and vartest2 is due to the fact that these two program are run as subshells by your login shell.

• When you ask your login shell to execute the vartest, it startup a new shell to execute the program.

• Whenever new shell runs it runs in its own environment with its own set of local variables.

• A subshells has no knowledge of local variables that were assigned values by the login shell.

• A subshell cannot change the value of a variable in the parent shell.

Page 7: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Exported Variables

• There is a way to make the value of a variable known to a subshell, and that’s by exporting it with the export command.

• Here is a program vartest3$ cat vartest3echo x = $xecho y = $y$

$ x=100$ y=10$ vartest3x =y =$ export y$ vartest3x =y = 10$

Page 8: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Exported Variables

• Change the value of x and y in vartest4.$ cat vartest4x=50y=5$vartest4$echo $x $y100 10$

Page 9: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Exported Variables

$ cat vartest4x=50y=5z=1export zVartest5$$cat vartest5echo x = $xecho y = $yecho z = $z$

$ vartest4x=y=10z=1$• When vartest4 get

executed, the exported variable y will be copied into the subshell’s environment.

• vartest4 set the value of x, y and z. The it export z.

• This makes the value of z accessible to any subshell.

Page 10: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Exported Variables Example

$ cat vartest4x=50y=5z=1export y zvartest5$$cat vartest5echo x = $xecho y = $yecho z = $z$

• If you change the vartest4 to explicitly export the value of y, then changed value of y will get exported down to vartest5.

$ vartest5x=y=5z=1$

Page 11: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

export with No argument

• If you just type export, not followed by any argument, you will get a list of the exported variables that are exported by your shell.

export LOGNAMEexport PATHexport TIMEOUTexport TZexport y

Page 12: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

PS1 and PS2

• The characters that the shell display as your command prompt are stored in the variable PS1. You can change this variable to be anything you like.

• $ echo :$PS1::$ :$ PS1="==>“==>

Page 13: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

PS1 and PS2

• Your secondary command prompt, normally > is kept in the variable PS2, where you can change it as you like.

$ echo :$PS2::> :$ PS2="=====>”$

$ for x in 1 2 3=====> do=====> echo $x=====> done123$

Page 14: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

HOME variable

• Your home directory is where you are placed whenever you log onto the system.

• A special variable HOME is also automatically set to this directory when you log on.

$ echo $HOME/usr/steve$ HOME=/usr/steve/book$ pwd/usr/steve$ cd$ pwd/usr/steve/book

Page 15: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Your PATH

• Whenever you type in the name of a program to be executed, the shell searches a list of directories until it find the program.

• The list of directories is contained in a special variable called PATH$ echo $PATH/bin:/usr/bin:

• You can always override the path variable by specifying the path to the file to be executed.

Page 16: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Example PATH

• The shell will go directly to /bin to execute date.$ /bin/date

Or./rolo

• You can execute rolo without specifying path if the directory of rolo is specified in PATH variable.

Page 17: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

Your Current Directory

$ cat cdtestcd /usr/steve/binpwd$ pwd/usr/steve$ cdtestusr/steve/bin

$ pwd/usr/steve• Why we are in /usr/steve where as we changed the directory in cdtest program?

Page 18: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

CDPATH Variable

• The CDPATH variable works like the PATH variable.

• It specifies a list of directories to be searched by the shell whenever you execute the cd command.

• This search is done only if the specified directory is not given by a full path name and if CDPATH is not null.

Page 19: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

CDPATH Variable Example

• If you type cd /usr/steve then the shell changes your directory directly to /usr/steve

• But if you type cd memos, then shell will look at your CDPATH variable to find the memo directoy. And if the CDPATH looks like this$ echo $CDPATH:/usr/steve:/usr/steve/docs$ cd /usr/steve$ cd memos/usr/steve/docs/memos$ cd bin/usr/steve/bin

Page 20: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

More on Subshells

$ cat varsBOOK=/usr/steve/bookUUPUB=/usr/spool/uucppublicDOCS=/usr/steve/docs/memosDB=/usr2/data$$ vars$ echo $BOOK

$

Page 21: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

The . Command

• There is a shell built-in command called . (dot)

. file• Whose purpose is to execute the content of file in

the current shell.

$ . vars$ echo $BOOK/usr/steve/BOOK$

Page 22: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

The .profile Command

• Your login shell executes two special files on the system.

• The first is /etc/profile. This file is set up by the two system administrator and usually does things like checking to see if you have mail.

• The second file that get automatically executed is .profile in your home directory. Your system administrator may have given you a default .profile file when you got your account.

Page 23: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

The .profile Command

$ cat $HOME/.profilePATH="/bin:/usr/bin:/usr/lbin::"export PATH$

Page 24: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

The TERM Variable

• If you tend to use more than one type of terminal, then the .profile is a good place to put some code to prompt for the terminal type and then set the TERM variable accordingly.

• A sample code from .profile file on next slide.

Page 25: Compunet Corporation Introduction to Unix (CA263) Your Environment By Tariq Ibn Aziz Dammam Community College

Compunet Corporation

The TERM Variable

echo "what terminal are you using(hp-2621 is default ?\c"

read TERMif [ -z "$TERM" ]then

TERM=2621fiexport TERM