사용자 도구

사이트 도구


windows:powershell

Windows Powershell

기본 개인 profile 파일

  • $PROFILE 환경변수 값으로 프로필 파일 생성
    New-Item $profile -force -itemtype file
  • $Home\[My ]Documents\WindowsPowerShell\Profile.ps1

Powershell Core

sudo

Color ls

  • PowerShell Gallary 로 설치
  • $Home\[My ]Documents\WindowsPowerShell\Profile.ps1에 다음 추가하면 l, ls로 명령실행가능. 기존 명령은 dir로 가능
    # for colored ls
    Import-Module Get-ChildItemColor
    
    Set-Alias ls Get-ChildItemColor -option AllScope
    Set-Alias ll Get-ChildItemColorFormatWide -option AllScope

명령창 없이 명령 실행하기

powershell start-process '원하는명령(혹은 .bat)' -WindowStyle Hidden

Consoles

process 목록

ps *foo*
get-process | findstr foo
get-process | where ProcessName -like "*foo*"

환경변수 Environment Variable

#값 읽기
$Env:<variable-name>
$Env:PATH

# 값 지정
$Env:<variable-name> = "<new-value>"

$Env:path = $env:path + ";c:\temp"
Set-Item -Path Env:Path -Value ($Env:Path + ";C:\Temp")

# 환경변수 목록
Get-ChildItem Env:

기본명령

  • 디렉토리 삭제
    Remove-Item [dirname] -Force
  • Symoblic Link
    # 관리자 권한 필요
    New-Item -ItemType SymbolicLink -Name MySymLinkFile.txt -Target $pshome\profile.ps1
    New-Item -ItemType SymbolicLink -Path C:\Temp\MySymLinkFile.txt -Value $pshome\profile.ps1
  • grep 대체 Select-String
    # 문자열 filter
    "Hello","HELLO" | Select-String -Pattern "HELLO" -CaseSensitive
    # *.xml 파일들에서 문자열 탐색
    Select-String -Path "*.xml" -Pattern "the the"
    
    # 매칭이 안되는 부분 찾기
    Select-String -Path "process.txt" -Pattern "idle, svchost" -NotMatch
  • rename - Rename-Item
    Rename-Item -Path old_name -NewName new_name [-Force]

curl

  • Curl 을 사용하려면 cinst curl로 설치하고
  • $profile 파일에 PowerShell에 자체 curl alias를 지워야 실제 curl 명령이 실행된다.
    remove-item alias:curl

wget

wget http://blog.stackexchange.com/ -OutFile out.html

Powershell script from remote

Invoke-WebRequest -Uri https://raw.githubusercontent.com/thomasmaurer/demo-cloudshell/master/helloworld.ps1 -OutFile .\helloworld.ps1; .\helloworld.ps1 
# Created by Daniel Jean Schmidt
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 
$Script = Invoke-RestMethod https://api.github.com/repos/Twikki/youtubetest/contents/Download_Files.ps1?access_token=yourtokenhere -Headers @{”Accept”= “application/vnd.github.v3.raw”}
 
Invoke-Expression $Script
# script 주소는 올바르게 변경할 것.
$ScriptFromGitHub = Invoke-WebRequest https://raw.githubusercontent.com/tomarbuthnot/Run-PowerShell-Directly-From-GitHub/master/Run-FromGitHub-SamplePowerShell.ps1
Invoke-Expression $($ScriptFromGitHub.Content)

tail

마지막 1000 줄 보여주면서 계속 출력하기

Get-Content 파일경로 -Wait -Tail 1000

alias

# vi 를 vim.exe 실행하는 것으로 alias 걸기
set-alias -name vi -value vim.exe

Timezone

Set-TimeZone -Id "Korea Standard Time"

언어 변경

  • 언어팩은 설정을 통해서만 다운로드 가능하다. 명령행으로 현재까지는 불가함.
# 가능할수도? 테스트 필요.
Get-WindowsCapability -Online | ? Name -like '*ko*' # 한국어 관련 목록 버전을 정확히 확인해야함.

Add-WindowsCapability -Online -Name 'Language.Basic~~~ko-KR~0.0.1.0'
Add-WindowsCapability -Online -Name 'Lnaguage.Fonts.Kore~~~und-KORE~0.0.1.0'
Set-WinUILanguageOverride -Language ko-KR
Set-WinSystemLocale -SystemLocale ko-KR # 재부팅 후 적용

Location 변경

Set-WinHomeLocation -GeoId 0x86

Reboot

Linux PowerShell

참조

windows/powershell.txt · 마지막으로 수정됨: 2024/03/05 13:00 저자 kwon37xi