web-dev-qa-db-ja.com

tcshプロンプトを変更して、現在の作業ディレクトリを表示するにはどうすればよいですか?

私はtcshを使用しており、フルパスを取得する代わりに、少なくとも最後のフォルダー名を表示したい、応答性の高い作業ディレクトリを探しています。

私の現在の作業ディレクトリが次のとおりであると想像してください:

  [user@hostname/home/us/Desktop/my/projects]

次に、このようなプロンプトを表示したいと思います:

    [user@hostname projects] 

現在私は次のように書いたファイルの.cshrcファイルを使用しています。

  alias setprompt 'set Prompt="[suman@`hostname` `pwd`:~] $"'
  alias setprompt 'set Prompt="${LightGreen}[${yellow}suman${Light}${LightPurple}@%m ${LightGreen}:~] ${yellow}$ ${end} "'

PS1変数もありませんし、それが何をするのかわかりません。.cshrcファイルと.bashrcファイルの違いを知りたいのですが。

5
pawankalyan

次を使用できます。

_set Prompt = '[%n@%m %c]$ '
_

ユーザー名は_%n_、最初の_%m_までのホスト名は_._、最後のディレクトリ部分は_%c_です。利用可能なそのような置換は多数あります。それらのリストはtcsh(1)にあり、便宜上以下に複製されています。

cshrcファイルは読み取り専用であるため、_`pwd`_の使用は機能しません1回シェルの起動時に、すべてのディレクトリ変更ではありません。

.cshrcファイルと.bashrcファイルの違いを知りたいのですが。

cshrcファイルはcshtcshによって使用され、bashrcファイルはbashによって使用されます。それらは同じ目的を果たしますが、異なるプログラムです(_~/.mozilla/firefox_や_~/.config/chromium_など)。


_%/  The current working directory.
%~  The current working directory, but with one's  home  direc‐
    tory  represented  by `~' and other users' home directories
    represented  by  `~user'  as  per  Filename   substitution.
    `~user'  substitution happens only if the Shell has already
    used `~user' in a pathname in the current session.
%c[[0]n], %.[[0]n]
    The trailing component of the current working directory, or
    n  trailing  components if a digit n is given.  If n begins
    with `0', the number  of  skipped  components  precede  the
    trailing  component(s)  in the format `/<skipped>trailing'.
    If the Ellipsis Shell variable is set,  skipped  components
    are  represented  by  an  Ellipsis  so  the  whole  becomes
    `...trailing'.  `~' substitution is done as in `%~'  above,
    but  the  `~'  component  is ignored when counting trailing
    components.
%C  Like %c, but without `~' substitution.
%h, %!, !
    The current history event number.
%M  The full hostname.
%m  The hostname up to the first `.'.
%S (%s)
    Start (stop) standout mode.
%B (%b)
    Start (stop) boldfacing mode.
%U (%u)
    Start (stop) underline mode.
%t, %@
    The time of day in 12-hour AM/PM format.
%T  Like `%t', but in 24-hour format (but see  the  ampm  Shell
    variable).
%p  The  `precise'  time  of  day in 12-hour AM/PM format, with
    seconds.
%P  Like `%p', but in 24-hour format (but see  the  ampm  Shell
    variable).
\c  c is parsed as in bindkey.
^c  c is parsed as in bindkey.
%%  A single `%'.
%n  The user name.
%N  The effective user name.
%j  The number of jobs.
%d  The weekday in `Day' format.
%D  The day in `dd' format.
%w  The month in `Mon' format.
%W  The month in `mm' format.
%y  The year in `yy' format.
%Y  The year in `yyyy' format.
%l  The Shell's tty.
%L  Clears  from the end of the Prompt to end of the display or
    the end of the line.
%$  Expands the Shell or environment variable name  immediately
    after the `$'.
%#  `>'  (or the first character of the promptchars Shell vari‐
    able) for normal users, `#' (or  the  second  character  of
    promptchars) for the superuser.
%{string%}
    Includes string as a literal escape sequence.  It should be
    used only to change terminal attributes and should not move
    the  cursor  location.  This cannot be the last sequence in
    Prompt.
%?  The return code of the command  executed  just  before  the
    Prompt.
%R  In Prompt2, the status of the parser.  In Prompt3, the cor‐
    rected string.  In history, the history string.

`%B', `%S', `%U' and `%{string%}' are available in only  eight-
bit-clean shells; see the version Shell variable.

The  bold,  standout  and underline sequences are often used to
distinguish a superuser Shell.  For example,

    > set Prompt = "%m [%h] %B[%@]%b [%/] you rang? "
    tut [37] [2:54pm] [/usr/accts/sys] you rang? _

If `%t', `%@', `%T', `%p', or `%P' is used, and noding  is  not
set,  then print `Ding!' on the change of hour (i.e, `:00' min‐
utes) instead of the actual time.

Set by default to `%# ' in interactive shells.
_
18
Martin Tournoij

編集:そのようにタグ付けされているので、質問はbashに関するものだと思っていました。

.cshrcは、cshまたはtcshの構成ファイルです。wheras.bashrcは、bashの構成ファイルです。それらが同じような目的を果たしたとしても、bashとcshは単に異なるプログラムであるため、一方の構成が他方で機能するとは限りません。

したがって、あなたがする必要があるのは、このような行を.bashrcに入れることです。

PS1='...\w$ '

どこ \wは、bashのmanページの「プロンプト」セクションで検索できるように、現在の作業ディレクトリに展開されるマジックコードです。

Cygwinのbashパッケージのデフォルト設定から取得した、より完全な例は、次のようになります。

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '

これは、次のようなプロンプトに展開されます(ただし、色はあります):

user@machine currentdir $ 
0
matz