![diff 명령의 출력을 Unix의 매뉴얼 페이지처럼 보이게 하려면 어떻게 해야 합니까? 더 읽거나 뒤로 읽으려면 어디에서 "b" 또는 "f"를 누르나요?](https://linux55.com/image/19019/diff%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20Unix%EC%9D%98%20%EB%A7%A4%EB%89%B4%EC%96%BC%20%ED%8E%98%EC%9D%B4%EC%A7%80%EC%B2%98%EB%9F%BC%20%EB%B3%B4%EC%9D%B4%EA%B2%8C%20%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%EB%8D%94%20%EC%9D%BD%EA%B1%B0%EB%82%98%20%EB%92%A4%EB%A1%9C%20%EC%9D%BD%EC%9C%BC%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%94%94%EC%97%90%EC%84%9C%20%22b%22%20%EB%98%90%EB%8A%94%20%22f%22%EB%A5%BC%20%EB%88%84%EB%A5%B4%EB%82%98%EC%9A%94%3F.png)
man 명령을 사용하여 매뉴얼(예: man ls
)을 읽으면 "f"를 눌러 아래로, "b"를 눌러 위로, 위에서 아래로 읽을 수 있는 페이지 출력이 표시됩니다(위에서 이동한다고 가정). (왼쪽에서 오른쪽으로 읽음)을 선택하고 "q"를 눌러 종료하세요. 때로는 긴 차이점 목록을 읽고 싶기 때문에 diff의 출력이 동일한 방식으로 작동하기를 원하지만 출력의 시작 부분을 읽으려면 터미널에서 위로 스크롤해야 합니다.
Git diff 명령을 사용하면 이 기능이 마음에 들지만(예 git diff
: ) 항상 모든 파일을 버전 제어할 여유가 있는 것은 아닙니다.
내가 생각할 수 있는 최선의 방법은 diff 명령의 출력을 다른 명령으로 파이프하는 것이지만 어느 명령인지는 잘 모르겠습니다. 누구든지 도와줄 수 있나요? 매뉴얼 페이지와 같이 제공된 이 출력 동작에는 나중에 참조할 수 있는 이름이 있습니까?
답변1
이를 "페이지 출력" 또는 (다소 부정확하게는) "페이지 출력"이라고 합니다.
... 맨 페이지 출력 양식을 생성하는 데 사용된 파이프의 출력을 기반으로 man
선호하는 페이저 셸 명령(환경 변수로 이름 지정)을 호출하여 이 작업을 수행합니다 . PAGER
호출기 명령을 지정하지 않으면 기본값으로 되돌아갑니다. 초기 Unices에서는 기본 호출기 프로그램이 man
기본 호출기 명령으로 알려진 고정 옵션과 함께 호출되었습니다 pg
. 귀하의 시스템에서는 more
또는 일 수 있습니다 less
. 일부 man
명령은 pager 명령에 대한 다른 환경 변수도 확인합니다.
너지금 하고 있는 일을 수행하여 이를 수행하십시오 man
. 즉, 호출기 프로그램의 표준 입력에 보고 싶은 출력을 파이프하는 것입니다.
당신은 유닉스에 관한 좋은 책을 사야 합니다. 이것을 설명하는 사람들이 꽤 있는데, 이는 시스템의 아주 기본적인 기능입니다. 오늘 Google Books에서 간단히 검색해 본 결과 pager unix more
이 문제를 다룬 책이 100권 이상 발견되었습니다. (나는 백까지 세는 것을 멈췄다.)
답변2
man
그리고 프로그램 보조를 호출합니다 git diff
.휴대용 소형 무선 호출기. 최신 시스템에서는 기본 호출기를 호출합니다.less
. 수십 년 전, 첫 번째 호출기는 more
페이지를 표시한 다음 "자세히"를 보기 위해 키를 누르기를 기다렸기 때문에 "페이저"라고 불렸습니다. 그런 다음 가 오고 less
, 이는 또한 당신을 되돌아가게 만들고(말하자면 더 적게 보게 만들고) "적은 것이 더 많다"(더 많은 것보다)라는 말을 확인시켜 줍니다.
git diff
몇 가지 예외가 있습니다. 유틸리티 diff
, cvs diff
하위 명령, svn diff
하위 명령 등은 차이를 계산하고 인쇄하는 작업만 수행합니다. 차이점을 페이징하려면 명시적으로 페이저를 호출해야 합니다.
diff file.old file.new | less
pager 를 호출하는 다른 명령과 다른 pager를 사용하려는 경우 man
환경 변수를 git diff
설정할 수 있습니다 PAGER
(예: 파일에 저장) ~/.profile
.
export PAGER=most
diff
자동 호출기 호출과 같은 명령을 실행할 수 없습니다 . 그러나 래퍼 함수를 만들 수 있습니다(예: ~/.zshrc
zsh 또는 bash의 경우 쉘 초기화 파일에 넣기 ~/.bashrc
).
diff () {
if [ -t 1]; then # If standard output is a terminal
command "$@" | less # then pipe through less
else # else
command "$@" # run the command (and return its exit status)
fi
}
경고: 이와 같은 기능은 때때로 방해가 될 수 있습니다. 호출기에 대한 한 문자 별칭을 만들 수도 있습니다.
alias p=less P=less
따라서 명령 출력을 페이지별로 보려면 diff … |p
또는 를 입력합니다.diff … |P
답변3
less 명령을 사용하는 것은 어떻습니까... EX:
ls -l | less -CM
답변4
vim에서 diff 내용을 볼 수 있습니다.
git diff | view -
확신하는:
diff -u a.txt b.txt | view -
즐기다!