내가 입력 한 OS X 터미널 명령을 BOLD로 설정


11

터미널에 입력 (입력) 한 명령을 모든 출력에서 ​​눈에 띄게 만들고 싶습니다.

예를 들면 다음과 같습니다.

imac : ~ buster $ chmod -R gw myfolder
imac : ~ buster $ cd myfolder
imac : myfolder buster $ ls -l
총 0
drwxr-xr-x 9 루트 관리자 306 2010 년 4 월 20 일 bin
drwxr-xr-x 7 루트 관리자 238 4 월 20 2010 포함
drwxr-xr-x 73 루트 관리자 2482 5 월 18 일 17:16 lib
drwxr-xr-x 6 루트 관리자 204 2010 년 4 월 20 일 man
imac : myfolder buster $ echo Go Giants!
자이언트

굵게 점프하지만 색상을 수락하거나 전체 라인을 강조 표시합니다 ...

이 작업을 수행 할 수있는 방법이 있지만 확실하지 않습니다 ...

감사!

답변:


9

을 편집 ~/.bash_profile또는 ~/.bashrc(아래 질 '의견을 참조), 다음 줄을 추가합니다 :

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${OFF}\u@\h:\w \$${BOLD}"
PS2="> ${BOLD}"
trap 'echo -ne "${OFF}" > $(tty)' DEBUG

${BOLD}프롬프트의 일부도 굵게 표시 하려면 주위를 이동하십시오 . 프롬프트 자체에 색상을 지정하지 않으면에 ${OFF}접두사 가 필요합니다 PS1. 그렇지 않으면 빈 줄 (어떤 것을 쓰지 않고 enter를 누르면)이 다음과 같은 프롬프트를 굵게 표시합니다 (@Jay에 대한 신용, 다시 감사합니다).

이것은 대담한 형식을 해제하는 디버그 트랩을 추가하므로 상당히 해킹입니다. 크레딧 (OS X에서 그룹 tty없이 작동).

이것은 약간의 해킹이므로 위험 부담으로 사용하십시오.

PS1/ PS2프롬프트를 굵게 설정하는 것이 더 쉽고 간단합니다.

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${BOLD}\u@\h:\w \$${OFF}"
PS2="${BOLD}>${OFF} "

1
하지 ~/.bash_profile~/.bashrc(또는 둘 다, 당신이하지 않으면 소스 .bashrc에서 .bash_profile). 이 설정은 bash의 각 대화식 인스턴스에 대해 설정해야하며 .bash_profile로그인 쉘에서만 읽습니다.
Gilles 'SO- 악마 그만해

고마워, 내 대답을 편집합니다. 나는 없어서 bashrc거기에 있던 것을 사용했습니다.
Daniel Beck

2
PS1 = "$ {OFF} \ u @ \ h : \ w \ $$ {BOLD}"에 $ {OFF}를 입력했습니다.
Jay

1
@Daniel :에 밑줄이 없어야합니다 ~/.bashrc.
추후 공지가있을 때까지 일시 중지되었습니다.

1
위쪽 화살표를 네 번 연속으로 사용하여 명령 기록을 살펴보면 이전 명령의 처음 3자가 프롬프트의 일부가되며 제거 할 방법이 없습니다. 백 스페이스 키로 삭제할 수 없습니다.
Jay

2

El Capitan을 사용하는 동안 여기 솔루션에 약간의 문제가있었습니다 (iTerm2에서하지만 오래된 터미널에서도 마찬가지입니다). 두 가지 종류의 오류가 있습니다.

  1. 스페이스를 누른 다음 백 스페이스를 눌러 bash 프롬프트를 완전히 삭제할 수 있습니다.
  2. 원하지 않는 문자가 내 bash 출력으로가는 길을 찾는 중입니다 (예 : 입력으로 pwd인해

    \[\]/Users/home/Directory

    또는

    \e[0m/Users/home/Directory

나는 실제로 다음과 같은 해결책을 제안한다.

    BOLD="\033[1m"
    OFF="\033[m"
    PS1="${OFF}\u@\h :${BOLD}"
    PS2="> ${BOLD}"
    trap 'echo -ne "${OFF}" > $(tty)' DEBUG

좋은 작업! 몇 가지 사소한 차이점이 있지만 El Captain과 함께 사용할 수있는 방법을 알게되어 기쁩니다.
DrZoo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.