Скройте текущий рабочий каталог в терминале

Как значение по умолчанию, терминальная подсказка показывает что-то как:

user@system:/folder1/folder2/folder3/folder4$

чем глубже Вы входите в файловую систему, тем меньше пространства оставлено для ввода в командах. Могу я изменять это, чтобы только показать что-то как:

>

Я имею в виду, я могу просто ввести pwd показать, где я в.;)

152
задан 23 January 2014 в 06:26

7 ответов

export PS1='\u@\h: '

В результате oli@bert: для моей подсказки.

Если вы действительно хотите что-то настолько минималистское, как вы просите, попробуйте следующее:

export PS1='> '

Вы можете прикрепить это к концу вашего ~/.bashrc файла, чтобы он сохранялся между входами.

Вы также можете творчески подойти к некоторым цветам. Вот что я использую на своих серверах:

export PS1='\[\033[0;35m\]\h\[\033[0;33m\] \w\[\033[00m\]: '

Giving (это легче увидеть на черном фоне):

My terminals

Glossary of acceptable characters in PS1

166
ответ дан 22 November 2019 в 22:54

Просто чтобы расширить ответ Оли (и чтобы у меня была закладка для этих символов с короткими руками):

Бэш-индикатор (stefano@linux:~$) - это только первая из пары подсказок. вы можете увидеть:

  • PS1: запрос по умолчанию, который вы видите, когда открываете оболочку

    Ее значение хранится в переменной окружения с именем PS1. Чтобы увидеть ее значение, type

    echo $PS1

    Это даст вам что-то вроде

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
    

    Чтобы изменить его, можно установить новое значение для переменной:

    export PS1="\u > "".
    

    В результате появится следующее сообщение:

    Stefano > 
    
  • PS2 : это ваша вторичная подсказка. Она отображается, когда команда не завершена. Введите echo "asd и нажмите enter, вторичная подсказка позволит вам ввести дополнительные данные. Пока вы не закроете перевернутые запятые,

  • PS3 - это запрос, используемый для select(2)

  • PS4 - это запрос, используемый для alt text трасс стека (по умолчанию: +)

Чтобы изменения стали постоянными, добавьте их в конец . bash_profile (или .bashrc, смотрите этот вопрос) в вашем home directory.

Вот более или менее полный список скорописей, которые вы можете использовать при их составлении:

  • \a Символ 'звонок'
  • \A 24h Time
  • \d Дата (д.). g. Tue Dec 21)
  • \e Символ 'escape'
  • \h Имя хоста (до первого "...")
  • \H Имя хоста
  • \j Нет. текущих заданий (ps)
  • \l Current tty
  • \n Line feed
  • \t Time (hh:mm:ss)
  • \T Time (hh:mm:ss, 12h format)
  • \r Carriage return
  • \s Shell (e.e. bash, zsh, ksh...)
  • \u Имя пользователя
  • \v Бэш-версия
  • \V Полная строка выпуска Bash
  • \w Текущая рабочая директория
  • \W Последняя часть текущей рабочей директории
  • \! Текущий индекс в истории
  • \# Command index
  • \$ A "#" если вы корневой, то "$"
  • \\ Literal Backslash
  • \@ Time (12h формат с am/pm)

Конечно, вы можете вставить любую строку литерала и любую команду:

export PS1="\u \$(pwd) > "

Где $(pwd) стоит вместо "вывода" pwd.

  • Если подмена команды экранирована, как в \$(pwd), то она вычисляется каждый раз при отображении запроса, в противном случае, как в $(pwd), она вычисляется только один раз при запуске bash.

Если вы хотите, чтобы ваша подсказка включала цвета, вы можете использовать для этого цветовые коды bash. Код состоит из трех частей:

40;33;01
  • Первая часть перед точкой с запятой представляет собой текстовый стиль.

    • 00=нет
    • 01=жирный
    • 04=подчеркнутый
    • 05=мигающий
    • 07=обратный
    • 08=свеченный
  • Вторая и третья части представляют цвет и цвет фона:

    • 30=черный
    • 31=красный
    • 32=экрановый
    • 33=желтый
    • 34=синий
    • 35=магента
    • 36=голубой
    • 37=белый

Каждая часть может быть опущена, предполагая, что она начинается слева. т.е. "1" означает жирный шрифт, "1;31" означает жирный шрифт и красный шрифт. И вы заставите ваш терминал печатать цветным цветом, экранируя инструкцию на \33[ и заканчивая ее на m. 33, или 1B в шестнадцатеричной системе, это знак ASCII "ESCAPE" (специальный символ в наборе символов ASCII). Пример:

"\33[1;31mHello World\33[m"

Печать "Hello World" ярко-красным цветом.

109
ответ дан 22 November 2019 в 22:54

Другой альтернативой является сокращение пути к рабочей директории, когда он становится слишком длинным: обрезать рабочую директорию командной строки терминала

Создать небольшой питоновый скрипт, реализующий нужную логику обрезания.

Пример: ~/short.pwd.py

import os
импорт getoutput из команд
импорт сокетов gethostname
имя хоста = gethostname()
имя пользователя = os.environ['USER']
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
если len(pwd) > 30:
 pwd = pwd[:10]+'...'+pwd[-20:] # первые 10 chars+последние 20 chars
print '[%s@%s:%s] ' % (имя пользователя, имя хоста, pwd)

Теперь проверьте из терминала:

export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)".

Если результат вас устраивает, просто добавьте команду в ваш ~/.bashrc

9
ответ дан 22 November 2019 в 22:54

Я часто хочу сделать это временно. Вот что я делаю:

$ export OLD_PS1=$PS1                    # save Long Prompt to OLD_PS1
$ export PS1="\u > "export PS1="\u $ "   # change to PS1 to Short Prompt
$ export PS1=$OLD_PS1                    # restore Long Prompt to PS1

Надеюсь, это кому-то поможет.

8
ответ дан 22 November 2019 в 22:54

Мне помогло следующее: export PS1 = '$'

Чтобы иметь это каждый раз, когда вы открываете терминал, напишите команду в конце .bashrc, которую вы можете откройте "cd", а затем "gedit .bashrc".

Надеюсь, это поможет. У меня получилось.

0
ответ дан 22 November 2019 в 22:54

для пользователей macOS:

open ~/.bash_profile

в конце файла добавьте следующую строку и сохраните ее

export PS1='\u:\w\$ '

результат в домашнем каталоге:

user: ~$

здесь ты для пользователя w для текущего рабочего каталога $ - это запрос на отображение

, вы можете попробовать следующие стили:

export PS1='$ '

, чтобы просто использовать $ в качестве приглашения, ничего больше. точно так же:

$ 
2
ответ дан 22 November 2019 в 22:54

В ubuntu 20.10 я использовал следующие шаги для файла .bashrc по умолчанию в моем домашнем каталоге

0. cd ~
1. cp .bashrc .bashrc.bkpa
2. nano .bashrc
3. ctrl+w -> PS1
4. Change the PS1 block of code to the one below (I *AM* playing safe here)

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

5. save file, exit
6. source .bashrc 

повторно открыть терминал

0
ответ дан 5 January 2021 в 23:57

Другие вопросы по тегам:

Похожие вопросы: