Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명

터미널을 열면 Bash를 UNIX 쉘 환경으로 사용할 가능성이 있습니다. 하지만 다른 "쉘" 환경도 존재합니다.

C Shell, Korn Shell, Z Shell 및 Fish Shell과 같은 다른 환경도 있습니다. 이러한 다양한 셸 환경에는 모두 장단점이 있으므로 자신의 시스템에서 사용할 환경을 선택하기 전에 이를 고려해야 합니다.

이 기사에서는 하나를 선택하는 데 도움이 되도록 몇 가지 인기 있는 셸과 주요 기능을 살펴보겠습니다.

Bash 쉘

Bash 쉘(또는 Bourne Again 쉘)은 UNIX 쉘이자 명령 언어입니다. 이것은 Bourne Shell(sh)의 무료 소프트웨어 대체품으로 GNU 프로젝트를 위해 Brain Fox에 의해 작성되었습니다.

Bash는 1989년에 처음 출시되었으며 대부분의 Linux 배포판에서는 기본 Shell 환경입니다. Kali Linux와 같은 다른 배포판은 Z Shell을 기본 셸로 사용합니다.

Bash는 Linus Torvalds(Linux 창시자)가 Linux로 포팅한 최초의 프로그램 중 하나입니다.

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명 이미지 소스

혼동하지 말아야 할 점은 Bash도 프로그래밍 언어라는 것입니다. 따라서 이는 "쉘"이지만 Bash에서 동작을 프로그래밍할 수도 있습니다. 예:

#!/bin/bash
echo "Hello World"

Bash의 핵심 사항

  • Bash는 대부분의 시스템에서 기본 셸 환경이므로 대부분의 사용자는 Bash를 사용합니다.
  • Bash에는 인라인 와일드카드 표현식이 없습니다. 와일드카드 표현식은 Regex와 유사하게 셸에서 패턴을 검색하려는 경우에 사용됩니다. 세 가지 주요 와일드카드는 *입니다. , ?[] .
  • 디렉토리 이름은 자동으로 변경할 수 없습니다.
  • # 스크립팅에서는 주석으로 처리됩니다.
  • shopt이 있습니다. 설정
  • 프롬프트에 백슬래시 이스케이프가 있습니다
  • 사용자 구성 설정은 .bashrc에 있습니다.

Z 쉘

Z Shell 또는 Zsh는 Bash와 매우 유사한 UNIX 쉘이기도 합니다. 또한 쉘을 명령 해석기로 스크립트하고 사용할 수도 있습니다.

Zsh는 많은 개선이 이루어진 Bourne 쉘의 확장입니다. Zsh는 1990년 Paul Falstad에 의해 출시되었으며 Bash, Korn Shell 및 C Shell이 ​​공유하는 일부 기능을 가지고 있습니다.

macOS는 기본적으로 Zsh Shell을 사용합니다.

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명 이미지 소스

Zsh의 핵심 사항

  • 터미널 사용 시 자동 완성 기능이 제공됩니다. 따라서 Tab ↹를 누르면 실행하려는 명령이 무엇이든 자동 완성하기 위해 자동 완성 기능을 제공할 뿐만 아니라 다른 모든 가능한 파일 및 디렉터리의 드롭다운을 표시합니다.

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명

  • 인라인 와일드카드 표현 지원
  • Bash보다 훨씬 더 많은 구성 가능
  • 플러그인과 테마를 지원합니다. 다음은 Zsh에 사용할 수 있는 플러그인 목록입니다.

Z Shell을 중심으로 구축된 프레임워크도 있습니다. 가장 인기 있는 것 중 하나는 Zsh 구성 관리를 위한 커뮤니티 기반 오픈 소스 프레임워크인 Oh My Zsh입니다. (저는 Oh My Zsh를 사용합니다😄)

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명 이미지 소스

Zsh와 Oh My Zsh는 비슷하지만 완전히 똑같지는 않습니다. 다시 한번 말씀드리지만, Oh My Zsh는 Zsh 구성을 관리하는 방법이지 Shell 자체는 아닙니다.

물고기 껍질

Fish는 상호작용성과 유용성에 중점을 둔 UNIX 쉘 환경입니다. Zsh와 달리 Fish는 사용자가 자체 구성을 구현한다고 신뢰하는 대신 기본적으로 사용자 상호작용을 제공하는 것을 목표로 합니다.

이는 2005년 Axel Liljencrantz에 의해 만들어졌습니다. Fish는 POSIX 쉘 표준을 준수하지 않는다는 사실 때문에 "이국적인 쉘"로 간주됩니다. [[출처](https://en.wikipedia.org/wiki/Fish_(Unix_shell)]

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명 이미지 소스

물고기의 핵심 포인트

  • Fish에는 명령 기록과 현재 있는 디렉토리를 기반으로 "입력 시 검색" 자동 제안 기능이 있습니다. Bash의 기록 검색과 유사하게 Fish Shell의 검색 기록은 항상입니다. 켜져 있습니다. 이렇게 하면 사용자는 터미널에서 작업할 때 대화형 피드백을 얻을 수 있습니다.

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명 이미지 소스

  • Fish는 또한 구문보다는 명령으로서의 기능을 선호합니다. 이렇게 하면 옵션과 도움말 텍스트가 포함된 명령 측면에서 기능이 표시됩니다.
  • Fish는 기본적으로 이미 많은 구성이 설정되어 있으므로 다른 sh보다 초보자에게 더 친숙하다고 생각됩니다. Zsh와 같은 옵션.
  • Fish의 스크립팅 언어는 Zsh 및 Bash와 다릅니다. Zsh는 더 많은 별칭을 사용하는 반면 Fish는 스크립팅 언어에서 별칭 사용을 피합니다.

cd과 같은 기본 명령을 사용하여 스크립트를 작성한다면 , cp , vim , ssh , 등등, Fish와 Bash의 스크립팅 언어 작동 방식에는 아무런 차이가 없습니다.

가장 큰 차이점 중 하나는 명령의 출력을 캡처하려고 할 때입니다. Bash에서는 다음과 같은 작업에 익숙할 수 있습니다:

todays_date=$(date)
echo "Todays date is $todays_date"

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명

Todays Date is Tue Dec 13 15:29:28 CST 2022

반면 Fish에서는 출력 캡처가 다르게 작동합니다. 스크립트에서 Fish에 해당하는 내용은 다음과 같습니다:

set date (date)
echo "Todays Date $date"

올바른 Linux 셸 선택:Bash, Zsh 및 Fish – 기능 및 이점 설명

todays date is Tue Dec 13 21:35:03 UTC 2022

결론

Bash, Z Shell 및 Fish Shell은 모두 몇 가지 유사점과 함께 장점을 가지고 있습니다. 이제 각 기능에 대해 조금 더 알게 되었으므로 작업 환경에서 각 기능을 효과적으로 사용할 수 있습니다.

좀 더 구성 가능한 것을 원한다면 Zsh를 사용할 수 있습니다(또는 Oh My Zsh를 설치할 수도 있습니다). 많은 구성 없이 더 많은 대화형 터미널 경험을 원한다면 Fish Shell을 사용할 수 있습니다. 고전적인 느낌을 원한다면 Bash를 유지하면 됩니다.

모든 것은 개발자로서 귀하의 선호도에 따라 결정됩니다. 따라서 귀하에게 가장 적합한 셸을 선택하세요.

도움이 되었기를 바랍니다! 읽어주셔서 감사합니다 🐚🐚🐚

무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요