명령줄 입력 및 출력 구별/장식(색상 또는 들여쓰기 사용)

명령줄 입력 및 출력 구별/장식(색상 또는 들여쓰기 사용)

CentOS bash에서(또는 Ubuntu와 같은 다른 bash에 공통된 방법이 있는 경우) 내가 입력하는 명령과 명령의 출력을 어떻게 구별합니까?

제가 이런 질문을 드리는 이유는 화면에 출력을 많이 하는 명령어를 사용하면 어디서부터 시작하는지 찾기가 어렵기 때문입니다. 예를 들어 명령을 밝은 색상으로 장식하고 출력을 더 어두운 색상으로 장식하거나 출력을 4만큼 들여쓰고 싶습니다.

이는 다음과 같이 보일 수 있습니다:

[root@westerngun ~]# ps aux | grep myname                             <- brighter
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   <- darker
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

또는:

[root@westerngun ~]# ps aux | grep myname                          
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  <- indented by 4
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

답변1

우선 , 어디에서 실행되든 상관없습니다 bash. bash주목해야 할 유일한 것은 버전입니다. 예를 들어 bash4에는 3에서는 사용할 수 없는 몇 가지 새로운 기능이 있습니다.bash

PS1즉, 하나의 명령을 다른 명령과 구별하기 위해 ("프롬프트 문자열 1")을 설정하면 상당히 쉽게 프롬프트 색상을 지정할 수 있습니다. 예를 들어, 집에 있는 컴퓨터에 로그인하면 다음이 표시됩니다.

팁 예시

터미널 기록을 스크롤할 때 프롬프트에서 청록색 텍스트를 끄면 한 명령이 끝나고 다른 명령이 시작되는 시점을 알 수 있습니다.

참고로 제 경우는 PS1다음과 같습니다.

\[\e[38;5;14m\]\u\[\e[38;5;8m\]@\[\e[38;5;6m\]\h\[\e[38;5;8m\]:\[\e[38;5;10m\]\w \e[31m${?##0}\n\[\e[$(((($?>0))*31))m\]\$\[\e[0m\]

여기에는 복사하여 명령에 붙여넣을 수 있는 문자열로 사용자 이름, 호스트 이름 및 CWD가 표시되고 scp그 뒤에는 이전 명령의 종료 코드(0이 아닌 경우)가 표시됩니다.

관련 정보