예를 들어 다음 명령을 입력했습니다.
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로 전환하기 전에 색상과 모든 작업을 수행하곤 했습니다.
이 섹션에는 모든 이스케이프가 포함되어 있습니다.