私のサーバーの1つでは、プロンプトは[user @ host path] ...であり、実際に「tab」を押してパスを自動入力できます。
しかし、私の新しいUbuntuサーバーでは、それは単なるドル記号ですか?
私のサーバーの1つでは、プロンプトは[user @ host path] ...であり、実際に「tab」を押してパスを自動入力できます。
しかし、私の新しいUbuntuサーバーでは、それは単なるドル記号ですか?
回答:
あなたは2つの質問をしているので、両方に答えます。
シェルがサポートしていないか、タブ補完が有効になっていないためです。
これを解決するには、まずシェルが何であるかを発見する必要があります。シェルを楽しむマシンで、実行します
echo $SHELL
/bin/bash一般的な/bin/tcsh、/bin/zshまたはあまり一般的ではないもの、またはその他の完全なものが表示される場合があります。
これで、Ubuntuマシンでシェルを変更できます。そのマシンで、最初に目的のシェルが存在することを確認します。シェルはUbuntuマシン上の他の場所と同じ場所にない場合があるため、次のように入力して場所を確認します。
which bash
これ/bin/bashにより/usr/bin/bash、必要なシェルのパス(、、またはなど)が得られます/usr/local/bin/bash。あなたはbashの以外のシェルをしたい場合はもちろん、あなたは言うでしょうwhich tcsh、which zshまたは類似しました。
パスが表示されないが、代わりにが表示されるbash not found場合は、適切なパッケージをインストールしwhich、シェルをインストールした場所を見つけるために再度使用する必要があります。
選択したシェルのパスを使用して、実行して最終的にシェルを変更できます
chsh -s /bin/bash
/bin/bash選択したシェルの適切なパスに置き換えます。
ので、あなたのプロンプトの環境変数の$PS1、$PS2と上のようにします。これらはシェル間で移植できない傾向があるため、候補となる可能性のあるリンクを次に示します。
bashには、Bash変数(、&c を含む)およびプロンプトの印刷(の長い名前を説明している)のページを含む広範なマニュアルがあります。次の行を追加しますPS1PROMPT_COMMANDPS1~/.bashrc
export PS1='[\u@\h \w] '
tcsh持っているオンラインマニュアルのセクションで(ちょうどそのmanページ)、プロンプトの環境変数を。次の行を追加します~/.tcshrc
set prompt='[%n@%m %~] '
zsh持っているユーザーガイドと、プロンプトへの簡単なガイドだけでなく、手動で非常に詳細な参照すると、プロンプトの拡張を。次の行を追加します~/.zshrc
export PS1='[%n@%m %~] '
Bashだけがシェルではありません。
問題は、PS1を設定する.profileまたは.bashrcがないという単純な問題であるか、ログインシェルがまったくbashでないことが考えられます。
Bashはgnu readline、タブ補完などに使用します。これは複雑なテーマであり、readlineにはユーザーごとの構成ファイルもあります。
参照してくださいman bash、man shとman 3 readline。Bashはに応答し--versionます。多くのLinuxシステムで/bin/shは、実際にはbash ではありませんが、通常はの障害バージョンですash。
dashなくash?私はこのような何か読んで思った
私は推測しますが、bashを使用していませんが、shとプロンプトが正しく設定されていません(shで可能であれば)。
次のように入力して、現在のシェルを取得できます。 echo $SHELL
bashを開始する場合は、単に入力します bash
sh。エコー$SHELLすると、と呼ばれる環境変数が出力されSHELLます。この環境変数は単にシェルを指し、bashによってのみ設定されます。現在のプロセスの一部の親がbashであった可能性があることを弱く示しているだけなので、どのシェルが実行されているかを判断することはほぼ役に立ちません。
/bin/sh、はいという実行可能ファイルがあります。しかし、名前がのシェルはありませんsh。私が考えることができash、ksh、csh、bash、zsh、とtcsh。最初のものはLinuxとNetBSDの通常の/ bin / sh、最後は通常のFreeBSDシェル、その他はオプションのシェルです。多くのデスクトップ環境では、ユーザーのログインシェルをbashに変更し、/ bin / shはashのままにします。
shはBourneシェルです。en.wikipedia.org/wiki/Bourne_shell一部のシステム(Solaris)には、再実装(ash、dash、bash、ksh、zsh)の1つのコピーではなく、Bourneシェルのバージョンがまだ付属しています。
/ etc / profileや〜/ .bashrcなど、ログインスクリプトの1つにPS1という変数を設定する必要があります。ディストリビューションに依存します。
例:http : //www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwd現在の作業ディレクトリの名前を印刷するには、いつでも入力できます。また、タブ補完も機能していないと言っていますか?(私が使用する一部のマシンでは、rootとしてログインした場合にのみこの短いプロンプトが表示されますが、嬉しいことに良い警告としてそのまま残します。 、あなたは?)