GUI vs CUI

일단 CUI(character user interface)의 대표적인 예시가 DOS인데… 이게 뭐냐면

대충 이런거다. 이 창은 윈도우가 GUI라서 파워셸 안쪽만 CUI지만, DOS는 그런거 없고 상남자의 CUI다. 그럼 GUI는요? 지금 윈도우 바탕화면 한번 보자. 아이콘 있지 마우스 커서 있지 바탕화면 이미지 있지 작업표시줄 있지. 다 그래픽으로 나오잖음? CUI는 그래픽으로 나올법한 요소들이 죄다 글자로 나오는거라 폴더 한 번 이동하는데 명령어 쳐야돼 복사도 명령어 쳐야돼 삭제도 명령어 쳐야돼… (악마의 명령어 rm -rf *를 생각해봅시다) 예전에는 CUI여도 와 386! 이러면서 썼지만 요즘 OS는 거진 GUI다. 그럼 CUI는 아예 안 쓰나요? 아니 그건 아님.

요즘 리눅스도 GUI를 지원한다. 지원하는데 얘는 문제가 뭐냐… 자, 윈도우에서 뭐 깔 때 exe파일 받아서 깔면 설치해주고 알아서 바로가기도 만들어주지? 그거 아니어도 바로가기 필요함? 하면서 물어보잖아.

근데 리눅스는 그런거 없다. 프로그램 바이 프로그램인데 일단 웹 페이지에 들어가면 OS따라 페이지가 다르고, OS가 리눅스면(가끔 계열 따라 나뉘는 경우도 있음) tar.gz나 tar(tar.gz 말고 다른것도 있음), gz(gzip), debz파일로 된 걸 받아서… 이거 그럼 실행하면 깔려요? 아뇨 그거 받은 경로 가셔서 ctrl+alt+T(터미널 여는 단축키다) 누르고 명령어 치셔야 깔립니다. 그럼 바로가기는요? 만들어주는 것도 있는데 그런 프로그램은 유니콘같은거임. 거의 안 만들어준다고 보면 되기때문에 터미널 소환해서 가서 sh파일 실행해야 한다(특히 파이참).

Windows의 관리자 권한 어쩌고와 비슷한 게 리눅스의 sudo인데 이거는 우클릭한다고 나오는 것도 아니고 내가 루트로 로그인했는데 터미널 가서 sudo 안 치면 권한 없다고 응 거절이야 뜬다. 아, 놀랍게도 실화다.

여담이지만 내가 노트북 2호 살때만 해도 개발한다고 하면 맥이나 리눅스 추천했었는데 요즘은 swift(iOS 앱 개발 언어라는듯) 할 거 아니고 새로운것에 익숙해지기 어려우면 그냥 윈도우 쓰라는 사람도 많다. 일단 맥은 둘째치고 리눅스는 위에 썼던 저 특징들때문에 GUI뿐 아니라 터미널, 그러니까 CUI에도 어느정도 익숙해져야 한다. 나도 저 터미널 적응하는거 개빡셌음 진짜…

맥이요? 맥에도 터미널 있음. 근데 맥은 그것보다도 커맨드 컨트롤 많이 헷갈린다. 일반적으로 윈도우에서는 복붙이 ctrl+CV지만 맥에서는 command+CV거든. 윈도우 같이 깔고 쓰다보면 100% 키 헷갈린다.