PUB:20170216 Getting Started with PowerShell 6.0 in Linux.md

毀滅世界大魔王 (@zijung) ,辛苦啦,加油!
@jasminepeng
This commit is contained in:
wxy 2017-03-13 08:41:45 +08:00
parent 6df4855386
commit 9c738150ca

View File

@ -1,21 +1,21 @@
Linux 上 PowerShell 6.0 使用入门 [新手指南] 微软爱上 Linux当 PowerShell 来到 Linux 时
============================================================ ============================================================
在微软爱上 Linux 之后(众所周知 **Microsoft Loves Linux****PowerShell** 原本只是 Windows 才能使用的组件,于 2016 年 8 月 18 日开源并且跨平台,已经可以在 Linux 和 macOS 中使用 在微软爱上 Linux 之后,**PowerShell** 这个原本只是 Windows 才能使用的组件,于 2016 年 8 月 18 日开源并且成为跨平台软件,登陆了 Linux 和 macOS
**PowerShell** 是一个微软开发的自动化任务和配置管理系统。它基于 .NET 框架由命令行语言解释器shell和脚本语言组成。 **PowerShell** 是一个微软开发的自动化任务和配置管理系统。它基于 .NET 框架由命令行语言解释器shell和脚本语言组成。
PowerShell 提供对 **COM** (**Component Object Model**) 和 **WMI** (**Windows Management Instrumentation**) 的完全访问,从而允许系统管理员在本地或远程 Windows 系统中 [执行管理任务][1],以及对 WS-Management 和 CIM**Common Information Model**)的访问,实现对远程 Linux 系统和网络设备的管理。 PowerShell 提供对 **COM** (<ruby>组件对象模型<rt>Component Object Model</rt></ruby>) 和 **WMI** (<ruby>Windows 管理规范<rt>Windows Management Instrumentation</rt></ruby>) 的完全访问,从而允许系统管理员在本地或远程 Windows 系统中 [执行管理任务][1],以及对 WS-Management 和 CIM<ruby>公共信息模型<rt>Common Information Model</rt></ruby>)的访问,实现对远程 Linux 系统和网络设备的管理。
通过这个框架,管理任务基本上由称为 **cmdlets**(发音 command-lets**.NET** 类执行。就像 Linux 的 shell 脚本一样,用户可以通过按照一定的规则将 **cmdlets** 写入文件来制作脚本或可执行文件。这些脚本可以用作独立的[命令行程序或工具][2]。 通过这个框架,管理任务基本上由称为 **cmdlets**(发音 command-lets**.NET** 类执行。就像 Linux 的 shell 脚本一样,用户可以通过按照一定的规则将一组 **cmdlets** 写入文件来制作脚本或可执行文件。这些脚本可以用作独立的[命令行程序或工具][2]。
### 在 Linux 系统中安装 PowerShell Core 6.0 ### 在 Linux 系统中安装 PowerShell Core 6.0
要在 Linux 中安装 **PowerShell Core 6.0**,我们将会用到微软 Ubuntu 官方仓库,它允许我们通过最流行的 Linux 包管理器工具,如 [apt-get][3]、[yum][4] 等来安装。 要在 Linux 中安装 **PowerShell Core 6.0**,我们将会用到微软软件仓库,它允许我们通过最流行的 Linux 包管理器工具,如 [apt-get][3]、[yum][4] 等来安装。
#### 在 Ubuntu 16.04 中安装 #### 在 Ubuntu 16.04 中安装
首先,导入公共仓库 **GPG** 密钥,然后将 **Microsoft Ubuntu** 仓库注册到 **APT** 的源中来安装 **PowerShell** 首先,导入公共仓库 **GPG** 密钥,然后将 **Microsoft Ubuntu** 仓库注册到 **APT** 的源中来安装 **PowerShell**
``` ```
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
@ -51,6 +51,7 @@ $ sudo yum install -y powershell
``` ```
$ powershell $ powershell
``` ```
[ [
![Start Powershell in Linux](http://www.tecmint.com/wp-content/uploads/2017/02/start-powershell.png) ![Start Powershell in Linux](http://www.tecmint.com/wp-content/uploads/2017/02/start-powershell.png)
][5] ][5]
@ -62,6 +63,7 @@ $ powershell
``` ```
$PSVersionTable $PSVersionTable
``` ```
[ [
![Check Powershell Version](http://www.tecmint.com/wp-content/uploads/2017/02/check-powershell-version.png) ![Check Powershell Version](http://www.tecmint.com/wp-content/uploads/2017/02/check-powershell-version.png)
][6] ][6]
@ -78,7 +80,7 @@ get-location [# 显示当前工作目录]
#### 在 PowerShell 中操作文件和目录 #### 在 PowerShell 中操作文件和目录
1. 可以通过两种方法创建空文件: 1 可以通过两种方法创建空文件:
``` ```
new-item tecmint.tex new-item tecmint.tex
@ -92,25 +94,27 @@ new-item tecmint.tex
set-content tecmint.tex -value "TecMint Linux How Tos Guides" set-content tecmint.tex -value "TecMint Linux How Tos Guides"
get-content tecmint.tex get-content tecmint.tex
``` ```
[ [
![Create New File in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/Create-New-File-in-Powershell.png) ![Create New File in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/Create-New-File-in-Powershell.png)
][7] ][7]
*在 PowerShell 中创建新文件* *在 PowerShell 中创建新文件*
2. 在 PowerShell 中删除一个文件 2 在 PowerShell 中删除一个文件
``` ```
remove-item tecmint.tex remove-item tecmint.tex
get-content tecmint.tex get-content tecmint.tex
``` ```
[ [
![Delete File in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/Delete-File-in-Powershell.png) ![Delete File in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/Delete-File-in-Powershell.png)
][8] ][8]
*在 PowerShell 中删除一个文件* *在 PowerShell 中删除一个文件*
3. 创建目录 3 创建目录
``` ```
mkdir tecmint-files mkdir tecmint-files
@ -118,13 +122,14 @@ cd tecmint-files
“”>domains.list “”>domains.list
ls ls
``` ```
[ [
![Create Directory in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/create-new-directory-in-Powershell.png) ![Create Directory in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/create-new-directory-in-Powershell.png)
][9] ][9]
*在 PowerShell 中创建目录* *在 PowerShell 中创建目录*
4. 执行长列表,列出文件/目录详细情况,包括模式(文件类型)、最后修改时间等,使用以下命令: 4、 执行长格式的列表操作,列出文件/目录详细情况,包括模式(文件类型)、最后修改时间等,使用以下命令:
``` ```
dir dir
@ -135,22 +140,24 @@ dir
*Powershell 中列出目录长列表* *Powershell 中列出目录长列表*
5. 显示系统中所有的进程: 5 显示系统中所有的进程:
``` ```
get-process get-process
``` ```
[ [
![View Running Processes in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/View-Running-Processes-in-Powershell.png) ![View Running Processes in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/View-Running-Processes-in-Powershell.png)
][11] ][11]
*在 PowerShell 中显示运行中的进程* *在 PowerShell 中显示运行中的进程*
6. 通过给定的名称查看正在运行的进程/进程组细节,将进程名作为参数传给上面的命令,如下: 6 通过给定的名称查看正在运行的进程/进程组细节,将进程名作为参数传给上面的命令,如下:
``` ```
get-process apache2 get-process apache2
``` ```
[ [
![View Specific Process in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/View-Specific-Process-in-Powershell.png) ![View Specific Process in Powershell](http://www.tecmint.com/wp-content/uploads/2017/02/View-Specific-Process-in-Powershell.png)
][12] ][12]
@ -159,58 +166,62 @@ get-process apache2
输出中各部分的含义: 输出中各部分的含义:
* NPM(K)  进程总共使用的非分页内存单位Kb。 * NPM(K)  进程使用的非分页内存单位Kb。
* PM(K)  进程总共使用的可分页内存单位Kb。 * PM(K)  进程使用的可分页内存单位Kb。
* WS(K)  进程的工作集大小单位Kb包括进程引用到的内存页 * WS(K)  进程的工作集大小单位Kb工作集由进程所引用到的内存页组成
* CPU(s)  进程所用的处理器时间,单位:秒。 * CPU(s)  进程有处理器上所占用的处理器时间,单位:秒。
* ID  进程 ID (PID). * ID  进程 ID (PID).
* ProcessName  进程名称。 * ProcessName  进程名称。
7. 想要了解更多,获取 PowerShell 命令列表: 7 想要了解更多,获取 PowerShell 命令列表:
``` ```
get-command get-command
``` ```
[ [
![List Powershell Commands](http://www.tecmint.com/wp-content/uploads/2017/02/List-Powershell-Commands.png) ![List Powershell Commands](http://www.tecmint.com/wp-content/uploads/2017/02/List-Powershell-Commands.png)
][13] ][13]
*列出 PowerShell 的命令* *列出 PowerShell 的命令*
8. 想知道如何使用一个命令,查看它的帮助(类似于 Unix/Linux 中的 man举个例子你可以这样获取命令 **Describe** 的帮助: 8 想知道如何使用一个命令,查看它的帮助(类似于 Unix/Linux 中的 man举个例子你可以这样获取命令 **Describe** 的帮助:
``` ```
get-help Describe get-help Describe
``` ```
[ [
![Powershell Help Manual](http://www.tecmint.com/wp-content/uploads/2017/02/Powershell-Help-Manual.png) ![Powershell Help Manual](http://www.tecmint.com/wp-content/uploads/2017/02/Powershell-Help-Manual.png)
][14] ][14]
*PowerShell 帮助手册* *PowerShell 帮助手册*
9. 显示所有命令的别名,輸入: 9 显示所有命令的别名,輸入:
``` ```
get-alias get-alias
``` ```
[ [
![List Powershell Command Aliases](http://www.tecmint.com/wp-content/uploads/2017/02/List-Powershell-Command-Aliases.png) ![List Powershell Command Aliases](http://www.tecmint.com/wp-content/uploads/2017/02/List-Powershell-Command-Aliases.png)
][15] ][15]
*列出 PowerShell 命令别名* *列出 PowerShell 命令别名*
10. 最后,不过也很重要,显示命令历史记录(曾运行过的命令的列表): 10 最后,不过也很重要,显示命令历史记录(曾运行过的命令的列表):
``` ```
history history
``` ```
[ [
![List Powershell Commands History](http://www.tecmint.com/wp-content/uploads/2017/02/List-Powershell-Command-History.png) ![List Powershell Commands History](http://www.tecmint.com/wp-content/uploads/2017/02/List-Powershell-Command-History.png)
][16] ][16]
*显示 PowerShell 命令历史记录* *显示 PowerShell 命令历史记录*
就是这些了!在这篇文章里,我们展示了如何在 Linux 中安装**微软的 PowerShell Core 6.0**。在我看来,与传统 UnixLinux 的 shell 相比PowerShell 还有很长的路要走。到目前为止,前者为从命令行操作机器,更重要的是,编程(写脚本),提供更好、更多令人激动和富有成效的特性。 就是这些了!在这篇文章里,我们展示了如何在 Linux 中安装**微软的 PowerShell Core 6.0**。在我看来,与传统 UnixLinux 的 shell 相比PowerShell 还有很长的路要走。目前看来PowerShell 还需要在命令行操作机器,更重要的是,编程(写脚本)等方面,提供更好、更多令人激动和富有成效的特性。
查看 PowerShell 的 GitHub 仓库:[https://github.com/PowerShell/PowerShell][17]。 查看 PowerShell 的 GitHub 仓库:[https://github.com/PowerShell/PowerShell][17]。