端末に表示される現在のディレクトリパスをどのように短縮できますか?

端末に表示される現在のディレクトリパスをどのように短縮できますか?

私が深いディレクトリにある場合は、次のように言うことができます。

~/Desktop/Dropbox/School/2017/C/A3/

その後、端末を開くと、次のように表示されます。

bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$

その後、注文を書きます。これは非常に長く、端末に書き込むすべての行は次の行に移動します。現在のディレクトリのみを表示する方法があるかどうか疑問に思います。私はそれを見せたい:

bob@bob-ubuntu: A3/$

これにより、明確で常にディレクトリpwd全体を見ることができます。スペースが多すぎるため、ディレクトリ全体を端末に表示したくありません。

答え1

Bash 4からコマンドラインでディレクトリの深さを減らすのはPROMPT_DIRTRIMファイルです.bashrc。端末を再び開くことを忘れないでください。

PROMPT_DIRTRIM=1

よりバッシュマニュアルより多くの情報を知りたいです。

はい

bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$

にまとめられる

bob@bob-ubuntu:.../A3/$

答え2

PS1シェル起動ファイル(おそらく)を変更する必要があります.bashrc

すでに存在する場合は、その設定が含まれ、\wこれが作業ディレクトリになります。\W(大文字)に変更してください。ファイルの行はbashrc次のとおりです。

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

ログアウトして再度ログインするか、次の操作を行います。

. .bashrc

または(他のディレクトリにある場合は、接頭辞 "~/"を追加する必要があります)

source ~/.bashrc

(またはあなたのファイルは何でも)。

存在しない場合は、以下を追加します。

PS1='\u@\h: \W:\$'

.bashrc何でも。より多くのアイデアについては、PS1マニュアルページを確認してくださいbash

などbashの複数の初期化ファイルを使用できるため、システム全体に設定できます。ただし、自分のファイルの1つでそれを上書きすることはできます。.bashrc.bash_profilePS1

答え3

これはshすべてのシェルで移植可能です。

PS1シェルに割り当てられた起動ファイルの1つ:

PS1='${PWD##*/} $ '

プロンプトは次のようになります。

dir $

dir現在のディレクトリのデフォルト名はどこにありますか?

この$PWD変数には現在のディレクトリパスが含まれ、${PWD##*/}最後のディレクトリまで含めてそのパスのすべてのエントリが削除されます。/

一重引用符は、シェル型が割り当て時に変数の置換(プロンプトが表示されるたび$PS1に評価される値)を評価するのを防ぎます。

PS1この変数は現在のシェルでのみ使用されるため、エクスポートしないでください。

答え4

zshプロンプト文字列からに変更または変更するなど、%~現在の作業ディレクトリに展開します。ただし、次のようにパスの最後の2つのコンポーネントに制限するように変更できます。$HOME~/home/user~usertcsh%2~

$ PS1='%n@%m:%2~$ '
me@here:~/bin$ cd /usr/local/share/man/man1
me@here:man/man1$

またはを使用して、拡張が20列を超えていないことを%20<…<%~%<<確認し、切り捨てを表示するようにマークすることもできます(存在する場合)。%~

me@here:man/man1$ PS1='%n@%m:%20<…<%~%<<$ '
me@here:…ocal/share/man/man1$

関連情報