运维——14.PowerShell 与Linux 、 macOS通用的命令

PowerShell 最初是 Windows 平台的,但现在已经有了 PowerShell Core,它是跨平台的,支持 Linux 和 macOS。在 PowerShell Core 中有一些Linux 和 macOS通用的命令。理清楚这些有助于学习多系统命令。

在 Linux/macOS 上使用 PowerShell 完成文件操作、系统管理、脚本编写等任务,同时保持与 Windows 环境的语法一致性。如果需要更复杂的跨平台脚本,建议结合 PowerShell 的平台检测功能(如$env:OSTYPE)适配不同系统的差异。

一、系统信息与环境

  1. Get-Command
    功能:列出可用命令,查看命令详情。
    示例:Get-Command Get-ChildItem

  2. Get-Host
    功能:获取当前 PowerShell 宿主环境信息(版本、平台等)。
    示例:Get-Host | Format-List

  3. Get-Location
    功能:获取当前工作目录。
    等价于:pwd(Linux/macOS 命令)

  4. Set-Location
    功能:切换工作目录。
    等价于:cd(Linux/macOS 命令)
    示例:Set-Location /usr/bin

  5. Get-Process
    功能:获取系统进程信息(跨平台基于各系统的进程管理接口)。
    示例:Get-Process | Where-Object { $_.MemoryUsage -gt 100MB }

  6. Get-Command -Module Microsoft.PowerShell.Management
    功能:查看管理模块中的通用命令(如文件操作、进程等)。

二、文件与目录操作

  1. Get-ChildItem
    功能:列出目录内容,等价于 Linux/macOS 的ls
    示例:Get-ChildItem -Path /etc -Filter *.conf

  2. New-Item
    功能:创建文件或目录。
    示例:New-Item -ItemType Directory -Path ~/Documents/NewFolder

  3. Remove-Item
    功能:删除文件或目录(使用时需谨慎)。
    示例:Remove-Item -Path ~/temp/file.txt

  4. Copy-Item
    功能:复制文件或目录,等价于cp
    示例:Copy-Item -Path source.txt -Destination target.txt

  5. Move-Item
    功能:移动或重命名文件 / 目录,等价于mv
    示例:Move-Item -Path old.txt -Destination new.txt

  6. Test-Path
    功能:检查路径是否存在。
    示例:if (Test-Path ~/Documents) { "目录存在" }

  7. Get-Content
    功能:读取文件内容,等价于cat/more/less
    示例:Get-Content /etc/hosts

  8. Set-Content
    功能:写入内容到文件(覆盖),等价于
    示例:"Hello World" | Set-Content ~/greeting.txt

  9. Add-Content
    功能:追加内容到文件,等价于>>
    示例:"Line 2" | Add-Content ~/greeting.txt

三、进程与服务管理

  1. Get-Process
    功能:获取进程信息(跨平台支持,Linux/macOS 基于ps命令的封装)。
    示例:Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5

  2. Stop-Process
    功能:终止进程。
    示例:Stop-Process -Name "chrome"

  3. Start-Process
    功能:启动程序或进程(在 Linux/macOS 上可调用系统命令)。
    示例:Start-Process "firefox"Start-Process "ls" -ArgumentList "-la"

  4. Get-Service
    功能:获取服务信息(Linux/macOS 上基于 systemd/sysvinit 等服务管理系统)。
    示例:Get-Service | Where-Object { $_.Status -eq "Running" }

  5. Restart-Service
    功能:重启服务(需管理员 /root 权限)。
    示例:Restart-Service sshd(Linux 上重启 SSH 服务)

四、网络与通信

  1. Invoke-WebRequest
    功能:发送 HTTP/HTTPS 请求,等价于curl/wget
    示例:Invoke-WebRequest -Uri "https://api.github.com"

  2. Test-NetConnection
    功能:测试网络连接(如端口连通性),等价于telnet/nc
    示例:Test-NetConnection -ComputerName google.com -Port 80

  3. Resolve-DnsName
    功能:解析域名对应的 IP 地址。
    示例:Resolve-DnsName -Name "baidu.com"

五、脚本与编程基础

  1. 变量与表达式

    • 变量赋值:$var = "Hello"
    • 表达式:$result = 10 * 2 + 5
  2. 流程控制

    • if 语句:

      powershell

      if ($env:OS -like "*Windows*") {"Windows系统"
      } elseif ($env:OSTYPE -like "darwin*") {"macOS系统"
      } else {"Linux系统"
      }
      
    • for/foreach 循环:

      powershell

      foreach ($file in Get-ChildItem ~/Documents) {Write-Host "文件: $($file.Name)"
      }
      
  3. 函数定义

    powershell

    function Get-OSInfo {$os = if ($env:OSTYPE -like "darwin*") { "macOS" }elseif ($env:OS -like "*Linux*") { "Linux" }else { "Windows" }Write-Output "当前系统: $os"
    }
    
  4. 管道与筛选

    • 管道操作:Get-ChildItem | Where-Object { $_.Length -gt 1MB } | Sort-Object -Descending Length
    • 筛选与格式化:Get-Process | Select-Object Name, CPU, Memory | Format-Table -AutoSize

六、其他通用命令

  1. Write-Host
    功能:输出文本到控制台(可带颜色)。
    示例:Write-Host "成功!" -ForegroundColor Green

  2. Read-Host
    功能:从控制台读取用户输入。
    示例:$name = Read-Host "请输入姓名"

  3. Measure-Object
    功能:计算数据的统计信息(如字符数、数值总和等)。
    示例:"Hello World" | Measure-Object -Character

  4. ConvertTo-Json / ConvertFrom-Json
    功能:JSON 数据转换,跨平台通用。
    示例:$obj = [PSCustomObject]@{Name="豆包"; Version=1.0}; $obj | ConvertTo-Json

  5. Compare-Object
    功能:比较两个对象或数据集的差异。
    示例:Compare-Object (Get-ChildItem Dir1) (Get-ChildItem Dir2) -Property Name

注意事项

  1. 路径格式差异

    • Windows 使用\(如C:\Users\user),Linux/macOS 使用/(如/home/user),PowerShell Core 支持两种格式,但推荐使用/以保持跨平台兼容性。
  2. 依赖平台的命令

    • 部分 Windows 特有的命令(如Get-ADUserInvoke-WmiMethod)无法在 Linux/macOS 上使用,需避免依赖 Windows 特定 API 或组件。
  3. 模块兼容性

    • 某些模块(如ActiveDirectory)仅适用于 Windows,跨平台场景建议使用通用模块(如Microsoft.PowerShell.ManagementNet.Http)。
  4. 权限问题

    • 在 Linux/macOS 上执行系统管理命令(如修改系统文件、重启服务)需使用sudo获取 root 权限,例如:sudo pwsh -c "Restart-Service sshd"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909894.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#的泛型和匿名类型

一、C#的泛型简介 泛型是一种允许你延迟编写类或方法中的数据类型规范,直到你在实际使用时才替换为具体的数据类型【简单的说:泛型就是允许我们编写能够适用于任何数据类型的代码,而无需为每种特定类型重写相同的代码】(T是类型参数&#xff…

日语面试ai助手推荐:高效备考并应对日语面试难题

在准备日语面试的路上,你是否时常感到力不从心?每到模拟面试环节,总怕自己答非所问、用语不地道,或是紧张到脑子一片空白。查找资料时,面对海量的日语问答、面试范本和专业术语,常常分不清轻重缓急&#xf…

【63 Pandas+Pyecharts | 泡泡玛特微博热搜评论数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 数据信息2.3 数据去重2.4 数据去空2.5 时间处理2.6 性别处理2.7 评论内容处理 🏳️‍🌈 3. Pyecharts数据可视化3.1 用户评论IP分…

python-最长无重复子数组

最长无重复子数组 描述代码实现 描述 给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是…

探索 MySQL 缓存机制:提升数据库读取性能的有效策略

在现代应用中,数据库的读取性能是影响用户体验和系统响应速度的关键因素。当应用程序面临高并发读请求时,直接访问磁盘的开销会成为瓶颈。为了应对这一挑战,MySQL 引入了多种缓存机制,旨在减少磁盘 I/O,加快数据检索速度。 理解并合理利用这些缓存机制,是提升 MySQL 数据…

深度学习-164-MCP技术之开发本地MCP服务器和异步客户端

文章目录 1 概念1.1 MCP1.2 准备数据接口2 开发MCP服务器2.1 server.py2.1.1 @mcp.resource2.1.2 @mcp.tool()2.1.3 @mcp.prompt()2.2 调试模式启动mcp-server2.2.1 资源2.2.2 工具2.2.3 提示词3 开发MCP客户端3.1 调用工具client_tool3.2 获取提示client_prompt3.3 读取资源cl…

第八十一篇 大数据开发基础:队列数据结构详解与实战应用(附生活化案例)

在大数据开发的庞大体系中,队列(Queue) 作为基础数据结构之一,其重要性不言而喻。它不仅是构建高效数据管道的核心组件,更是实现异步处理、流量削峰、任务调度的关键技术。本文将深入解析队列的原理,结合生…

linux操作命令(最常用)

一、文件与目录操作 命令作用常用参数示例ls列出目录内容ls -l(详细列表) ls -a(显示隐藏文件)cd切换目录cd ~(回家目录) cd ..(返回上级)pwd显示当前路径-cp复制文件/目录cp -r di…

22.react和next.js、SSR与CSR的比较

SSR 和 CSR 的区别 🔸 示例说明 SSR 流程(Next.js 支持): 1. 用户请求页面 2. 服务端生成 HTML(含内容) 3. 浏览器收到渲染好的页面 // SSR 页面(默认行为) - app/page.tsx export…

全栈加速:FrankenPHP 架构原理与实战案例

在当今云原生与微服务大行其道的时代,PHP 应用面临着「冷启动延迟高」「进程管理复杂」「性能瓶颈难以突破」等痛点。 FrankenPHP 正是为了解决这些问题而生:它将 Caddy 服务器与 PHP 运行时深度融合,内嵌 Let’s Encrypt 自动 HTTPS、支持 …

Android开发中的适配

目录 一:分辨率适配 1.1概念 1.2关键策略 二:多尺寸适配 2.1概念 2.2关键策略 三:多平台多版本适配 3.1Android系统版本迭代 3.2 关键策略 Android开发中的屏幕适配与多版本适配 在Android开发中,屏幕适配和多版本适配是确保应用在各种设备上都能良好运行和显示的关键。这不…

【MySQL基础篇】MySQL中的算术运算符和比较运算符

精选专栏链接 🔗 MySQL技术笔记专栏Redis技术笔记专栏大模型搭建专栏Python学习笔记专栏深度学习算法专栏 欢迎订阅,点赞+关注,每日精进1%,共攀技术高峰 更多内容持续更新中!希望能给大家带来帮助~ &…

FFmpeg推流实战30秒速成

FFmpeg windows 7.1.1下载地址 FFmpeg 推流方法 FFmpeg 是一个强大的多媒体处理工具,支持将视频和音频推流到各种流媒体服务器(如 RTMP、RTSP、HLS 等)。以下是几种常见的推流方法。 推流到 RTMP 服务器 RTMP(Real-Time Messa…

74HC595功能介绍及代码驱动

一、引脚描述 QA~QH(15,1~7脚):数据输出引脚 QH1(9脚):移位寄存器串行数据输出脚,当移位寄存器中的数据多余8位时,最先进入的那位被挤出去,一般级联使用,接下一个74HC595 G(13脚):输出使能引脚,低电平使能 RCK(12脚):存储寄存器输入数据使能引脚,上升沿时…

AntV G 入门教程

下面是 AntV G(以下简称 G)的中文入门与核心 API 教程,涵盖从画布创建、图形绘制到事件与动画等常用方法,每个 API 均附带完整示例代码。示例引用自官方“Getting Started”指南 ([g.antv.antgroup.com][1])。 一、安装与引入 #…

短视频矩阵什么意思?

短视频矩阵是指通过布局多个短视频账号,形成协同运营的账号体系,以实现流量聚合、品牌曝光或商业变现的策略。其核心逻辑是利用不同账号的定位、内容风格或受众群体,构建互补的流量网络,而非单一账号的独立运营。 核心特点与作用&…

Linux 日志查看和分析

Linux 日志是系统运行状态的重要记录,包含了系统启动、服务运行、用户操作、安全事件等关键信息,对于故障排查、安全审计和系统维护至关重要。 故障排查:定位系统崩溃、服务异常的根本原因(如服务启动失败、硬件故障)…

一篇文章快速学会HTML

一篇文章快速学会HTML 注:适合有一定编程基础的来快速掌握HTML 超文本标记语言 超文本:文本,声音,图片,视频,表格,链接 标记:许多的标签组成 HTML页面是运行到浏览器上的 HTML…

智能混合检索DeepSearch

智能混合检索 DeepSearch 是一款自主研发的大规模分布式搜索引擎,提供一站式智能搜索解决方案。系统内置多种行业专属的查询语义理解能力,融合语义 ORC 模型、文本向量模型、图像/视频向量模型、大语言模型(LLM)、分词器以及机器学…

【Docker基础】Docker镜像管理:docker tag详解

目录 1 Docker镜像标签基础概念 1.1 什么是Docker镜像标签 1.2 镜像标识的三要素 2 docker tag命令详解 2.1 命令基本语法 2.2 命令工作原理 2.3 常用操作示例 3 标签管理的实践示例 3.1 标签命名规范 3.2 多标签策略 3.3 latest标签的合理使用 4 标签与镜像仓库的…