Bashの新しいユーザーに対してプロンプト文字列が正しく設定されていません。

Bashの新しいユーザーに対してプロンプト文字列が正しく設定されていません。

私は私のコースの1つでKali Linuxを使用しています。しかし、これは端末と混同します。

基本的なKali端末は次のとおりです。 ここに画像の説明を入力してください。

これはユーザー端末です。

ここに画像の説明を入力してください。

色に加えて、ケースも使用するのが難しいです。提案もなく、オートコンプリートもなく、スクロールや入力以外は許可されません。ユーザー端末をデフォルトのkali端末のように見せる方法を知りません。コピーしよう.bashrcとしましたが、何も変わっていないようです。/home/kali/home/jeff

コピーされたテキスト.bashrc

 ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    prompt_color='\[\033[;32m\]'
    info_color='\[\033[1;34m\]'
    prompt_symbol=㉿
    if [ "$EUID" -eq 0 ]; then # Change prompt colors for root user
        prompt_color='\[\033[;94m\]'
        info_color='\[\033[1;31m\]'
        prompt_symbol=

答え1

質問の情報によると、あなたが経験している結果をもたらす可能性があるいくつかの要因があります。

覚えておくべき主な原則は、Linuxにはdash、csh、bash、zshなどの他のさまざまなシェルを使用できることです。シェルはプロンプトを提供し、コマンドを受け入れ、出力を返すすべてのプログラムです。 「標準」シェルはすべて似ていますが、機能と設定方法が異なります。

また、すべてのディストリビューションは新しいユーザー用のデフォルトシェルを選択します。これは通常(常にではありません)Bashです。これは通常、パフォーマンスを好み、非標準拡張をより少なく好むディストリビューションで選択されますsh(通常、他のシェルへのシンボリックリンクを作成し、sh互換モードでそのシェルを実行します)。

/etc/passwdKaliがjeffユーザーのシェルをデフォルトとして使用するという説明の1つの出力に表示されますsh。パフォーマンスは非常に良いですが、このオプションは設定可能なプロンプトやコマンドの完成などの機能を欠いています。

したがって、問題を解決する最初のステップは、次のコマンドを実行することです。

sudo chsh -s /bin/bash jeff

コメントですでに議論したように、残りの問題は権限に依存しているようです。各ユーザーのシェル構成ファイルなどは、~/.bashrcユーザーが読む必要があります。

/etc/defaults/useraddディレクトリを編集(または追加)して、新しいユーザーのシェルデフォルトをシステム全体で変更できます/etc/skel/

鉱山/etc/defaults/useradd(Void Linux用)には以下が含まれます。

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

/etc/skelこのコマンドを実行すると、そのファイルが新しいユーザーのホームディレクトリにコピーされますuseradd

答え2

すべてを正しく設定しても同じ問題が発生します。何が起こったのかわからない。しかし:

sudo shutdown /r

簡単な再起動で動作するようになりました。

関連情報