최근 수정 시각 : 2023-11-07 18:09:26

less(UNIX)

이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.


1. 개요

more을 대체하기 위한 유닉스의 페이징 툴이다. 콘솔에 출력할 라인이 너무 길면 전신 타자기에서는 인쇄물을 돌려볼 수 있지만 디스플레이를 사용하는 터미널에서는 다음 줄이 출력될때마다 화면의 첫번째 줄은 계속 덮어씌워지게 되고 결국 마지막 한 화면에 들어오는 내용을 제외하면 출력 결과가 손실된다. more는 간단하게 한 화면 이상의 줄 입력을 받으면 특정 키를 누르기 전까지 출력을 멈춘다. 그래서 출력 결과물의 손실 없이 위에서부터 차례대로 출력물을 살펴볼 수 있다. 그러나 반대로 아래에서부터 위로 출력을 되돌리는 것은 불가능했고 그 때문에 다시 첫줄부터 보려면 프로그램을 다시 실행해야 했다. 이러한 문제점을 개선한 터미널 페이저로 less가 등장했고 이름의 유래는 많다는 뜻을 가진 more의 반대 의미이다.

2. 사용법

기본적으로 표준 입력(stdin)으로부터 EOF까지 텍스트를 읽는다.

예를 들어, 다음과 같은 명령은
#!syntax sh
echo Less is unix paging tool.\n\"Always, less is more.\" | less

아래와 같이 표시된다.
Less is unix paging tool.
"Always, less is more."
(END)

(END)는 실제 파일(또는 입력)에는 없는 부분이며, 파일의 끝을 표시하는 역할을 한다.

이 상황에서 q를 누르면 종료된다.

만약 표준 입력에서 받아들인 줄의 수가 터미널에서 표시할 수 있는 줄의 수보다 많다면 첫 화면에 들어오는 내용만 출력되고 전체 내용을 vi와 비슷한 키맵으로 이동할 수 있다. 예를 들어, jk는 하단과 상단으로 한 줄씩 이동하며 du는 화면의 절반씩, fb는 한 화면씩 이동한다.

하지만 표준 입력을 순수하게 읽진 않는다. 대부분의 제어 문자는 그에 맞는 문자열로 치환된다. 그래서 ANSI 이스케이프 코드등으로 색깔있는 텍스트를 입력받았을 경우 단색으로 바뀌어버린다는게 단점.