리눅스 터미널과 같은 Mac 터미널에 항상 전체 디렉토리 경로를 표시하는 방법


71

내 우분투 터미널에는 항상 현재 디렉토리가 완전히 표시되어 있습니다. 이처럼 :

blabla @ blublu : ~ / 음악 / my_album / 클래식 / 베토벤 $

그러나 내 Mac (Mac OS X 10.6.5) 터미널에는 전체 경로가 표시되지 않으며 다음과 같습니다.

blabas-MacBook-Pro : 클래식 베토벤 $

어쨌든 리눅스 터미널처럼 작동하도록 Mac 터미널 동작을 변경합니까?


1
터미널 앱의 환경 설정에 화면이 있어야합니다. 행동을 바꿀 수 있습니다.

1
리눅스 터미널은 마술처럼 전체 경로를 보여주지 않습니다. 설정에 따라 다릅니다. 일부 Linux 배포판은 기본적으로 전체 경로를 표시하도록 구성하지만 일부는 그렇지 않습니다. 그것은 모두 $ PS1 변수에 달려 있습니다. (Asmus의 답변을 참조하십시오.)
frabjous

답변:


109

bash가 프롬프트로 "user @ hostname : path / to / directory $"를 반환하게하려면 ~ / .bash_profile에 다음 줄을 추가하십시오.

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

또는

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

$와 명령 사이에 공백이 있으면

변경 사항을 즉시 적용하려면 열려있는 모든 창에서 다음 명령을 실행하십시오 (또는 터미널을 다시 시작하십시오).

source ~/.bash_profile

편집 : 사용 가능한 문자열 목록은 bash ( man bash) 매뉴얼 페이지의 "PROMPTING"단락에서 찾을 수 있습니다 .

격려

  When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the secondary prompt PS2 when it needs more input to complete a command.  Bash allows these prompt strings  to  be  customized  by
   inserting a number of backslash-escaped special characters that are decoded as follows:
          \a     an ASCII bell character (07)
          \d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
          \D{format}
                 the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation.  The braces are required
          \e     an ASCII escape character (033)
          \h     the hostname up to the first `.'
          \H     the hostname
          \j     the number of jobs currently managed by the shell
          \l     the basename of the shell's terminal device name
          \n     newline
          \r     carriage return
          \s     the name of the shell, the basename of $0 (the portion following the final slash)
          \t     the current time in 24-hour HH:MM:SS format
          \T     the current time in 12-hour HH:MM:SS format
          \@     the current time in 12-hour am/pm format
          \A     the current time in 24-hour HH:MM format
          \u     the username of the current user
          \v     the version of bash (e.g., 2.00)
          \V     the release of bash, version + patch level (e.g., 2.00.0)
          \w     the current working directory, with $HOME abbreviated with a tilde
          \W     the basename of the current working directory, with $HOME abbreviated with a tilde
          \!     the history number of this command
          \#     the command number of this command
          \$     if the effective UID is 0, a #, otherwise a $
          \nnn   the character corresponding to the octal number nnn
          \\     a backslash
          \[     begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
          \]     end a sequence of non-printing characters

1
또는 PS1열려있는 모든 창에서 해당 할당을 입력하십시오 . 그건 그렇고, export불필요합니다.
Dennis Williamson

6
실제로 내보내기를 사용하지 않으면 환경 변수가 아닌 쉘 변수를 정의하므로 PS1이 모든 프로세스에 전역 적으로 전달되지는 않습니다.
Asmus

1
export com은 제안대로 작동하고 전체 경로를 표시하지만 터미널을 다시 시작하면 현재 디렉토리 만 표시됩니다 (전체 경로가 아님). 이것을 어떻게 영원히 유지할 수 있습니까?
JiteshW

1
무엇 PS1\u@\H:\w$의미 하는지 설명 할 수 있습니까?
Jas

4
@Jas 나는 그에 따라 답변을 업데이트했습니다.이 년 전에 왜하지 않았는지 모르겠습니다 ^^
Asmus


8

내 Mac의 centOS 터미널과 매우 비슷하게 보이도록 만들었습니다. 터미널에서 bash_profile을 엽니 다

nano ~/.bash_profile

다음을 추가하십시오

# Show always fullpath on terminal
export PS1='\u@\H [\w]$ '

터미널을 다시 시작하면 다음과 같이 보입니다.

username@host.local [/Applications/MAMP/htdocs]$ 


1

/ w를 / W로 변경하여 현재 폴더 만 만듭니다.

컬러 터미널에서

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

컬러 터미널 없음

    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '

우분투 16.04를 사용하고 ~ / .bashrc에서 파일을 변경합니다.


0

이 명령을 사용했습니다. 그것은 나를 위해 작동합니다.

먼저,

vi ~/.bash_profile

그런 다음이 단어를 새 줄에 추가하십시오.

`export PS1='\u@\H:\w$ '`

드디어,

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