对照能解决什么
从 Windows 运维转到信创环境,最直接的障碍不是命令本身,而是『同一件事在两边叫什么』:查进程、看服务、测端口、搜文本,两边各有套路。把高频操作做成对照表,能显著降低迁移期的记忆成本。需要注意的是语义差异:bash 在文本流上做管道,PowerShell 在对象上做管道,脚本不能逐行翻译。
基本信息
| 适用场景 | Windows 运维人员过渡到 Linux / 信创系统 |
|---|---|
| 对照维度 | 文件、进程、服务、磁盘、网络、文本搜索、定时任务 |
| 核心差异 | bash 管道处理文本,PowerShell 管道处理对象 |
| 通配符 | 由 shell 展开 vs 命令自身匹配 |
| 脚本防护 | bash 建议 set -euo pipefail |
| 迁移建议 | 复杂脚本重写而不是逐行翻译 |
典型使用场景
- 迁移期运维人员查进程、看服务、测端口时快速找到对应命令
- 把 Windows 侧的批处理任务改写成 bash 与 systemd timer
- 培训材料里用一张对照表降低上手门槛
- 排查问题时从『Windows 上这么查』转换到等效的 Linux 命令
- 评估既有脚本改造工作量时确认哪些操作有直接对应
常用对照
| 用途 | PowerShell | bash(信创环境) |
|---|---|---|
| 列文件 | Get-ChildItem | ls / find |
| 进程 | Get-Process | ps -ef / top |
| 服务 | Get-Service | systemctl |
| 磁盘 | Get-Volume | df -h / lsblk |
| 连通测试 | Test-NetConnection | ping / nc -vz |
| 文本搜索 | Select-String | grep -r |
| 计划任务 | Get-ScheduledTask | crontab -l / systemctl list-timers |
| 查看日志 | Get-EventLog / Get-WinEvent | journalctl -u 服务 |
示例(高占用进程与端口探测)
示例(高占用进程与端口探测)
# PowerShell: Get-Process | Where-Object CPU -gt 60
ps -eo pid,pcpu,comm --sort=-pcpu | head # 按 CPU 排序看占用最高的进程
# PowerShell: Test-NetConnection 10.0.0.9 -Port 443
nc -vz 10.0.0.9 443 # 探测单个端口连通性
ss -tlnp | grep -E ':443|:80' # 本机查看监听与对应进程
# PowerShell: Get-Service | Where-Object Status -eq 'Running'
systemctl list-units --type=service --state=running | head脚本改造要点
脚本改造要点
#!/usr/bin/env bash
set -euo pipefail # 未定义变量报错、出错即退出、管道失败可见
# 用绝对路径调用命令,配合 PATH 可控,避免定时任务里找不到命令
/usr/bin/rsync -a /data /backup/
# 管道在 bash 中传文本,需自行解析;复杂逻辑建议重写
systemctl list-timers --all | awk '{print $1, $2}' | head管道语义不同:bash 传的是文本流,需要 cut/awk/grep 解析;PowerShell 传的是对象,直接取属性。复杂脚本建议按目标环境重写,而不是逐行翻译。
通配符与引号规则差异大:bash 会由 shell 先展开通配符,变量在双引号内仍会展开,单引号内不展开,写脚本时要按下目标 shell 的规则来。