Standaard geeft de terminalprompt iets weer als:
user@system:/folder1/folder2/folder3/folder4$
hoe dieper u in het bestandssysteem gaat, hoe minder ruimte er over blijft om opdrachten in te typen. Kan ik dit veranderen om alleen iets te laten zien als:
>
Ik bedoel, ik kan gewoon typen pwd
om te laten zien waar ik ben. ;)
export PS1='\u@\h: '
Dat resulteert in oli@bert:
voor mijn prompt.
Als je echt iets zo minimalistisch als je wilt, probeer dit dan:
export PS1='> '
U kunt dat aan het einde van uw ~/.bashrc
bestand zodat het blijft bestaan tussen aanmeldingen.
Je kunt ook creatief worden met sommige kleuren. Dit is wat ik gebruik op mijn servers:
export PS1='\[\033[0;35m\]\h\[\033[0;33m\] \w\[\033[00m\]: '
Geven (het is gemakkelijker te zien op een volledig zwarte achtergrond):

Verklarende woordenlijst van acceptabele tekens in PS1
Gewoon om het antwoord van Oli uit te breiden (en zodat ik een bladwijzer heb voor die korte-handsymbolen):
De bash-prompt (stefano@linux:~$
) is slechts de eerste van een paar aanwijzingen
je zou kunnen zien:
PS1: de standaardprompt die u ziet wanneer u een shell opent
De waarde wordt opgeslagen in een omgevingsvariabele genaamd PS1
. Om de waarde te zien,
type
echo $PS1
Dit geeft je zoiets als
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Om dit te wijzigen, kunt u een nieuwe waarde voor de variabele instellen:
export PS1="\u > "
Dit zal resulteren in een prompt als deze:
stefano >
PS2: is uw secundaire prompt. Dit wordt weergegeven wanneer een opdracht niet is voltooid.
Type echo "asd
en druk op Enter, de secundaire prompt laat je meer invoeren
lijnen totdat je de omgekeerde komma's sluit.
PS3 is de prompt voor select
(2)
PS4 is de prompt voor
stapel sporen (standaard: +
)
Om de wijzigingen permanent te maken, voegt u ze toe aan het einde van .bash_profile
(of .bashrc
, zien deze vraag) in uw
home directory.
Hier is een min of meer volledige lijst met afkortingen die u kunt gebruiken bij het samenstellen van deze:
\a
Het 'bel'-personage
\A
24 uur tijd
\d
Datum (bijvoorbeeld di 21 december)
\e
Het 'escape'-personage
\h
Hostnaam (tot de eerste ".")
\H
hostname
\j
Aantal momenteel lopende banen (ps)
\l
Huidige tty
\n
Line feed
\t
Tijd (uu: mm: ss)
\T
Tijd (uu: mm: ss, 12h-notatie)
\r
Koers terug
\s
Shell (dat wil zeggen bash, zsh, ksh ..)
\u
Gebruikersnaam
\v
Bash-versie
\V
Full Bash release string
\w
Huidige werkmap
\W
Laatste deel van de huidige werkdirectory
\!
Huidige index in geschiedenis
\#
Command index
\$
Een "#" als je root bent, anders "$"
\\
Letterlijke backslash
\@
Tijd (12 uur formaat met am / pm)
Je kunt natuurlijk elke letterlijke tekenreeks en elke opdracht invoegen:
export PS1="\u \$(pwd) > "
Waar $(pwd)
staat in de plaats van "de uitvoer van" pwd.
- Als de opdrachtsubstitutie is ontsnapt, zoals in
\$(pwd)
, het wordt geëvalueerd elke keer dat de prompt wordt getoond, anders zoals in $(pwd)
, het wordt maar één keer geëvalueerd wanneer bash wordt gestart.
Als u wilt dat uw prompt kleuren weergeeft, kunt u bash's kleurcodes gebruiken om dit te doen. De code bestaat uit drie delen:
40;33;01
Elk onderdeel kan worden weggelaten, ervan uitgaande dat je aan de linkerkant begint. d.w.z. "1" betekent vet, "1; 31" betekent vet en rood. En u zou ervoor zorgen dat uw terminal in kleur afdrukt door aan de instructie te ontsnappen \33[
en eindigend met een m
. 33, of 1B in hexadecimaal, is het ASCII-teken "ESCAPE" (een speciaal teken in de ASCII-tekenset). Voorbeeld:
"\33[1;31mHello World\33[m"
Drukt "Hallo wereld" in helder rood af.
Een ander alternatief is om het pad van de werkdirectory in te korten wanneer het te lang wordt: trim de terminal-opdrachtprompt werkmap
Maak een klein python-script dat de gewenste trimlogica implementeert.
Voorbeeld: ~ / 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)
Test het nu vanaf een terminal:
export PROMPT_COMMAND='PS1="$(python ~/.short.pwd.py)"'
Als u tevreden bent met het resultaat, voegt u gewoon de opdracht toe aan uw ~ / .bashrc
Ik wil dit vaak tijdelijk doen. Dit is wat ik doe:
$ 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
Ik hoop dat dit iemand helpt.
Het ding dat mij hielp was: export PS1 = '$'
Om dit elke keer dat je de terminal opent te hebben, schrijf je het commando aan het einde van de .bashrc die je kunt openen met 'cd' gevolgd door 'gedit. Bashrc'.
Ik hoop dat dit helpt. Werkte voor mij.