Bash는 Linux 배포판에 로그인하는 사용자를 환영하는 명령줄 인터페이스의 이상한 이름처럼 들립니다. 배쉬란 정확히 무엇인가요? 무엇을 위해 사용할 수 있나요? 알아보겠습니다.
Bash는 일반적으로 Linux와 연결되어 있지만 윈도우에서 사용하세요 도 가능합니다. macOS에는 이미 Bash가 포함되어 있지만 기본 셸은 일부 추가 기능이 포함된 Bash의 고급 버전인 Zsh로 변경되었습니다.
쉘이란 무엇인가요?
Bash 셸이라는 용어가 많이 사용되지만, 어쨌든 셸은 무엇인가요? 왜 필요한가요? 그리고 왜 Bash가 유일한 셸인 것 같나요?
직관적인 그래픽 사용자 인터페이스를 갖춘 최신 운영 체제 덕분에 컴퓨터 사용이 쉬워졌습니다. 그러나 컴퓨터 초기에는 시스템에 수행할 작업을 지시하는 것이 그리 간단하지 않았습니다.
프로그래머는 코딩 중인 시스템의 하위 수준 세부 정보를 알아야 하고 모든 하드웨어 부분을 수동으로 지시해야 했습니다. 운영 체제는 이러한 격차를 해소하기 위해 설계되었지만 OS 자체에는 어떻게 지시하시겠습니까?
쉘에 들어가세요. OS의 가장 바깥쪽 레이어는 컴퓨터의 모든 기능을 간단한 인터페이스로 노출하는 대화형 환경으로 설계되었습니다. 이 셸에는 시스템을 작동하는 데 필요한 모든 명령이 포함되어 있어 컴퓨터 사용자가 가장 자세히 살펴보아야 할 부분이었습니다.
Bourne Again: Bash의 탄생
일반적인 오해는 Bash가 Linux 운영 체제용으로 Linus Torvalds에 의해 만들어졌다는 것입니다. 실제로 Bash는 Linux로 포팅되었을 뿐이며 이전 버전인 Unix에서는 이미 사용되었습니다.
다양한 면에서 Unix는 현대 운영체제의 모든 것이 시작된 곳입니다. 이는 초기 OS 구현을 괴롭혔던 복잡한 복잡성을 상당 부분 제거하여 비교적 간단한 텍스트 기반 인터페이스로 컴퓨터의 기능을 제공했습니다.
물론 Unix 자체는 쉘 개념을 포함하여 대부분의 아이디어를 Multics에서 차용했습니다. 하지만 Thompson Shell이 첫 번째 버전으로 출시되면서 실제로 이 기술을 대중화한 것은 Unix였습니다.
그러나 그 기능은 매우 제한적이어서 많은 프로그래머는 결국 셸을 스크립팅에 더 친숙하게 만들기 위해 셸을 수정했습니다. Bourne Shell은 Unix 쉘을 공식적으로 대체하여 쉘 스크립트에 대한 지원을 추가했습니다..
Bourne Again Shell은 훨씬 나중에 출시되어 스크립팅 기능을 더욱 향상시키고 모든 OS에서 사용할 수 있는 무료 오픈 소스 GNU 라이센스 셸로 전환했습니다. 그리고 Linux에서 빠르게 채택되어 다양한 배포판의 기본 셸이 되었습니다.
Bash는 무엇을 할 수 있나요?
Bash는 기본적으로 Linux 시스템에 완벽하게 액세스할 수 있는 완전한 기능을 갖춘 스크립팅 환경입니다. 파일 관리부터 애플리케이션 실행까지 Bash 명령을 사용하여 모든 컴퓨팅 작업을 수행할 수 있습니다.
대부분의 Linux 사용자의 경우 이는 수동 쉘 명령으로만 변환됩니다. 결국 Bash의 주요 목적은 운영 체제에 대한 인터페이스 역할을 하는 것입니다.
그리고 이러한 기본 제공 명령도 꽤 많이 있습니다. chown 로 파일 소유권을 관리하고, ifconfig 로 네트워크 설정을 구성하고, 찾다 으로 디렉토리를 찾을 수 있습니다. 목록은 계속됩니다.
그러나 Linux 명령이 사용자의 관심 전부였다면 Bash는 존재하지 않았을 것입니다. 아니요, Linux 셸의 진정한 힘은 스크립팅에 있습니다.
스크립팅의 중요성
명령어 스크립팅의 개념은 간단합니다. 시스템에서 수행할 모든 명령을 하나씩 수동으로 입력하는 대신 요청 시 실행할 수 있는 텍스트 파일에 명령을 저장합니다.
이것은 셸 인터페이스를 일종의 프로그래밍 언어로 바꾸어 사용자가 모든 작업을 재사용 가능한 스크립트로 자동화할 수 있게 해줍니다. 분명히 그 이상입니다. 모든 프로그래밍 언어에는 코드 저장 기능 외에도 변수 및 함수와 같은 것이 필요하기 때문입니다.
Bash에는 이러한 모든 기능이 있습니다. 이것이 바로 셸(어느 정도는 일반적으로 Linux)이 서버 및 상용 시스템 관리에 널리 사용되는 이유입니다.
가정 사용자는 여러 버튼을 클릭하여 얻을 수 있지만 시스템 관리자는 많은 수의 컴퓨터에서 원격으로 모든 작업을 수행할 수 있어야 합니다. Bash 스크립트는 이러한 종류의 자동화된 시스템 관리를 가능하게 해줍니다.
예를 들어 Linux에서 파일 및 폴더 이름 바꾸기에 대한 가이드 를 생각해 보세요. 가이드에서는 GUI와 스크립트라는 두 가지 방법을 모두 설명합니다. 보시다시피, 관련된 파일 수가 많을 때 스크립팅 방법의 확장성이 훨씬 더 높습니다.
Bash 시작하기.
Bash의 좋은 점은 Linux에만 국한되지 않는다는 것입니다. 이제 기본적으로 Bash와 함께 제공되는 WSL(Linux용 Windows 하위 시스템)을 통해 윈도우에 리눅스를 설치하다 할 수 있습니다.
즉, Linux로 완전히 전환하지 않고도 Bash 실험을 시작할 수 있다는 뜻입니다. Linux 서버를 사용할 생각이 없는 일반 사용자라도 Bash 셸의 흥미로운 기능이 유용할 수 있습니다.
Bash가 컴퓨팅 작업을 자동화하는 유일한 옵션은 아닙니다. 파워셸 은 Windows에서 작동하는 유사한 인터페이스입니다. 물론 명령 프롬프트 로 관리할 수 있는 인터페이스는 제외됩니다.