PowerShell과 Bash: 알아야 할 주요 차이점
컴퓨터의 터미널 에뮬레이터에 대해 가장 친숙한 사람이라면 Linux의 Bash와 Microsoft의 PowerShell에 대해 들어봤을 것입니다. 이 두 가지는 운영 체제를 전문으로 하는 전문가의 삶에서 유비쿼터스입니다. 그러나 쉘 프롬프트 앞에서 일상 생활을 하고 있지 않다면 이 두 가지를 어떻게 비교할 것인지에 대해 많이 생각하지 않았을 것입니다. 그렇다면 배우기에 이보다 더 좋은 시간은 없었습니다!
PowerShell이란 무엇입니까
Microsoft는 2006년 Powershell을 도입하여 다재다능하고 강력한 스크립팅 프레임워크 위에서 실행되는 명령줄 인터페이스 역할을 했습니다. Windows 관리자가 작업의 많은 부분을 자동화하기 위해 “commandlet”(공식적으로 “cmdlet”이라고 함)을 사용하는 작은 응용 프로그램을 구축할 수 있도록 설계되었습니다.
더 중요한 것은 명령 구조와 “스크립트 가능성”이 Windows가 원래 기반으로 구축된 이전 MS-DOS의 완전한 재작업을 나타냅니다. 익숙해지고 코딩하기 쉬운 보다 균일한 구문과 정보 표시 방법이 있습니다.
이것은 대부분의 사람들이 실행하는 데 익숙한 Windows 명령줄을 대체하기 위한 것이 아니라 자체 자동화 및 구성 기능으로 보완합니다. 예를 들어 클라우드에서 Microsoft Azure 서비스를 관리하려는 경우 이제 Connect-AzAccount
원격 데스크톱 세션을 사용하는 대신 명령으로 관리할 수 있습니다.
Bash와 마찬가지로 PowerShell은 완전히 감사 가능하므로 시스템 내에서 발생하는 모든 일을 파악하는 것이 중요한 매우 민감한 환경에서 사용할 수 있습니다.
배쉬는 무엇인가
Bash는 1989년의 할아버지로, Linux 환경 을 가리려고 시도한 모든 더 멋진 셸 에 관계없이 Linux 환경 내에서 관련성을 유지합니다 . PowerShell과 마찬가지로 Bash는 훨씬 더 쉽게 관리를 자동화하는 스크립트를 작성할 수 있는 프레임워크를 제공합니다.
명령 구조와 구문은 다양한 Linux 배포판, BSD 및 심지어 macOS에서 어디에나 있기 때문에 많은 개발자가 Bash를 프로젝트 구성을 위한 이동 수단으로 사용하는 데 익숙해졌습니다.
Bash에는 터미널을 통해 스크립트를 작성하고 정보를 전달할 수 있는 기본 작업 모음이 포함되어 있지만 이 셸을 사용하여 터미널에 입력하는 거의 모든 명령은 별도의 프로그램입니다. ls
예를 들어 Bash는 (파일 나열) 또는 (연결하거나 파일 출력 표시) 명령을 포함하지 cat
않고 대신 지정된 경로 내에서 동일한 이름의 실행 파일을 찾습니다.
Powershell과 Bash: 차이점
PowerShell과 Bash는 처음 사용 방법을 배울 때 비슷해 보일 수 있지만 때로는 충돌하는 디자인 철학을 가진 본질적으로 완전히 다른 짐승입니다. 다음은 이들을 차별화하는 매우 중요한 몇 가지 사항입니다.
1. 사용자 액세스 제어
Bash로 관리 작업을 수행하려는 경우 명령 앞에 sudo 를 입력하기 만 하면 됩니다 . 명령이 완료되면 즉시 사용자 셸로 돌아갑니다. 루트 명령을 실행하면 오류의 여지가 줄어들고 수행 중인 작업을 검토해야 합니다.
반면 PowerShell은 관리 또는 사용자 모드에서만 실행할 수 있습니다. 세션 간에 전환하려면 새 세션을 열어야 합니다. 관리 모드에서 PowerShell을 열려면 프로그램 아이콘을 마우스 오른쪽 단추로 클릭하고 “관리자 권한으로 실행”을 클릭해야 합니다. 또는 하나의 터미널 세션 내에서 입력만 하면 Start-Process powershell -verb runAs
관리자 권한으로 두 번째 세션이 열립니다.
2. 출력
Bash에서 명령을 입력하면 기본적으로 별도의 프로그램이 실행되고 해당 실행 파일이 원하는 결과를 제공합니다. 출력 형식은 특정 프로그램의 개발자가 원하는 형식에 따라 다릅니다.
여기에는 많은 유연성이 있어 훌륭하지만 단점은 균일성이 부족하다는 것입니다.
PowerShell의 명령 출력은 일반적으로 단일 통합 표준에 따라 형식이 지정됩니다. 화면에 표시되는 텍스트는 다른 프로그램에서 해석할 수 있는 사람이 읽을 수 있는 데이터 버전입니다.
이를 통해 스크립트와 애플리케이션을 작성하는 사람들은 PowerShell의 자체 기능과 명령을 사용하여 필요한 모든 정보를 얻을 수 있습니다.
3. 문법
if [condition]; then code here; fi
Bash는 일반적으로 다른 스크립팅 언어에서 볼 수 없는 매우 독특한 구문(예: )을 사용합니다 . 사용하기가 엄청나게 어렵지는 않지만 스크립트 작성 방법을 막 배우기 시작한 사람에게는 약간 틀릴 수 있습니다.
사용자 명령에 대해서는 명확한 일관성이 없습니다. 모든 단일 프로그램에는 자체 명령 구문이 있습니다. bash 스크립트에 통합하기 전에 사용 방법을 알아야 합니다.
PowerShell의 스크립팅 구문은 다른 것과 비슷합니다. NET 응용 프로그램(예: if (condition) {. ..code here... }
). Microsoft 자체 에코시스템 내에서 개발하는 데 익숙한 사람들에게는 학습 곡선이 거의 없습니다.
사용자 명령은 동사, 대시, 명사 순으로 엄격한 구조를 따릅니다 . 예를 들어 Get-ChildItem
현재 디렉토리에 있는 모든 파일을 나열합니다. PowerShell에 한정되지 않은 명령은 여전히 Bash와 유사한 구조를 따를 수 있습니다. Linux에서 사용하는 경우 여전히 모든 Linux 명령을 실행할 수 있습니다.
4: 유연성
Bash를 마스터하면 수많은 Linux 배포판, BSD 생태계 및 macOS의 터미널 환경에서 작동하는 방법을 알게 될 것입니다. 그것은 단연 보편성의 왕입니다. macOS는 2019년에 zsh 로 전환했지만 핵심에는 여전히 Bash 정신이 있습니다.
PowerShell은 거의 모든 운영 체제 내에서 실행할 수 있지만 주로 Microsoft 자체 제품과 함께 실행하기 위한 것입니다. 사용하고 있다면 Windows 내에서 사용하고 있을 가능성이 큽니다.
배운 것이 PowerShell 관련 규칙뿐이라면 기본적으로 Microsoft 제품과 함께 고립된 섬에 갇히게 될 것입니다. 반드시 그럴 필요는 없지만 껍질은 그 상황에서만 진정으로 빛난다는 사실을 피할 수 없습니다. 그러나 단점은 전 세계 데스크톱 시장 점유율의 막대한 부분을 차지하는 것입니다.
자주 묻는 질문
Windows 내에서 bash를 실행하고 Linux 내에서 PowerShell을 실행할 수 있습니까?
Windows 내에서 bash를 실행하려면 명령 프롬프트를 관리자로 실행하고 를 입력하여 Linux용 Windows 하위 시스템을wsl --install
설치하기만 하면 됩니다 . 설치가 완료되면 bash 명령에 즉시 액세스할 수 있습니다.
Linux 내부의 PowerShell은 약간 까다롭고 배포판에 따라 다릅니다. Microsoft는 가장 많이 사용되는 배포판에 PowerShell을 설치하기 위한 지침을 웹사이트에 포함하고 있습니다 . Arch Linux가 해당 목록에서 누락되었음을 알 수 있지만 powershell
AUR의 패키지로 존재합니다.
Windows에서 Bash가 필요합니까?
반드시 그런 것은 아니지만 Linux용으로 더 많이 설계된 것(Python, Git 등)을 사용할 계획이라면 큰 도움이 될 것입니다. 주위에 있으면 다칠 수 없습니다. Linux용 Windows 하위 시스템을 사용하여 Bash를 설치하면 전체 Linux 셸을 실험할 수 있으므로 익숙하지 않은 경우 운영 환경을 소개할 수 있는 좋은 방법입니다.
Windows DOS 명령이 PowerShell에서 작동합니까?
일반적으로 그렇습니다. PowerShell은 원래 Windows 명령 프롬프트를 대체하지 않습니다. 대신 새로운 기능을 제공하기 위해 그 위에서 작동하는 계층입니다. 검증된 cmd.exe 대신 PowerShell만 사용한다면 아무것도 놓치지 않을 것입니다.
답글 남기기