声明:本文不会涉及原理,详细的介绍,也不是入门文章。仅仅从使用上进行简单比较
命令
在 bash 中,一个命令是一个单独的进程;而在 PowerShell 中,命令被称为 cmdlets
,他们不是独立的可执行程序,他们是一个个可以按需加载的模块。
在 PowerShell 中,命令的命名遵从 Verb-Noun
范式。但是为了降低使用门槛,方便其他 shell 用户上手,其对常用的命令使用 alias 做了兼容。
cmdlets
有两类,一类是使用 C# 编写的模块;一类是使用 PowerShell 命令编写的脚本。
alias
常见的 shell 都支持使用 alias 对命令或命令集合取别名,方便使用。
在 PowerShell 中可以通过 Get-Alias <command>
获取某个命令的别名。
PS C:\Users\aa> Get-Alias lsCommandType 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。