Linuxコンソールのプロンプトラインを変更する方法(一時)

Linuxコンソールのプロンプトラインを変更する方法(一時)

たとえば、次のコマンドを入力しました。

user@my-machine:~$ cd ABC
user@my-machine:~/ABC$ cd long-name
user@my-machine:~/ABC/long-name$ cd another-long-name
user@my-machine:~/ABC/long-name/another-long-name$ ls

したがって、必要なディレクトリを選択してそのディレクトリで作業する必要があります(多くのコマンド)。しかし、私のコンソールラインの半分はプロンプトラインです。あまり快適ではありません。期間を短縮できますか?たとえば、私はこれを行い、user@my-machine:~foo$このディレクトリで作業を終えると、この欠点を解決します。

これを行う方法はありますか?

答え1

プロンプト形式はPS1環境変数にあります。bashマンページpromptingの書式指定子のセクションを参照してください。

10:50:39 user@host:1996 ~$ echo $PS1
\t \u@\h:\! \W$

\W最上位ディレクトリを印刷する唯一のことは、あなた(?)が望むものと同じです。 (\w今のように内容全体を印刷してください)。

10:50:45 user@host:1997 ~$ PS1='\u@\h:\W$ '
user@host:~$ cd test
user@host:test$ cd testdir/
user@host:testdir$ 

タスクが完了したら復元できるように、PS1まず古いコンテンツを変数(たとえば)に保存することをお勧めします()。$ export OLDPS1=$PS1$ PS1=$OLDPS1

答え2

私は2行目にプロンプ​​トを入れ、1行目にユーザー/ディレクトリ情報を入れました。

私のbashプロンプトの例:

birryree@momohime:/usr/bin
$ command-here

Bourne-Shell または Bash を使用している場合は、環境変数PS1によってプロンプトの形式が決まります。

私はこれを持っています(私が持っているソースを~/.bash_profile使うことができます)。.bashrc.bashrc.bash_profile

# ~/.bash_profile
PS1="\u@\h:\w\n$ " # \u means user name
                   # \h means hostname
                   # \w is working directory
                   # \n is newline
                   # $ is my prompt

そして私.bashrc

# ~/.bashrc
source ~/.bash_profile

楽しみにして私のzshプロンプトは次のようになります。

birryree@momohime:~/.oh-my-zsh master* 
λ > 

これは私がgitリポジトリ(git制御ディレクトリ)master*のマスターブランチにあり、そのディレクトリがきれいではないことを意味します。~/.oh-my-zsh


Bashプロンプトは本当に気に入るでしょう。私はzshに切り替える前に色とすべての作業を行いました。

このセクションにはすべてのエスケープが含まれています。

関連情報