(一般)ユーザーとしてログインしているがsu:パスワードに入ると、通常のプロンプトに元に表示されるべき内容の代わりにこの内容が表示されます。この問題をどのように解決できますか?
ターミナル 10:15 AM (~) $ su
Password:
\033[1;31mターミナル \@ \033[1;33m(\033[1;34m\W\033[1;33m) \033[1;31m$ \033[0m
私は開始された用語に従ってプロンプトを変更するためにこのケースの説明を使用しています。
which_term(){
term=$(ps -p $(ps -p $$ -o ppid=) -o args=);
found=0;
case $term in
*terminator*)
found=1
export PS1="\@ \[\e[34;43m\]\w\[\e[m\]\\$ "
if [ -f /usr/bin/screenfetch ]; then screenfetch; fi
;;
*terminology*)
found=1
# echo "terminology "
export PS1=" \[\e[31m\]%\[\e[35m\]\u\[\e[m\]\[\e[36m\]@\[\e[m\]\[\e[35m\]\h\[\e[m\] \[\e[32m\]\T\[\e[m\] \[\e[36m\]\w\[\e[m\]\[\e[31m\] >>$\[\e[m\]\`nonzero_return\` "
if [ -f /usr/bin/screenfetch ]; then screenfetch; fi
;;
urxvt*)
found=1
# echo "rxvt "
#PS1='%\u@\h \@ \W >>\$'
export PS1="\[\e[33m\]%\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[31m\]\h\[\e[m\]:\[\e[36m\]\@\[\e[m\]\[\e[33m\]\w\[\e[m\]\[\e[31m\] >>\[\e[m\]\[\e[33m\]\\$\[\e[m\] "
#export PS1='\033[1;31mターミナル \033[1;33m(\033[1;34m\W\033[1;33m)\@\033[1;31m\$ \033[0m'
;;
Eterm*)
found=1
export PS1="\d \@ Scooby-Doo\w\\$ "
# if [ -f /usr/bin/screenfetch ]; then screenfetch -t; fi
;;
aterm*)
found=1
export PS1="\d \@ Aterm\w\\$ "
;;
roxterm*)
found=1
export PS1='% \@ \u@\h \W>>\$'
;;
mrxvt*)
found=1
export PS1="\[\e[31m\]\T\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[34m\]\h\[\e[m\]\[\e[35;42m\]\W\[\e[m\] "
;;
## Try and guess for any others
*)
export PS1='\033[1;31mターミナル \@ \033[1;33m(\033[1;34m\W\033[1;33m) \033[1;31m\$ \033[0m'
if [ -f /usr/bin/screenfetch ]; then screenfetch -t; fi
;;
esac
## If none of the version arguments worked, try and get the
## package version
[ $found -eq 0 ] && echo "$term " $(dpkg -l $term | awk '/^ii/{print $3}')
}
which_term
答え1
which_term()
私はあなたの機能があなたの個人的なログインコンテキストで実行されていると信じています。この場合、すべての即時変更が適用されます。 (ユーザーの交換)コマンドを使用すると、su
他のユーザーコンテキストに切り替えられます。この場合、.bashrc
ターゲットコンテキストでターゲットユーザーを呼び出します。あなたの場合はroot
rootというデフォルトのユーザーです.bashrc
。
これを上書きするには手動で行う必要があります。たとえば、ユーザー名がある場合は、userxbw
コマンドsu
プロンプトの後に実行時にsource ~userxbw/.bashrc
個人用ファイルをインポートします.bashrc
。ただし、スーパーユーザーとして実行すると、.bashrcのコマンドが危険になる可能性があるため、これはrootとして実行するのに危険な方法です。