Nah ๐ kalau yang ingin Anda ubah hanya profil PowerShell-nya saja, maka jauh lebih mudah dan tidak berisiko seperti mengubah profil user Windows.
Mari saya jelaskan konteks dan caranya.
๐ง Sedikit Konsep
PowerShell memiliki file “profil” (script) yang dijalankan setiap kali PowerShell dibuka.
Path-nya bisa dilihat dengan perintah:
$PROFILE
Biasanya hasilnya:
C:\Users\budi\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Jadi yang Anda maksud dengan “merubah profil PowerShell” bisa berarti salah satu dari dua hal berikut:
๐น Mengubah lokasi file profil PowerShell
๐น Mengubah folder default tempat PowerShell membuka shell ($HOME atau direktori kerja awal)
Saya jelaskan keduanya ๐
1️⃣ Mengubah Lokasi File Profil PowerShell
PowerShell selalu membaca profil dari lokasi yang ditentukan oleh variabel $PROFILE.
Anda tidak bisa mengubah langsung isi $PROFILE secara permanen, tapi bisa mengarahkan PowerShell untuk menjalankan profil dari lokasi lain dengan dua cara:
Cara A – Gunakan symbolic link
Misalnya Anda ingin semua profil PowerShell berada di C:\budi\PowerShellProfile.ps1
Buat folder baru:
mkdir "C:\budi"
Pindahkan profil lama ke sana:
move "$PROFILE" "C:\budi\PowerShellProfile.ps1"
Buat symbolic link agar PowerShell tetap menemukan file itu:
New-Item -ItemType SymbolicLink -Path "$PROFILE" -Target "C:\budi\PowerShellProfile.ps1"
Sekarang PowerShell tetap berpikir file profilnya di lokasi lama, tapi isinya diambil dari C:\budi\PowerShellProfile.ps1.
Cara B – Jalankan profil kustom dari dalam profil default
Biarkan profil default tetap ada, tapi isi file $PROFILE hanya berisi:
. "C:\budi\PowerShellProfile.ps1"
(dengan tanda titik dan spasi di depan, artinya dot-source)
Setiap kali PowerShell dibuka, ia akan memuat file dari lokasi baru.
2️⃣ Mengubah Folder Awal PowerShell (default directory)
Kalau maksud Anda agar PowerShell langsung terbuka di C:\budi setiap kali dijalankan:
Tambahkan baris ini ke profil PowerShell Anda:
Set-Location "C:\budi"
Jadi setiap kali PowerShell dibuka, direktori aktif (pwd) akan otomatis C:\budi.
✅ Ringkasan Cepat
Tujuan Solusi
Mengganti lokasi file profil PowerShell Buat symlink atau panggil file lain dari $PROFILE
Membuka PowerShell langsung di folder lain Tambahkan Set-Location "C:\budi" di file profil
Cek lokasi profil sekarang Jalankan $PROFILE
Buka/edit profil Jalankan notepad $PROFILE
Apakah Anda ingin saya bantu tulis skrip PowerShell otomatis untuk memindahkan profil PowerShell ke C:\budi dan menyesuaikan semuanya (symlink + direktori default)?
Tidak perlu, saya sudah melakukan ini
Set-Location "C:\budi"
Set-Alias net-info "C:\Users\budi\net-info.ps1"
ternyata dengan isi begini di profil saya bisa menjalankan skrip
yang tadinya .\net-info.ps1 menjadi net-info saja
bisakah anda jelaskan fungsi Set-Alias?
ChatGPT bilang:
Wah, keren ๐ — ya, yang Anda lakukan itu benar sekali, dan contoh yang sangat bagus untuk memahami cara kerja alias di PowerShell. Mari kita bahas secara rinci supaya Anda benar-benar paham apa yang terjadi di balik perintah:
๐งฉ Fungsi Set-Alias
Perintah:
Set-Alias net-info "C:\Users\budi\net-info.ps1"
berfungsi untuk membuat alias (nama pendek) agar PowerShell bisa memanggil perintah atau skrip dengan nama yang lebih mudah diingat.
Dalam kasus Anda, artinya:
“Kalau saya ketik net-info, jalankan file C:\Users\budi\net-info.ps1.”
๐ง Penjelasan Struktur Umumnya
Format perintah:
Set-Alias <NamaAlias> <PerintahAsli>
Contoh sederhana:
Set-Alias ll Get-ChildItem
Sekarang ll bisa digunakan sebagai singkatan untuk Get-ChildItem (seperti ls di Linux).
⚙️ Yang Terjadi Saat Anda Jalankan Alias Skrip
Ketika Anda menulis:
Set-Alias net-info "C:\Users\budi\net-info.ps1"
PowerShell:
Menyimpan “shortcut” bernama net-info di dalam sesi PowerShell.
Saat Anda mengetik net-info, PowerShell akan menjalankan perintah lengkap "C:\Users\budi\net-info.ps1".
Karena skrip itu punya ekstensi .ps1, PowerShell tahu bahwa itu skrip PowerShell, jadi akan mengeksekusinya seperti biasa.
๐ก Menjadikannya Permanen
Kalau Anda menulis perintah Set-Alias di dalam file profil ($PROFILE), maka setiap kali PowerShell dibuka:
Alias tersebut langsung aktif otomatis tanpa perlu diketik ulang.
Contoh isi profil Anda:
Set-Location "C:\budi"
Set-Alias net-info "C:\Users\budi\net-info.ps1"
Maka:
Saat PowerShell dibuka, direktori aktif langsung C:\budi
Dan Anda bisa ketik net-info kapan saja
๐ Melihat Alias yang Ada
Untuk melihat daftar semua alias aktif:
Get-Alias
Untuk melihat detail alias tertentu:
Get-Alias net-info
Output-nya kira-kira:
CommandType Name Version Source
----------- ---- ------- ------
Alias net-info C:\Users\budi\net-info.ps1
๐งผ Menghapus Alias
Kalau Anda ingin menghapus alias di sesi aktif:
Remove-Item Alias:net-info
๐ซ Catatan Penting
Alias tidak global di seluruh sistem, hanya berlaku di sesi PowerShell itu.
Kalau tidak diletakkan di $PROFILE, alias akan hilang saat PowerShell ditutup.
Alias tidak bisa menyertakan parameter langsung, misalnya Anda tidak bisa membuat alias yang berisi "Get-ChildItem -Recurse" secara langsung. Untuk itu Anda pakai function.
Kalau Anda mau, saya bisa tunjukkan cara mengganti Set-Alias menjadi function net-info yang lebih fleksibel (misalnya bisa menerima argumen seperti net-info -v).
Apakah Anda ingin contohnya juga?
