Zshell과 Catalina (10.15)
on
Linux 세계 (Windows는 말할 것도 없고)는 생각보다 보수적인데, 그에 비해 Mac의 세계는 세상 변화에 보다 빠르게 대응하는 것 같다. 물론 많은 하드웨어를 다양하게 서포트해야 할 필요가 없으니 (그렇다고 아주 다양하지 않은 것도 아니다) 그런 이유도 있겠지만, 지금 시장에서 크게 유행하고 있는 하드웨어를 쓰고 있으면, 또 그게 대충 7년 이내의 것들이라면 큰 무리 없이 최근의 Mac에 호환되고 있으니까 생각보다 그다지 closed한 ecosystem이라고 보기도 어렵다(고 생각한다).
정말로 그런지 아닌지 알 수 없지만, Mac 세계에서 일어난 변화가 Linux 세계에서 받아들여지는 것 같은 느낌을 받을 때가 사실 많다. 물론 Unix 세계의 변화는 곧바로 Mac에 반영되고 있으니까 더 말할 필요도 없고. 오직 Isolated world는 Windows world가 아닐까 한다. 대개 Mac/Linux는 그 변화가 천천히 자주 일어나서 적응이 쉽게 되는 반면 Windows 세계의 변화는 단번의 버전업으로 크게 일어나는 경향이 있어서 적응에 포기하게 된다기 보단 그냥 관둬버리게 된다. 이것은 포기라든가 세상 흐름에 못 따라간다가 아니라 (짜증나서) 따라가기 싫다는 말이 맞다.
비근한 예로 윈도우즈는 그 옛날 cmd를 여전히 지원하면서도 기능이 확장된 powershell이란 것도 지원하고 있다. 그런데 cmd와 powershell의 거리는 꽤 멀다. 그 명령어만 보더라도 대소문자를 섞어넣어야 되는 최근의 암호시스템도 아닌데 대소문자가 섞여있는 긴 (문장에 가까운) 명령어이다. PowerShell을 즐겨써야만 하는 이가 아니라면 매우 짜증나는 일이 아닐 수 없다. 그럼에도 편의 기능에 있어서는 cmd와 비교해서 그다지 나아진 것도 없다. 그저 디폴트 배경이 파랑색인 것을 빼면 말이다. (폰트가 좀 바뀌었든가?)
짜증나는 윈도우 얘긴 그만하고 본론으로 돌아와서 MacOS는 10.15에 와서 default shell을 bash에서 zsh로 바꿨다. Mac을 오래 사용하고 있는 입장에서 분명히 그 변화가 cmd에서 powershell과 같은 변화가 아니겠지 하는 생각을 하게 된다 그 내용이 뭔지 모르더라도. 간단히 구글링해보면 zsh는 와일드카드 (*)처리에 있어서 bash보다 장점이 있다고 나온다. 맞다. bash에서 wildcard를 써서 되는 기능이 있고 안되는 기능이 있는데, 그래서 별도로 shell script (+regex)를 쓰거나 perl script를 만들어 쓸 때가 있는데 zsh에서는 그런 걸 몰라도 한 두 줄에 해결 볼 수 있게 되었다.
스크립트를 만들거나 할 때에도 bash에 대해서 별달리 큰 이질감이 없다. 요새 대부분의 리눅스 세상에선 옛날 같은 csh (tsch)도 거의 쓰지 않는다. 대부분 다 bash인데 사실 bash의 장점은 뛰어난 history 기능, tab을 누를 때의 자동완성 기능에 있었다. 이제 아무도 tab을 누르면 그냥 블랭크 몇 개만 집어 넣어주는 shell은 쓰지 않는다. 별 것 아닌 기능같지만 작업시간을 엄청 나게 절약시켜줬으니까 말이다.
이젠 거기에 더해서 와일드 카드를 좀 더 자유롭게 사용할 수 있게 된 것이다. 쓰지도 않는 명령어가, 아니면 쓰기 매우 어려운 명령어가 와장창 늘어나게 된 것도 아니고 기존의 기능에 사용자를 위한 편의 기능 몇 가지가 더해진 것이다. 아주 근본적인 편의 기능으로 말이다. 이게 진정 업그레이드고 세상의 변화를 가져오는 것 아닐까?
아직 대부분의 리눅스 배포판은 기본으로 bash를 제공하고 zsh는 별도로 설치해야 사용가능한 수준이다. 이런 상황에서 Mac이 zsh를 default shell로 해놓은 걸 보면 고무적이라고 해야지 싶다. 일반 사용자는 zsh이란 게 나온지도 잘 모르고 얼마나 좋은지도 잘 모르니까 누가 이런 좋은 변화는 일으켜줘야 된단 말이다.