リモートサーバーでRed Hat Enterprise Linux Serverバージョン7.9を使用しています。
source~/.bashrc
コマンドを使用した後、よく理解されていない一種のモードに入りました。代わりに、私がbash $
今持っているのは、ディレクトリを変更すると変わり続けるということです。bash #
bash:~ >
bash:/somedirectory >
誰かが何が起こっていて、通常モードに戻る方法を説明してもらえますか?
# Generic $dotdir/bashshrc
# Engineering Services (ES)
#
##
# Things the user might wish to set.
export USER_PATH="~/bin" # Extra paths.
export EDITOR=vi # Preferred editor.
export PRINTER=lp # Preferred printer.
export NNTPSERVER=usenet.cisco.com # Preferred news server.
##
# Should the full environment be set up even for non-interactive shells?
# Probably not but here is a variable to control it.
export FULLENV=false # 'true' or 'false'
##
# Should all paths (even NFS, which might hang) be set up at login?
# The alias "fullpath" is available to setup your full path. It can
# also be used to change your path by changing USER_PATH above.
export FULLPATH=true # 'true' or 'false'
###########################################################################
# Everything above this line helps configure the environment.
# This line should not be removed.
dotdir=~/.files; [ -f $dotdir/sys_bashrc ] && . $dotdir/sys_bashrc
[ $FULLENV != "true" ] && [ -z "$PS1" ] && return
###########################################################################
# Everything below this line is run for interactive shells.
# If you wish the full environment even in non-interactive
# shells set FULLENV above to 'true'.
umask 022 # no write by group or other
export autologout=0 # disable autologout
export FIGNORE=".o" # don't complete .o files
# export HISTFILE=~/.bash_history # history file - this setting is now externally enforced by Secops, please don't modify.
# export HISTFILESIZE=500 # history file size - this setting is now externally enforced by Secops, please don't modify.
# export HISTSIZE=128 # save last 128 commands - this setting is now externally enforced by Secops, please don't modify.
export ignoreeof=10 # disable ^D for logout (up to 10)
set -C # disable redirect overwrite
set -b # enable immediate job notify
export PS1="\h:\w > " # shell prompt format
##
# Source other rc files after this line.
[ -f ~/.bashrc_LOB ] && . ~/.bashrc_LOB
[ -f ~/.bashrc_BU ] && . ~/.bashrc_BU
[ -f ~/.bashrc_USER ] && . ~/.bashrc_USER
パスを編集するためにファイルを開きます。ただし、書き込み権限を確認するための追加スペース以外に変更はありません。
答え1
既定値>
ですが2番目の通知(変数によって決まります$PS2
)Bashを使用すると、状況が誤ってデフォルトのプロンプト()を変更したように見えます$PS1
。
Paul_Pedantがコメントで述べたように、ペアリングされていない引用符、かっこ、または終わらないステートメント(if ... then ... fi
、、、case ... esac
)do ... done
を含むコマンドを実行しようとすると、セカンダリプロンプトが表示されます。
ただし、ディレクトリを変更できるため、プライマリプロンプトがセカンダリプロンプトと同様に変更された可能性があります~/.bashrc
。実際にセカンダリプロンプトにある場合、入力したすべてのコマンドは未解決の参照を拡張するために使用されます。 /bracket/ステートメントブロックが最初にトリガーし、完了していないブロックを完了した後にのみ、コマンドが実際に実行されます。これは、実際のセカンダリプロンプトにある場合、ディレクトリを変更できないことを意味します。
最も簡単な解決策は、デフォルトのプロンプトをより使い慣れた値に戻すことです。例えば:
export PS1='bash \$ '
\$
デフォルトのプロンプトには特別な意味があります。ルートユーザーであれば拡張され、一般ユーザー#
であれば拡張されます。$
変更は次の行によって発生します~/.bashrc
。
export PS1="\h:\w > " # shell prompt format
hostname:current directory
コメントを付けたり、プロンプトの表示内容が役に立つと判断した場合は、行を次のように変更できます。
export PS1="\h:\w \$ " # shell prompt format
$
プロンプトに表示されているホスト名と現在の作業ディレクトリを維持しながら、プロンプトの/文字が以前と同じように機能するようにします。#