Microsoft PowerShell secara tradisional dianggap sebagai produk khusus Windows tetapi sekarang tidak lagi. Pada PowerShell v6, kemampuan penuh PowerShell sekarang tersedia lintas platform dengan Linux sebagai yang paling populer.
Dalam tutorial ini, Anda akan mempelajari cara memulai dari awal dengan menginstal PowerShell di Ubuntu (distribusi Linux lainnya serupa), cara menjalankan perintah, dan bahkan menginstal beberapa modul.
Mari kita mulai!
Prasyarat
Tutorial ini akan berisi berbagai demo. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut:
- Semua distribusi Linux yang didukung – Tutorial ini menggunakan Peppermint 10 yang berbasis Ubuntu 18.04 (LTS).
- Akun dengan akses root.
Memperbarui Repositori Paket
Sebelum melompat untuk menginstal PowerShell di Linux, Anda harus terlebih dahulu memperbarui daftar repositori manajer paket apt. Beberapa distribusi Linux menggunakan manajer paket apt untuk menginstal paket apt; PowerShell adalah salah satunya.
Untuk memastikan bahwa apt dapat menemukan paket PowerShell dan ketergantungan apa pun saat mengunduh, Anda harus terlebih dahulu memperbarui daftar repositori paket apt. Untuk melakukannya, jalankan [apt update](
.
sudo apt update
Menginstal PowerShell di Linux
Sekarang setelah Anda memperbarui repositori paket, saatnya untuk menginstal PowerShell di Linux. Karena tutorial ini menggunakan distribusi berbasis Ubuntu, Anda memiliki dua cara berbeda untuk menginstal PowerShell; menggunakan paket snap atau melalui .NET SDK.
Menginstal PowerShell melalui Paket Snap
Cara termudah untuk menginstal PowerShell di Ubuntu adalah melalui snaps. Snaps adalah paket yang bekerja di beberapa versi dan distribusi Linux.
Untuk menginstal PowerShell di Linux melalui paket snap, buka terminal dan jalankan snap install
Perintah Linux dengan sudo
hak untuk menggunakan nama paket snap powershell
.
Secara default, paket snap dibatasi cakupannya untuk alasan keamanan. Menentukan
--classic
parameter memungkinkan Anda membuat perubahan pada sistem Anda di luar kotak pasir keamanan.
sudo snap install powershell --classic
Menginstal PowerShell melalui .NET SDK
1. Terkadang Anda akan menemukan bahwa paket snap PowerShell tidak berisi PowerShell versi terbaru. Ketika itu terjadi, Anda selalu dapat memilih rute .NET SDK yang akan selalu diperbarui.
PowerShell dikemas dengan .NET Core sehingga ketika Anda menginstal .NET SDK, Anda juga mendapatkan PowerShell!
Unduh dan instal .NET SDK terbaru yang tersedia dengan menjalankan perintah di bawah ini menggunakan apt
manajer paket. Pada tulisan ini, paket .NET SDK terbaru yang tersedia adalah v5.0.8. Anda dapat memeriksa versi terbaru yang tersedia di sini.
sudo apt install dotnet-sdk-5.0
2. Sekarang, instal PowerShell melalui dotnet
aplikasi menggunakan dotnet tool install
. dotnet tool
perintah menentukan paket NuGet yang dikemas sebagai PowerShell.
Dengan menentukan --global
pilihan, dotnet
menginstal paket PowerShell ke ~\.dotnet\tools dan memastikan direktori berada di PATH sistem sehingga Anda dapat menjalankannya dari mana saja.
dotnet tool install --global PowerShell
Menjalankan Perintah PowerShell Dasar di Linux
Sekarang setelah Anda menginstal PowerShell di Linux, apa selanjutnya? Mari kita mulai dengan menjalankan beberapa perintah dasar. Untuk memulai PowerShell, cukup jalankan pwsh
dan Anda akan dibawa ke konsol interaktif PowerShell.
Menjadi bahasa skrip lintas platform, PowerShell di Linux mendukung semua perintah yang umum dikenal dari CMD dan shell baris perintah Linux seperti sudo apt update
. Tidak perlu membuka terminal Bash!
Mulai sekarang, Anda dapat menjalankan ribuan perintah PowerShell bawaan. Saat Anda melakukannya, periksa versi PowerShell yang diinstal menggunakan $PSVersionTable
. Anda akan melihat bahwa PSEdition ditampilkan sebagai Core dan Platform adalah Unix .
Setelah selesai di konsol PowerShell, keluar dengan menjalankan exit
memerintah. Perintah ini akan mengembalikan Anda ke terminal Bash Anda.
Keterbatasan PowerShell pada Linux
Hanya karena Anda dapat menginstal PowerShell dan menjalankan perintah di dalamnya, tidak berarti Anda dapat melakukan segala kemungkinan di Windows. Lagi pula, Linux sebagai Open Source, adalah sistem operasi yang sama sekali berbeda dan beberapa perintah tidak akan tersedia untuk fitur yang tidak tersedia di Linux.
Windows -ne Linux
Misalnya, karena Linux tidak memiliki registri, Anda tidak akan melihat drive PowerShell apa pun. Get-PSDrive
cmdlet akan tetap tersedia tetapi hanya akan mengembalikan volume penyimpanan Linux yang terpasang dan Drive PS standar lainnya. Anda dapat melihat contohnya di bawah ini.
Get-PSDrive | Format-Table -Auto
Tidak seperti Microsoft Windows, Linux tidak memiliki Common Information Model (CIM) maupun Windows Management Instrumentation (WMI). Kedua hal ini membantu dalam memberikan informasi tentang pengelolaan perangkat dan aplikasi ke sistem operasi Windows.
Anda dapat melihat di bawah bahwa cmdlet Windows PowerShell Get-CimInstance
tidak tersedia di PowerShell di Linux.
Get-CimInstance -ClassName Win32_BIOS
Tetapi jika Anda mencoba menggunakan Get-CimInstance
di Windows PowerShell, Anda akan melihat di bawah bahwa ini berfungsi seperti yang diharapkan.
Tidak Ada Pekerjaan Terjadwal
Kelemahan lain dari PowerShell di Linux adalah kurangnya pekerjaan terjadwal. Pekerjaan terjadwal adalah fitur praktis di Window PowerShell yang memungkinkan Anda menjalankan tugas di latar belakang melalui Windows Task Scheduler.
Untuk membuat pekerjaan terjadwal di Windows PowerShell mengharuskan Anda untuk mendaftar pekerjaan melalui Register-ScheduledJob
cmdlet. Anda akan melihat contoh menyalin beberapa buku kerja Excel yang berfungsi di Windows PowerShell di bawah ini. Anda akan melihat bahwa Register-ScheduledJob
cmdlet tidak ditemukan.
Meskipun Anda tidak dapat menjadwalkan pekerjaan, Anda masih dapat meminta pekerjaan latar belakang menggunakan Start-Job
memerintah. Start-Job
cmdlet memungkinkan Anda menjalankan tugas latar belakang di PowerShell untuk menjalankan tugas tanpa interaksi dengan sesi saat ini.
Mungkin Anda ingin membuat daftar semua file di /var/backups tetapi lakukan di latar belakang. Anda dapat membuat perintah untuk dieksekusi dalam ScriptBlock
dan buat pekerjaan bernama GetAllBackupFiles
panggil dengan Start-Job
, seperti yang ditunjukkan di bawah ini.
Start-Job -Name GetAllBackupFiles -ScriptBlock {Get-ChildItem /var/backups -Recurse}
Setelah pekerjaan latar belakang dimulai, Anda kemudian dapat menerima output dari pekerjaan itu menggunakan Retrieve-Job
cmdlet dengan menentukan -Name
yang Anda berikan saat memulainya.
Retrieve-Job -Name GetAllBackupFiles
Bekerja dengan Modul PowerShell di Linux
Konsep penting dalam Windows PowerShell adalah modul PowerShell. Modul PowerShell adalah kumpulan perintah yang dibuat sebagai “paket” yang dibuat baik dari Microsoft maupun melalui komunitas PowerShell.
Menemukan Modul yang Terpasang
Secara default, PowerShell di Linux, seperti Windows, menginstal berbagai modul. Temukan semua modul tersebut dengan menjalankan Get-Module
perintah, seperti yang ditunjukkan di bawah ini. ListAvailable
parameter memberitahu Get-Module
untuk mengembalikan semua modul pada sistem file; bukan hanya modul yang dimuat.
Get-Module -ListAvailable
Anda dapat melihat di bawah bahwa Pester modul dipasang di /root/.local/share/powershell/Modules yang merupakan lokasi pengguna untuk modul PowerShell. Anda akan mempelajari cara memasang modul di bagian mendatang.
Anda dapat melihat setiap lokasi untuk memasang modul dengan melihat PSModulePath
variabel lingkungan, seperti yang ditunjukkan di bawah ini. Karena nilai $env:PSModulePath
adalah satu string, tutorial menggunakan split
operator untuk membagi string pada titik dua (bukan titik koma seperti Windows) untuk menampilkan setiap jalur pada baris yang berbeda.
$env:PSModulePath -split ':'
Memasang Modul PowerShell di Linux
Meskipun PowerShell di Linux hadir dengan berbagai modul yang sudah diinstal, kemungkinan Anda akan membutuhkan lebih banyak fungsionalitas. Ketika itu terjadi, Anda dapat memanfaatkan Galeri PowerShell. Galeri PowerShell adalah gudang ribuan modul yang berfungsi baik di Windows maupun Linux.
Menggunakan Install-Module
cmdlet, Anda dapat menginstal modul di Linux seperti halnya di Windows. Tetapi pertama-tama, Anda harus menemukan modul yang Anda cari menggunakan Find-Module
.
Katakanlah Anda ingin menjalankan beberapa pengujian Pest menggunakan kerangka pengujian Pester yang populer. Pester datang dikemas dalam modul. Periksa untuk melihat apakah modul Pester tersedia di Galeri PowerShell menggunakan Find-Module
cmdlet.
Find-Module Pester
Anda dapat melihat di bawah bahwa Find-Module
menemukan modul Pester yang tersedia.
Setelah Anda memverifikasi bahwa modul Pester tersedia, sekarang instal modul menggunakan Install-Module
cmdlet menentukan Name
modul.
Install-Module -Name Pester
Saat Anda menjalankan Install-Module
, PowerShell akan menanyakan Anda tentang repositori yang tidak tepercaya karena repositori ditandai sebagai tidak tepercaya. Untuk pengujian, peringatan ini tidak perlu dikhawatirkan, jadi ketik A untuk mengonfirmasi.
Setelah modul terinstal, sekarang jalankan Get-InstalledModule
cmdlet dan Anda akan melihat bahwa Pester telah diinstal dan perintahnya sekarang tersedia.
Anda juga akan melihatnya dengan menggunakan Get-Command
cmdlet, Anda juga dapat menemukan semua perintah di dalam Pester
modul, seperti yang ditunjukkan di bawah ini.
Get-Command -Module Pester
Menjalankan Skrip PowerShell Dari Bash
Untuk menyelesaikan tutorial ini, mari kita akhiri dengan menjalankan skrip PowerShell dari Bash. Sepanjang tutorial ini, Anda telah menjalankan perintah PowerShell secara interaktif di dalam konsol PowerShell. Jika Anda memiliki skrip PowerShell yang perlu Anda jalankan, tidak perlu masuk ke konsol PowerShell. Sebagai gantinya, Anda dapat menjalankan skrip langsung dari Bash.
Untuk mendemonstrasikan menjalankan skrip PowerShell dari Bash, buka editor teks Linux favorit Anda dan rekatkan perintah berikut dan simpan file sebagai DrivesInformation.ps1 . Script ini hanya akan menghitung semua drive PS.
Get-PSDrive
Di terminal Bash Anda, alih-alih menjalankan pwsh
, tekan Enter dan kemudian jalankan skrip di dalam konsol PowerShell, aktifkan skrip langsung dari Bash. Untuk melakukannya, jalankan pwsh
lagi tetapi kali ini tentukan skrip PowerShell yang baru saja Anda buat, seperti yang ditunjukkan di bawah ini.
Anda akan melihat bahwa Anda menerima output yang sama seperti yang Anda terima di dalam sesi PowerShell interaktif langsung di terminal Bash Anda.
pwsh /home/tex/DrivesInformation.ps1
Kesimpulan
Anda sekarang harus memiliki awal yang baik dalam menjalankan PowerShell di Linux! Sekarang terserah Anda untuk mulai mempelajari lebih lanjut tentang PowerShell dan mengotomatiskan semua yang Anda bisa!