一、PowerShell
PowerShell是一种跨平台的任务自动化解决方案,由命令行shell,脚本语言和配置管理框架组成。可以在Windows,Linux和MacOS上运行。
PowerShell的shell命令和Linux shell命令相似,例如PowerShell的Get-Content和Linux的cat类似,都是对文本进行读取,在PowerShell中可以直接简写为cat。同样还有Get-Process可简写为ps;Copy-Item可简写为cp;Remove-Item可简写为rm;等等。
二、shell命令
1.查看日志
- 用utf8格式(-Encoding),从文本倒数第10行读取日志(-Tail),并滚动日志(-wait)。
cat == Get-Content:
> cat tomcat9-stderr.log -Encoding utf8 -Tail 10 -wait
- 滚动过程中,过滤非关键信息(Discovery,Registry)(-NotMatch):
> cat tomcat9-stderr.log -Encoding utf8 -Tail 10 -wait | select-string “Discov”,“Regis” -NotMatch
- 在文件前100行(-TotalCount),查找关键字(com.abc.xxx),并查看上下50行的信息:
> cat tomcat9-stderr.log -Encoding utf8 -TotalCount 100 | select-string “com.abc.xxx” -Context 50,50
2.文件复制与删除
- 把当前文件夹下的csv文件复制到C:\backup(Copy-Item)。
cp == Copy-Item:
> Copy-Item “*.csv” -Destination “C:\backup”
可简写为
> cp *.csv C:\backup
- 删除当前目录下的csv文件(Remove-Item)
> Remove-Item “*.csv”
可简写为
> rm *.csv
- 删除当前目录及子目录下的csv文件
> Get-ChildItem * -Include *.csv -Recurse | Remove-Item
- 删除超60天未访问的文件
> Get-ChildItem -Recurse | Where-Object LastAccessTime -le (Get-Date).AddDays(-60) | Remove-Item
3.查看进程信息
- 查看tomcat进程是否存在。
ps == Get-Process:
> ps -name tomcat*
- 查看tomcat进程(id=11)信息
> ps -Id 11 | format-list *
- 查询tomcat有多少进程在运行中(measure-object)
> ps -name tomcat* | measure-object
- 查看服务是否运行正常
> netstat -ano | select-string 8080
- 统计当前mysql连接数
> netstat -ano | select-string 3306 | select-string EST | measure-object
4.ssh连接
> ssh root@192.168.17.134
三、shell脚本
1. du.ps1
在linux中 du -h -d 1 能查看当前路径下文件和文件夹的大小,希望在windows中也实现类似功能。
- 将du.ps1(见置顶文件)放置到任一目录,例如:C:\Users\XXX
- 创建快捷命令du
打开powershell执行
notepad $PROFILE
将如下代码添加到文件末尾
function du-dir {
& "C:\Users\XXX\du.ps1" $args
}
Set-Alias du du-dir
- 执行脚本
查询当前路径下文件和文件夹大小:
du
查询指定路径下文件和文件夹大小:
du -Path “C:\Users\XXX\AppData\Local”
结果展示:
Name Type Size Path
---- ---- ---- ----
JetBrains Directory 2.50 GB C:\Users\XXX\AppData\Local\JetBrains
Google Directory 2.02 GB C:\Users\XXX\AppData\Local\Google
Microsoft Directory 1.94 GB C:\Users\XXX\AppData\Local\Microsoft
本文介绍了PowerShell,一种跨平台的任务自动化解决方案,以及它如何在Windows、Linux和MacOS上工作。通过实例展示了PowerShell中类似Linux shell的命令,如Get-Content、Get-Process等,并详细说明了如何使用它们进行日志查看、文件操作、进程管理和SSH连接。此外,还涵盖了过滤日志、文件复制、删除、查看进程信息和服务状态检查等实用技巧。
6554

被折叠的 条评论
为什么被折叠?



