답변:
현재 작업 디렉토리 (CWD)를 반향하도록 프롬프트를 업데이트하고 다음에 정의되어 있습니다 /etc/bashrc
.
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
xterm
제목 표시 줄 텍스트를 설정 하는 제어 코드입니다. 가장 접근하기 쉬운 문서는 아마도 Linux Bash Prompt Howto 일 것 입니다. xterm
출처 IIRC 에 실제 문서가 있습니다 .
/etc/bashrc
변수 $TERM_PROGRAM
를 사용하여 터미널을 결정하고 해당되는 /etc/bashrc_$TERM_PROGRAM
경우 해당 터미널을 실행 합니다. 따라서 화면 세션에서 $TERM_PROGRAM
설정되지 않았거나 이외의 것으로 설정되어있을 수 Apple_Terminal
있습니다.
불투명 한 비밀 인코딩 형식 문자열, '\ e] 7; % s \ a'. 용의자.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
내가 수집 한 것에서 "file : // $ HOSTNAME"이 숨겨져 있으므로 원격 프로토콜 : 호스트 간첩을 볼 수 없습니다.
update_terminal_cwd
환경 변수가 아니라 함수의 이름입니다. 일반 텍스트로 정의되어 /etc/bashrc
있으며 printf
함수는 인쇄 형식 문자열을 화면에 표시하는 것 이외의 작업을 수행 할 수 없습니다. 마지막으로 게시 한 vuln 링크에는 환경 변수 정의에 텍스트를 추가하여 임의의 기능을 실행하는 것이 포함됩니다 ... 여기서 논의중인 것과는 아무런 관련이 없습니다. 그리고 wtf 브라우저는 쉘 스크립팅과 관련이 있습니까?
typeset -f
모든 "사용자 정의"기능이 표시되며 이것이 팝업되는 방식입니다. 그들이 스케치를하려고한다면 이것을 쉽게 볼 수 없었을 것입니다.