Att göra sin egen bash-prompt

Här skriver vi våran FAQ. Vill du komma med förslag, skriva själv eller rätta stavfel så gör det här. Någorlunda färdiga frågor komer att läggas i forumet FAQ.
Post Reply
User avatar
idrix
Posts: 54
Joined: 29 June 2002, 12:08

Att göra sin egen bash-prompt

Post by idrix » 29 June 2002, 12:40

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.
Ubuntu - Humility to others

User avatar
idrix
Posts: 54
Joined: 29 June 2002, 12:08

Post by idrix » 29 June 2002, 12:56

Vad tror ni om det här med prompten? Ni får naturligtvis göra vilka ändringar ni vill i texten och framför allt rätta alla eventuella fel!
Ubuntu - Humility to others

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Post by JO » 29 June 2002, 13:48

AT wrote:Vad tror ni om det här med prompten? Ni får naturligtvis göra vilka ändringar ni vill i texten och framför allt rätta alla eventuella fel!
OK! För min del. Lite fetare stil i rubrikerna.
/JO
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

User avatar
erik
Posts: 1392
Joined: 8 April 2002, 02:00
Location: Västerås
Contact:

Re: Att göra sin egen bash-prompt

Post by erik » 29 June 2002, 14:03

Kanske borde börja med en eller två meningar om vad prompten är för något.
AT wrote:\W Den katalog du är i (endast katalogen tex /cdrom)
Den raden verkar felaktig, det är väll inte /cdrom (som är en fullständig sökväg) som visas utan bara cdrom (namnet på katalogen du befinner dig i). Rätta mig om jag har fel.

I övrigt en bra och användbar text!

letalis
Posts: 1102
Joined: 13 June 2002, 19:31
Location: Västerås
Contact:

Post by letalis » 30 June 2002, 12:57

stämmer bra det, \W visar den katalog man befinner sig i, men inget om den underliggande katalogstrukturen

amos
Posts: 64
Joined: 12 July 2002, 01:49

Post by amos » 15 January 2004, 03:12

jag diggar \!, dvs kommandonumret. snabbar upp ibland da man vill upprepa kommandon med !nummer. ctrl-r ar ocksa fint men det har visst inget med prompten att gora...

User avatar
gramse
Posts: 208
Joined: 23 November 2002, 01:35
Location: Hindås
Contact:

Post by gramse » 22 April 2004, 16:56

Det skulle ju vara trevligt om ngn kunde visa hur man gör för å fixa med olika färger i bash prompten med nu när man fått den som man vill ha den i övrigt.
Runing CRUX sins ver. 0.94
Installed CRUX 2.2

Registered Linux user number 333645
http://counter.li.org/

User avatar
st3f
Posts: 187
Joined: 19 November 2003, 00:19
Location: Norrköping/Stockholm

Post by st3f » 18 May 2004, 15:35

gramse wrote:Det skulle ju vara trevligt om ngn kunde visa hur man gör för å fixa med olika färger i bash prompten med nu när man fått den som man vill ha den i övrigt.
Det kan jag bidra med! Om någon moderator tycker att det är lämpligt så är det ok att lägga upp på FAQ.

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
Last edited by st3f on 18 May 2004, 19:10, edited 1 time in total.
Slackware 10.1 (2.4.29)
Enlightenment 0.16.7
http://www.skrivihop.nu/ snälla!

User avatar
Chewie
Posts: 367
Joined: 5 August 2002, 04:30
Location: Göteborg / Borås

Post by Chewie » 18 May 2004, 17:48

Använd detta scriptet för att kolla färgerna.

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

/// Powered by Gentoo

User avatar
gramse
Posts: 208
Joined: 23 November 2002, 01:35
Location: Hindås
Contact:

Post by gramse » 18 May 2004, 18:51

wee nu rockar ju prompten :)

Nu borde denna tråd snart bli en riktigt FAQ tycker jag
Runing CRUX sins ver. 0.94
Installed CRUX 2.2

Registered Linux user number 333645
http://counter.li.org/

User avatar
st3f
Posts: 187
Joined: 19 November 2003, 00:19
Location: Norrköping/Stockholm

Post by st3f » 18 May 2004, 19:03

Niceness! Då uppdaterar jag lite.
Slackware 10.1 (2.4.29)
Enlightenment 0.16.7
http://www.skrivihop.nu/ snälla!

Guest

Re: Att göra sin egen bash-prompt

Post by Guest » 1 August 2004, 10:52

AT wrote:
När du provat dig fram till en prompt du vill ha så ska du spara den i .bashrc

Hur gör man för och spara då?

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Re: Att göra sin egen bash-prompt

Post by JO » 1 August 2004, 11:00

Craxxeor wrote:
AT wrote:
När du provat dig fram till en prompt du vill ha så ska du spara den i .bashrc

Hur gör man för och spara då?
Vilken editor?
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

Guest

Post by Guest » 1 August 2004, 13:42

Jadu, ska man skriva koden i emacs eller? :roll: fattar nada..

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Post by JO » 1 August 2004, 13:44

Craxxeor wrote:Jadu, ska man skriva koden i emacs eller? :roll: fattar nada..
Vilken texteditor du känner för.
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

Guest

Post by Guest » 1 August 2004, 13:56

JO wrote:
Craxxeor wrote:Jadu, ska man skriva koden i emacs eller? :roll: fattar nada..
Vilken texteditor du känner för.
och sen ? köra den sparade filen i terminalen eller?

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Post by JO » 1 August 2004, 14:16

Craxxeor wrote:
JO wrote:
Craxxeor wrote:Jadu, ska man skriva koden i emacs eller? :roll: fattar nada..
Vilken texteditor du känner för.
och sen ? köra den sparade filen i terminalen eller?
Du gör så som det står i tråden. Logga ut och sedan in igen.
Bash läser automatiskt configfilen.
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

Guest

Post by Guest » 20 September 2004, 15:45

e de inte .bash_profile om man kör textbasetrat, och .bashrc i en terminal i x?

User avatar
Bertil
Posts: 1071
Joined: 17 June 2003, 13:38

Post by Bertil » 20 September 2004, 16:08

Nej maxxflow, så är det iaf inte för mig i gentoo, den i .bashrc funkar även i textbaserat.
Med Vänliga Hälsningar
Bertil Stenberg
_________________
Gentoo 2004.1 kernel 2.6.5
_________________
Varför göra det enkelt för sig när man kan göra det svårt?

Guest

Post by Guest » 20 September 2004, 18:49

Nej bertil, så är det iaf inte för mig i slackware, den i .bashrc funkar inte i textbaserat.

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Post by JO » 20 September 2004, 22:16

Måste lägga till .bashrc i .bash_profile.

Code: Select all

source ~/.bashrc
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

Guest

Post by Guest » 21 September 2004, 08:02

okidoki :)

AzaToth
Posts: 141
Joined: 19 August 2002, 00:32
Contact:

Post by AzaToth » 10 October 2004, 16:39

så här har jag skrivit i min .bashrc:

Code: Select all

        # set a fancy prompt
        # [suspended:return_value][username@short_host dir]$ 
        # red-underline for root
        CLEAR="\[\e[0m\]"
        DARK_CYAN="\[\e[0;36m\]"
        LIGHT_CYAN="\[\e[1;36m\]"
        DARK_MAGENTA="\[\e[0;35m\]"
        DARK_GREEN="\[\e[0;32m\]"
        LIGHT_GREEN="\[\e[1;32m\]"
        LIGHT_YELLOW="\[\e[1;33m\]"
        LIGHT_BLUE="\[\e[1;34m\]"
        LIGHT_RED_UNDERLINE="\[\e[1;4;31;31m\]"

        case `id -u` in
                0) _uid=$LIGHT_RED_UNDERLINE"\u";;
                *) _uid=$LIGHT_GREEN"\u";;
        esac


PS1=\
$DARK_MAGENTA"["\
$DARK_CYAN"\j"\
$DARK_MAGENTA":"\
$DARK_CYAN"\$?"\
$DARK_MAGENTA"]"\
$DARK_GREEN"["\
$_uid\
$LIGHT_BLUE"@"\
$LIGHT_GREEN"\h"\
$LIGHT_YELLOW" \W"\
$DARK_GREEN"]"\
$LIGHT_CYAN"\$ "\
$CLEAR

Guest

Post by Guest » 3 December 2004, 21:55

Ni får mer än gärna ta med vart .bashrc ligger också, för oss som är helt gröna på Linux. Det här filsystemet känns som en helt annan planet för tillfället. :)

EDIT: Går det inte att definiera dom där ANSI-färgerna i någon global fil och sen anropa dom från varje "modul" man vill färga?

Lucifer888
Posts: 4111
Joined: 3 February 2003, 12:18
Location: Stockholm

Post by Lucifer888 » 3 December 2004, 22:23

ligger i hemkatalogen om jag inte har helt fel
"It's not that I hate people, I just think they're all idiots"
"Långt hår kräver mycket näring, framhålls det, och berövar hjärnan energi."

OErjan
Posts: 1834
Joined: 21 April 2003, 06:43
Location: 64*N 21*E

Post by OErjan » 3 December 2004, 22:42

Slackware har inte den som standard. den får man lägga till själv
kanske jag är en av de sista människor som ser din gamla: bil, dator, gräsklippare...
efter mig är de så många kilo konfetti.

Guest

Post by Guest » 4 December 2004, 11:01

Efter rekommendationer så installerade jag Webmin, som sen lät mig fixa prompten i "/etc/rc.d/rc.local". Är det Slackwares motsvarighet kanske?

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Post by JO » 4 December 2004, 11:19

CroX wrote:Efter rekommendationer så installerade jag Webmin, som sen lät mig fixa prompten i "/etc/rc.d/rc.local". Är det Slackwares motsvarighet kanske?
Inte för att få till prompten.
Du har /etc/DIR_COLORS
Skapa: ~/.bash_profile, ~/.bashrc, ~/.bash_logout.

Code: Select all

export PATH=$PATH:bin/
source ~/.bashrc

Code: Select all

alias ls="ls --color=auto"
PS1="\[\e[32m\][\h:\u:\w]\[\e[0m\]\n\[\e[1m\]> \[\e[0m\]"

Code: Select all

clear
Logga sedan ut och in igen.
Det jag har i rc.local är för MPlayer.

Code: Select all

echo 1024 > /proc/sys/dev/rtc/max-user-freq
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

Guest

Post by Guest » 4 December 2004, 11:29

Skulle du kunna förklara vad dom fyra olika filerna är tänka att användas till?
Vad jag förstått (spånar för mig själv här..) så är /etc/rc.d/rc.local någon sorts global motsvarighet till de filerna i ~, vilket passar mig kanon iom att jag är den enda användaren av min burk.

User avatar
JO
Posts: 12419
Joined: 1 May 2002, 02:00
Contact:

Post by JO » 4 December 2004, 11:35

De ställer in shellet för din lokala miljö.
rc.local är till för egna bootscript och liknande. Som påverkar globalt.
Registered User # 259689 http://counter.li.org
First humans moved out of caves;
then they invented writing;
now they invented intuitive GUIs;
all that remains is to return to caves.

User avatar
CroX
Posts: 16
Joined: 14 December 2004, 13:20
Location: Stockholm
Contact:

Post by CroX » 15 December 2004, 15:24

Visst borde det att på något sätt få en slags timer i prompten? För att se hur lång tid det tog att "få tillbaka" den efter senaste kommando. Är helt grön på bash-scripting dock, så alla förslag mottages. :wink:

Post Reply