Windows PowerShell 和 Linux BashShell 极简对比

声明:本文不会涉及原理,详细的介绍,也不是入门文章。仅仅从使用上进行简单比较

命令

在 bash 中,一个命令是一个单独的进程;而在 PowerShell 中,命令被称为 cmdlets,他们不是独立的可执行程序,他们是一个个可以按需加载的模块。

在 PowerShell 中,命令的命名遵从 Verb-Noun 范式。但是为了降低使用门槛,方便其他 shell 用户上手,其对常用的命令使用 alias 做了兼容。

cmdlets 有两类,一类是使用 C# 编写的模块;一类是使用 PowerShell 命令编写的脚本。

alias

常见的 shell 都支持使用 alias 对命令或命令集合取别名,方便使用。

在 PowerShell 中可以通过 Get-Alias <command> 获取某个命令的别名。

powershell 复制代码
PS C:\Users\aa> Get-Alias ls

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ls -> Get-ChildItem

常用命令对比

powershell bashshell powershell alias
Start-Process <command> start <app path>
Get-ChildItem ls ls、dir
Get-History history history、h
Get-Process ps ps
New-Item touch ni
Remove-Item rm rm、del
Copy-Item cp cp、copy
Get-Location pwd pwd
Get-Help man help
Write-Output(输出内容到管道) echo echo、write
Write-Host(输出内容到控制台) - -
Select-String grep -
runas su -

runas 命令用于切换用户,例如系统中有一个账户 zhangsan,想以这个账户身份打开一个 shell,那么可以这样做 runas /user:zhangsan "powershell",这样会用 zhangsan 这个账户打开一个 powershell。

相关推荐
cpsvps_net5 小时前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
甄超锋5 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cpsvps8 小时前
美国服务器环境下Windows容器工作负载基于指标的自动扩缩
windows
网硕互联的小客服11 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
etcix11 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
许泽宇的技术分享11 小时前
Windows MCP.Net:基于.NET的Windows桌面自动化MCP服务器深度解析
windows·自动化·.net
非凡ghost12 小时前
AMS PhotoMaster:全方位提升你的照片编辑体验
windows·学习·信息可视化·软件需求
mortimer14 小时前
一次与“顽固”外部程序的艰难交锋:subprocess 调用exe踩坑实录
windows·python·ai编程
gameatp16 小时前
从 Windows 到 Linux 服务器的全自动部署教程(免密登录 + 压缩 + 上传 + 启动)
linux·服务器·windows
穷人小水滴16 小时前
在 windows 运行 flatpak 应用 (WSL)
linux·windows·ubuntu