在本章中,我们将详细讨论Unix环境。 Unix的一个重要概念是 environment ,它是由环境变量定义的。
变量是我们为其分配值的字符串。分配的值可以是数字,文本,文件名,设备或任何其他类型的数据。
如,首先我们设置一个变量TEST,然后使用 echo 命令访问它的值-
$TEST="Unix Programming" $echo $TEST
它产生以下输出。
Unix Programming
请注意,设置环境变量时不使用 $符号,但是在访问它们时,我们使用$符号作为前缀。
当您登录系统时,Shell程序会经历一个称为初始化的阶段来设置环境。这通常是一个两步过程,涉及Shell读取以下文件-
- /etc/profile
- .profile
流程如下-
Shell检查文件/etc/profile 是否存在。
如果存在,Shell程序将读取它,否则,将跳过此文件。
shell检查您的主目录中是否存在文件 .profile 。
如果存在,Shell会读取它;否则,Shell将跳过它。
读完这两个文件后,Shell程序将显示提示-
$
这是提示,您可以在其中输入命令以执行命令。
.profile文件
文件/etc/profile 由Unix计算机的系统管理员维护,并且包含系统上所有用户所需的Shell初始化信息。
您可以检查主目录中的 .profile 。使用vi编辑器将其打开,并检查为您的环境设置的所有变量。
设置路径
在命令提示符下键入任何命令时,Shell程序必须先找到该命令,然后才能执行该命令。
PATH变量指定Shell程序应在其中查找命令的位置。通常,Path变量设置如下-
$PATH=/bin:/usr/bin $
在这里,用冒号(:)分隔的每个单独条目都是目录,如果您请求Shell程序执行命令,但在PATH变量给定的任何目录中都找不到它,则会显示类似以下内容的消息-
$hello hello: not found $
PS1和PS2变量
Shell作为命令提示符显示的字符存储在变量PS1中,您可以将此变量更改为所需的任何值,更改后,Shell将立即使用它。
如,如果您发出命令-
$PS1='=>' => => =>
您的提示将变为=>。 要设置PS1的值以使其显示工作目录,请发出命令-
=>PS1="[\u@\h\w]\$" [root@ip-72-167-112-17 /var/www/learnfk/unix]$ [root@ip-72-167-112-17 /var/www/learnfk/unix]$
该命令的输出是提示显示用户的用户名,计算机的名称(主机名)和工作目录。
有很多转义序列可用作PS1的值参数。
Sr.No. | Escape Sequence & 描述 |
---|---|
1 |
\t 当前时间,表示为HH:MM:SS |
2 |
\d 当前日期,表示为工作日月份日期 |
3 |
\n 换行 |
4 |
\s 当前的Shell环境 |
5 |
\W 工作目录 |
6 |
\w 工作目录的完整路径 |
7 |
\u 当前用户的用户名 |
8 |
\h 当前机器的主机名 |
9 |
\# 当前命令的命令号。输入新命令时增加 |
10 |
\$ 如果有效UID为0(也就是说,如果您以root用户身份登录),则以#字符结束提示;否则,以0结尾。否则,请使用$符号 |
您可以在每次登录时自行进行更改,也可以通过将更改添加到您的 .profile 文件中来自动进行更改。
默认的辅助提示是>(大于符号),但是可以通过重新定义PS2 shell变量来更改-
以下是使用默认辅助提示的示例-
$echo "this is a > test" this is a test $
下面给出的示例使用自定义提示重新定义PS2-
$PS2="secondary prompt->" $echo "this is a secondary prompt->test" this is a test $
环境变量
以下是重要环境变量的部分列表。如下所述设置和访问这些变量-
Sr.No. | Variable & 描述 |
---|---|
1 |
DISPLAY 包含默认情况下 X11 程序应使用的显示的标识符。 |
2 |
HOME 指示当前用户的主目录:cd 内置命令的默认参数。 |
3 |
IFS 表示解析器使用内部字段分隔符进行扩展后的单词拆分。 |
4 |
LANG LANG扩展到默认系统区域设置; LC_ALL可用于替代此设置。如,如果其值为 pt_BR ,则将语言设置为(巴西)葡萄牙语,将语言环境设置为巴西。 |
5 |
LD_LIBRARY_PATH 带有动态链接器的Unix系统包含用冒号分隔的目录列表,在exec之后构建过程镜像之前,动态链接器应在搜索任何其他目录之前搜索共享对象。 |
6 |
PATH 指示命令的搜索路径。它是一个用冒号分隔的目录列表,shell在其中搜索命令。 |
7 |
PWD 指示由cd命令设置的当前工作目录。 |
8 |
RANDOM 每次引用都会生成一个介于0到32,767之间的随机整数。 |
9 |
SHLVL 每次启动bash时增加一。此变量对于确定内置的exit命令是否结束当前会话很有用。 |
10 |
TERM 指显示类型。 |
11 |
TZ 指时区。它可以采用GMT,AST等值。 |
12 |
UID 扩展为当前用户的数字用户ID,在shell启动时初始化。 |
以下是显示环境变量的示例-
$echo $HOME /root ]$echo $DISPLAY $echo $TERM xterm $echo $PATH /usr/local/bin:/bin:/usr/bin:/home/learnfk/bin:/usr/local/bin $
参考链接
https://www.learnfk.com/linux/linux-environment.html
标签:profile,bin,Shell,变量,无涯,echo,命令,Linux,环境变量 From: https://blog.51cto.com/u_14033984/8566176