쉘에서 퍼센트 기호 프롬프트는 무엇입니까?


16

비디오를 보면서 다음을 보았습니다.

% more tinyUF.txt
10
4 3
3 8
6 5

명령 %전이 표시 는 무엇입니까 more?


2
export PS1=%??
Roman Gräf

@ RomanGräf, 저게 뭐죠?
Maxim Koretskyi

1
교체 위치를 $사용하여 일반 부호를 변경할 수 있습니다 . export PS1=......
로마 Gräf

@ RomanGräf, 제안에 감사드립니다
Maxim Koretskyi

@Roman Gräf : 캐릭터를 바꾸는 것보다 프롬프트로 실제로 훨씬 더 많은 일을 할 수 있습니다. 내 컴퓨터 이름 (다른 컴퓨터에 종종 xterm 창이 있기 때문에)과 현재 경로의 마지막 몇 디렉토리가 포함됩니다. 그리고 내가 뿌리라면, 그것은 밝은 빨강이됩니다.
jamesqf

답변:


29

그것은 쉘 프롬프트이거나 더 정확하게는 쉘의 기본 프롬프트입니다 ( 여러 개가 있습니다 ). 쉘 " 이제 입력 할 준비가되었습니다 "라고 말하는 방식입니다 .

%프롬프트에서 공통적 인 csh반면 타입 쉘 sh-shells이 (같은 bashksh93) 통상을 사용하여 $프롬프트로.

POSIX 표준에서 제시 한대로 대체 프롬프트를 통해 충분히 강력한 사용자에게 해당 권한을 상기시켜야하므로 일반적으로 프롬프트 #는 루트 사용자 에 대해 변경됩니다 .

sh유형 쉘 의 기본 프롬프트 는 쉘 변수의 값에 의해 결정됩니다 PS1.


아래의 의견 요약 및 추가 사항 :

#루트 프롬프트 의 문자 ( 쉘 shcsh쉘 모두 사용 )는 공통 쉘 주석 문자와 일치합니다. 쉘 프롬프트가 복사 된 경우 명령을 루트로 복사하여 붙여 넣으면 붙여 넣은 명령이 작동하지 않습니다. 주 #(: 참조 쉘이 주석 규칙을 가지고 전에 루트로 프롬프트를 채택 더그 위권에 드는 맥 킬로의 이메일 ).

esrc계획 (9)의 껍질은 사용 ;프롬프트 기본값으로 문자를. 그 결과 프롬프트를 포함하여 명령을 복사하여 붙여 넣으면 여전히 붙여 넣은 명령이 유효하고 실행됩니다.

사용자 정의가 있지만, 여전히 복사하여 붙여 넣을 하나를 가능하게하는 방법은 사용하는 것, 쉘 프롬프트 : something ;, something예를 들어, 현재 디렉토리, 호스트 이름 또는 시간이 될 수 있습니다.


2
또한 zsh(본 스타일 쉘이지만의 많은 기능이 있음 tcsh). Bourne과 csh와 같은 쉘은 일반적으로 #uid 0 사용자에게 사용 됩니다.
Stéphane Chazelas

1
또한 rc비슷한 쉘이 사용 한다는 점에 유의하십시오 ;(전체 행을 복사하여 붙여 넣을 수 있으며 유효한 쉘 코드이며 루트의 #프롬프트 인 주석 과 동일 합니다).
Stéphane Chazelas

2
root에 대해 #의 매우 중요한 선택은 명령을 포함하여 명령을 복사하면 손해를 입히지 않을 것입니다 (#는 주석을 시작하므로 명령을 주석 처리합니다 (첫 번째 줄)). 어떤 사람들은 ">"를 사용하고 그것을 복사하면 명령에 전체 또는 상대 경로가 있거나 올바른 디렉토리에 있고 (예를 들어 충분한 권한이있는 경우) 바이너리를 클로버 할 수 있습니다 뿌리). 나는 이것이 일어나는 것을 보았다.
Olivier Dulac

1
@ StéphaneChazelas : 루트 전체 컨벤션은 전체 라인을 쉽게 잘라서 붙여 넣기가 가능한 터미널이 나오기 오래 전에 시작되지 않았습니까 ?
hmakholm이 Monica를 떠나

@HenningMakholm, 예. 이것은 csh가 주석 리더로 #을 도입하기 전에 시작되었습니다. 그럼에도 불구하고 #...줄이 의도가 아니더라도 복사하여 붙여 넣을 때 주석입니다. 그 뒤에 의도였다 모르겠어요 ;에서 rc중 내가가 편리 결과의 관찰 불구하고.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.