Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

prompt ohne directory (ubuntu)

3 views
Skip to first unread message

Helmut Blass

unread,
Nov 27, 2011, 8:12:05 PM11/27/11
to
Hallo,
bei einem meiner user-accounts wird beim Prompt nicht das akt.
Verzeichnis angezeigt.
Auch funktioniert die History-Funktion nicht.
Ersteres soll man fixen koennen mit dem Eintrag
"$ export PS1="[\u@\h \w]\\$ "
in der .bash_profile.
Doch die .bash_profile existiert bei mir nicht, nur eine .bashrc?!?
und wenn ich die .bashrc ausführen will mit ".bashrc", kommt die
Meldung
".bashrc not found"...
Wer weiss Abhilfe?

thanx for your help, Helmut

Thomas Rachel

unread,
Nov 28, 2011, 4:53:40 AM11/28/11
to
Am 28.11.2011 02:12 schrieb Helmut Blass:

> Hallo,
> bei einem meiner user-accounts wird beim Prompt nicht das akt.
> Verzeichnis angezeigt.
> Auch funktioniert die History-Funktion nicht.
> Ersteres soll man fixen koennen mit dem Eintrag
> "$ export PS1="[\u@\h \w]\\$"
> in der .bash_profile.
> Doch die .bash_profile existiert bei mir nicht, nur eine .bashrc?!?

Könnte/sollte passen. Der Unterschied ist, daß die .bash_profile AFAIK
nur bei Login-Shells ausgeführt wird, die .bashrc hingegen immer. D.h.,
dort sollten nur Kommandos rein, die keine Ausgaben tätigen.

Da das hier nicht der Fall ist, sollte es ok sein.

> und wenn ich die .bashrc ausführen will mit ".bashrc", kommt die
> Meldung
> ".bashrc not found"...
> Wer weiss Abhilfe?

Sie ist nicht ausführbar, und selbst wenn sie es wäre, würde das nichts
bringen, da ein separater Prozeß die Variablen seines Aufrufers nicht
ändern kann.

Sie ist stattdessen zu sourcen, d.h.

source ~/.bashrc

oder einfach

. ~/.bashrc

.


HTH,

Thomas

Helmut Blass

unread,
Nov 28, 2011, 6:00:06 AM11/28/11
to
On 28 Nov., 10:53, Thomas Rachel <nutznetz-0c1b6768-bfa9-48d5-
a470-7603bd3aa...@spamschutz.glglgl.de> wrote:
> Am 28.11.2011 02:12 schrieb Helmut Blass:

>  > "$ export PS1="[\u@\h \w]\\$"
>  > in der .bash_profile.
>  > Doch die .bash_profile existiert bei mir nicht, nur eine .bashrc?!?
>
> Könnte/sollte passen. Der Unterschied ist, daß die .bash_profile AFAIK
> nur bei Login-Shells ausgeführt wird, die .bashrc hingegen immer. D.h.,
> dort sollten nur Kommandos rein, die keine Ausgaben tätigen.
>
> Da das hier nicht der Fall ist, sollte es ok sein.

Habe den export-Eintrag einmal in die .bashrc und einmal in
die .profile
gemacht (da die .bash_profile ja nicht existiert). Doch als Prompt
kommt nach erneutem Login immer nur der String
"[\u@\h \w]\\" , wird anscheinend nicht richtig interpretiert. History
ist auch keine da, beim Druecken
der Pfeil-oben-Taste erscheinen Steuerzeichen.

Gruss, Helmut

Helmut Hullen

unread,
Nov 28, 2011, 6:58:00 AM11/28/11
to
Hallo, Helmut,

Du meintest am 27.11.11:

> bei einem meiner user-accounts wird beim Prompt nicht das akt.
> Verzeichnis angezeigt.
> Auch funktioniert die History-Funktion nicht.
> Ersteres soll man fixen koennen mit dem Eintrag
> "$ export PS1="[\u@\h \w]\\$ "
> in der .bash_profile.

Was soll "$" als 1. Zeichen in der Zeile?

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

Helmut Blass

unread,
Nov 28, 2011, 7:55:38 AM11/28/11
to
On 28 Nov., 12:58, Hel...@Hullen.de (Helmut Hullen) wrote:
> Hallo, Helmut,
>
> Du meintest am 27.11.11:
>
> > bei einem meiner user-accounts wird beim Prompt nicht das akt.
> > Verzeichnis angezeigt.
> > Auch funktioniert die History-Funktion nicht.
> > Ersteres soll man fixen koennen mit dem Eintrag
> > "$ export PS1="[\u@\h \w]\\$ "
> > in der .bash_profile.
>
> Was soll "$" als 1. Zeichen in der Zeile?

Das habe ich so aus einem Linux-Forum rauskopiert.
Als das dann einen Fehler produziert hat, hab ich es weggelassen.
Die Fehlermeldung war dann weg, das Hauptproblem besteht aber
weiterhin.

Gruss, Helmut

Henning Paul

unread,
Nov 28, 2011, 8:07:24 AM11/28/11
to
Helmut Blass wrote:

> Habe den export-Eintrag einmal in die .bashrc und einmal in
> die .profile
> gemacht (da die .bash_profile ja nicht existiert). Doch als Prompt
> kommt nach erneutem Login immer nur der String
> "[\u@\h \w]\\" , wird anscheinend nicht richtig interpretiert. History
> ist auch keine da, beim Druecken
> der Pfeil-oben-Taste erscheinen Steuerzeichen.

Vermutlich verwendet dieser Account einfach keine bash als Shell,
sondern die dash.

Gruß
Henning

Lutz Golke

unread,
Nov 28, 2011, 8:38:31 AM11/28/11
to
Am 28.11.2011 02:12, schrieb Helmut Blass:
> Hallo,
> bei einem meiner user-accounts wird beim Prompt nicht das akt.
> Verzeichnis angezeigt.
> Auch funktioniert die History-Funktion nicht.
> Ersteres soll man fixen koennen mit dem Eintrag
> "$ export PS1="[\u@\h \w]\\$"
> in der .bash_profile.
> Doch die .bash_profile existiert bei mir nicht, nur eine .bashrc?!?
> und wenn ich die .bashrc ausführen will mit ".bashrc", kommt die
> Meldung
> ".bashrc not found"...

Moin,

was gibt "echo $SHELL" im Account des Users aus?
Wahrscheinlich /bin/sh oder /bin/dash, dann:

sudo chsh -s /bin/bash <username>

und den User neu einloggen lassen

hth,
Lutz

Andreas Kneib

unread,
Nov 28, 2011, 9:29:19 AM11/28/11
to
* Helmut Blass:

> Wer weiss Abhilfe?

Was sagt das Kommando "echo $0"?

Gruß,
Andreas

Helmut Blass

unread,
Nov 30, 2011, 5:33:01 AM11/30/11
to
On 28 Nov., 14:38, Lutz Golke <despam...@freenet.de> wrote:
> sudo chsh -s /bin/bash <username>
>
> und den User neu einloggen lassen

Danke! Das hat geholfen!

Gruss, Helmut

Juergen Ilse

unread,
Nov 30, 2011, 10:02:47 AM11/30/11
to
Hallo,

Thomas Rachel <nutznetz-0c1b6768-bfa9...@spamschutz.glglgl.de> wrote:
> Am 28.11.2011 02:12 schrieb Helmut Blass:
> > Hallo,
> > bei einem meiner user-accounts wird beim Prompt nicht das akt.
> > Verzeichnis angezeigt.
> > Auch funktioniert die History-Funktion nicht.
> > Ersteres soll man fixen koennen mit dem Eintrag
> > "$ export PS1="[\u@\h \w]\\$"
> > in der .bash_profile.
> > Doch die .bash_profile existiert bei mir nicht, nur eine .bashrc?!?
> Könnte/sollte passen. Der Unterschied ist, daß die .bash_profile AFAIK
> nur bei Login-Shells ausgeführt wird, die .bashrc hingegen immer. D.h.,
> dort sollten nur Kommandos rein, die keine Ausgaben tätigen.

Es ist etwas anders: die .bash_profile (oder wenn die nicht existiert,
die .profile) im $HOME des jeweiligen Benutzers wird nur von Login-shells
eingelesen (wie du bereits richtig bemerkt hast). Die .bashrc wird aber
nicht in allen shells sondern normalerweise nur in interaktiven shells
die *keine* login-shells sind abgearbeitet. Wenn man z.B. aus dem "vi"
heraus mit "!ls" ein shell-Kommando ausfuehren laesst, wird das in
einer "nicht interaktiven shell" ausgefuehrt, in .bashrc definierte
"aliases" oder "shell-funktionen" stehen dabei also *nicht* zur Verfuegung.
Ich habe mir angewoehnt, z.B. das setzen von Environment-Variablen nur in
der .bash_profile (oder .profile) zu tun, und diese dann zu exportieren.
Die muss ich nicht in jeder shell neu setzen lassen, daher kommt so etwas
bei mir *niemals* in die .bashrc. In der .abshrc stehen dann bei mir
Definitionen von "shell-funktionen" oder ggfs. auch aliases (obwohl
ich aliases in der bash so gut wie nie verwende, da mir shell-funktionen
i.d.R. doch lieber sind).

> > und wenn ich die .bashrc ausführen will mit ".bashrc", kommt die
> > Meldung
> > ".bashrc not found"...
> > Wer weiss Abhilfe?

Sowohl .profile als auch .bashrc sind normalrweise *nicht* ausfuehrbar
(das "execute-Recht" fuer die Dateien ist *nicht* gesetzt), weil das
auch nicht nootwendig ist: diese Dateien werden ggfs. von der shell
"gesourced", d.h. eingelesen und in der *aktuellen* shell ausgefuehrt,
waehrend ausfuehrbare Dateien mit Aufruf ihres Namens in einer *subshell*
ausgefuehrt werden. Da in den Dateien auch Dinge drin stehen, die man
in der aktuellen shell ausgefuehrt haben will, weil deren Wirkung sonst
mit Beendigung der subshell in der sie ausgefuehrt werden wieder verloren
waeren (z.B. setzen von Environment-Variablen, Definitionen von aliases
oder shell-funktionen), kann man sie nachtraeglich auch in die aktuell
verwendete shell einlesen (genauso, wie es beim start der shell ggfs.
automatisch passieren wuerde), indem man ". .bashrc" oder "source .bashrc"
verwendet. Die man-page zur bash kann dir das nochmal etwas ausfuehrlicher
erklaeren (auch welche Dateien wann von der shell abgearbeitet werden,
findet man dort unter dem Stuchwort "INVOCATION" erklaert, z.B. wenn die
Environment-Variable "ENV" gesetzt ist, wird statt .bashrc die Datei
genommen, deren Namen in dieser Environment-Variable steht).

> Sie ist nicht ausführbar, und selbst wenn sie es wäre, würde das nichts
> bringen, da ein separater Prozeß die Variablen seines Aufrufers nicht
> ändern kann.

So ist es.

> Sie ist stattdessen zu sourcen, d.h.
>
> source ~/.bashrc
>
> oder einfach
>
> . ~/.bashrc

Ich bevorzuge normalerweise letzteres (und das nicht nur, weil es kuerzer
ist, sondern weil eine ordinaere "Bourne-shell" auch letzteres versteht,
waehrend sie mit das Kommando "source" nicht kennt ...

Tschuess,
Juergen Ilse (jue...@usenet-verwaltung.de)
--
Ein Domainname ist nur ein Name, nicht mehr und nicht weniger.
Wer mehr hineininterpretiert, hat das Domain-Name-System nicht
verstanden.

Juergen Ilse

unread,
Nov 30, 2011, 10:08:21 AM11/30/11
to
Hallo,

Helmut Blass <helmut...@web.de> wrote:
>> Am 28.11.2011 02:12 schrieb Helmut Blass:
>>  > "$ export PS1="[\u@\h \w]\\$"
>>  > in der .bash_profile.
>>  > Doch die .bash_profile existiert bei mir nicht, nur eine .bashrc?!?
>
> Habe den export-Eintrag einmal in die .bashrc und einmal in
> die .profile gemacht (da die .bash_profile ja nicht existiert).

In der .bash_profile wuerde genuegen, wenn dort die Variable PS1 auch
exportiert wird ...

> Doch als Prompt kommt nach erneutem Login immer nur der String
> "[\u@\h \w]\\" , wird anscheinend nicht richtig interpretiert.

Dann nutzt du vermutlich keine bash (oder eine bash, die als "POSIX-shell"
gestartet wird, entweder wegen des Namens unter dem sie aufgerufen wird
oder weil die Environment-Variable "POSIXLY_CORRECT" gesetzt ist, vermutlich
aber weil du eine dash, ash oder eine andere kleinere shell als die bash
verwendest, die dann die besonderen Zeichen im Prompt nicht interpretieren
kann).

> History ist auch keine da, beim Druecken
> der Pfeil-oben-Taste erscheinen Steuerzeichen.

Kontrolliere, welche shell denn genutzt wird. Die login-shell fuer den
jeweiligen Benutzer solltest du aus dem Eintrag in der /etc/passwd
erkennen koennen. Nach deiner Beschreibung bin ich mir relativ sicher,
dass es sich *nicht* um eine bash handelt.

Christoph 'Mehdorn' Weber

unread,
Dec 2, 2011, 7:18:45 AM12/2/11
to
Hallo!

* Lutz Golke <desp...@freenet.de>:

> sudo chsh -s /bin/bash <username>

Nanu, muß man unter Ubuntu dafür root sein? Bei Debian darf man
das als ganz normaler User auch ohne sudo ausführen.

Christoph

--
Kino ohne Popcorn ist wie Salz ohne Suppe.
(Volker Birk)

Lutz Golke

unread,
Dec 2, 2011, 7:59:22 AM12/2/11
to
Am 02.12.2011 13:18, schrieb Christoph 'Mehdorn' Weber:
> Hallo!
>
> * Lutz Golke<desp...@freenet.de>:
>
>> sudo chsh -s /bin/bash<username>
>
> Nanu, muß man unter Ubuntu dafür root sein? Bei Debian darf man
> das als ganz normaler User auch ohne sudo ausführen.
>
> Christoph
>
Wenn er das für einen anderen User machen will, ja.
Ansonsten reicht natürlich "chsh -s /bin/bash"
Lutz

Juergen Ilse

unread,
Dec 2, 2011, 8:50:16 AM12/2/11
to
Hallo,

Christoph 'Mehdorn' Weber <spam...@das-mehdorn.de> wrote:
> * Lutz Golke <desp...@freenet.de>:
>> sudo chsh -s /bin/bash <username>
> Nanu, muß man unter Ubuntu dafür root sein? Bei Debian darf man
> das als ganz normaler User auch ohne sudo ausführen.

... solange chsh "setuid root" ist (sonst darf es auf die beteiligten
Daten nicht schreibend zugreifen) waere das moeglich (aber nur jeder
User fuer sich selbst oder root fuer beliebige User, was dann dieses
Programm selbst prueft). Auf einigen "gehaerteten Systemen" duerfte
dem binary aber das SetUID-Bit entfernt worden sein, womit dann das
Kommando nur noch als root funktioniert ...
0 new messages