搜索
首页运维linux运维PowerShell和Bash的定义与使用
PowerShell和Bash的定义与使用Jun 21, 2017 am 11:13 AM
bashpowershell介绍

PowerShell是运行在windows平台的脚本,而Bash是运行在linux平台的脚本

现在bash能做的事情,PowerShell也能做,PowerShell的强大之处是它可以管理windows服务器(特别是域domain),现在的开源PowerShell 也可以管理Linux和Mac(通过PSRP)。

下载最新的PS程序


安装后它会有powershell和它的开发IDE工具,ISE,非常不错!

一、进行powershell的程序

二、创建脚本,简单的Helloworld.ps1

任务的自动化是以程序文件或者可执行脚本文件为基础的,PowerShell也支持将命令列表做成脚本文件来执行。以下是Helloworld.ps1脚本文件的内容:

$a = "Hello World!"$a
echo $a > a.txt
dir a.txt

Helloworld.ps1脚本文件的执行情况结果如下:

PS E:\>.\Helloworld.ps1  --注意在执行它时要加.\,表示当前上当下的文章,类似于centos里的文件执行方法<br>
<code class="javascript plain">Hello world!
Directory: E:\
Mode                LastWriteTime     Length   Name                                                                     
----                -------------     ------ ----                                                                     

-a---         5/30/2017   4:56 PM         16 a.txt  <br>

下面是在eShopOnContainers上的一个例子,分别用ps和bash实现了程序的部署

#!/bin/bash
declare -a projectList=('../src/Services/Catalog/Catalog.API''../src/Services/Basket/Basket.API''../src/Services/Ordering/Ordering.API''../src/Services/Identity/Identity.API''../src/Web/WebMVC''../src/Web/WebSPA''../src/Web/WebStatus')

# Build SPA app
# pushd $(pwd)../src/Web/WebSPA
# npm run build:prodfor project in "${projectList[@]}"doecho -e "\e[33mWorking on $(pwd)/$project"echo -e "\e[33m\tRemoving old publish output"pushd $(pwd)/$project
    rm -rf obj/Docker/publish
    echo -e "\e[33m\tRestoring project"dotnet restore
    echo -e "\e[33m\tBuilding and publishing projects"dotnet publish -o obj/Docker/publish
    popd
done

# remove old docker images:
images=$(docker images --filter=reference="eshop/*" -q)if [ -n "$images" ]; then
    docker rm $(docker ps -a -q) -f
    echo "Deleting eShop images in local Docker repo"echo $images
    docker rmi $(docker images --filter=reference="eshop/*" -q) -f
fi

# No need to build the images, docker build or docker compose will
# do that using the images and containers defined in the docker-compose.yml file.

powershell代码如下

Param([string] $rootPath)
$scriptPath = Split-Path $script:MyInvocation.MyCommand.Path

Write-Host "Current script directory is $scriptPath" -ForegroundColor Yellowif ([string]::IsNullOrEmpty($rootPath)) {
    $rootPath = "$scriptPath\.."}
Write-Host "Root path used is $rootPath" -ForegroundColor Yellow

$projectPaths = 
    @{Path="$rootPath\src\Web\WebMVC";Prj="WebMVC.csproj"},
    @{Path="$rootPath\src\Web\WebSPA";Prj="WebSPA.csproj"},
    @{Path="$rootPath\src\Services\Identity\Identity.API";Prj="Identity.API.csproj"},
    @{Path="$rootPath\src\Services\Catalog\Catalog.API";Prj="Catalog.API.csproj"},
    @{Path="$rootPath\src\Services\Ordering\Ordering.API";Prj="Ordering.API.csproj"},
    @{Path="$rootPath\src\Services\Basket\Basket.API";Prj="Basket.API.csproj"}
    @{Path="$rootPath\src\Web\WebStatus";Prj="WebStatus.csproj"}

$projectPaths | foreach {
    $projectPath = $_.Path
    $projectFile = $_.Prj
    $outPath = $_.Path + "\obj\Docker\publish"$projectPathAndFile = "$projectPath\$projectFile"Write-Host "Deleting old publish files in $outPath" -ForegroundColor Yellow
    remove-item -path $outPath -Force -Recurse -ErrorAction SilentlyContinue
    Write-Host "Publishing $projectPathAndFile to $outPath" -ForegroundColor Yellow
    dotnet restore $projectPathAndFile
    dotnet build $projectPathAndFile
    dotnet publish $projectPathAndFile -o $outPath
}


########################################################################################
# Delete old eShop Docker images
########################################################################################

$imagesToDelete = docker images --filter=reference="eshop/*" -q

If (-Not $imagesToDelete) {Write-Host "Not deleting eShop images as there are no eShop images in the current local Docker repo."} 
Else 
{
    # Delete all containers
    Write-Host "Deleting all containers in local Docker Host"docker rm $(docker ps -a -q) -f
    
    # Delete all eshop images
    Write-Host "Deleting eShop images in local Docker repo"Write-Host $imagesToDelete
    docker rmi $(docker images --filter=reference="eshop/*" -q) -f
}

# WE DON'T NEED DOCKER BUILD AS WE CAN RUN "DOCKER-COMPOSE BUILD" OR "DOCKER-COMPOSE UP" AND IT WILL BUILD ALL THE IMAGES IN THE .YML FOR US

自己感觉,这两个东西在以后的程序部署上都会发挥各自强大的力量!

以上是PowerShell和Bash的定义与使用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
无法删除在系统中打开的 ISO 文件:如何修复无法删除在系统中打开的 ISO 文件:如何修复Apr 16, 2023 pm 02:25 PM

什么是 ISO 文件?ISO 文件是一种包含光盘(例如 DVD 或 CD)的精确副本的文件。这种类型的光盘映像可以安装在您的计算机上,看起来就像您的计算机上连接了一个光驱,光驱中插入了包含数据的 CD 或 DVD。ISO 文件还可用于刻录创建它们的 DVD 或 CD 的新副本,或者只是将大量文件包含在一个易于下载的单个文件中。ISO 文件通常相当大;用完它们后,您很可能会想将它

如何在 Windows 11 上以管理员身份打开 PowerShell如何在 Windows 11 上以管理员身份打开 PowerShellMay 10, 2023 pm 06:40 PM

如何在Windows11上以管理员身份打开PowerShell以提升或管理员级别的权限运行PowerShell允许您运行绕过Windows文件保护的命令,例如用于Windows安装文件的命令。您可以通过直接打开PowerShell或打开新的Windows终端应用程序来运行PowerShell,该应用程序默认使用PowerShell运行命令。在Windows11上以管理员身份打开PowerShell:打开开始菜单并输入powershell或terminal。从右侧的

修复:Windows 11/10 中无法打开 PowerShell 或 PowerShell 已停止工作问题修复:Windows 11/10 中无法打开 PowerShell 或 PowerShell 已停止工作问题Apr 24, 2023 pm 07:49 PM

许多用户报告了WindowsPowerShell停止工作或根本无法打开的问题。看到PowerShell已停止工作消息的最常见原因之一是您的计算机上存在隐藏病毒。这反过来会减慢您的系统速度,并且系统上的其他进程将停止运行。该错误消息未提供有关此问题原因的任何信息,因此难以解决。如果您对PowerShell无法在您的PC上运行或打开问题感到恼火,那么本文适合您。在本文中,我们讨论了一些可用于修复此错误的解决方案。修复1–禁用和重新启用WindowsPowerShell1.使用Ctr

PowerShell渗透测试利器Nishang怎么用PowerShell渗透测试利器Nishang怎么用May 13, 2023 am 10:58 AM

初始PowerShell,首先我们先来了解一下概念:PowerShell可以当做是cmd(bat脚本语言)的升级版,它是Windows平台上的脚本语言。是面向对象,是和.NetFrameWork密切相关的。也可以认为是Windows上的bashshell。WindowsPowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.NETFramework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在Windows命令提示符和WindowsHost环境中获得

PowerShell 部署失败并出现 HRESULT 0x80073D02 问题修复PowerShell 部署失败并出现 HRESULT 0x80073D02 问题修复May 10, 2023 am 11:02 AM

您在运行脚本时是否看到此错误消息“Add-AppxPackage:部署失败,HRESULT:0x80073D02,无法安装该包,因为它修改的资源当前正在使用中。PowerShell中出现错误0x80073D02…”?如错误消息所述,当用户在前一个进程运行时尝试重新注册一个或所有WindowsShellExperienceHost应用程序时,确实会发生这种情况。我们已经获得了一些简单的解决方案来快速解决这个问题。修复1–终止体验主机进程您必须在执行powershell命令之前结束

如何在 Windows 11 上安装和使用 Git如何在 Windows 11 上安装和使用 GitMay 28, 2023 am 08:08 AM

点击进入:ChatGPT工具插件导航大全Git是最流行的版本控制系统之一,它允许您跟踪对文件所做的所有更改,以便在需要时可以轻松恢复到早期版本。Git允许您同时拥有本地存储库和远程存储库,鼓励其他人协作并将所有这些更改集中到一个源。在Windows11上安装Git的先决条件在我们开始之前,有一些在Windows上安装Git的先决条件。他们来了:您的Windows帐户的管理员权限访问命令行工具(例如CMD或PowerShell)Git的用户名和密码(可选)你最喜欢的文本编辑器WSL上的Ubuntu

如何在 Windows 11 上启用管理员帐户如何在 Windows 11 上启用管理员帐户Apr 15, 2023 pm 07:46 PM

如何使用PowerShell在Windows11上启用或禁用管理员帐户在Windows11上启用管理员帐户的最快方法之一是使用PowerShell。您还可以使用较新的Windows终端,或者,如果您愿意,也可以使用较旧的命令提示符(cmd)工具。您需要确保从已经具有管理员权限的用户帐户运行这些命令。如果您使用的是标准用户帐户,则需要切换到另一个用户帐户才能运行此工具。要在Windows11上使用PowerShell启用管理员帐户:通过单击开始按钮或按Windows键打开

powershell和cmd的区别是什么powershell和cmd的区别是什么Jan 11, 2023 pm 02:23 PM

区别:1、运行Cmd时,只需占用不到1M的内存;而用PowerShell时,需要占用大约20M的内存。2、Cmd不支持语法高亮,PowerShell支持。3、用Cmd运行一些较为复杂、较为耗时的命令时,随意拖动命令行窗口时,窗口中的内容依然能够保持原样;但PowerShell不行。4、Cmd只能不能使用.net库中的命令,也不能使用Linux命令;而PowerShell可以。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版