/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Shell, komandofortolker, terminal....???
Fra : klaus


Dato : 23-12-05 23:07


Kært barn har åbenbart mange navne: skal, kommandolinien, kommandofortolker,
shell, terminal, konsol .... (tror jeg har husket de fleste). Betegnelserne
dækker nogenlunde over det samme, nemlig at jeg starter en terminal eller
en konsol, skriver en kommando i kommandolinien hvorefter operativsystemets
skal/shell eller kommandofortolker afvikler kommandoen.

Er det ikke omtrent den korteste og mest præcise forklaring på disse
betegnelser? Eller er her nogen, der kan give mig en bedre og mere præcis
forklaring?

--
Mvh.
Klaus Eriksen
www.aigis.dk

 
 
Kasper Dupont (25-12-2005)
Kommentar
Fra : Kasper Dupont


Dato : 25-12-05 01:59

klaus wrote:
>
> Kært barn har åbenbart mange navne: skal, kommandolinien, kommandofortolker,
> shell, terminal, konsol .... (tror jeg har husket de fleste). Betegnelserne
> dækker nogenlunde over det samme, nemlig at jeg starter en terminal eller
> en konsol, skriver en kommando i kommandolinien hvorefter operativsystemets
> skal/shell eller kommandofortolker afvikler kommandoen.
>
> Er det ikke omtrent den korteste og mest præcise forklaring på disse
> betegnelser? Eller er her nogen, der kan give mig en bedre og mere præcis
> forklaring?

Det ser ud til, at der er en væsentlig ting, du har misforstået.
Du har rodet to forskellige begreber sammen. For det første har
vi en terminal/tty. (En konsol er en slags terminal). For det andet
har vi en shell (også kendt som en skal eller en kommandofortolker).

Når man bruger en interaktiv shell sker der det, at du har en
shell der kommunikerer med en terminal. Der er forskellige shells
at vælge imellem, f.eks. bash, tcsh, ksh, zsh. Og der er
forskellige terminaler at vælge imellem, f.eks. serielle terminaler,
Linux virtuelle terminaler (BSD har noget lignende), og en række
terminaler implementeret i user mode som f.eks. xterm, konsole og
gnome-terminal.

Dem kan du kombinere som du vil, altså kør din favoritshell i din
favoritterminal.

Shellen kommunikerer med en terminaldriver i kernen. Denne kan
enten skabe forbindelse til et stykke hardware (serielport),
en virtuel konsol som teksterminalerne i BSD og Linux eller en
pseudo tty, der bare skaber forbindelse til et andet program, som
nævnt tidligere.

Pseudo tty'er bruges også af programmer der ikke selv direkte
implementerer terminal funktionaliteten, men derimod kommunikerer
ad en eller anden vej med en terminal. Det gælder f.eks. ved
login over netværk, og ved lidt specielle programmer som f.eks.
script.

Når du starter et program fra din shell, så vil det som
udgangspunkt kommunikere med samme terminal som shellen gjorde.
I princippet kan du starte programmet direkte i terminalen uden
at have en shell. Hvis jeg skriver "xterm -e mutt" har jeg en
terminal, der kører mutt, men der er ingen shell i den terminal.

En shell kan også bruges uden terminal, f.eks. hvis den skal
afvikle et script i baggrunden.

Jeg håber det har givet en lidt bedre forståelse af, hvad en
shell og en terminal er.

--
Kasper Dupont
Note to self: Don't try to allocate
256000 pages with GFP_KERNEL on x86.

Martin Jørgensen (25-12-2005)
Kommentar
Fra : Martin Jørgensen


Dato : 25-12-05 18:03

Kasper Dupont wrote:
-snip-

> Når man bruger en interaktiv shell sker der det, at du har en
> shell der kommunikerer med en terminal. Der er forskellige shells
> at vælge imellem, f.eks. bash, tcsh, ksh, zsh. Og der er
> forskellige terminaler at vælge imellem, f.eks. serielle terminaler,
> Linux virtuelle terminaler (BSD har noget lignende), og en række
> terminaler implementeret i user mode som f.eks. xterm, konsole og
> gnome-terminal.

Hej Kasper.

Det lyder som om du har tjek på det her. Kan jeg måske bede dig om at
kigge lidt på <news:1tqv73-vhb.ln1@news.tdc.dk> og kommentere mine
spørgsmål der (i tråden: "lidt bash-ting i en mac os x-kommando prompt"
fra d.23/12)?

Der er åbenbart mange andre der også har problemer med den slags og det
ligger vist ret tæt opad dette emne...


Med venlig hilsen / Best regards
Martin Jørgensen

--
---------------------------------------------------------------------------
Home of Martin Jørgensen - http://www.martinjoergensen.dk

klaus (28-12-2005)
Kommentar
Fra : klaus


Dato : 28-12-05 00:08

Kasper Dupont wrote:

> klaus wrote:
>>
>> Kært barn har åbenbart mange navne: skal, kommandolinien,
>> kommandofortolker, shell, terminal, konsol .... (tror jeg har husket de
>> fleste). Betegnelserne dækker nogenlunde over det samme, nemlig at jeg
>> starter en terminal eller en konsol, skriver en kommando i kommandolinien
>> hvorefter operativsystemets skal/shell eller kommandofortolker afvikler
>> kommandoen.
>>
>> Er det ikke omtrent den korteste og mest præcise forklaring på disse
>> betegnelser? Eller er her nogen, der kan give mig en bedre og mere præcis
>> forklaring?
>
> Det ser ud til, at der er en væsentlig ting, du har misforstået.
> Du har rodet to forskellige begreber sammen. For det første har
> vi en terminal/tty. (En konsol er en slags terminal). For det andet
> har vi en shell (også kendt som en skal eller en kommandofortolker).
>
> Når man bruger en interaktiv shell sker der det, at du har en
> shell der kommunikerer med en terminal. Der er forskellige shells
> at vælge imellem, f.eks. bash, tcsh, ksh, zsh. Og der er
> forskellige terminaler at vælge imellem, f.eks. serielle terminaler,
> Linux virtuelle terminaler (BSD har noget lignende), og en række
> terminaler implementeret i user mode som f.eks. xterm, konsole og
> gnome-terminal.
>
> Dem kan du kombinere som du vil, altså kør din favoritshell i din
> favoritterminal.
>
> Shellen kommunikerer med en terminaldriver i kernen. Denne kan
> enten skabe forbindelse til et stykke hardware (serielport),
> en virtuel konsol som teksterminalerne i BSD og Linux eller en
> pseudo tty, der bare skaber forbindelse til et andet program, som
> nævnt tidligere.
>
> Pseudo tty'er bruges også af programmer der ikke selv direkte
> implementerer terminal funktionaliteten, men derimod kommunikerer
> ad en eller anden vej med en terminal. Det gælder f.eks. ved
> login over netværk, og ved lidt specielle programmer som f.eks.
> script.
>
> Når du starter et program fra din shell, så vil det som
> udgangspunkt kommunikere med samme terminal som shellen gjorde.
> I princippet kan du starte programmet direkte i terminalen uden
> at have en shell. Hvis jeg skriver "xterm -e mutt" har jeg en
> terminal, der kører mutt, men der er ingen shell i den terminal.
>
> En shell kan også bruges uden terminal, f.eks. hvis den skal
> afvikle et script i baggrunden.
>
> Jeg håber det har givet en lidt bedre forståelse af, hvad en
> shell og en terminal er.
>

Tak for svaret, som fik gjort begreberne lidt tydeligere.

--
Mvh.
Klaus Eriksen
www.aigis.dk

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste