【Linux】 man 명령으로 종료 전의 화면이 클리어되지 않도록 한다

4241 단어 리눅스

소개



Linux man 명령을 사용할 때 종료 전 화면이 지워지지 않도록하는 방법 중 하나를 소개하는 기사입니다.

환경


$ uname -rs
Linux 3.10.0-1160.31.1.el7.x86_64
$cat /etc/centos-release
CentOS Linux release 7.9.2009(Core)
$
$ bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
〜以下略〜

man 명령으로 어려움


man 명령은 모든 명령의 인수를 취하는 방법과 옵션에 대해 설명하고 매우 유용한 명령입니다.
여러분도 날마다 신세를 지고 있을까 생각합니다.

그런 man 명령이지만, 나는 이전부터 한 가지 불만이있었습니다.
이것은 q로 종료하면 종료 전 화면이 지워진다는 점입니다.

예를 들어, sl 명령에 대한 옵션을 찾으려고 합니다.
$ man sl

그러면 다음과 같이 매뉴얼 페이지가 확장됩니다.
SL(1)                                                                                                  SL(1)

NAME
       sl - cure your bad habit of mistyping

SYNOPSIS
       sl [ -alFc ]

DESCRIPTION
       sl is a highly advanced animation program for curing your bad habit of mistyping.

       -a     An accident is occurring. People cry for help.

       -l     Little version

       -F     It flies like the galaxy express 999.

       -c     C51 appears instead of D51.

SEE ALSO
       ls(1)

BUGS
       It sometimes lists directory contents.

AUTHOR
       Toyoda Masashi ([email protected])

                                               March 31, 2014                                          SL(1)

이 매뉴얼을 보면 다음과 같이 생각했다고 가정 해 봅시다.

「과연, -a-F 라고 하는 옵션이 있는 것인가… 여기에 써 있는 옵션 전부 붙여 실행하면 어떻게 될까?」

생각하면 즉시 실행! 그래서 q에서 매뉴얼을 닫고 옵션을 모두 붙이고 실행하려고했습니다.
그러나 기세 좋게 치기 시작했는데 좋지만, 도중에 손이 멈춰 버립니다.

"-a-l 와......어라, 다음은 -f 이었나-F 이었을까...?"
「4개 있었을 텐데, 마지막 옵션은 뭐였나?」

이렇게 되어 있는 것은, 메뉴얼을 q로 닫았을 때에 메뉴얼의 화면이 클리어 되어, 다음과 같이 되어 버리고 있기 때문입니다.
$ man sl
$

화면상에 조금 전의 매뉴얼 페이지의 내용이 남아 주고 있으면, 망설이지 않고 커멘드가 쳤을 것입니다.

지워지지 않도록 환경 변수 MANPAGER 변경



이제 위에서 언급 한 문제를 해결하기 위해 이번에 소개하는 것은 환경 변수 MANPAGER를 변경하는 것입니다.

결론에서 말하면, 다음과 같이 하면man 커멘드의 종료전의 화면이 남게 됩니다.
$ export MANPAGER="/usr/bin/less -X"
MANPAGER는 이름에 따라 man 명령을 사용할 때 사용되는 호출기를 설정하는 환경 변수입니다.
기본값은 /usr/bin/less입니다. (man 매뉴얼에 설명되어 있습니다)
즉, man 명령은 기본적으로 less 명령에 아무것도 옵션 없이 실행했을 때와 같은 화면 표시를 합니다.

위의 환경 변수 설정은 less의 기본 거동에 화면을 지우지 않는 옵션 (-X)을 붙이는 설정이 되어, 이것을 man 명령으로 이용되도록 하고 있습니다.

이 설정은 man sl에서 q로 매뉴얼을 닫을 때까지의 화면을 다음과 같이 변경합니다.
$ man sl
SL(1)                                                                                                  SL(1)

NAME
       sl - cure your bad habit of mistyping

SYNOPSIS
       sl [ -alFc ]

DESCRIPTION
       sl is a highly advanced animation program for curing your bad habit of mistyping.

       -a     An accident is occurring. People cry for help.

       -l     Little version

       -F     It flies like the galaxy express 999.

       -c     C51 appears instead of D51.

SEE ALSO
       ls(1)

BUGS
       It sometimes lists directory contents.

AUTHOR
       Toyoda Masashi ([email protected])

                                               March 31, 2014                                          SL(1)
$
//↑画面上に終了前のマニュアルの内容が残った状態でプロンプトが表示される

다음 명령을 칠 화면에 수동 화면이 지워지지 않은 채로 남아 있습니다.
이제 방금전처럼 옵션으로 헤매지 않고 명령이 치네요.

맑음 sl에 옵션을 풀로 붙여 실행시킬 수 있었습니다.


마지막으로



이상, man명령으로 종료전의 화면이 클리어되지 않도록 하는 방법이었습니다.
그 밖에도 방법은 있는 것 같습니다만, 일단은 이 방법으로 문제 없을까라고 생각합니다.

마지막으로 다시 설정을 게시합니다.
$ export MANPAGER="/usr/bin/less -X"

도움이 되면 다행입니다.

좋은 웹페이지 즐겨찾기