運維——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
英文地址,請注明出處:http://en.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 標簽與鏡像倉庫的…