当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 环境变量 |环境变量的类型

作者:精品下载站 日期:2024-12-14 04:58:42 浏览:15 分类:玩电脑

PowerShell 环境变量 |环境变量的类型


[玩转系统] PowerShell 环境变量 |环境变量的类型

PowerShell 环境变量简介

环境变量包含操作系统信息,例如操作系统的路径、操作系统使用的处理器数量以及系统临时文件夹的地址。这里的第一个问题是,为什么我们需要环境变量?让我告诉你一个例子,假设你有一个脚本,并且这个脚本必须根据环境以不同的方式工作,就像如果脚本在本地计算机上运行,它必须以不同的方式执行,如果它运行在服务器计算机上,它必须以不同的方式运行工作方式不同。现在的问题是脚本如何知道它在哪里运行?所以答案很简单,借助环境变量,它可以区分并相应地执行任务。我们的操作系统包含很少的环境变量,例如,当我们登录到计算机系统时,它会设置我们的主目录。我们将看到它的语法和示例。要查看 PowerShell 环境变量,请使用以下命令。

Set-Location Env:Get-Item Env:

如何声明PowerShell环境变量?

以下是声明 PowerShell 环境变量的示例:

例子#1

在下面的示例中,我们为设置环境分配一个环境变量,并使用命令 Get-ChildItem 我们获取环境名称。假设你想为不同的环境设置不同的数据库,那么我们可以设置环境变量名称,根据环境名称我们可以设置数据库名称。

代码:

$env:ServerName = 'stage'
Get-ChildItem Env:ServerName

输出:'阶段'

$env:ServerName = 'production'
Get-ChildItem Env:ServerName

输出:'生产'

[玩转系统] PowerShell 环境变量 |环境变量的类型

例子#2

我们可以定义自己的环境变量,也可以根据需要获取它的值。在下面的示例中,我们可以看到一个非常简单的语法及其示例。我们正在设置 myFirst_ENV 的值,并使用 Get-ChildItem 命令获取其值。

代码:

$Env:<variable-name> += "<new-value>"
$Env:myFirst_ENV += "test1"
Get-ChildItem Env:/myFirst_ENV

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

PowerShell 环境变量列表

有两种类型的环境变量:

1. 系统定义

系统定义可用一个系统定义,例如您的计算机从哪里启动它就知道如何设置主目录以及如何设置其他重要路径,

任何系统都有很多环境,比如与窗口相关的环境、与路径相关的环境以及与处理器长度相关的环境。下面的命令将显示所有可用的环境。对于不同的系统架构(如 Window、Linux 和 Apple 系统),它的值是不同的。

Get-ChildItem Env:

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

我们还可以按排序顺序显示这些详细信息,请使用屏幕查看下面的示例。

Get-ChildItem Env: | Sort-Object Name

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

让我们通过示例来讨论每一个,所以如果我们想查看窗口路径,可以编写以下命令,

$env:WINDOWPATH

如果我们想查看 Path 变量类型的详细信息,我们可以编写如下命令

$env:PATH

请参阅下面的示例及其输出,

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

我们可以通过以下命令查看所有临时文件夹

Get-ChildItem $Env:Temp -Recurse

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

要查看任何环境变量值,我们可以使用下面的命令和屏幕,只需传递我们想要查看的环境变量的名称,它将显示出来。

代码:

PS /home/ranjan> $env:CLUTTER_IM_MODULE
xim
PS /home/ranjan> $env:XDG_DATA_DIRS
/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
PS /home/ranjan> $env:NODE_ENV
development
PS /home/ranjan> $env:DESKTOP_SESSION
ubuntu
PS /home/ranjan>

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

2. 自定义环境

另一个环境变量是自定义环境变量,这些变量是为我们自己使用而定义的。例如,如果我们开发了一个应用程序,并且希望它在不同的环境中以不同的方式运行,例如

代码:

$Env:FOO = "hello world"
Get-ChildItem FOO

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

使用 Power Shell 环境变量的优点

您在 Powershell 中创建了许多变量,但是您是否意识到这些变量是本地变量,这意味着它们只能在当前会话中可用,一旦您启动另一个 PWSH 会话,这些变量将不再可用。让我们看下面的示例。

让我们在当前会话上创建一个局部变量“mycomputer”,

代码:

Set-Variable -Name mycomputer -Value "ranjan-computer"
gv mycomputer -valueOnly

输出:ranjan-computer

让我们打开另一个 shell 并登录到 PWSH 会话并尝试获取“mycomputer”变量名称,如下所示,

pwsh
gv mycomputer -valueOnly

输出:gv:找不到名为“mycomputer”的变量。

因此,此变量不可用于其他会话,并且会出现错误。环境变量是特殊变量,因为它们在所有新 shell 上都可用。

请参阅局部变量示例的屏幕,

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

[玩转系统] PowerShell 环境变量 |环境变量的类型

让我们以环境变量为例,这里我们有一个名为 NODE_ENV 的环境变量,我们在一个 shell 上获取它的值development,一旦我们打开一个新 shell 并试图找到它的值,我们就会看到它返回相同的值,即“development” ,这意味着环境变量全局可用。

请参阅全局环境变量的示例,

Get-ChildItem Env:NODE_ENV

输出:

[玩转系统] PowerShell 环境变量 |环境变量的类型

[玩转系统] PowerShell 环境变量 |环境变量的类型

从上面的示例中,我们了解到环境变量可以在每个新 shell 中使用。

您也许能够了解在 PowerShell 中使用环境变量的最大和主要优点。它只是帮助我们在运行时识别系统环境,从而允许我们的脚本根据环境的值执行不同的任务。

主要优点是,

  • 环境变量的值是持久性的,即在所有终端都可用。
  • 如果我们有大量服务器,那么通过定义环境变量来管理它们将非常容易。
  • 如果您想以更好的方式管理您的应用程序并且不想触及内部代码进行配置,那么我们可以使用环境变量。
  • 您将获得更好的安全性,因为大多数黑客都试图破解并管理他们的代码和应用程序,他们无法操纵和访问环境变量。
  • 如果您想设置一个快速测试环境,并且不想将大量代码授予非技术用户,那么我们可以设置环境变量,并根据我们为他们设置的环境授予不同用户访问权限。

结论

PowerShell 环境变量,当我们尝试运行应用程序并希望全局使用变量时,环境变量非常有用,这意味着该变量应该可用于所有正在运行的进程和脚本。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯