Du bruger måske Linux-skallen hver dag, men hvordan du bruger den, bestemmer meget om dens adfærd. Du har måske hørt om forskellen mellem en login-shell og en ikke-login-shell. Og selvom det måske ikke er så indlysende i starten, er der flere forskelle mellem de to skaltyper.
Her er alt, hvad du behøver at vide om login-skaller på Linux.
Hvad er en login-shell?
En login-shell er præcis det: en shell, der starter, når du logger direkte på Linux-maskinen. Når du logger på dit system fra en virtuel konsol eller over SSH, den shell der starter er en login shell.
Hvis du derimod starter et terminalvindue, er denne shell-session typisk ikke en login-shell. Det samme gælder, når du starter en subshell ved at skrive navnet på skallen på kommandolinjen. Denne skal er blot en interaktiv skal.
Den vigtigste forskel mellem de to er i skallens opførsel. Skallen vil ofte kun læse bestemte filer ved opstart. Bash vil læse /etc/profile, derefter .bash_profile, .bash_login, og .profilfiler kun i din hjemmemappe, hvis den er påberåbt som en login-shell.
Sådan fortæller du, om du bruger en login-shell
Det er nemt at se, om du kører en login-shell eller ej. Hvis du har startet din shell fra desktop-terminalapplikationen, er du højst sandsynligt det ikke, medmindre du er i et andet terminalmiljø som WSL eller macOS-terminalen.
Du kan kontrollere, om du kører en login-shell med denne kommando;
ekko$0
Hvis du bruger en login shell, vil du se navnet på shellen efter en bindestreg (-). Hvis ikke, vil du kun se navnet på skallen.
Indstilling af din login-shell på Linux
For at indstille din login shell, brug chsh kommandoen. Du kan indstille din login-shell til den absolutte sti for enhver shell, der er angivet i /etc/shells.
For at starte en shell som en login shell, kan du normalt bruge en kommandolinjeindstilling. For eksempel for at starte Bash som en login-shell:
bash --Log på
Hvis du bruger et Linux-skrivebord, kan du ofte angive, hvilken kommando der skal køres, når du åbner et terminalvindue. Hvis du vil have din shell til at køre som en login shell, kan du sætte den mulighed der.
Nu ved du om login-skaller
Du bør nu forstå, hvad login-skaller er. At starte din shell, enten direkte fra konsollen eller fra et terminalvindue, vil afgøre, hvordan den vil opføre sig.
Hvis du er ny til Linux, kan du undre dig over, hvilken shell der er bedst. Du kan holde dig til standard Bash, eller du kan udforske de særlige funktioner, der tilbydes af alternative skaller som Fish eller Zsh.