그래서 저는 여기에서 모든 게시물을 편집하는 것부터 질문에 답변하는 것까지 제 작업을 정말 잘 해냈기 때문에 이제 질문을 해야 할 때라고 생각했습니다.
기술적 인 정보
배포판: Gentoo
데스크탑 환경: KDE
터미널 에뮬레이터: Kterm
질문
젠투를 오랫동안 사용해본 사람이라면 터미널과 소스코드의 흐름에 익숙할 것입니다. 따라서 KDE에서도 다음과 같은 명령을 사용하여 터미널에 의존하기 시작했습니다.
kdesudo kate /etc/portage/make.conf
sudo emerge -uDav world
명령이 예상대로 작동합니다. 문제는 kterm의 제목 표시입니다.username:sudo
사용자 이름:sudo 상승된 명령 또는 사용자 이름:elevated 명령을 표시하고 싶습니다..
다음 구성 파일을 사용합니다.
# /etc/profile: login shell setup
#
# That this file is used by any Bourne-shell derivative to setup the
# environment for login shells.
#
# Load environment settings from profile.env, which is created by
# env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then
. /etc/profile.env
fi
# You should override these in your ~/.bashrc (or equivalent) for per-user
# settings. For system defaults, you can add a new file in /etc/profile.d/.
export EDITOR=${EDITOR:-/bin/nano}
export PAGER=${PAGER:-/usr/bin/less}
# 077 would be more secure, but 022 is generally quite realistic
umask 022
# Set up PATH depending on whether we're root or a normal user.
# There's no real reason to exclude sbin paths from the normal user,
# but it can make tab-completion easier when they aren't in the
# user's PATH to pollute the executable namespace.
#
# It is intentional in the following line to use || instead of -o.
# This way the evaluation can be short-circuited and calling whoami is
# avoided.
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"
else
PATH="/usr/local/bin:/usr/bin:/bin:${PATH}"
fi
export PATH
unset ROOTPATH
if [ -n "${BASH_VERSION}" ] ; then
# Newer bash ebuilds include /etc/bash/bashrc which will setup PS1
# including color. We leave out color here because not all
# terminals support it.
if [ -f /etc/bash/bashrc ] ; then
# Bash login shells run only /etc/profile
# Bash non-login shells run only /etc/bash/bashrc
# Since we want to run /etc/bash/bashrc regardless, we source it
# from here. It is unfortunate that there is no way to do
# this *after* the user's .bash_profile runs (without putting
# it in the user's dot-files), but it shouldn't make any
# difference.
. /etc/bash/bashrc
else
PS1='\u@\h \w \$ '
fi
else
# Setup a bland default prompt. Since this prompt should be useable
# on color and non-color terminals, as well as shells that don't
# understand sequences such as \h, don't put anything special in it.
PS1="${USER:-$(whoami 2>/dev/null)}@$(uname -n 2>/dev/null) \$ "
fi
for sh in /etc/profile.d/*.sh ; do
[ -r "$sh" ] && . "$sh"
done
unset sh
etc/bashrc/bashrc
집에 오면 여기에 파일을 삽입하겠습니다...
여기에 새로운 사용자에게 답변을 제공하기 위해 댓글을 남깁니다. 따라서 여기에 처음 오신 경우에도 가장 철저하고 유효한 답변에 대한 점수를 얻으실 수 있습니다. 참고자료와 링크가 포함된 올바른 형식의 답변을 원합니다.
고쳐 쓰다
답변1
확실하지는 않지만 kterm
아마도 xterm
이스케이프 호환일 것입니다. 대부분은 그렇습니다. 그렇다면 프롬프트에 뭔가를 추가해야 합니다.창 제목 설정:
3.1 xterm 이스케이프 시퀀스
XTerm 이스케이프 시퀀스를 사용하여 실행 중인 xterm 내에서 창 및 아이콘 제목을 변경할 수 있습니다. 이와 관련하여 다음 순서가 유용합니다.
ESC]0;stringBEL
-- 아이콘 이름과 창 제목을 문자열로 설정합니다.ESC]1;stringBEL
-- 아이콘 이름을 문자열로 설정합니다.ESC]2;stringBEL
-- 창 제목을 문자열로 설정
...여기서는
ESC
이스케이프 문자(\033
)이고BEL
벨 문자(\007
)입니다.
인쇄되지 않는 이스케이프 사이에 프롬프트에 넣을 수 있습니다. bash
해당 쉘에서 다음을 사용할 수 있습니다.
PS1="\[$(printf '\033]0;"${USER}@${BASH_COMMAND}"\007')\]"
아니면 그런 것을 $PROMPT_COMMAND
환경 변수에 넣을 수도 있습니다.
하지만...
확실히 konsole
버전은 창 이름이 이스케이프 시퀀스를 통해 설정되도록 허용되는지 여부에 따라 다릅니다. 버전 3 주기 중 어느 시점에서 시퀀스 해석을 중단하고 탭 제목을 변경할 때 ESC]33;Window nameBEL
시퀀스만 존중했습니다 .xterm
~부터버전 4.9그래도 konsole
최소한 이상한 ESC]30;Tab NameBEL
순서를 따라야 합니다. 설정 대화 상자에서 비어 있도록 구성하면 창 이름이 현재 활성 탭에서 자동으로 복제됩니다.
xterm
창 제목을 설정하기 위해 더 일반적인 이스케이프를 사용할 수 있는지 여부는 확실하지 않습니다 . 그러나 여기에 제공된 정보가 만족스러운 해결책에 도달하기에 충분하지 않은 경우 버전 4.9에 문서화된 관련 변경 사항에 첨부된 링크를 클릭하면 유용한 정보를 찾을 수 있을 것으로 생각됩니다.여기에서 변경 내역을 확인하세요..