터미널에서 현재 작업 디렉토리 숨기기


133

기본적으로 터미널 프롬프트는 다음과 같이 표시됩니다.

user@system:/folder1/folder2/folder3/folder4$

파일 시스템에 깊이 들어가면 명령을 입력 할 공간이 줄어 듭니다. 이것을 다음과 같이 표시하도록 변경할 수 있습니까?

>

나는 내가 pwd어디에 있는지 보여주기 위해 타이핑 할 수 있다는 것을 의미 합니다. ;)


1
이것은 의견이어야하지만 의견을 말할 수는 없습니다. 죄송합니다. 현재 디렉토리를 숨기는 것 외에도 다음 PS1 값은 bash 명령을 시각적으로 잘 구분합니다.export PS1="\n___"
Hello World

Oli의 솔루션을 실험했습니다. 터미널에서 색상 글꼴이 제대로 작동합니다. export PS1 = '[\ 033 [0; 35m] \ h [\ 033 [0; 33m] \ w [\ 033 [00m] :'
linbianxiaocao

답변:


153
export PS1='\u@\h: '

그 결과 oli@bert:내 프롬프트가 나타납니다.

요청한대로 미니멀 한 것을 원한다면 다음을 시도하십시오.

export PS1='> '

~/.bashrc파일 끝에 첨부하여 로그인간에 유지되도록 할 수 있습니다.

일부 색상으로 창의력을 발휘할 수도 있습니다. 서버에서 사용하는 내용은 다음과 같습니다.

export PS1='\[\033[0;35m\]\h\[\033[0;33m\] \w\[\033[00m\]: '

주는 것 (검은 색 배경에서보기가 더 쉽습니다) :

내 터미널

PS1에서 허용되는 문자의 용어집


2
프롬프트의 일부로 줄 바꿈 (\ n)을 사용할 수도 있으므로 모든 정보와 '>'를 별도의 줄에 넣을 수 있습니다.
ak2

나는 msysGit에서 이런 종류의 "익스트림"쉘 커스터마이제이션을 처음 접했다. 나는 즉시 배쉬의 세계로 개종했다. 모든 정보 (내 현재 디렉토리, 현재 지점은 Git 저장소에서 Git 인덱스 상태 ...)를 체크 아웃 했으므로 너무 훌륭했습니다. 최근에 오래된 랩톱 (Windows XP와 함께)에 설치 한 Ubuntu 설치와 비슷한 작업을 수행 할 계획입니다.
dgw

3
색상 설정에 사용되는 형식은 무엇입니까?
Rakib

1
@SyedRakibAlHasan 시도 echo -e "\e[31mHello World\e[0m"또는 echo -e "\033[31mHello\e[0m World"터미널에서 힌트를 얻을 수 있습니다. 출처
daka

103

Oli의 답변을 확장하기 위해 (그리고 나는 짧은 기호에 대한 책갈피를 갖도록) :

bash 프롬프트 ( stefano@linux:~$)는 다음과 같은 몇 가지 프롬프트 중 첫 번째 프롬프트입니다.

  • PS1 : 쉘을 열 때 나타나는 기본 프롬프트

    값은이라는 환경 변수에 저장됩니다 PS1. 값을 보려면 다음을 입력하십시오.

    echo $PS1

    이것은 당신에게 같은 것을 줄 것입니다

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

    이를 변경하기 위해 변수에 새 값을 설정할 수 있습니다.

    export PS1="\u > "

    다음과 같은 프롬프트가 나타납니다.

    stefano > 
  • PS2 : 보조 프롬프트입니다. 명령이 완료되지 않으면 표시됩니다. 입력 echo "asd하고 Enter 키를 누르면 보조 프롬프트에서 반전 된 쉼표를 닫을 때까지 더 많은 줄을 입력 할 수 있습니다.

  • PS3(2)에 사용되는 프롬프트입니다.select

  • PS4는 사용되는 프롬프트입니다 대체 텍스트 스택 트레이스 (기본값 : +)

변경 사항을 영구적으로 유지하려면 홈 디렉토리 의 끝에 .bash_profile(또는 이 질문.bashrc 참조 ) 추가 하십시오 .

다음은 이들을 작성할 때 사용할 수있는 약식 목록입니다.

  • \a     '벨'캐릭터
  • \A     24 시간
  • \d     날짜 (예 : 12 월 21 일 화요일)
  • \e     '탈출'캐릭터
  • \h     호스트 이름 (첫 번째 "."까지)
  • \H     호스트 이름
  • \j     현재 실행중인 작업 수 (ps)
  • \l     현재 tty
  • \n     줄 바꿈
  • \t     시간 (hh : mm : ss)
  • \T     시간 (hh : mm : ss, 12h 형식)
  • \r     캐리지 리턴
  • \s     셸 (예 : bash, zsh, ksh.)
  • \u     사용자 이름
  • \v     배쉬 버전
  • \V     풀 배쉬 릴리스 문자열
  • \w     현재 작업 디렉토리
  • \W     현재 작업 디렉토리의 마지막 부분
  • \!     역사상 현재 지수
  • \#     명령 색인
  • \$     루트 인 경우 "#", 그렇지 않으면 "$"
  • \\     리터럴 백 슬래시
  • \@     시간 (오전 / 오후 12시 형식)

물론 리터럴 문자열과 명령을 삽입 할 수 있습니다.

export PS1="\u \$(pwd) > "

어디 $(pwd)PWD "의 출력"의 자리에 서있다.

  • 에서와 같이 명령 대체가 이스케이프되면 \$(pwd)프롬프트가 표시 될 때마다 평가되고, 그렇지 않으면에서와 같이 $(pwd)bash가 시작될 때 한 번만 평가됩니다.

프롬프트에 색상을 표시하려면 bash의 색상 코드를 사용하여 색상을 지정할 수 있습니다. 코드는 세 부분으로 구성됩니다.

40;33;01
  • 세미콜론 앞의 첫 부분은 텍스트 스타일을 나타냅니다.

    • 00 = 없음
    • 01 = 굵게
    • 04 = 밑줄
    • 05 = 깜박임
    • 07 = 역
    • 08 = 숨겨진
  • 두 번째와 세 번째 부분은 색상과 배경색입니다.

    • 30 = 검정
    • 31 = 빨간색
    • 32 = 녹색
    • 33 = 황색
    • 34 = 파랑
    • 35 = 자홍색
    • 36 = 청록
    • 37 = 흰색

왼쪽에서 시작한다고 가정하면 각 부분을 생략 할 수 있습니다. 즉 "1"은 굵은 체를 의미하고 "1; 31"은 굵은 체와 빨간색을 의미합니다. 그리고 당신은 당신의 터미널로 명령을 탈출하여 컬러로 인쇄 할 얻을 것 \33[와 함께 종료 m. 33 또는 16 진의 1B는 ASCII 부호 "ESCAPE"(ASCII 문자 세트의 특수 문자)입니다. 예:

"\33[1;31mHello World\33[m"

"Hello World"를 밝은 빨간색으로 인쇄합니다.


나는 추가 export PS1='\[\033[1;31m\]\w\[\033[00m\] \$> '/etc/bash.bashrc하지만 아무것도 ... 그것은 세션 당에서 작동 수정 한 것처럼 보입니다,하지만 난 그것을 영구적으로 보인다 기운 다.
Jared Tritsch

8

또 다른 대안은 작업 디렉토리 경로가 너무 길어질 때 단축하는 것입니다. 터미널 명령 프롬프트 작업 디렉토리 다듬기

원하는 트리밍 로직을 구현하는 작은 파이썬 스크립트를 만듭니다.

예 : ~ / short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = gethostname()
username = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 30:
    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 chars
print '[%s@%s:%s] ' % (username, hostname, pwd)

이제 터미널에서 테스트하십시오.

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'

결과가 좋으면 ~ / .bashrc에 명령을 추가하십시오.


Exa ... ~ / short.pwd.py, export ... ~ / .short.pwd.py 둘 다 같아야한다고 생각합니다. 두 곳 모두에 추가 명령을 내리거나 전혀하지 않습니다. 그러나 이것은 훌륭한 답변입니다 ..
MycrofD

7

나는 종종 이것을 일시적으로하고 싶다. 내가하는 일은 다음과 같습니다.

$ export OLD_PS1=$PS1                    # save Long Prompt to OLD_PS1
$ export PS1="\u > "export PS1="\u $ "   # change to PS1 to Short Prompt
$ export PS1=$OLD_PS1                    # restore Long Prompt to PS1

나는 이것이 누군가를 돕기를 바랍니다.


1

macOS 사용자의 경우 :

open ~/.bash_profile

파일의 끝에 다음 줄을 추가하고 저장하십시오

export PS1='\u:\w\$ '

홈 디렉토리의 결과 :

user: ~$

현재 작업 디렉토리 $에 대한 사용자 w의 경우 여기 에 표시하라는 메시지가 표시됩니다.

다음 스타일을 시도해 볼 수 있습니다.

export PS1='$ '

프롬프트로 $를 붙이는 것 외에는 아무것도 없습니다. 처럼:

$ 

0

나를 도와 준 것은 export PS1 = '$'

터미널을 열 때마다 이것을 사용하려면 .bashrc의 끝에 명령을 작성하십시오. 명령은 'cd'와 'gedit .bashrc'로 열 수 있습니다.

도움이 되었기를 바랍니다. 나를 위해 운동했다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.