Martin Jørgensen wrote:
>
> Jeg skal lige have det på det rene: Forskellen er ikke blot om den
> spørger om login og password?
Nej. En shell spørger ikke om login og password. Når du
logger ind via en tekst konsol eller via telnet køres
login programmet, som spørger om den slags. Når det har
verificeret brugernavn og password skifter det UID og
starter derefter en login shell. Men man kan til enhver
tid selv starte en login shell (hvis man skulle have
den slags lyster).
>
> Hvordan ved jeg om jeg kører en login-shell eller ej, (fordi jeg tror i
> det ene tilfælde kører jeg en login-shell men ikke i det andet (man må
> kunne skrive en eller anden kommando)?
Hvis du bruger bash er det nemmeste nok at skrive
"shopt login_shell". (Man kan bruge shopt uden
parametre for at se flere interessante indstillinger).
>
> -snip-
> > Desværre kan man nu til dags logge ind i et grafisk
> > miljø og køre en shell uden der på noget tidspunkt har
> > været en login shell. Dermed får man ikke opsætningen
> > med.
>
> Altså, opsætningen fra /etc/profile og /etc/bashrc eller hvilke filer
> taler vi om?
/etc/profile afvikles i login shells. Så vidt jeg
husker afvikles /etc/profile før ~/.bash_profile.
/etc/bashrc er noget som nogle distributører har fundet
på (Red Hat?), den vil bash aldrig køre af sig selv.
Men du har sikkert en ~/.bashrc, der kalder /etc/bashrc.
>
> Altså, mit problem: Min "almindelige" shell har den path som er i
> /etc/profile. Mit gæt: Derfor er det en login-shell, korrekt?
Eller også er det omvendt. Den har PATH fra /etc/profile fordi
det er en login shell.
>
> Min X11-bash-shell har ikke den path der er i /etc/profile. Derfor er
> det ikke en login-shell, korrekt?
Igen, du bytter om på årsag og virkning.
>
> Min /etc/bashrc ser således ud:
> ------
> # System-wide .bashrc file for interactive bash(1) shells.
> if [ -n "$PS1" ]; then PS1='\h:\w \u\$ '; fi
> # Make bash check it's window size after a process completes
> shopt -s checkwinsize
> ------
> Jeg kan ikke se at ovenstående er nødvendigt - hvorfor ser den mon
> overhovedet sådan ud og hvad checker den for?
Den ser fornuftig nok ud. Men det er slet ikke
/etc/bashrc, der er interessant.
>
> Klart. Øøh, og dette er relevant for en ikke-login-shell som ikke læser
> /etc-filerne, men kun ~/.profile og ~/.bashrc, korrekt?
Jeg har ikke selv nogen ~/.profile. Men er det ikke en
som bash kun bruger, hvis den ikke kan finde en
~/.bash_profile?
>
> -snip-
>
> giver gælder
> > kun for login shells. For en ikke login shell bruger den
> > ~/.bashrc.
>
> Jeg får:
>
> $ cat ~/.bash_rc
> cat: /Users/mac/.bash_rc: No such file or directory
Det kan være det ville hjælpe, hvis du stavede det
rigtigt.
--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.