1.UNIX 变量
变量是在运行时将信息从shell传递到程序的一种方式。程序在特定的变量中查找“在环境中”,如果发现它们将使用存储的值。有些是由系统设置的,另一些是由你设置的,还有一些是由shell设置的,或者是任何加载另一个程序的程序。
标准UNIX变量分为两类,环境变量和shell变量。笼统地说,shell变量仅适用于shell的当前实例,并用于设置短期工作条件;环境变量具有更深远的意义,登录时设置的会话在会话期间是有效的。按照惯例,环境变量有UPPER CASE,shell变量有小写的名字。
2. 环境变量
一个环境变量的例子是OSTYPE变量。这个值就是你正在使用的当前操作系统。敲下
% echo $OSTYPE
更多的环境变量的例子是
USER(您的登录名)
HOME(主目录home directory的路径名)
HOST(正在使用的计算机的名称)
ARCH(计算机处理器的体系结构)
显示(显示X窗口的电脑屏幕名称)
打印机(发送打印作业的默认打印机)
PATH(shell应搜索以查找命令的目录)
找出这些变量的当前值
使用setenv命令设置环境变量,使用printenv或env命令显示环境变量,并使用unsetenv命令取消设置。 要显示这些变量的所有值,请键入
%printenv | less
3. Shell变量
一个shell变量的例子是历史变量。这个值是多少个shell命令的保存,允许用户回滚他们以前输入的所有命令。键入
%echo $ history
更多的shell变量的例子是
cwd(你当前的工作目录)
home(主目录的路径名)
路径(shell要搜索的目录以查找命令)
提示符(用于提示输入交互式命令的文本字符串shell)
找出这些变量的当前值。
SHELL变量都是使用set命令设置和显示的。它们可以通过使用unset命令来取消设置。 要显示这些变量的所有值,请键入
%set | less
那么PATH和path有什么区别呢?
一般而言,具有相同名称的环境变量和shell变量除了可能具有相同的初始值之外,是独立的和独立的。但是,有例外。
每次shell变量home,user和term被改变时,对应的环境变量HOME,USER和TERM都会收到相同的值。但是,更改环境变量对相应的shell变量没有影响。
PATH和path指定目录来搜索命令和程序。这两个变量总是表示相同的目录列表,并且改变自动导致另一个被改变。
8.4 Using and setting variables
每次登录UNIX主机时,系统都会在主目录中查找初始化文件。这些文件中的信息用于设置您的工作环境。C和TC shell使用两个名为.login和.cshrc的文件(注意两个文件名都以一个点开头)。
在登录时,C shell首先读取.cshrc,然后是.login
.login是设置将应用于整个会话的条件并执行仅在登录时才相关的操作。
.cshrc用于设置条件并执行特定于shell的操作以及对其的每次调用。
准则是在.login文件中设置ENVIRONMENT变量,在.cshrc文件中设置SHELL变量。
警告:切勿将运行图形显示的命令(例如Web浏览器)放在.cshrc或.login文件中。
8.5 Setting shell variables in the .cshrc file
在.cshrc文件中设置shell变量
例如,要更改保存在历史记录列表中的shell命令的数量,您需要设置shell变量历史记录。它默认设置为100,但是如果你愿意,你可以增加这个。
% set history = 200
通过键入命令检查设置已经生效
echo $history
但是,这只是为当前shell的生命周期设置变量。如果您打开一个新的xterm窗口,它将只设置默认的历史值。要永久设置历史记录的值,您需要将set命令添加到.cshrc文件。
首先在文本编辑器中打开.cshrc文件。一个简单的,使用用户友好的编辑器nedit。
参考文献:http://www.ee.surrey.ac.uk/Teaching/Unix/unix8.html
原文地址:https://www.cnblogs.com/williamc17/p/8406877.html