Linux 콘솔 프롬프트 라인을 수정하는 방법(임시)

Linux 콘솔 프롬프트 라인을 수정하는 방법(임시)

예를 들어 다음 명령을 입력했습니다.

user@my-machine:~$ cd ABC
user@my-machine:~/ABC$ cd long-name
user@my-machine:~/ABC/long-name$ cd another-long-name
user@my-machine:~/ABC/long-name/another-long-name$ ls

그래서 필요한 디렉터리를 선택하고 그 디렉터리에서 작업해야 합니다(많은 명령). 하지만 내 콘솔 라인의 절반은 프롬프트 라인입니다. 별로 편안하지 않습니다. 기간을 단축할 수 있나요? 예를 들어, 저는 이 작업을 수행 user@my-machine:~foo$하고 이 디렉토리에서 작업을 마치면 이 단점을 해결하겠습니다.

이를 수행할 수 있는 방법이 있습니까?

답변1

프롬프트 형식은 PS1환경 변수에 있습니다. bash맨페이지 prompting의 형식 지정자 섹션을 참조하세요.

10:50:39 user@host:1996 ~$ echo $PS1
\t \u@\h:\! \W$

\W최상위 디렉토리를 인쇄하는 유일한 것은 당신(?)이 원하는 것과 같습니다. ( \w지금처럼 전체 내용을 인쇄하세요).

10:50:45 user@host:1997 ~$ PS1='\u@\h:\W$ '
user@host:~$ cd test
user@host:test$ cd testdir/
user@host:testdir$ 

작업이 완료되면 복원할 수 있도록 PS1먼저 이전 콘텐츠를 변수(예: )에 저장하는 것이 좋습니다 ( ).$ export OLDPS1=$PS1$ PS1=$OLDPS1

답변2

저는 두 번째 줄에 프롬프트를 넣고 첫 번째 줄에 사용자/디렉터리 정보를 넣었습니다.

내 bash 프롬프트의 예:

birryree@momohime:/usr/bin
$ command-here

Bourne-Shell 또는 Bash를 사용하는 경우 환경 변수에 PS1따라 프롬프트 형식이 결정됩니다.

나는 이것을 가지고 있습니다 ( 내가 가지고 있는 소스를 ~/.bash_profile사용할 수 있습니다 )..bashrc.bashrc.bash_profile

# ~/.bash_profile
PS1="\u@\h:\w\n$ " # \u means user name
                   # \h means hostname
                   # \w is working directory
                   # \n is newline
                   # $ is my prompt

그리고 내.bashrc

# ~/.bashrc
source ~/.bash_profile

재미삼아 내 zsh 프롬프트는 다음과 같습니다.

birryree@momohime:~/.oh-my-zsh master* 
λ > 

이는 내가 git 저장소( git 제어 디렉토리) master*의 마스터 브랜치에 있고 해당 디렉토리가 깨끗하지 않다는 것을 의미합니다 .~/.oh-my-zsh


Bash 프롬프트가 정말 마음에 드실 겁니다. 저는 zsh로 전환하기 전에 색상과 모든 작업을 수행하곤 했습니다.

이 섹션에는 모든 이스케이프가 포함되어 있습니다.

관련 정보