Pumbaa80
Anmeldungsdatum: 5. März 2007
Beiträge: 2130
Wohnort: Residenz des Rechts
|
Ich habe das bereits im Thread "Alternativ-Programme für die Shell" angesprochen, aber nun ist mir aufgefallen, dass das Problem etwas tiefer geht: Im Wiki wird nicht vernünftig zwischen Shell und Terminal unterschieden. Da kommen so Sätze wie "Ein Terminal, auch Shell genannt,..." oder "Shell, auch Terminal genannt". Das ist gelinde gesagt nicht ganz richtig. Die Bash ist kein Terminal und xterm ist keine Shell. Genausowenig ist ein XServer eine Desktopoberfläche. Ganz wirr finde ich so Sachen wie "Shells sind Programme für die Shell", wie es in Shell/Anwendungen suggeriert wird. Außerdem frage ich mich, was wohl mit Shell-Befehlen gemeint ist? Da werden Bash-Builtins wild mit Standard-Systembefehlen und sonstigen Anwendungen gemischt. Wo ist der Zusammenhang mit der Shell? Und warum überhaupt "die Shell"? Schließlich gibt es mehrere... Wenn man ganz genau sein möchte, dann muss man sogar "Terminalemulation" statt "Terminal" sagen, aber das ist nun wieder etwas übertrieben. Wichtig finde ich die Unterscheidung Shell (d.h. Kommandozeileninterpreter) ←> Terminal(emulator) / Konsole.
|
Chrissss
Anmeldungsdatum: 31. August 2005
Beiträge: 37971
|
Meine Nomenklatur Shell: Bash, fish, zsh und Co. Terminal: xterm, gnome-terminal, konsole und Co. Virtuelle Konsole: Strg+alt+f1 bis f6
|
mgraesslin
Anmeldungsdatum: 8. November 2006
Beiträge: 9183
|
Ich geb dir Recht, aber ich glaube es wird ein Kampf gegen die Windmühlen. IMHO kennen die wenigsten den Unterschied und sie benutzen die Ausdrücke synonym. Das wird sich immer wieder einschleichen... Trotzdem sollten wir in den wichtigen Artikeln auf Chrisss Nomenklatur umsteigen. Muss ich sagen, ist so perfekt 😉
|
rocco_storm
Anmeldungsdatum: 3. November 2005
Beiträge: 1811
Wohnort: Ruhrpott
|
martingr hat geschrieben: Trotzdem sollten wir in den wichtigen Artikeln auf Chrisss Nomenklatur umsteigen. Muss ich sagen, ist so perfekt 😉
Da mir die Unterscheidung nie so klar war mal eine Frage: Was ist richtig:
um dein System komplett zu zerstören gebe
sudo rm -r / in ein Terminal ein um dein System komplett zu zerstören gebe
sudo rm -r / in eine Virtuelle Konsole ein um dein System komplett zu zerstören gebe
sudo rm -r / in eine Shell ein
Für mich kann man, auch wenn Shell, Terminal und Virtuelle Konsole nicht das gleiche sind, hier nicht unterscheiden und alle Begriffe Synonym benutzen. Oder nicht? Und wenn ja, wie soll man das handhaben?
|
RvD
Anmeldungsdatum: 26. Mai 2006
Beiträge: 2870
|
Als neutraler Überbegriff für Anleitungen ist Kommandozeile wohl geeignet.
|
mgraesslin
Anmeldungsdatum: 8. November 2006
Beiträge: 9183
|
rocco_storm hat geschrieben: Für mich kann man, auch wenn Shell, Terminal und Virtuelle Konsole nicht das gleiche sind, hier nicht unterscheiden und alle Begriffe Synonym benutzen.
Ich hoffe ich schreib jetzt keinen Quatsch 😉 Richtig ist IMHO die Shell Variante. In einem Terminal und virtuellen Konsole läuft ja auch wieder eine Shell womit man es auch wieder dort eingibt. Ich würde Terminal/virtuelle Konsole jetzt mal als "Containment" für Shells bezeichnen. Wie das ganze zu handhaben wäre, tja keine Ahnung 😀
|
Pumbaa80
(Themenstarter)
Anmeldungsdatum: 5. März 2007
Beiträge: 2130
Wohnort: Residenz des Rechts
|
rocco_storm hat geschrieben: Für mich kann man, auch wenn Shell, Terminal und Virtuelle Konsole nicht das gleiche sind, hier nicht unterscheiden und alle Begriffe Synonym benutzen. Oder nicht?
In diesem Fall ist es nicht so wild, da in einem Terminal zu 99% auch eine Shell läuft. Die Sprechweise "in ein Terminal eingeben" ist also nicht wirklich doppeldeutig - auch wenn in einem Terminal alles mögliche laufen kann (z.B. moc). "in die virtuelle Konsole eingeben" sollte man nur in Ausnahmefällen verwenden, z.B. bei Home umziehen martingr hat geschrieben: Trotzdem sollten wir in den wichtigen Artikeln auf Chrisss Nomenklatur umsteigen. Muss ich sagen, ist so perfekt 😉
Genau so ist es. Die Problematik: Eigentlich muss man die ganze Seitenstruktur umwurschteln, weil schon die Adresse http://wiki.ubuntuusers.de/Shell/$foo per se sehr oft falsch ist.
|
detructor15
Anmeldungsdatum: 16. Januar 2007
Beiträge: 5733
|
*total verwirrt ist und wieder abhau* *argh* 😲 (ihr Moderatoren/Supporter seid unfair, immer wenn euch langweilig ist müsst ihr ahnungslose Nutzer verwirren)
|
rocco_storm
Anmeldungsdatum: 3. November 2005
Beiträge: 1811
Wohnort: Ruhrpott
|
Okay, ich habe es jetzt so in etwa verstanden. Vielen Dank dafür. Ich wäre aber auf jeden Fall für einen Artikel, der die Sachlage einmal ausführlich und gut erklärt.
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Die Verwirrung, die da an einigen Stellen zu Tage kommt, kommt wohl durch durch den Versuch zwischen Terminalemulation und X-Terminalemulation zu unterscheiden. Wobei dann Shell mit Terminal und Terminal mit X-Terminal gleichgesetzt wird. Lustig wird es dann bei der Konsole, mit der Wahlweise eine Shell, ein Terminal oder der X-Terminal von KDE gemeint ist. Die Bezeichnungs-Regeln von Chrissss sind vielleicht am deutlichsten, denn andere (nicht-X-) Terminals als die "virtuellen Konsolen" benutzt man wohl er selten. Auch "Kommandozeile" finde ich als Überbegriff gut (ausgehend davon, dass eine Shell als Interpreter Standard ist).
Da werden Bash-Builtins wild mit Standard-Systembefehlen und sonstigen Anwendungen gemischt. Wo ist der Zusammenhang mit der Shell?
In einer Python-Konsole wirst du mit den dort aufgeführten Befehlen nichts anfangen können. Solche Seiten wachsen mit der Zeit und sie werden mit der Zeit verbessert oder auch nicht. Wenn du das machen möchtest, nur zu. Eine Unterscheidung nach builtins und GNU-Tools ist sicherlich sinnvoll, aber schwierig. Um nur ein Beispiel zu nennen: echo gibt es als GNU-Tool und als Shell-Build-In (in der Zsh).
Und warum überhaupt "die Shell"? Schließlich gibt es mehrere
"Eine Shell..." beginnt der Artikel Shell und es werden ja auch Beispiele verschiedener Shells genannt. Cross-Zitat:
Ich kann z.B. in KDE (Konsole) einen Nano oder sonstwas im Terminal starten, ohne dass eine Shell-Instanz benötigt wird.
Starte mal eine KDE-Konsole und gib dort "echo $0" ein. Dann wirst du sehen, die KDE-Konsole ist nicht ihr eigener Kommandozeileninterpreter. Eine Shell als Kommandozeileninterpreter ist nunmal der Standard auf unixartigen Systemen. Summa summarum:
Um eine Shell "hello world!" ausgeben zu lassen, muss man den Befehl
echo "hello world!"
auf der Kommandozeile, also in einem Terminal oder auf einer virtuellen Konsole absetzten.
Eigentlich muss man die ganze Seitenstruktur umwurschteln
Das ist kein Problem, wenn eine neue Struktur feststeht. Aber mehrmals umwursteln, fände ich ärgerlich, also überlegt euch bitte was, was haltbar ist. Schließlich müssen auch alle entsprechenden (Back-)Links korrigiert werden. Gruß, cornix
|
adun
Anmeldungsdatum: 29. März 2005
Beiträge: 8606
|
@Rotbart Nicht wirklich. Auch wenn man davon ausgehen kann, dass jemand, der seine Standardshell ändern kann, weiß das nach 'Kommandozeile' vermutlich Bash-Syntax kommt und er diese für seine Shell abändern muss, so ist das trotzdem unterbestimmt. Gerade die vielen Builtins der Bash können nervig sein, wenn man plötzlich die "richtigen" Programme benutzt.
|
Pumbaa80
(Themenstarter)
Anmeldungsdatum: 5. März 2007
Beiträge: 2130
Wohnort: Residenz des Rechts
|
cornix hat geschrieben: Cross-Zitat: > Ich kann z.B. in KDE (Konsole) einen Nano oder sonstwas im Terminal starten, ohne dass eine Shell-Instanz benötigt wird. Starte mal eine KDE-Konsole und gib dort "echo $0" ein. Dann wirst du sehen, die KDE-Konsole ist nicht ihr eigener Kommandozeileninterpreter. Eine Shell als Kommandozeileninterpreter ist nunmal der Standard auf unixartigen Systemen.
Klar, da hast du mich missverstanden. ☺ Ich meinte: Alt-F2 und konsole -e nano Dann läuft eben keine Shell in der Konsole, wie man mit pstree sieht. Nachtrag: Das geht natürlich auch mit gnome-terminal -e nano Nachtrag2: rocco_storm hat geschrieben: Ich wäre aber auf jeden Fall für einen Artikel, der die Sachlage einmal ausführlich und gut erklärt.
Ich finde, bei Wikipedia ist es gut erklärt: Unix-Shell, Terminalemulation
...sind Unix-Shells gewöhnliche Anwenderprogramme... Nach dem Einloggen ist die Shell das Programm, das vom login-Prozess gestartet wird und Kommandos entgegennimmt. Mit einer Terminalemulation wird eine textorientierte Ein- und Ausgabeschnittstelle, ein Terminal, emuliert
|
RvD
Anmeldungsdatum: 26. Mai 2006
Beiträge: 2870
|
adun hat geschrieben: Nicht wirklich.
Kommandozeile ist schon der neutrale Überbegriff. 😉 adun hat geschrieben: Auch wenn man davon ausgehen kann, dass jemand, der seine Standardshell ändern kann, weiß das nach 'Kommandozeile' vermutlich Bash-Syntax kommt und er diese für seine Shell abändern muss, so ist das trotzdem unterbestimmt.
Jemand, der seine Standardshell ändert sollte nicht einfach blind irgendwelche Skripte starten, sondern die sich vorher anschauen. 😛
|
adun
Anmeldungsdatum: 29. März 2005
Beiträge: 8606
|
Ist halt blöd, wenn Berthold Brunsheimer zsh benutzt und dann im Wiki editiert, weil da steht ja 'Kommandozeile' und Franki Fix das per c&p übernimmt. Ich hab leider selber schon Tipps gegeben, die mit der Bash nicht funktionieren 😳 (gerade so Sachen wie " anstelle von ')
|
Newubunti
Anmeldungsdatum: 16. Februar 2008
Beiträge: 5149
|
Pumbaa80 hat geschrieben: Wichtig finde ich die Unterscheidung Shell (d.h. Kommandozeileninterpreter) ←> Terminal(emulator) / Konsole.
Einerseits bin ich zwar auch für begriffliche Unterscheidungen, andererseits möge mir mal einer den Unterschied erklären. Zur shell hast Du ja einen Link gebracht, aber wie erklärt man die Konsole bzw. wie setzt man sie in der Erklärung von der Shell ab, also so, dass die ganze Unterscheiderei am Ende auch etwas bringt? Gut, auf der Konsole läuft (meist) eine Shell. Aber wo liegt der Unterschied, wenn keine Shell auf der Konsole läuft? Gruß, Martin
|