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


133

За замовчуванням підказка терміналу показує щось на кшталт:

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

чим глибше зайти у файлову систему, тим менше місця залишається для введення команд. Чи можу я змінити це, щоб показати лише щось на зразок:

>

Я маю на увазі, я можу просто набрати, pwdщоб показати, де я перебуваю. ;)


1
Це має бути коментар, але я не можу коментувати, вибачте. Окрім приховування поточного каталогу, наступне значення PS1 візуально відокремить ваші команди bash:export PS1="\n___"
Hello World,

експериментував над рішеннями Олі. Кольорові шрифти добре працюють у терміналі: export PS1 = '[\ 033 [0; 35m] \ h [\ 033 [0; 33m] \ w [\ 033 [00m]:'
linbianxiaocao

Відповіді:


153
export PS1='\u@\h: '

Це призводить oli@bert:до мого підказу.

Якщо ви дійсно хочете чогось мінімалістичного, як ви просите, спробуйте:

export PS1='> '

Ви можете прикріпити це до кінця ~/.bashrcфайлу, щоб він зберігався між логінами.

Ви також можете проявити творчість з деякими кольорами. Ось що я використовую на своїх серверах:

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

Даючи (це легше побачити на повному чорному тлі):

Мої термінали

Словник прийнятних символів у PS1


2
Ви також можете мати нові рядки (\ n) як частину підказки, щоб ви могли розмістити всю інформацію та ">" в окремих рядках.
ak2

Я вперше зіткнувся з подібним «екстремальним» настроюванням оболонки в msysGit, вірите чи ні. Мене одразу навернули у світ башу. Маючи всю інформацію (мій поточний каталог, поточну гілку перевірено з репортажу Git, стан індексу Git ...) прямо там було надзвичайно чудово. Я планую зробити щось подібне з установкою Ubuntu, яку я нещодавно поставив на старий ноутбук (поряд з Windows XP).
dgw

3
який формат використовується для налаштування кольорів?
Ракіб

1
@SyedRakibAlHasan Спробуйте echo -e "\e[31mHello World\e[0m"або echo -e "\033[31mHello\e[0m World"в терміналі, що має дати вам підказку. джерело
daka

103

Просто для розширення відповіді Олі (і щоб у мене була закладка для цих коротких символів):

Підказка 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 текст трасування стека ( по замовчуванням: +)

Щоб зміни були постійними, додайте їх до кінця .bash_profile(або .bashrcдивіться це запитання ) у своєму домашньому каталозі.

Ось більш-менш повний список стенограми, який ви можете використовувати при складанні таких:

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


Я доклав export PS1='\[\033[1;31m\]\w\[\033[00m\] \$> 'до /etc/bash.bashrcале нічого не здавалося , щоб змінити ... він працює на одну сесію, але я не можу здатися , щоб зробити його постійним.
Джаред Трищ

8

Інша альтернатива - скоротити шлях робочого каталогу, коли він стає занадто довгим: обріжте робочу директорію командного пункту терміналу

Створіть невеликий сценарій python, який реалізує бажану логіку обрізки.

Приклад: ~ / short.pwd.py

import os
from commands import getoutput
from socket import gethostname
hostname = 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 chars
print '[%s@%s:%s] ' % (username, hostname, pwd)

Тепер тестуйте це з терміналу:

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

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


Exa ... ~ / short.pwd.py, export ... ~ / .short.pwd.py Я думаю, що обидва повинні бути однаковими. Або ви поставите додаткову команду в обох місцях, або взагалі цього не зробите. Але це відмінна відповідь ..
MycrofD

7

Мені часто хочеться це робити тимчасово. Ось що я роблю:

$ 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

Я сподіваюся, що це комусь допоможе.


1

для користувачів macOS:

open ~/.bash_profile

в кінці файлу додайте наступний рядок і збережіть його

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

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

user: ~$

тут u для користувача w для поточного робочого каталогу $ є запит на відображення

ви можете спробувати наступні стилі:

export PS1='$ '

просто мати $ як швидко, нічого іншого. так як:

$ 

0

Що мені допомогло: експорт PS1 = '$'

Для того, щоб мати це кожен раз, коли ви відкриваєте термінал, напишіть команду в кінці .bashrc, яку ви можете відкрити 'cd', а потім 'gedit .bashrc'.

Сподіваюсь, це допомагає. Випрацювали для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.