Interaktywne shele, nieinteraktywne logujace i nielogujące - masakra

Tutaj można zadać pytanie, jeśli Linuksa widzi się pierwszy raz w życiu ;)
Mates
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 01 mar 2017, 20:40
Płeć: Mężczyzna

Interaktywne shele, nieinteraktywne logujace i nielogujące - masakra

Post autor: Mates »

Czy ktoś moze ludzkim językiem wyjaśnić na czym polegają różnice w shellach - co podręcznik czy manual to inna definicja. Ci ludzie chyba sami się gubią.

Np. wdł książki Handbook of debian (2015) shele dzielą się na
-login shell a te moga być dwojakiego rodzaju - interaktywne i nie interaktywne
- non login shell - i te tak samo mogą być dwojakiego rodzaju.

Wdł innej książki dzieli ona shele tylko na dwa modele : interaktywne non-login oraz nie ineraktywne - i to wszystko.

login shell to z różnych źródeł chyba jest zgoda - taki do którego trzeba się zalogować (czyli passwd wybór shella i ta procedura) - ale też jest to shell do ktorego dostac się mozna przez komendę $bash --login - problem w tym że w konsoli nie muszę się wcale tu zalogować. więc o co tu biega? Czy to nie jest bardziej subshell?

W debianie wdł ksiażki debiana bash leci przez bash.bashrc ktory jest inicjujący dla interaktywnych sheli (no i już nie rozumiem) i etc/profile dla login shelli . Więc tu wynika że interaktywne nie mogą być typu login shell, a wcześniej piszą ze moga być...też nie rozumiem.
bash, the standard shell, uses the /etc/bash.bashrc initialization script for “interactive” shells, and /etc/profile for “login” shells.
A jak nie używam akurat basha to z czego jest interactive?


Pytanie trzecie kto wytłumaczy interaktywne i nie interaktywne shelle z login shell i non-login shell ? Tzn ktoś kto faktycznie rozumie temat - kolejna regułka mi nie potrzebna.

NIe jest to pytanie teoretyczne bo jak widać skrypty startowe (profile/bashrc) rozróżniają te shelle.
Dotychczas nigdy się nad tym nie zastanawiałem wpieprzałem wszystkie zmiany ew. w ~/.bashrc i tyle
Mates
Piegowaty Guziec
Piegowaty Guziec
Posty: 18
Rejestracja: 01 mar 2017, 20:40
Płeć: Mężczyzna

Re: Interaktywne shele, nieinteraktywne logujace i nielogujące - masakra

Post autor: Mates »

ciężko coś ludzie uzyskać od was pomoc i to już kolejny raz.

Login shell - to jakikolwiek shell uruchomiony przez system logowania - inicjuje terminal i są tu wczytywane podstawowe ustawienia odnośnie shella z pliku /etc/profile (bash, bourne). Ustawienia z profile są wczytywane jednorazowo - tylko po zalogowaniu się. Zmieniając coś w profile trzeba sie przelogować aby widzieć zmiany.

Interaktywny shell - to taki ktory przyjmuje input (nasze komendy) i zwraca wynik - czyli wchodzi z nami w "interakcję".
Tym samym login shell jest jednocześnie interaktywnym (bo po co po zalogowaniu się nie miec możliwości klepania komend)

Nie interaktywny shell to zawsze taki który nie potrzebuje z nami "kontaktu" często wywoływany przez dowolny skrypt z komendami zktorymi sobie radzi bez naszej pomocy.

Non-login shell - to taki ktory startujesz albo manualnie z innego działającego już shella - tzw subshell (np wklepując $ bash), lub przez otwarcie okna terminala w iksach gdzie już jesteś zalogowany. Nie czyta plików .profile a jedynie moze wczytać (i tak jest w debianach) /etc/bashrc (tudzież ~./bashrc)
Tym samym zmieniając coś w bashrc zobaczymy zmiany od razu po uruchomieniu nowego non login shella.

A więc zdanie " the standard shell, uses the /etc/bash.bashrc initialization script for “interactive” shells, and /etc/profile for “login” shells.
wdł mnie jest mylące - powinna pierwsza część brzmieć dla ścisłości "for "interactive -non login shells".
Niestety tak jest opisany właśnie skrypt - potęgując chaos.
ODPOWIEDZ

Wróć do „Przedszkole Linuksa”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 69 gości