UNIX常用命令行指令(8)(变量)

来源:互联网 发布:淘宝店家培训 编辑:程序博客网 时间:2024/05/16 00:42

UNIX教程八

8.1 UNIX变量

变量是在运行它们时将信息从shell传递到程序的一种方式。程序在环境中查找特定变量,如果发现它们将使用存储的值。一些由系统设置,其他由您设置,其他由shell设置,或任何加载另一个程序的程序。

标准UNIX变量分为两类,环境变量和外壳变量。从广义上讲,shell变量仅适用于shell的当前实例,用于设置短期工作条件; 环境变量具有更远的意义,并且在登录时设置的那些变量在会话的持续时间内有效。按照惯例,环境变量具有UPPER CASE,shell变量具有小写名称。

8.2环境变量

环境变量的一个示例是OSTYPE变量。这是您使用的当前操作系统的值。类型

%echo $ OSTYPE

更多环境变量的例子是

  • USER(您的登录名)
  • HOME(您的主目录的路径名)
  • HOST(您使用的计算机的名称)
  • ARCH(计算机处理器的架构)
  • DISPLAY(显示X窗口的计算机屏幕的名称)
  • PRINTER(用于发送打印作业的默认打印机)
  • PATH(shell应该搜索的目录来查找命令)

找出这些变量的当前值。

ENVIRONMENT变量使用setenv命令设置,使用printenvenv命令显示,并使用unsetenv命令取消设置。

要显示这些变量的所有值,请键入

%printenv | less

8.3 Shell变量

shell变量的一个示例是历史变量。这个值是要保存的shell命令的数量,允许用户向后滚动通过他们以前输入的所有命令。类型

%echo $ history

shell变量的更多示例是

  • cwd(您当前的工作目录)
  • home(您的主目录的路径名)
  • path(shell应该搜索的目录来查找命令)
  • 提示(用于提示交互式命令的文本字符串shell您的登录shell)

找出这些变量的当前值。

SHELL变量都使用set命令设置和显示。可以使用unset命令取消设置。

要显示这些变量的所有值,请键入

%set | less

那么PATH和path之间有什么区别呢?

通常,除了可能具有相同的初始值之外,具有相同名称(除了情况)的环境和shell变量是独立和独立的。但是,有例外。

每次shell变量home,user和term都被改变,相应的环境变量HOME,USER和TERM接收相同的值。但是,更改环境变量对相应的shell变量没有影响。

PATH和路径指定搜索命令和程序的目录。这两个变量始终表示相同的目录列表,并且更改或自动导致另一个更改。

8.4使用和设置变量

每次登录到UNIX主机时,系统都会在主目录中查找初始化文件。这些文件中的信息用于设置您的工作环境。C和TC shell使用两个称为.login和.cshrc的文件(注意两个文件名以一个点开头)。

在登录时,C shell首先读取.cshrc,后跟.login

.login是设置将应用于整个会话并执行仅在登录时相关的操作的条件。

.cshrc用于设置条件并执行特定于shell和每次调用它的操作。

指南是在.login 文件中设置ENVIRONMENT变量,在.cshrc文件中设置SHELL变量。

警告:切勿在.cshrc或.login文件中放置运行图形显示(例如Web浏览器)的命令。

8.5在.cshrc文件中设置shell变量

例如,要更改历史记录列表中保存的shell命令的数量,您需要设置shell变量历史记录。默认情况下,它设置为100,但如果您愿意,可以增加此值。

%set history = 200

检查这通过键入工作

%echo $history

但是,这只设置了当前shell的生命周期的变量。如果打开一个新的xterm窗口,它将只设置默认的历史值。要PERMANENTLY设置历史记录的值,您需要将set命令添加到.cshrc文件。

首先在文本编辑器中打开.cshrc文件。一个容易,用户友好的编辑器使用是nedit。

%nedit ~/.cshrc

在其他命令列表之后添加以下行。

设置历史= 200

保存文件并强制shell使用shell source命令重新读取其.cshrc文件buy。

%source .cshrc

检查这通过键入工作

%echo $history

8.6设置路径

当您键入命令时,您的路径(或PATH)变量定义外壳将在哪些目录中查找您键入的命令。如果系统返回一条消息:“command:Command not found”,则表示该命令在系统上根本不存在,或者根本不在您的路径中。

例如,要运行单位,您需要直接指定单位路径(〜/ units174 / bin / units),或者需要 在路径中有目录〜/ units174 / bin

您可以 通过发出以下命令将其添加到现有路径的末尾($路径代表此路径):

%set path = ($path ~/units174/bin)

通过尝试在除了单元实际所在的任何目录中运行单元来测试这是否工作。

%cd 
%units

要添加此路径PERMANENTLY,请将以下行添加到.cshrc之后的其他命令列表。

set path = ($path ~/units174/bin)

英语原文

0 0