Hur fixar jag en personlig bash prompt?

Här samlar vi svaren på några av de vanligaste nybörjarfrågorna. Vill du själv bidra med förslag eller egen text, så titta in i forumet FAQ devel.
Post Reply
User avatar
erik
Posts: 1392
Joined: 8 April 2002, 02:00
Location: Västerås
Contact:

Hur fixar jag en personlig bash prompt?

Post by erik » 30 June 2002, 23:33

Skrivet av AT:

Om du tycker att din prompt är ful och tråkig så är det nog enklare än du tror att ändra på. Framför allt kan du låta prompten visa information som är nyttig för dig tex tid m.m.
Promptens utseende bestäms av skalvariabeln PS1. Om du skriver in en PS1-sträng vid prompten så ser du genast resultatet men inga ändringar sparas. Därför bör du börja experimentera där (för att få tillbaks den ursprungliga prompten behöver du bara logga ut och in igen).

Skriv tex:

$ PS1="Min prompt: "

så ser din prompt ut såhär:

Min prompt:

Enkelt va?
För att prompten ska visa användarnamn eller tid m.m. så finns det speciella tecken för det.
Här är några av dem:

\d Date (dag månad datum tex Fri May 13)
\H Hostname
\h Hostname fram till ´.´
\t Time 24-timmar (22:36)
\T Time 12-timmar (10:36)
\u username
\w Den katalog du är i (hela vägen tex /mnt/cdrom)
\W Den katalog du är i (endast katalogen tex cdrom)

Prova skriv tex:

$ PS1="\d \u $ "

När du provat dig fram till en prompt du vill ha så ska du spara den i .bashrc
Öppna .bashrc med den textredigerare du tycker är bäst, annars går det också bra med emacs ;)
Längst ner lägger du till en rad med din egen PS1-sträng tex:

PS1="\t \W $ "

Spara och avsluta.
Logga ut och in igen.
Där är nu din prompt precis som du vill ha den.
Man kan göra hur mycket som helst med prompten (tex sätta olika färger m.m. m.m.) men det här borde räcka till att börja med.


SKRIVET AV "st3f":

Färglägg din bash-prompt

För att färgsätta prompten i Bash använder man en tag som ser ut så här:

Code: Select all

\[\033[XXm\]
Där det står XX skriver du in den färgkod du vill ha. Från den plats du skriver tagen börjar det färgsättas och när du vill "sluta" färga sätter du en till tag med XX som normalfärgen.

Till exempel

Code: Select all

PS1="\[\033[31m\][\u \w]# \[\033[00m\]"
kan resultera i
[st3f /usr/bin]# .

Ett urval av färgkoderna
  • 00 normal
    30 svart
    31 röd
    32 grön
    33 gul
    34 blå
    1;32 bold grön
    1;33 bold gul
    1;34 bold blå
Chewie bidrar med ett kanonbra script som listar alla färgkombinationer i ett terminalfönster.

Code: Select all

#!/bin/bash
#
#   This file echoes a bunch of color codes to the
#   terminal to demonstrate what's available.  Each
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a
#   test use of that color on all nine background
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
exit 1
Källa
Configuration HOWTO v1.99.7.6 av Guido "goccia" Gonzato.
man bash

Post Reply