Page 37 -
P. 37
GUI는 비교적 자주 변하기 때문에 ‘메뉴 A를 선택한 뒤 B 버튼을 클릭한다’ 같은 방식으로
기능을 익혀 봤자 몇 년이 지나면 쓸모없는 지식이 될 수 있습니다. 이는 리눅스뿐만 아니라
윈도나 macOS에서도 자주 생기는 일이지요.
하지만 리눅스의 CLI를 다루는 기술은 10년 전에 쓰인 책이 여전히 유용한 경우가 종종 있
습니다. 이 책으로 리눅스의 CLI를 익히면 오랫동안 도움이 될 것입니다.
프로그램 간 연동
리눅스에서는 작은 프로그램들을 서로 연결해 좀 더 크고 복잡한 동작을 실행합니다. 대표
적으로 프로그램의 입출력을 서로 주고받을 수 있는 파이프(|)라는 기능이 있습니다.
파이프의 예
$ grep "abc" sample.txt | sort
앞 예는 grep과 sort라는 두 명령어를 연결해 sample.txt에서 abc라는 문자열을 검색한 뒤,
그 결과를 정렬하여 출력하라고 지시하고 있습니다. grep과 sort 두 명령어를 파이프(|)로
연결한 것입니다. 또한, 15장에서 소개하는 셸 스크립트를 사용하면 다양한 로직으로 프로
그램을 연결할 수 있습니다.
한편 GUI에서는 이와 같은 프로그램 간의 입출력 연동이 어렵습니다. 따라서 CLI를 사용하
면 GUI보다 풍부하고 강력한 기능을 구사할 수 있습니다.
처리 자동화
CLI에서는 실행할 명령어들을 파일에 기록해 놓고 일괄로 실행하는 것이 가능합니다. 따라
서 자주 사용하는 명령어의 흐름을 파일에 기록해 두면 쉽고 정확하게 실행하는 것이 가능
합니다.
그런데 GUI에서는 반복되는 작업을 말 그대로 직접 반복해야 합니다. 아무리 마우스를 빠
르게 움직여도 빠르고 정확하게 실행하는 CLI의 자동화에 견줄 수는 없습니다.
또한, 앞서 설명했듯이 프로그램 간 연동이 쉬우므로 여러 명령어를 조합해 자기만의 명령
어를 만들어 자동화할 수 있습니다. 이것이 CLI의 가장 큰 장점입니다.
1장 리눅스 첫 걸음 039