私のサーバーの1つで、プロンプトは[user @ Host path]です。パスを自動入力するために「タブ」を実際に押すことができます。
しかし、私の新しい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変数 (PS1
、&cを含む)および プロンプトの印刷 =(Prompt_COMMAND
の長い名前であるPS1
について説明しています)。次の行を~/.bashrc
に追加します
export PS1='[\u@\h \w] '
tcsh
には オンラインマニュアル (そのマニュアルページのみ)があり、 プロンプト 環境変数に関するセクションがあります。次の行を~/.tcshrc
に追加します
set Prompt='[%n@%m %~] '
zsh
には ユーザーガイド と プロンプトの簡単なガイド があり、さらに manual と非常に詳細なリファレンスがありますon Prompt Expansion 。次の行を~/.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
の不自由なバージョンです。
たぶん、あなたはbashを使っていませんが、shとあなたのプロンプトは適切に設定されていません(これがshでも可能なら)。
次のように入力すると、現在のシェルを取得できます:echo $Shell
bashを開始する場合は、bash
と入力します
ログインスクリプトの1つにPS1という変数を設定する必要があります(たとえば、/ etc/profileまたは〜/ .bashrc)。ディストリビューションによって異なります。
例: http://www.cyberciti.biz/tips/howto-linux-unix-bash-Shell-setup-Prompt.html