Bootstrap

在Linux中安装并使用Powershell

Part 1:简介

    PowerShell 是来自微软开源的一种任务自动化和配置管理框架语言,它结合了一个命令行 shell 和一个脚本语言,专为系统管理员、开发人员和其他 IT 专业人员设计,以帮助他们更高效地管理和自动化日常任务。如果你是一个重度的Powershell使用者,你可以使用powershell语言来管理Linux,或者在Linux上统一集成基于powershell语言的环境。

Part 2:在Linux环境下安装powershell

1、在线安装方式:

# Get version of RHEL/CentOS
source /etc/os-release
if [ ${VERSION_ID%.*} -lt 8 ]
then majorver=7
elif [ ${VERSION_ID%.*} -lt 9 ]
then majorver=8
else majorver=9
fi

# Download the Microsoft RedHat repository package
curl -sSL -O https://packages.microsoft.com/config/rhel/$majorver/packages-microsoft-prod.rpm

# Register the Microsoft RedHat repository
sudo rpm -i packages-microsoft-prod.rpm

# Delete the downloaded package after installing
rm packages-microsoft-prod.rpm

# Update package index files
sudo dnf update
# Install PowerShell
sudo dnf install powershell -y

2、离线安装方式

获取Linux环境下的Powershell安装包,在此建议直接访问微软的软件仓库进行下载:

微软仓库地址为:微软软件仓库icon-default.png?t=O83Ahttps://packages.microsoft.com/

若你的环境为CentOS/RHEL序列操作系统,可访问如下链接直接下载:

https://packages.microsoft.com/centos/7/prod/Packages/p/powershell-preview-7.0.0_preview.3-1.rhel.7.x86_64.rpm 

注:上述URL下载的包对应CentOS/RHEL序列7.X版本的操作系统,若环境不一致,需按需修改对用的URL地址。

在Linux下安装powershell环境依赖libicu包 ,若未安装此包,需要先行安装:

yum install libicu

在软件包目录直接执行如下命令安装即可:

rpm -ivh powershell-preview-7.0.0_preview.3-1.rhel.7.x86_64.rpm

[root@test1 ~]# rpm -ivh powershell-preview-7.0.0_preview.3-1.rhel.7.x86_64.rpm 
warning: powershell-preview-7.0.0_preview.3-1.rhel.7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:powershell-preview-7.0.0_preview.################################# [100%]
[root@test1 ~]#  

此后可将pwsh命名加入到系统环境变量中:

echo 'export PATH=/opt/microsoft/powershell/7-preview/:$PATH' >> /etc/profile
source /etc/profile

默认的安装路径:$PSHOME: /opt/microsoft/powershell/7/

配置文件脚本存储位置:
    AllUsersAllHosts - $PSHOME/profile.ps1
    AllUsersCurrentHost - $PSHOME/Microsoft.PowerShell_profile.ps1
    CurrentUserAllHosts - ~/.config/powershell/profile.ps1
    CurrentUserCurrentHost - ~/.config/powershell/Microsoft.PowerShell_profile.ps1

模块存储位置:
    用户模块 - ~/.local/share/powershell/Modules
    共享模块 - /usr/local/share/powershell/Modules

默认模块 - $PSHOME/Modules
PSReadline 历史记录将记录到 ~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt 

Part3: 使用示例

1、打开powershell:

[root@test1 ~]# pwsh
PowerShell 7.0.0-preview.3
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

PS /root> 

2、可以进一步查看powershell在Linux环境下支持哪些命令:

PS /root> Get-Command

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        cd..                                                          
Function        cd\                                                           
Function        Clear-Host                                                    
Function        Compress-Archive                                   1.2.3.0    Microsoft.PowerShell.Archive
Function        Configuration                                      2.0        PSDesiredStateConfiguration
Function        Expand-Archive                                     1.2.3.0
(此处列举部分)

3、导入第三方模块:

import-module -Name ./module_name.psd1

4、查看命令帮助信息:

Get-Help + 命令:获取帮助
Get-Help + 命令 + -Detailed:获取详细帮助信息(推荐)
Get-Help + 命令 + -Full:获取更详细帮助信息
;