CVE-2020-0688이 Exchange 온프레미스 취약점에 초점을 맞춤

유닉스GNU/리눅스와 같은 운영 체제에서 명령어를 해석하는 프로그램입니다. 다른 프로그램을 실행하는 프로그램으로, 사용자가 유닉스/GNU 리눅스 시스템에 대한 인터페이스를 제공하여 다양한 명령어유틸리티/도구를 입력 데이터와 함께 실행할 수 있게 해줍니다.

쉘이 프로그램을 실행한 후에는 화면에 사용자에게 출력을 보내는데, 이는 표준 출력 장치입니다. 그렇기 때문에 “명령어 해석기”라고 불립니다.

쉘은 단순한 명령어 해석기 이상의 역할을 합니다. 조건부 실행, 루프, 변수, 함수 등과 같은 완전한 프로그래밍 언어 구조를 가진 자체 프로그래밍 언어이기도 합니다.

이러한 이유로 유닉스/GNU 리눅스 쉘은 Windows 쉘에 비해 훨씬 강력합니다.

이 기사에서는 Unix/GNU 리눅스에서 가장 많이 사용되는 오픈 소스 쉘 중 일부를 살펴보겠습니다.

1. Bash Shell

Bash Shell, 또는 간단히 “Bash“라고 하며, ” Bourne Again SHell“를 의미합니다. 이는 원래의 Bourne Shell (sh)의 개량판으로, 1989년 Brian Fox에 의해 소개되었습니다.

수년에 걸쳐 Bash많은 리눅스 배포판과 macOS( Catalina 이후 zsh로 대체되기 전까지)에서 가장 인기있고 널리 사용되는 명령 줄 인터프리터 중 하나가 되었습니다.

Bash는 사용자에게 명령어 실행, 파일 시스템 탐색 및 스크립트 실행 등의 기능을 제공합니다. 사용자는 명령어 기록, 탭 완성 및 스크립팅 기능과 같은 기능을 활용하여 작업을 자동화하고 워크플로를 개선할 수 있습니다.

Bash Shell은 오픈 소스 컴퓨팅의 진화에서 중요한 역할을 했으며, 사용자가 시스템과 상호 작용할 수 있는 일관된 인터페이스를 제공합니다.

Bash Shell

2. Tcsh/Csh Shell

Tcsh(발음: “티쉘“) 및 Csh(발음: “시쉘“)은 수십 년 동안 존재해 온 Unix 기반 명령 줄 쉘입니다. Csh 또는 C 쉘은 1970년대 후반 버클리 캘리포니아 대학에서 빌 조이에 의해 개발되었습니다.

이 언어는 C 프로그래밍 언어에서 영감을 받아 여러 기능과 스크립팅 구문을 도입하여 C에 익숙한 프로그래머들 사이에서 인기를 얻었습니다.

Tcsh는 원래의 Csh의 향상된 버전으로 ” Tenex C Shell“를 의미하며, ” Tenex“는 TENEX 운영 체제를 참조합니다.

TcshCsh의 모든 기능과 명령어 편집, 작업 제어 및 명령어 완성과 같은 추가적인 개선 사항을 포함하고 있습니다.

두 쉘은 Unix 세상에서 영향력이 있었으며, 독특한 스크립팅 구문과 기능을 감사하는 많은 사용자들이 있었습니다. 그러나 시간이 지남에 따라 bash와 같은 다른 쉘이 광범위한 기능과 널리 채택되어 더 많은 인기를 얻게 되었습니다.

그럼에도 불구하고 TcshCsh는 Unix의 쉘 역사의 핵심적인 부분을 이루고 있습니다.

Tcsh Shell

3. Ksh Shell

KornShell, 즉 ksh는 1980년대 초반 AT&T 벨 연구소의 David G. Korn에 의해 개발된 Unix 쉘입니다.

C 쉘(csh)과 Bourne 쉘(sh)의 기능을 결합하여 양쪽 세상의 최선을 제공하려고 했습니다. 수년에 걸쳐 ksh는 고급 스크립팅 기능으로 인해 많은 시스템 관리자와 강력한 사용자들에게 인기가 있었습니다.

주목할 만한 ksh의 특징 중 하나는 연관 배열입니다. 이는 당시 쉘에서는 흔한 기능이 아니었습니다. 또한 select 구조를 도입하여 스크립트에서 메뉴 생성을 간단하게 만들었습니다.

또 다른 중요한 장점은 명령 줄 편집 및 기록 기능으로, 이는 나중에 bash와 같은 다른 쉘에서도 채택되었습니다.

Ksh Shell

4. Zsh 쉘

Zsh 쉘은 일반적으로 “Zsh”라고 불리는 강력한 Unix 쉘로, 프로그래머와 시스템 관리자 사이에서 놀라운 인기를 얻었습니다.

Bourne Shell의 확장으로 시작한 ZshBash, ksh, tcsh 등 다른 쉘의 기능을 통합하여 다양한 기능과 향상된 대화형 사용을 제공합니다.

Zsh의 눈에 띄는 특징 중 하나는 강력한 자동 완성 기능입니다. 다른 쉘과 달리 Zsh의 자동 완성은 상황에 맞는 제안을 하며, 관련 명령어, 파일 경로, 심지어는 Git 브랜치까지도 제안하여 사용자 경험을 더욱 부드럽고 직관적으로 만듭니다.

또한, ZshOh My Zsh 프레임워크를 사용하여 매우 사용자 정의가 가능하며, 사용자는 테마와 플러그인을 쉽게 적용하여 터미널 환경의 미학적 및 기능적 측면을 향상시킬 수 있습니다.

Zsh Shell

5. Fish

Fish Shell는 사용자가 상호 작용하고 직관적인 인터페이스를 제공하기를 목표로 하는 최신 사용자 친화적인 명령 줄 쉘입니다.

기존 쉘과 달리 Bash 또는 Zsh, Fish는 스마트 제안을 기본적으로 제공하여 초보자와 경험이 있는 사용자 모두가 명령을 탐색하고 실행하기가 더 쉽습니다.

Fish의 눈에 띄는 특징 중 하나는 자동 제안입니다. 이는 명령 내역에 따라 실시간 피드백을 제공하여 빠른 명령 실행을 가능하게 합니다.

Fish는 또한 구문 강조 표시를 통해 명령을 읽고 이해하기 쉬운 활기찬 색상이 풍부한 인터페이스를 자랑합니다. 웹 기반 구성을 통해 사용자는 복잡한 구성 파일에 뛰어들지 않고도 쉘 경험을 사용자 정의할 수 있습니다.

또한, Fish에는 커뮤니티 기여 플러그인과 테마의 방대하고 계속해서 늘어나는 컬렉션이 있어 기능과 외관을 향상시킵니다.

Fish Shell
요약

이것들은 Unix/GNU Linux에서 사용 가능한 유일한 쉘은 아니지만, 다양한 Linux 배포판에 미리 설치된 것들을 제외하고는 가장 흔히 사용되는 것들 중 하나입니다.

I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.

Source:
https://www.tecmint.com/different-types-of-linux-shells/