터미널의 답답한 점 몇 가지
원문은 Julia Evans님이 에 게재했습니다. 이 블로그 구독하기
몇 주 전에 터미널에 관한 설문조사를 진행했습니다(결과는 여기에서 볼 수 있습니다). 마지막에는 이렇게 물었습니다.
터미널을 사용할 때 가장 답답한 점은 무엇인가요?
1,600명이 답변했고, 며칠에 걸쳐 모든 응답을 분류하기로 했습니다. 그 과정에서 정성 데이터를 분류하는 일이 결코 쉽지 않다는 걸 알게 됐지만 최선을 다했습니다. 결국 더 빠르게 분류하기 위해 직접 만든 도구까지 만들게 됐습니다.
제가 하는 모든 설문조사와 마찬가지로 방법론이 특별히 과학적이지는 않습니다. 그냥 Mastodon과 Twitter에 설문을 올리고 며칠간 진행한 뒤, 우연히 보고 응답하고 싶었던 사람들의 답변을 받았습니다.
가장 많이 언급된 답답한 점들을 카테고리별로 정리해 봤습니다!
이 의견들을 읽을 때 다음 점을 염두에 두면 좋을 것 같습니다.
- 이 설문에 응답한 사람의 40%는 터미널을 21년 이상 사용해 왔습니다
- 95%는 최소 4년 이상 터미널을 사용해 왔습니다
완전 초보자들의 이야기가 아니라는 뜻입니다.
답답한 점들의 카테고리는 다음과 같습니다! 괄호 안 숫자는 해당 문제를 꼽은 사람 수입니다. 이 글은 주로 저 자신을 위해 쓰는 것입니다. 터미널에 관한 zine을 쓰려고 하는데 사람들이 어떤 점에 어려움을 겪는지 감을 잡고 싶었기 때문입니다.
구문 기억하기 (115)
사람들은 다음과 같은 구문을 기억하는 데 어려움을 겪는다고 했습니다.
- awk, jq, sed 같은 CLI 도구의 구문
- 리다이렉션 구문
- tmux, 텍스트 편집 등의 단축키
대표적인 답변 하나:
제대로 활용하려면 기억해야 할 자잘한 ‘암기’ 요소가 너무 많습니다. 이렇게 오래 썼는데도 가끔 stderr가 2였는지 1이었는지 헷갈리고,
>와>>중 뭐가 뭔지 헷갈립니다.
터미널 환경 바꾸기가 어렵다 (91)
사람들은 시스템을 옮겨 다닐 때(예를 들어 집/직장 컴퓨터를 오가거나 SSH로 접속할 때) 겪는 어려움을 이야기했습니다.
- 키보드 단축키의 OS별 차이(예: Linux vs Mac)
- 선호하는 텍스트 에디터가 없는 시스템(“no vim” 또는 “only vim”)
- 같은 명령어의 버전 차이(예: Mac OS grep vs GNU grep)
- 탭 자동완성 미지원
- 익숙하지 않은 셸(“zsh와 bash의 미묘한 차이”)
같은 시스템 안에서도 pager가 서로 일관되지 않은 경우(git diff pager와 다른 pager) 같은 차이도 있었습니다.
대표적인 답변 하나:
fish와 vi 모드에 익숙해졌는데 서버나 컨테이너에 SSH로 접속하면 쓸 수가 없습니다.
색상 (85)
색상과 관련한 문제도 많았습니다. 예를 들면 다음과 같습니다.
- 밝은 배경에서 읽기 힘든 색을 지정하는 프로그램
- 마음에 드는 컬러스킴 찾기(그리고 여러 앱에서 일관되게 동작하게 만들기)
- SSH/tmux 등을 여러 겹 거치면 색상이 제대로 나오지 않는 문제
- 기본값이 마음에 들지 않음
- 아예 색을 원하지 않는데 끄기가 어려운 경우
이 답변은 개인적으로 공감됐습니다.
터미널 에뮬레이터와 fish 사이에서 터미널 테마를 그럴듯하게 설정하는 일(몇 년 전에 했는데 엄청 지루하고 까다로웠던 기억이 난다. 지금은 일단 동작하니까 현재 테마에 묶여 있는 느낌이고 그 설정을 다시 건드리는 게 끔찍하게 느껴진다).
단축키 (84)
단축키에 대한 의견 중 절반은 Linux/Windows에서 터미널의 복사/붙여넣기 단축키가 OS의 다른 곳과 다르다는 내용이었다.
복사/붙여넣기 외의 다른 단축키 문제는 다음과 같습니다.
- 브라우저 기반 터미널에서
Ctrl-W를 눌렀다가 창이 닫히는 문제 - 터미널이 제한된 단축키만 지원하는 문제(
Ctrl-Shift-불가,Super불가,Hyper불가,Ctrl-,같은ctrl-단축키 상당수 불가) - OS가 터미널 단축키 사용을 막는 경우(예: 기본적으로 Mac OS가
Ctrl+left arrow를 다른 기능에 사용) - 터미널에서 emacs를 사용할 때의 문제
- 백스페이스가 동작하지 않음 (2)
그 외 복사/붙여넣기 문제 (75)
“복사/붙여넣기 단축키가 다르다”는 문제 외에도 복사/붙여넣기와 관련한 다른 문제가 많았습니다. 예를 들면 다음과 같습니다.
- SSH를 통한 복사
- tmux와 터미널 에뮬레이터가 서로 다른 방식으로 복사/붙여넣기를 처리하는 문제
- 여러 클립보드(시스템 클립보드, vim 클립보드, Linux의 “가운데 클릭” 클립보드, tmux 클립보드 등)를 다루고 또 이를 동기화해야 하는 문제
- 터미널에서 복사할 때 공백이 임의로 추가되는 문제
- 여러 줄 명령어를 붙여넣을 때 무서운 방식으로 자동 실행되는 문제
- 마우스 없이 텍스트를 복사하고 싶다는 요구
발견 가능성 (55)
이에 대한 의견도 많았는데, 모두 같은 불만으로 귀결됐습니다. 유용한 도구나 기능을 발견하기 어렵다는 것! 이 댓글이 이를 잘 요약합니다.
독학하기가 얼마나 어려운지 모르겠다. 내가 아는 것 대부분은 수년에 걸쳐 여러 사람들에게서 주워들은 것들을 모아놓은 것이다.
가파른 학습 곡선 (44)
전반적으로 학습 곡선이 가파르다는 의견이 많았습니다. 예시 댓글 두 개:
15년 동안 써왔는데 5년 전이나 어쩌면 10년 전보다 별로 빨라지지도 않았다.
그리고
단축키와 명령어를 더 배우고 터미널을 설정하면 삶이 더 편해질 거라는 걸 알지만 너무 벅차게 느껴져서 시간을 투자하지 않게 된다.
히스토리 (42)
셸 히스토리와 관련한 문제는 다음과 같습니다.
- 터미널 탭 간에 히스토리가 공유되지 않음 (16)
- 저장 길이가 너무 짧음 (4)
- 터미널 탭을 복원해도 히스토리가 복원되지 않음
- 터미널이 충돌하면서 히스토리를 잃어버림
- 히스토리 검색 방법을 모름
대표적인 답변 하나:
알아내기 전까지 많은 시간을 낭비했고, zsh의 “history” 버퍼가 너무 작다는 점이 아직도 짜증 난다. 쓸 만한 길이의 히스토리를 보려면 “history 0”을 입력해야 한다.
부실한 문서 (37)
사람들은 다음과 같은 점을 이야기했습니다.
- 문서가 전반적으로 불투명하고 이해하기 어려움
- man 페이지에 예시가 부족함
- man 페이지가 없는 프로그램
대표적인 답변:
좋은 예시와 문서를 찾기 어렵다. man 페이지만으로는 부족한 경우가 많아 Stack Overflow를 뒤져야 한다
스크롤백 (36)
스크롤백과 관련한 문제는 다음과 같습니다.
- 프로그램이 너무 많은 데이터를 출력해서 스크롤백 히스토리를 잃어버리는 문제
- 터미널 크기를 조절하면 스크롤백이 망가짐
- 타임스탬프가 없음
- 백그라운드로 실행한 GUI 프로그램이 이것저것 출력하면서 다른 프로그램 출력을 방해하는 문제
대표적인 답변 하나:
터미널 크기를 조절할 때(특히 너비를 좁힐 때) 명령어가 터미널 창 너비에 맞춰 출력을 포맷했기 때문에 스크롤백 내용이 엉망으로 다시 줄바꿈되는 문제.
“시대에 뒤처진 느낌” (33)
터미널이 과거의 결정들에 발목 잡혀 있다는 느낌, 그리고 사용자가 결국 매우 난해하게 느껴지는 구현 세부사항까지 배워야 한다는 내용의 댓글이 많았습니다. 예시 댓글 하나:
대부분의 레거시 잔재들, CLI 인터페이스를 백지 상태에서 새로 구현하면 좋겠다.
셸 스크립팅 (32)
POSIX 셸 스크립팅에 대한 불만이 많았습니다. 셸 스크립팅 자체가 어렵다는 인식이 전반적이지만, 다른 덜 표준적인 스크립트 언어(fish, nushell 등)로 바꾸는 것도 나름의 문제를 가져온다는 느낌이 있습니다.
셸 스크립팅. 셸 스크립트를 버리고 스크립트 언어로 갈아탈지 결정하는 기준이 꽤 낮다. 너무 지저분하고 강력하다. 실수하면 대가가 클 수 있어서 아예 시도조차 안 하게 된다.
그 밖의 문제들
최소 10번 이상 언급된 다른 문제들은 다음과 같습니다.
- (31) 일관성 없는 커맨드라인 인자: -h인가 help인가 --help인가?
- (24) 여러 시스템 간에 dotfile 동기화 유지하기
- (23) 성능 (예: “셸 시작이 너무 오래 걸린다”)
- (20) 창 관리 (tmux 탭, 터미널 탭, 여러 터미널 창을 조합한 경우. 그 셸 세션은 어디로 갔지?)
- (17) 전반적인 두려움/불안감 (“명령어 하나로 뭔가 알 수 없는 나쁜 일을 저지르고, 그걸 어떻게 고치거나 되돌리는지, 심지어 무슨 일이 일어났는지조차 전혀 알 수 없을 거라는 마비될 정도의 두려움”)
- (16) terminfo 문제 (“새 터미널 에뮬레이터를 써보고 다른 곳에 ssh 접속할 때마다 terminfo에 대해 배워야 하는 점.”)
- (16) 이미지 지원 부족 (sixel 등)
- (15) SSH 문제 (SSH 연결이 끊기면 처음부터 다시 시작해야 하는 경우 등)
- (15) 각종 tmux/screen 문제 (예: tmux와 터미널 에뮬레이터 간 연동 부족)
- (15) 오타 및 느린 타이핑
- (13) 여러 이유로 터미널이 꼬이는 현상(
Ctrl-S누르기, 바이너리를cat하기 등) - (12) 셸에서의 따옴표/이스케이프 처리
- (11) 각종 Windows/PowerShell 문제
해당 없음 (122)
“딱히 없다”거나 “터미널에서 모든 걸 다 할 수 없다는 점뿐”이라는 취지의 답변도 122개 있었습니다.
대표적인 답변 하나:
대부분/모든 답답한 점에 대한 해결책을 찾은 것 같다
이상입니다!
이 결과에 대해 길게 논평하지는 않겠지만, 개인적으로 서로 관련 있어 보이는 카테고리 몇 가지는 다음과 같습니다.
- 구문 기억하기와 히스토리 (기억해야 할 것이 종종 예전에 실행했던 것인 경우가 많다!)
- 발견 가능성과 학습 곡선 (발견 가능성이 부족한 것이 학습을 어렵게 만드는 큰 요인임은 분명하다)
- “시스템 바꾸기가 어렵다”와 “시대에 뒤처진 느낌” (30~40년 동안 거의 변하지 않은 도구들은 문제가 많지만 어떤 시스템에 가더라도 항상 거기 있다는 장점이 있고, 그래서 쓰기를 멈추기 어렵다)
이 모든 결과를 합리적인 방식으로 분류해보려 하니 사회과학 연구자들의 역량에 새삼 감사하게 됐다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기