follow 기능을 빼먹은 게 의외였음. 처음엔 좀 이상한 UX처럼 느껴지지만 익숙해지면 tail보다 나은 경우가 많음 less +F로 실행하면 입력 스트림이나 파일을 실시간으로 따라가며 보여줌. <C-c>로 팔로우를 멈추고 일반 less처럼 탐색 가능하고, 다시 F(대문자)를 누르면 팔로우 재개됨
파이프 입력(kubectl logs | less +F)을 팔로우할 때 <C-c>를 누르면 파이프 전체 프로세스가 종료되어 다시 F로 팔로우를 재개할 수 없게 됨. less에는 <C-x>로 팔로우를 멈추는 대안이 있지만 대부분의 셸이 이 키를 가로챔
tail에서는 엔터를 눌러 마지막 줄 아래에 빈 줄을 추가할 수 있음. 여러 번 실행 결과를 구분해서 보기 좋기 때문에 이 기능 하나 때문에 아직도 tail을 씀
“조금 이상하다”는 표현보다는 UX가 나쁘다고 생각함. 굳이 모드 전환을 요구할 필요 없이 새 데이터가 생기면 자동으로 갱신되면 좋겠음
새 출력이 자동으로 추가되면서도 동시에 탐색할 수 있는 모드가 있으면 좋겠음. 터미널처럼 자동 스크롤 토글만 있으면 충분할 것 같음
예전엔 “follow”가 파일 디스크립터를 특별히 다루는 복잡한 기능인 줄 알았는데, 사실은 단순히 EOF 이후 계속 폴링하는 것뿐이었음. 즉, 일반 파일 열기와 팔로우 모드 간에는 본질적 차이가 없고 소프트웨어가 쉽게 전환할 수 있음
-X 또는 --no-init 옵션은 종료 시 화면을 지우지 않게 해줌. 나는 보통 화면을 유지해서 이전 내용을 참고하거나 복사·붙여넣기할 수 있게 하는 걸 선호함
-E와 함께 쓰면 출력이 터미널 크기보다 작을 때 즉시 종료함. 여러 옵션을 조합해 “less -SEXIER”를 자주 사용함. 기억하기도 쉬움
긴 로그를 디버깅할 때 &로 읽고 싶은 부분만 필터링하고 &!로 불필요한 부분을 제외함. 정규식도 지원함. 느릴 때도 있지만 즉석에서 필터링할 때 유용함
두 가지 유용한 팁이 있음 -L 옵션은 입력 파일 전처리를 건너뛰어, 로그 파일 이름이 logfile.1, logfile.2처럼 회전된 경우 nroff로 잘못 처리되는 걸 방지함
또, 검색 시 첫 글자로 Ctrl-R을 입력하면 정규식이 아닌 리터럴 문자열로 검색할 수 있음
~/.lesskey 파일로 키 바인딩을 설정할 수 있음. 나는 s를 뒤로 스크롤하도록 바인딩해서 d와 s로 한 손으로 빠르게 페이지 업/다운함
macOS 기본 less에는 이 기능이 없어서 Homebrew로 설치해야 함 (예시 설정, 관련 설명)
나도 N을 next-file로 바인딩함. macOS에 lesskey가 없는 건 정말 불편함
OpenBSD의 man은 less에 태그를 전달해 :t test처럼 특정 섹션으로 바로 이동할 수 있음. 흥미로운 기능이지만 실제로는 거의 쓰지 않음.
단순히 /로 검색하는 일관된 인터페이스가 더 직관적임.
참고로 BSD 계열은 mdoc 매크로 세트를 사용해 의미 기반 문서를 만들고, OpenBSD는 이를 렌더링하기 위해 mandoc 프로그램을 사용함 (mdoc 문서)
^q로 less를 종료하면서 화면을 지우지 않게 하고, 일반 q는 기존처럼 종료 후 화면을 지우게 설정할 수 있음
less를 -X 없이 실행해야 하며, git log처럼 이전 출력 내용을 참고해야 할 때 특히 유용함
less에서 외부 명령으로 파이프하는 기능도 있음.
예를 들어 ma로 마크를 지정하고 |a로 현재 위치부터 마크까지의 내용을 외부 명령으로 보낼 수 있음.
뉴스나 이메일 일부를 저장할 때 유용함.
또 -j 옵션으로 검색 결과가 화면 상단에서 몇 줄 아래에 표시될지 조정 가능함
나도 이 파이프 기능을 git log에 활용함. 커밋을 선택한 뒤 단축키로 git show를 실행하거나, 직접 fixup 작업을 수행함. bash의 디버그 트랩과 keyd-application-mapper를 이용해 현재 실행 중인 명령을 감지하고, 해당 커밋 해시를 추출해 스크립트로 처리함
less(1)의 정규식 엔진이 너무 느림. 큰 파일을 다룰 때는 grep이나 ripgrep으로 검색 후 그 결과를 less로 넘겨서 봄
s 키로 파이프 데이터를 파일로 저장할 수 있음. 복사·붙여넣기보다 훨씬 편함
나도 이 기능을 자주 씀. 오래 걸리는 프로세스의 출력을 less로 보고, 유용한 결과일 때만 s로 저장함. tee를 써도 되지만, 그건 항상 파일을 남기기 때문에 불필요한 경우엔 비효율적임
Hacker News 의견들
follow기능을 빼먹은 게 의외였음. 처음엔 좀 이상한 UX처럼 느껴지지만 익숙해지면tail보다 나은 경우가 많음less +F로 실행하면 입력 스트림이나 파일을 실시간으로 따라가며 보여줌.<C-c>로 팔로우를 멈추고 일반less처럼 탐색 가능하고, 다시F(대문자)를 누르면 팔로우 재개됨kubectl logs | less +F)을 팔로우할 때<C-c>를 누르면 파이프 전체 프로세스가 종료되어 다시F로 팔로우를 재개할 수 없게 됨.less에는<C-x>로 팔로우를 멈추는 대안이 있지만 대부분의 셸이 이 키를 가로챔tail에서는 엔터를 눌러 마지막 줄 아래에 빈 줄을 추가할 수 있음. 여러 번 실행 결과를 구분해서 보기 좋기 때문에 이 기능 하나 때문에 아직도tail을 씀-X또는--no-init옵션은 종료 시 화면을 지우지 않게 해줌. 나는 보통 화면을 유지해서 이전 내용을 참고하거나 복사·붙여넣기할 수 있게 하는 걸 선호함-X동작을 가끔만 쓰고 싶다면 이 스레드의 팁을 참고할 수 있음-E와 함께 쓰면 출력이 터미널 크기보다 작을 때 즉시 종료함. 여러 옵션을 조합해 “less -SEXIER”를 자주 사용함. 기억하기도 쉬움긴 로그를 디버깅할 때
&로 읽고 싶은 부분만 필터링하고&!로 불필요한 부분을 제외함. 정규식도 지원함. 느릴 때도 있지만 즉석에서 필터링할 때 유용함두 가지 유용한 팁이 있음
-L옵션은 입력 파일 전처리를 건너뛰어, 로그 파일 이름이logfile.1,logfile.2처럼 회전된 경우nroff로 잘못 처리되는 걸 방지함또, 검색 시 첫 글자로
Ctrl-R을 입력하면 정규식이 아닌 리터럴 문자열로 검색할 수 있음~/.lesskey파일로 키 바인딩을 설정할 수 있음. 나는s를 뒤로 스크롤하도록 바인딩해서d와s로 한 손으로 빠르게 페이지 업/다운함macOS 기본
less에는 이 기능이 없어서 Homebrew로 설치해야 함 (예시 설정, 관련 설명)N을 next-file로 바인딩함. macOS에 lesskey가 없는 건 정말 불편함OpenBSD의
man은less에 태그를 전달해:t test처럼 특정 섹션으로 바로 이동할 수 있음. 흥미로운 기능이지만 실제로는 거의 쓰지 않음.단순히
/로 검색하는 일관된 인터페이스가 더 직관적임.참고로 BSD 계열은
mdoc매크로 세트를 사용해 의미 기반 문서를 만들고, OpenBSD는 이를 렌더링하기 위해mandoc프로그램을 사용함 (mdoc 문서)^q로less를 종료하면서 화면을 지우지 않게 하고, 일반q는 기존처럼 종료 후 화면을 지우게 설정할 수 있음less를-X없이 실행해야 하며,git log처럼 이전 출력 내용을 참고해야 할 때 특히 유용함less에서 외부 명령으로 파이프하는 기능도 있음.예를 들어
ma로 마크를 지정하고|a로 현재 위치부터 마크까지의 내용을 외부 명령으로 보낼 수 있음.뉴스나 이메일 일부를 저장할 때 유용함.
또
-j옵션으로 검색 결과가 화면 상단에서 몇 줄 아래에 표시될지 조정 가능함git log에 활용함. 커밋을 선택한 뒤 단축키로git show를 실행하거나, 직접 fixup 작업을 수행함.bash의 디버그 트랩과keyd-application-mapper를 이용해 현재 실행 중인 명령을 감지하고, 해당 커밋 해시를 추출해 스크립트로 처리함less(1)의 정규식 엔진이 너무 느림. 큰 파일을 다룰 때는grep이나ripgrep으로 검색 후 그 결과를less로 넘겨서 봄s키로 파이프 데이터를 파일로 저장할 수 있음. 복사·붙여넣기보다 훨씬 편함less로 보고, 유용한 결과일 때만s로 저장함.tee를 써도 되지만, 그건 항상 파일을 남기기 때문에 불필요한 경우엔 비효율적임