PowerShell은 윈도우 전용 커맨드라인 툴로, 시스템 관리, 자동화, 개발 등 다양한 작업을 수행할 수 있습니다. 이 글에서는 PowerShell의 기본 개념과 사용법, cmd와의 차이점, 유닉스 커맨드와의 비교 등을 설명하겠습니다.
PowerShell은 윈도우에서 제공하는 강력한 커맨드라인 인터페이스(CLI) 도구입니다. 이를 통해 시스템 관리, 스크립트 작성, 자동화 작업 등을 효율적으로 수행할 수 있습니다. PowerShell은 기본적인 유닉스 커맨드도 지원하여 리눅스 사용자들도 쉽게 적응할 수 있습니다.
cmd(명령 프롬프트)는 윈도우의 전통적인 커맨드라인 도구입니다. 하지만 PowerShell은 더 많은 기능을 제공하며, cmd에서 할 수 있는 모든 작업을 PowerShell에서도 할 수 있습니다. 따라서 간단한 작업을 수행할 때는 cmd를 사용할 수 있지만, PowerShell이 더 강력하고 유연하므로 PowerShell을 사용하는 것이 좋습니다.
PowerShell을 처음 사용한다면 도움말을 업데이트하는 것이 좋습니다. 이를 통해 명령어와 관련된 최신 도움말 정보를 얻을 수 있습니다. PowerShell을 관리자 권한으로 실행한 후, 다음 명령어를 입력합니다:
Update-Help
오류가 발생할 수 있지만 무시해도 됩니다.
일반적으로 PowerShell을 일반 사용자 권한으로 실행합니다. PowerShell 창을 열고 다양한 설정을 통해 배경색, 글자색, 글자 크기 등을 조정할 수 있습니다.
PowerShell에서는 기본적인 유닉스 커맨드를 사용할 수 있습니다. 예를 들어, ls
, pwd
, cd
, mkdir
, cat
등을 사용할 수 있습니다. 그러나 실제로는 이러한 명령어들이 PowerShell의 cmdlet에 매핑되어 동작합니다. 예를 들어, ls
는 Get-ChildItem
cmdlet의 에일리어스입니다.
ls:
ls
PowerShell에서 ls
는 Get-ChildItem
cmdlet을 호출하여 파일과 디렉토리를 나열합니다.
pwd:
pwd
현재 작업 중인 디렉토리의 경로를 출력합니다.
cd:
cd path/to/directory
디렉토리를 변경합니다.
mkdir:
mkdir new_directory
새로운 디렉토리를 생성합니다.
cat:
cat file.txt
파일의 내용을 출력합니다.
mv:
mv source.txt destination.txt
파일을 이동하거나 이름을 변경합니다. 덮어쓰기를 할 때는 -Force
옵션을 사용합니다.
cp:
cp source.txt destination.txt
파일을 복사합니다. 디렉토리를 복사할 때는 -Recurse
옵션을 사용합니다.
rm:
rm file.txt
파일을 삭제합니다. 디렉토리를 삭제할 때는 -Recurse
옵션을 사용합니다.
PowerShell cmdlet은 보통 Action-Object
형태로 작성됩니다. 예를 들어, 파일 항목을 가져오는 Get-ChildItem
cmdlet은 다음과 같은 에일리어스를 가집니다:
ls -> Get-ChildItem
윈도우에서는 경로를 표시할 때 /
대신 \
를 사용합니다. PowerShell에서는 /
를 입력해도 되지만, 프롬프트에 경로를 표시할 때나 자동완성을 사용할 경우 \
가 사용됩니다.
PowerShell cmdlet 옵션은 전체 단어로 되어 있습니다. 예를 들어, -Recurse
옵션은 디렉토리를 재귀적으로 처리합니다. 유닉스 커맨드처럼 한 글자 옵션(예: -r
)도 있지만, PowerShell의 옵션을 그대로 사용하는 것이 더 명확합니다.
개발 작업을 할 때 PowerShell을 활용하면 더욱 효율적입니다. Visual Studio Code(VSCode)나 PyCharm과 같은 IDE에서는 기본 터미널로 PowerShell을 사용할 수 있어, 코드 작성과 커맨드 실행을 동시에 할 수 있습니다.
PowerShell은 윈도우 사용자에게 강력한 커맨드라인 인터페이스를 제공하며, 시스템 관리, 자동화, 개발 작업에 유용합니다. 유닉스 커맨드와의 호환성도 높아 리눅스 사용자들도 쉽게 적응할 수 있습니다. PowerShell의 다양한 기능을 익히고 활용하여 작업 효율성을 높여보세요.