Benutzer übernimmt eigene alias nicht

krip48

Active Member
hallo...
ich wollte meinem user ein paar alias einrichten jedoch übernimmt er das nicht. ich benutze die standart shell"/bin/sh". zu erst habe ich das alias in dem home verzeichnis in die datei "~/.cshrc" eingetragen. nach einem neuen login ist aber keine änderung. dann hab ich das alias auch in "/etc/csh.cshrc" und in "/usr/share/skel/dot.cshrc" eingetragen doch auch das bringt kein erfolg.

Was mach ich falsch??:grumble:
 
also ich verwende die csh ja nur zum einloggen, dann wechsle ich in die bash aber bei mir liegt irgendeine default config drin, die hat ein paar Aliases vom Werk schon eingestellt, das sieht so aus:

vi .cshrc

alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lA



Und die funktionieren bei mir auch.

Edit:
Ach, ich hab FreeBSD 6.2-RELEASE-p8 bei mir am rennen.
 
Danke schön, hat geklappt. Wo bekomme ich eine beschreibung für die .profile? würde gerne auch das "set filec" einrichten. Und gleich noch die frage. ist es besser eine andere shell zu benutzen oder ist das reine geschmackssache?

hab noch vergessen zu fragen. warum geht es den bei root das die alias in der .cshrc übernommen werden jedoch bei einem user nicht...
 
..... ist es besser eine andere shell zu benutzen oder ist das reine geschmackssache?
reine Geschmakssache

Ich persönlich verwende nur die "/bin/sh" für Scripte, da diese Shell auf jedem Unix drauf ist.
Die "bash" benutze ich aus Gewohnheit.

hab noch vergessen zu fragen. warum geht es den bei root das die alias in der .cshrc übernommen werden jedoch bei einem user nicht...

Das hängt ganz davon ab welche Shell der User benutzt.
Versuch mal als User "csh" einzutippen und dann probier nochmal Deine Aliases aus, wenn das geht hat der User eine andere Shell als Defaultshell.
 
Danke schön, hat geklappt. Wo bekomme ich eine beschreibung für die .profile? ...

man sh

alias [name[=string] ...]
If name=string is specified, the shell defines the alias name
with value string. If just name is specified, the value of the
alias name is printed. With no arguments, the alias built-in
command prints the names and values of all defined aliases (see
unalias). Alias values are written with appropriate quoting so
that they are suitable for re-input to the shell. Also see the
Aliases subsection.
 
OK, ein wenig mehr Theorie: Es gibt da draußen grundsätzlich zwei große Familien von Shells. Einmal ist dies die Bourne-Familie, welche auf die alte Bourne-Shell zurückgeht, die sich wiederrum stark an der originalen Unixshell orientierte. Die Bourne-Familie ist heute die verbreitetere. Auffällig ist für sie, dass als Konfugurationsdatei die ~/.profile nutzen und dass man Variablen per "export" setzt. Bekannte angehörige der Bournefamilie sind:
- Die klassische sh
- Bourne again Shell
- Korn Shell
- Public Domain Korn Shell (die Standardshell unter OpenBSD afaik)
- ZSH
- ASH (in einer weiterentwickelten Variante in FreeBSD /bin/sh)
Shellscripte werden heute normalerweise in Bournesyntax geschrieben, außerdem ist die von POSIX geforderte Minimalshell eine Shell der Bournefamilie.

Die andere Familie sind die C-Shells. Diese wurden in den 70ern in Berkeley zusammen mit BSD entwickelt, mit dem Ziel ein Interface zu bieten welches sich an der Programmiersprache C orientiert. Davon ist heute allerdings nicht mehr viel nach. Anfang der 80er erweiterte man die klassische C-Shell und Funktionen aus dem Betriebssystem TENEX, dies war dann die TENEX C-Shell oder tcsh.
Heute findet man in der freien Wildbahn fast ausschließlich verschiedene Versionen der tcsh. Je nach Aufrufkommando (csh gegen tcsh) verhält diese sich entweder wie die csh oder die tcsh. Die C-Familie ist Teil deutlich anders als die Bourneshells, so hat sie andere Startdateien (~/.cshrc und ~/.tcshrc), Variablen werden mit "setenv" gesetzt und weiteres.
 
Hab jetzt meinem user eine neue shell zugewiesen.
Code:
$chsh -s /bin/csh
somit kann ich jetzt die ~/.cshrc nutzen. Vielen dank für eure hilfe und eure info's.

Zufall?! hehehe grade als ich meine shell für den benutzer geändert habe und mich neu eingelogt habe kommt eine info von "fortune" das man variablen für csh und tcsh in die .login und für bash, sh, ksh und zsh ind die .profile schreiben kann.
 
Last edited:
Man sollte heutzutage keine csh mehr benutzen, nur noch die tcsh. Und die tcsh kann man auch so konfigurieren, dass sie einem einen praktischen Prompt mit Ausgabe des Arbeitsverzeichnisses liefert und Autovervollständigung (Tabulatortaste) lässt sich auch aktivieren.
 
tcsh und csh sind Hardlinks. Je nach Aufruf wird nur eine andere Konfiguration gestartet.
 
Man sollte heutzutage keine csh mehr benutzen, nur noch die tcsh. Und die tcsh kann man auch so konfigurieren, dass sie einem einen praktischen Prompt mit Ausgabe des Arbeitsverzeichnisses liefert und Autovervollständigung (Tabulatortaste) lässt sich auch aktivieren.
Die csh unter FreeBSD ist die tcsh.
 
Was ist denn der grund warum man lieber die tcsh anstatt csh nehemen sollte. dachte das ist nur eine geschmackssache!!:confused:

hab grade versucht mit der beschreibung Umlaute mit tcsh (4.1.1. tcsh) ein zu stellen. leider werden die umlaute immer noch nicht angezeigt. was mach ich da wieder falsch??
 
Last edited:
Natürlich ist es am Ende Geschmackssache. Für die tcsh spricht nur, dass sie alles kann was auch die csh kann, dabei aber noch ein wenig mehr und vor allem deutlich mehr Konfigurationsoptionen bietet :)

Zu den Umlauten, ich glaube die Anleitung ist recht kompliziert. Eigentlich musst du nur folgendes machen:
Code:
font8x14="iso15-8x14"
font8x16="iso15-8x16"
font8x8="iso15-8x8"
keymap="german.iso"
in die rc.conf. Damit stellst du die Schriftart auf ein ISO-8859-15 ein. Ohne diese werden die Umlaute nicht dargestellt werden. Außerdem wird die Keymap ISO-German eingestellt, für die heute gängigen 105-Tasten-Keyboards ist dies die richtige. Anschließend müssen wir noch die Umgebungsvariablen korrekt setzen, sodass de_DE.iso8859-15 als Standardsprache eingestellt wird. Dazu in die ~/.login_conf - oder systemweit in die /etc/login.conf - einfach
Code:
me:\
    :charset=ISO-8859-15:\
    :mm_charset=ISO-8859-15:\
    :lang=de_DE.ISO8859-15:\
    :lang=de_DE.ISO8859-15:\
    :lc_all=de_DE.ISO8859-15:\
    :lc_collate=de_DE.ISO8859-15:\
    :lc_ctype=de_DE.ISO8859-15:\
    :lc_messages=de_DE.ISO8859-15:\
    :lc_monetary=de_DE.ISO8859-15:\
    :lc_numeric=de_DE.ISO8859-15:\
    :lc_time=de_DE.ISO8859-15:
Bei systemweiter Einstellung statt me:\ natürlich die entsprechende Klasse auswählen.
 
Last edited:
Danke aber das klappt leider auch nicht. muß ich da noch was im kernel einfügen oder was bei den ttys verändern? hab die einträge vorgenommen .in der rc.conf , ~/.login_conf und systemweit in die /etc/login.conf.
 
Hast du nach dem Ändern der Datei login.conf die Datenbank neu erstellt?

Code:
cap_mkdb /etc/login.conf

mousaka
 
ja! dann hab ich noch mal den kernel neu gebaut. ich hatte da was raus genommen. dachte vielleicht liegt es daran.
Code:
#options	ATKBD_DFLT_KEYMAP
#makeoptions	ATKBD_DFLT_KEYMAP="german.cp850"
#options	SC_DFLT_FONT
#makeoptions	SC_DFLT_FONT=cp850
das war es aber auch nicht. Im KDE beim Terminal stehen Umlaute da. In der standart konsole ohne Xorg aber nicht.
 
Back
Top