Sie sind nicht angemeldet.

P17

Debianer

  • »P17« ist männlich

Beiträge: 68

Beruf: Linux-Administrator

  • Nachricht senden

21

30.01.2008, 18:45

Zitat

strcat schrob:
Bezweifle ich. strace -f echo $SHELL

Hmm..
Ich bin davon ausgegangen, weil es hier so beschrieben wurde:

http://www.fibel.org/linux/lfo-0.6.0/node51.html

Zitat

fibel.org
Die Standard-Shell eines Benutzers wird durch einen Eintrag in der /etc/passwd festgelegt. Der Name der Login-Shell wird in der Umgebungsvariablen SHELL gespeichert.
GNU/Linux Debian lenny/sid | kernel 2.6.25.9 | fluxbox 1.0.0
----
http://p17-linuxzone.de/

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

22

30.01.2008, 19:46

Richtig, allerdings wird bei einem echo $SHELL die /etc/passwd nicht geoeffnet.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

23

30.01.2008, 20:16

Zitat

Original von strcat
Richtig, allerdings wird bei einem echo $SHELL die /etc/passwd nicht geoeffnet.

genau, davon steht auch nichts in dem text von fibel.org. das war eine schlussfolgerung von P17.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

24

31.01.2008, 09:09

Hi Leute,
bei mir ergeben alle diese Befehle folgendes:

$ echo $SHELL
/usr/bin/tcsh
$ ps -o comm= -p "$$"
tcsh
$ ps -o args= -p "$$"
-usr/bin/tcsh
$ echo $0
/usr/bin/tcsh

Es ist also eine tcsh...

Vielleicht ne blöde Frage, aber das
bedeutet dann, dass ich ne .tcshrc
benötige??

Aber müsste dann das temporäre
Aliasen mit alias nicht trotzdem
funktionieren?

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

25

31.01.2008, 09:32

Ja. Nein.
Du brauchst eine ~/.tcshrc.
Die Aliase funktionieren nicht, weil die TCSH eine andere Syntax nutzt. Tu Dir selbst einen Gefallen und verwende eine andere Shell. Egal was fuer eine; jede Shell ist besser als die (T)CSH.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

26

31.01.2008, 09:42

Ich haette mal einen kleinen Nachtrag zu der Diskussion um die shells:

Quellcode

1
2
3
4
5
6
7
8
Z60820 @ KDNV169 [09:34:15] ~ $>echo $0
bash
Z60820 @ KDNV169 [09:34:22] ~ $>csh
[Z60820@KDNV169 ~]$ echo $0
csh
[Z60820@KDNV169 ~]$ exit
exit
Z60820 @ KDNV169 [09:34:39] ~ $>


Dieser Aufruf von echo $0 scheint also auch in einer csh zu funktionieren, mittlerweile.
for Windows problems: reboot
for Linux problems: be root

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

27

31.01.2008, 10:11

Du hast keine CSH. Das ist eine TCSH; trust me. Die "richtige" CSH kann $0 nicht abarbeiten.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

28

31.01.2008, 10:49

which csh sagt zwar, dass der befehl /usr/bin/csh ausgefuehrt wird, allerdings veweist ein man csh auf tsch (1).

hmm... ich erinnere mich sehr dunkel daran, irgendwann mal gelesen zu haben, dass die tsch, die ja eine weiterentwickelte csh ist, diese auch ersetzt hat und somit ist die originale csh nur noch auf aelteren System zu finden. Hatte ich schon so ziemlich vergessen...

Naja, egal.

Danke fuers Erinnern !
for Windows problems: reboot
for Linux problems: be root

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

29

31.01.2008, 11:35

Quellcode

1
file `which csh`

CSH ist Abfall; die kann man nicht weiterentwickeln.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

30

31.01.2008, 11:54

Ok, jetzt die nächste blöde Frage:

Wie ändere ich die shell??? Bzw.
wie kann ich eine andere shell
benutzen?
Ich rufe diese immer dadurch auf,
dass ich auf der KDE Oberfläche
mit der rechten Maustaste dann
"Konsole" aufrufe und die shell
öffnet sich...

31

31.01.2008, 12:11

du aenderst in der /etc/passwd die shell von /usr/bin/tsch auf /usr/bin/{bash, ksh, zsh} ... was immer du willst.

und natuerlich nicht ueber vi /etc/passwd sondern ueber vipw
for Windows problems: reboot
for Linux problems: be root

32

31.01.2008, 13:23

hier ist die passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
amanda:x:33:6:Amanda user:/var/lib/amanda:/bin/bash
hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
tomcat:x:91:91:Tomcat:/usr/share/tomcat5:/bin/sh
named:x:25:25:Named:/var/named:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
ais:x:39:39:openais Standards Based Cluster Framework:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailman:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ident:x:98:98::/home/ident:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
quagga:x:92:92:Quagga routing suite:/var/run/quagga:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
privoxy:x:73:73::/etc/privoxy:/sbin/nologin
netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
beaglidx:x:58:58:User for Beagle indexing:/var/cache/beagle:/sbin/nologin
tclhttpd:x:5516:5516:Tclhttpd:/var/www/tclhttpd:/bin/false

wo genau muss man das jetzt angeben?

33

31.01.2008, 13:38

die Struktur von dieser Datei laesst sich anhand der manpages in Erfahrung bringen. -> passwd (5) (<-- das bedeutet, dass die Informationen in der 5. "Sektion" der manpages zu finden ist. um diese zu lesen, gib man 5 passwd ein)

Bist du als root unterwegs?

Denn normalerweise sollte in der /etc/passwd auch alle user namen zu finden sein.

wenn du in der Konsole mal ein id ausfuehrst, was kannst du dann lesen?
for Windows problems: reboot
for Linux problems: be root

34

31.01.2008, 13:38

aha, wenn ich folgendes eingebe:

$ bash
bash-3.1$ alias
alias cd..='cd ..'
alias la='ls -al'
bash-3.1$ cd..
bash-3.1$ tcsh
$

kann ich meine eingestellten aliase
sehen...
das funkt also schon mal, jetzt muss
ich nur noch wissen, wie ich permanent
auf die bash umsteige, das mit dem
passwd hab ich nicht geschnallt...

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

35

31.01.2008, 13:39

hast du auf dem rechner überhaupt root-rechte?
ohne rootrechte kannst du die /etc/passwd sowieso nicht verändern.
die passwd sieht sowieso so aus, als würde die userverwaltung über yp, ldap oder einen ähnlichen dienst laufen, da in der passwd keine user eingetragen sind.
eine dauerhafte umstellung kann nur root machen oder du müsstest die tcsh einfach mit einer bash überladen, wenn du die benutzen darfst.
probier in der konsole mal
/bin/bash,
dann müsstest du in einer bash sein.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

36

31.01.2008, 13:40

ah, hab ich erst gerad gesehen den eintrag..
also bei id steht dann:

uid=2134(mark) gid=210(pst) groups=210(pst)

also, ich bin nicht root...

ähm, wenn ich bash eingebe dann hab ich
nicht wie in der tcsh die angabe in welchem
ordner ich mich gerade befinde, liegt das
daran, dass ich nicht permanent eine bash
habe??

also, was ich meine ist folgendes
in der tcsh steht:
[mark@arbeit home]$

bei der bash steht nur:
bash-3.1$

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mark Newcomer« (31.01.2008, 13:44)


linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

37

31.01.2008, 13:47

also ich kann in der geposteten passwd keinen user mark sehen.
folgende lösungen schlage ich vor

1. du hast root-rechte
melde dich als root an und ändere die loginshell für den user mark
chsh -s /bin/bash mark
2. du hast keine root-rechte
lege die datei .tcshrc in deinem homeverzeichnis an und trage
exec /bin/bash -l
ein. beim nächsten login als user dürfte sich die tcsh dann selbst mit der bash überladen.


wie der prompt aussieht, kann über umgebungsvariablen (PS1, PS2, PS3) eingestellt werden, diese werden in der /etc/profile eingestellt und du kannst das ebenfalls in den .bash.... dateien ändern, indem du den variablen neue werte zuweist.
nimm mal
/bin/bash -l, dann ist es eine loginshell und keine subshell in der tcsh.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »linuxerr« (31.01.2008, 13:52)


38

31.01.2008, 14:15

hier noch ein kleines beispiel, fuer die PS1 variable:

wenn du in der ~/.bashrc die folgende Zeile eintraegst,

export PS1="\u @ \h Pfad: \W \$ > "

erscheint beim naechsten anmelden die diese Zeile:

mark @ arbeit Pfad: ~ $ > _

(wobei ~ fuer das HomeVerz steht und sich aendert, jenachdem in welchen Verzeichniss du dich befindest und der _ ist der blinkende Cursor)

Es gibt ueps verschiedene Moeglichkeiten und Optionen, um die PS1 weiter anzupassen... aber dazu solltest du im Netz genuegend Infos finden.
for Windows problems: reboot
for Linux problems: be root

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

39

31.01.2008, 14:18

@bornebjoern
ja, ich denke aber, das auf dem system zumindest schon eine sinnvolle einstellung existiert, diese wird nur nicht gelesen, weil die bash die er startet ja in einer subshell läuft und keine loginshell ist. mit
/bin/bash -l
sollte sich das eigentlich erledigen. es bleibt ihm natürlich unbenommen, den prompt nachträglich zu ändern.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

40

31.01.2008, 14:57

das ist ja toll!!

vielen dank euch allen für die vielen antworten...

jetzt bin ich etwas weiter...

:-)

Thema bewerten