树叶云UNIX教程:UNIX 环境

UNIX 环境

UNIX 中一个重要的概念是环境,它是由环境变量所定义。一些环境变量是由系统设置,有一些是由用户设置的,还有一些是被 Shell,或任何会加载另一个程序的程序所设置。

一个变量是由一个字符组成的串,并且我们会给它赋值。给变量赋的值可以是一个数字,文本,文件名,设备或任何其他类型的数据。

例如,首先,我们设置一个名称为 TEST 的变量,然后我们使用 echo 命令查看它的值:

$TEST="Unix Programming"
$echo $TEST
Unix Programming

注意,设置环境变量不使用 $ 符号,但在访问他们的时候,我们使用 $ 符号作为前缀。这些变量保存它们的值,直到我们退出 shell。

当你登录到系统,shell 经过初始化阶段,在该阶段会设置各种环境变量。这通常会涉及到两步的处理过程,shell 会读取以下文件:

  • /etc/profile
  • profile

处理流程如下:

  1. shell 程序检查 /etc/profile 文件是否存在。
  2. 如果该文件存在,shell 程序会读取该文件。否则,就会跳过该文件。同时也不会显示任何错误信息。
  3. shell 程序检查 .profile 文件是否在你的根目录下面存在。您的根目录就是你在登录之后进入的目录。
  4. 如果该文件存在,shell 程序就会读取它。否则,shell 程序跳过它,不会显示任何错误信息。

一旦这两个文件读取完成,shell 显示一个等待输入命令:

    $

这是提示,在它后面你可以输入命令来执行。

注意:Shell 初始化的详细过程通常利用的是 Bourne Shell,但是其他的一些文件处理是利用 bashksh shell 程序。

.profile 文件

/etc/profile 文件是由 UNIX 的系统管理员维护的,并且该文件中包含了 Shell 初始化的信息,这个信息可以被任何系统中的任何用户查看。

如果你有对 .profile 文件操作的权限,那么你就可以在这个文件中添加你想要的尽可能多的定制 Shell 信息。

  • 你使用的终止符的类型
  • 命令存在的一系列文件的列表
  • 一些列的变量设置你的终端显示的效果

你可以在你的根目录下面查看 .profile 文件。利用 vi 编辑器打开它,查看其中设置的所有环境变量。

设置终结符的类型

通常您所使用的终端的类型由 logingetty 程序自动配置。有时,自动配置过程会推测你的终端类型是不对的。

如果您的终端设置错误,命令的输出可能看起来很奇怪,或者你可能无法与 Shell 正常交互。

确保这不是这种情况,大多数用户的终端最少相同的特性如下:

$TERM=vt 100
$

设置 PATH 变量

当你在命令提示符下输入任何命令,Shell 只有确定了命令所在的目录才能执行命令。

Shell 是在环境变量 PATH 中寻找命令所在的目录。通常,它设置如下:

$PATH=/bin:/usr/bin
$

这里的每一个由冒号,:,分开的实体是目录。如果你请求 Shell 执行一个命令,但是它不能在 PATH 环境变量中找到任何命令所在的路径,这时会出现一个类似如下的消息:

$hello
hello: not found
$

还有类似于 PS1 和 PS2 这样的变量,将会在下一节说明。

PS1 和 PS2 变量

shell 显示给你的命令提示符存储在变量 PS1 中。你可以改变这个变量成任何你想要的字符。只要你改变它,它就会从你改变后开始起作用。

例如,如果你输入如下的命令:

$PS1='=>'
=>
=>
=>

你的提示输入符将会变成 =>。设置 PS1 的值,让它显示工作目录,输入如下的命令:

=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$

该命令的结果是,显示用户的用户名、机器名称(主机名),和工作目录。

有相当多的转义序列,可以用作 PS1 的参数,尽量让自己只关注最关键的部分,不要让下面的信息对你造成过多的压力。

转义序列描述
\t将当前的时间表示成 HH:MM:SS 的形式
\d将当前的日期表示成 周 月 日
\n新的一行。
\s当前的环境变量。
\W工作目录。
\w工作目录的完整路径。
\u当前用户的用户名。
\h当前机器的主机名称。
\#当前命令的编号。每输入一条命令编号加 1。
\$如果有效的 UID 是 0(也就是说,如果你以 root 用户进行登录),命令提示符会变成 #,否则,提示符是 $。

你可以通过修改 .profile 文件,在每次登录的时候进行上面的那些转换。这样每次登录就会自动的改变 PS1 的值。

当你输入一个不完整的命令是,shell 将再次显示一个命令输入符,等待你再次完成命令并回车。

默认二级提示 >(大于号),但可以改变通过设置 PS2 变量进行修改:

下面的示例使用默认的二级提示:

    $ echo "this is a
    > test"
    this is a
    test
    $

下面是一个通过重新定义 PS2 变量自定义输入符的示例:

$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$

环境变量

以下是部分重要的环境变量的列表。这些变量将按照上面提到的方式被设置和访问:

变量描述
DISPLAY 包含显示设备的标识符,默认情况下它的值是 X11。
HOME表明当前用户的根目录,默认的参数中会内置 cd 命令。
IFS表明系统内部所使用字段分隔符,它通常用在解析器分割单词中。
LANGLANG 扩展系统默认的语言:LC_ALL 可以用来覆盖这个变量。例如,如果它的值是 pt_BR,那么系统的语言就被设置成(Brazillian)Portuguese 和地区被设置成 Brazil。
LD_LIBRARY_PATH许多 UNIX 系统动态链接器,包含以冒号分隔的目录列表,在执行后,动态连接器构建过程图像过程中,在搜索其他目录之前,先搜索共享对象。
PATH命令的搜索路径。它是由冒号分隔开一系列目录,也就是 shell 寻找命令所在的目录。
PWD当前的工作目录,由 cd 命令设置的。
RANDOM每次被引用的时候就会生成一个 0 到 32,767 范围内的一个随机整数。
SHLVL每次一个 bash 实例被启动这个值就会加 1。这个变量对于决定内置的退出命令是否终止当前会话是很有用的。
TERM 显示类型。
TZ 时间区域。它能被赋值为 GMT,AST 等。
UID数值类型标识当前用户,它在 shell 启动的时候被初始化。

如下是几个简单的例子显示几个环境变量:

$ echo $HOME
/root
]$ echo $DISPLAY
$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/176547.html<

(0)
管理的头像管理
上一篇2025-03-25 05:33
下一篇 2025-03-25 05:35

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注