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

По умолчанию в командной строке терминала отображается что-то вроде:

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

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

>

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

export PS1='\u@\h: '

Это приводит к oli@bert: за мою подсказку.

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

export PS1='> '

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

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

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

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

My terminals

Глоссарий допустимых символов в PS1

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

Подсказка bash (stefano@linux:~$) - это только первое из нескольких подсказок, которые вы можете увидеть:

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

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

    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, видишь этот вопрос) в вашем домашнем каталоге.

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

  • \a     Символ "колокола"
  • \A     Время 24 часа
  • \d     Дата (например, Вт, 21 декабря)
  • \e     Символ "escape"
  • \h     Имя хоста (до первого ".")
  • \H     Имя хоста
  • \j     Количество выполняемых в данный момент заданий (ps)
  • \l     Текущий tty
  • \n     Подача строки
  • \t     Время (чч:мм:сс)
  • \T     Время (чч:мм:сс, формат 12 часов)
  • \r     Возврат каретки
  • \s     Оболочка (т.е. bash, zsh, ksh..)
  • \u     Имя пользователя
  • \v     Версия Bash
  • \V     Полная строка выпуска Bash
  • \w     Текущий рабочий каталог
  • \W     Последняя часть текущего рабочего каталога
  • \!     Текущий индекс в истории
  • \#     Индекс команды
  • \$     A "#", если вы root, иначе "$"
  • \\     Буквальная обратная косая черта
  • \@     Время (формат 12 часов с 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" ярко-красного цвета.

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

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

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

import osfrom commands import getoutputfrom socket import gethostnamehostname = gethostname()username = os.environ['USER']pwd = os.getcwd()homedir = os.path.expanduser('~')pwd = pwd.replace(homedir, '~', 1)if len(pwd) > 30:    pwd = pwd[:10]+'...'+pwd[-20:] # first 10 chars+last 20 charsprint '[%s@%s:%s] ' % (username, hostname, pwd)

Теперь протестируйте его с терминала:

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

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

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

$ 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

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

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

open ~/.bash_profile

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

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

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

user: ~$

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

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

export PS1='$ '

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

$ 

То, что мне помогло, было: экспорт PS1='$ '

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

Надеюсь, это поможет. Сработало для меня.

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

0. cd ~1. cp .bashrc .bashrc.bkpa2. nano .bashrc3. ctrl+w -> PS14. 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:\$ 'fi5. save file, exit6. source .bashrc 

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

В bash 4 вы можете использовать PROMT_DIRTRIM=1 В вашем .bashrc файл, чтобы сократить ваш текущий путь к рабочему каталогу, отображаемый на терминале.

Вежливость : Как мне сократить текущий путь к каталогу, отображаемый в терминале?

вот несколько примеров.

до :

username@pc:~/repos/project1/src$

после:

username@pc:~/.../src$

Это должен быть комментарий, но я не могу комментировать, извините. В дополнение к скрытию текущего каталога, следующее значение PS1 будет визуально разделять ваши команды bash: export PS1="\n___"

экспериментировал с решениями Оли. Цветные шрифты хорошо работают в терминале: экспорт PS1=’[\033[0;35m]\h[\033[0;33m]\w[\033[00m]: ’