Как я могу изменить текст после знака @? Я не знаю, что это значит.

Там написано DESKTOP-HMEEP40 .

2 ответа2

4

Эта строка DESKTOP-HMEEP40 вы спрашиваете, вероятно, является именем хоста, полученным \h в $PS1 . Способы его изменения различаются между ОС / дистрибутивами. С systemd вы делаете это, вызывая

hostnamectl set-hostname new_name_here

Вся строка root@… определяется переменной оболочки PS1 :

PS1

Каждый раз, когда интерактивная оболочка готова прочитать команду, значение этой переменной подвергается расширению параметра и записывается со стандартной ошибкой. [...]

(источник)

Запустите printf '%s\n' "$PS1" чтобы увидеть, что это за переменная в вашем случае. Вероятно, он содержит некоторые специальные строки, такие как \u , \h . Соответствующий фрагмент справочного руководства Bash находится здесь . Вы можете изменить PS1 подобно (почти) любой другой переменной:

PS1="whatever "

Чтобы сделать постоянное изменение, определите переменную в вашем файле .bashrc .

Этот результат поиска может привести вас к некоторым интересным примерам.

2

Переменная PS1/prompt определяет формат приглашения оболочки, а ее формат и структура зависят от используемой ОС и оболочки. Обычно он находится в файле конфигурации оболочки или в профиле пользователя.


Синтаксис переменной PS1/prompt зависит от каждой ОС:

  • BSD

    • без цвета

      set prompt = "%N@%m:%~ %# "
      
    • ж / цвет:

      set prompt = "[%{\033[34m%}%N%{\033[0m%}%{\033[32m%}@%{\033[0m%}%{\033[34m%}%m%{\033[0m%}] %{\033[34m%}%~%{\033[0m%}%{\033[32m%}#%{\033[0m%} "
      
  • OpenWrt:

    • без цвета

      export PS1='\u@OpenWrt \w\$ '
      
    • ж / цвет

      export PS1='[\[\033[34m\]\u\[\033[0m\]\[\033[32m\]@\[\033[0m\]\[\033[34m\]OpenWrt\[\033[0m\]] \[\033[34m\]\w\[\033[0m\] \[\033[32m\]\$\[\033[0m\] '
      
  • Ubuntu:

    • без цвета

      PS1='[${debian_chroot:+($debian_chroot)}\u@\h]:\w\$ '
      
    • ж / цвет

      PS1='[${debian_chroot:+($debian_chroot)}\[\033[38;5;039m\]\u\[\033[00m\]\[\033[38;5;154m\]@\[\033[00m\]\[\033[38;5;039m\]uvm\[\033[00m\]] \[\033[38;5;039m\]\w\[\033[00m\] \[\033[38;5;154m\]\$\[\033[00m\]
      
  • Windows PowerShell:

    • без цвета

       Function set-prompt {
           "$ESC[35mPS $($executionContext.SessionState.Path.CurrentLocation)$('$' * ($nestedPromptLevel + 1)) $ESC[0m"
       }
      
    • ж / цвет

       Function set-prompt {
           Param (
               [Parameter(Position=0)]
               [ValidateSet("Default","Test")]
               $Action
           )
      
           switch ($Action) {
      
               "Default" {
                   Function global:prompt {
                       if (test-path variable:/PSDebugContext) { '[DBG]: ' }
                           write-host " "
                           write-host ("$ESC[48;2;40;40;40m$ESC[38;2;170;210;0m$(Get-Location) $ESC[0m $ESC[0m")
      
                       if ( $host.UI.RawUI.WindowTitle -match "Administrator" ) {
                           $Host.UI.RawUI.ForegroundColor = 'Red'
                           $(if ($nestedpromptlevel -ge 1) {
                               write-host ('PS $$ ') -ForegroundColor Red -NoNewLine
                           } else {
                               write-host ('PS $ ') -ForegroundColor Red -NoNewLine
                           })
                       } else {
                           $(if ($nestedpromptlevel -ge 1) {
                               write-host ('PS $$ ') -ForegroundColor Blue -NoNewLine
                           } else {
                               write-host ('PS $ ') -ForegroundColor Blue -NoNewLine
                           })
                       }
      
                       return " "
                   }
               }
           }
       }
      
       set-prompt Default
      

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .