ex (유닉스) ex는 빌 조이(Bill Joy)가 1976년 캘리포니아 대학교 버클리 캠퍼스(UC Berkeley)에서 BSD 유닉스 배포판을 위해 개발한 라인 에디터(line editor)이다. ed 에디터의 기능을 확장하고 개선하기 위해 만들어졌으며, 이름 역시 'extended editor'의 약자에서 유래했다.
주요 특징과 역사적 의의는 다음과 같다.
개발 배경 및 목적 기존 유닉스 표준 에디터였던 ed는 기능이 제한적이었고 사용이 까다로웠다. 조이는 ed의 스크립트 호환성을 유지하면서도 더 강력한 편집 기능(다중 파일 편집, 향상된 정규 표현식, 버퍼 관리 등)을 제공하고자 ex를 설계했다.
vi와의 관계
ex는 비주얼 모드(visual mode)라는 화면 단위 편집 인터페이스를 내장했는데, 이 모드가 독립적인 에디터처럼 동작하도록 분리된 것이 vi(visual editor)이다. 초기 버전에서는 ex 명령어로 실행한 뒤 :visual 또는 vi 명령을 입력하여 화면 편집 모드로 진입했다. 이후 vi가 독자적인 실행 파일로 분리되었으나, vi 내부적으로는 여전히 ex의 명령어 세트와 라인 편집 엔진을 핵심 기반으로 사용한다. 따라서 vi/vim에서 :(콜론)을 입력하여 진입하는 커맨드 라인 모드가 사실상 ex 명령어 인터페이스이다.
주요 기능
- 라인 단위 편집: 파일 전체를 메모리에 적재하지 않고 지정된 줄 번호나 패턴을 기준으로 작업 수행.
- 스크립트 자동화: 비대화형 모드에서 표준 입력으로 명령어 스트림을 받아 배치(batch) 처리가 가능하여, 쉘 스크립트 내 텍스트 처리에 널리 사용됨.
- 다중 파일 및 버퍼: 여러 파일을 인자로 받아
:next,:prev등으로 전환하며 편집 가능. - 태그(Tag) 시스템: 소스 코드 탐색을 위한 태그 파일(
tags) 지원 기능 최초 도입.
표준화 및 현황
POSIX.1-2008(IEEE Std 1003.1) 표준에 ex 유틸리티가 포함되어 있어, 표준을 준수하는 유닉스 계열 시스템에는 기본적으로 탑재되어 있다. 현대의 리눅스 배포판에서는 vim(Vi IMproved) 패키지의 일부로 ex 실행 파일이 제공되거나 vim에 대한 심볼릭 링크로 구현되는 경우가 많다.