Linux 中的 PowerShell 入门 [初学者指南]
在微软爱上Linux(俗称“微软爱Linux”)后,原本是Windows的PowerShell -唯一的组件,于 2016 年 8 月 18 日开源并跨平台,可在 Linux 和 Mac OS 上使用。
PowerShell是微软开发的任务自动化和配置管理系统。它由命令语言解释器(shell)和构建在.NET Framework上的脚本语言组成。
它提供对COM(组件对象模型)和WMI(Windows Management Instrumentation)的完整访问,从而允许系统管理员可以在本地和远程 Windows 系统以及 WS-Management 和 CIM(通用信息模型)上执行管理任务,从而实现对远程 Linux 系统和网络设备的管理。
在此框架下,管理任务基本上是由称为cmdlet(发音为command-let)的特定.NET类来执行的。
与 Linux 中的 shell 脚本类似,用户可以按照一定的规则,通过将cmdlet 组存储在文件中来构建脚本或可执行文件。这些脚本可以用作独立的命令行实用程序或工具。
在 Linux 系统中安装 PowerShell
要在 Linux 中安装 PowerShell,我们将使用官方 Microsoft 存储库,该存储库允许我们通过最流行的 Linux 包管理工具(例如 apt-get 或 apt 以及 yum 或 dnf)进行安装。
在 Ubuntu 上安装 PowerShell
首先导入公共存储库GPG密钥,然后在APT软件包源列表中注册Microsoft Ubuntu存储库以安装Powershell :
sudo apt-get update
sudo apt-get install -y wget apt-transport-https software-properties-common
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y powershell
在 Debian 11 上安装 PowerShell
适用于 Debian 发行版的 PowerShell 已发布到软件包存储库中,以便于安装和更新。
sudo apt update
sudo apt install -y curl gnupg apt-transport-https
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-bullseye-prod bullseye main" > /etc/apt/sources.list.d/microsoft.list'
sudo apt update
sudo apt install -y powershell
在 Debian 10 上安装 PowerShell
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y powershell
在 RHEL 系统上安装 PowerShell
基于 RHEL 的发行版(例如 CentOS Stream、Rocky 和 AlmaLinux)的 PowerShell 已发布到官方 Microsoft 存储库,以便于安装和更新。
---------- On RHEL, CentOS, Rocky & AlmaLinux 9 ----------
curl https://packages.microsoft.com/config/rhel/9.0/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
sudo dnf install --assumeyes powershell
---------- On RHEL, CentOS, Rocky & AlmaLinux 8 ----------
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
sudo dnf install --assumeyes powershell
---------- On RHEL/CentOS 7 ----------
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
sudo dnf install --assumeyes powershell
如何在 Linux 中使用 Powershell
本节我们将简单介绍一下Powershell;我们将在其中了解如何启动 powershell、运行一些基本命令,并了解如何使用文件、目录和进程。然后深入了解如何列出所有可用命令,并显示命令帮助和别名。
要启动 Powershell,请键入:
pwsh
PowerShell 7.3.3
PS /root>
您可以使用以下命令检查 Powershell 版本:
PS /root> $PSVersionTable
Name Value
---- -----
PSVersion 7.3.3
PSEdition Core
GitCommitId 7.3.3
OS Linux 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30)
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
在 Linux 上运行一些基本的 Powershell 命令。
get-date [# Display current date]
get-uptime [# Display server uptime]
get-location [# Display present working directory]
在 Powershell 中处理文件和目录
1.使用以下两种方法创建一个新的空文件:
new-item tecmint.tex
OR
“”>tecmint.tex
然后向其中添加内容并查看文件内容。
set-content tecmint.tex -value "TecMint Linux How Tos Guides"
get-content tecmint.tex
2.在powershell中删除文件。
remove-item tecmint.tex
get-content tecmint.tex
3.创建一个新目录。
mkdir tecmint-files
cd tecmint-files
“”>domains.list
ls
4.执行长列表,显示文件/目录的详细信息,包括模式(文件类型)和上次修改时间。
dir
5.查看系统上所有正在运行的进程:
get-process
6. 要查看具有给定名称的单个/一组正在运行的进程的详细信息,请将进程名称作为参数提供给上一个命令,如下所示:
get-process apache2
上述输出中单位的含义:
- NPM(K) – 进程正在使用的非分页内存量(以千字节为单位)。
- PM(K) – 进程正在使用的可分页内存量(以千字节为单位)。
- WS(K) – 进程工作集的大小,以千字节为单位。工作集由进程最近引用的内存页面组成。
- CPU – 进程在所有处理器上使用的处理器时间量(以秒为单位)。
- ID – 进程 ID (PID)。
- ProcessName – 进程的名称。
7. 要了解更多信息,请获取针对不同任务的所有 Powershell 命令的列表:
get-command
8. 要了解如何使用命令,请查看其帮助页面(类似于 Unix/Linux 中的手册页);在此示例中,您可以获得 Describe 命令的帮助:
get-help Describe
9.查看所有可用的命令别名,输入:
get-alias
10.最后但并非最不重要的一点是,显示命令历史记录(您之前运行过的命令列表),如下所示:
history
就这样!目前,在本文中,我们向您展示了如何在 Linux 中安装Microsoft 的 Powershell。对我来说,与传统的 Unix/Linux shell 相比,Powershell 还有很长的路要走,传统的 Unix/Linux shell 提供了更好、更令人兴奋和高效的功能来从命令行操作机器,更重要的是,用于编程(脚本)目的以及。
访问 Powershell Github 存储库:https://github.com/PowerShell/PowerShell
不过,您可以尝试一下,并在评论中与我们分享您的看法。