Ich habe viele Artikel gelesen, die besagen, dass die offizielle Shell in FreeBSD tcsh
und in Debian ihre ist dash
. Wenn ich jedoch entweder echo $shell
(FreeBSD) oder env
in Debian bin , heißt es, dass die Shell csh
im ersten Fall oder bash
in Debian ist.
Dies ist in Neuinstallationen. Ich habe unter dem Root-Konto und einem normalen Benutzerkonto getestet. Wenn ich in FreeBSD ein neues Konto erstelle, habe ich die Wahl zwischen 3 Shells. sh
, csh
Oder tcsh
. Wenn ich keine Wahl treffe, csh
ist die Standardeinstellung für das Konto.
Was ist die offizielle Standard-Shell unter diesen Systemen? Ist es tcsh
oder csh
in FreeBSD? Ist es dash
oder bash
in Debian?
Bin ich es, der etwas falsch macht? Oder sind die Artikel und Websites falsch informiert?
Ich möchte zwei Shells lernen: eine für Debian und eine für FreeBSD, aber ich kann nicht finden, welche ich lernen soll, da nicht klar ist, welche die offizielle Shell ist.
Auch bei der Suche nach dem Shell soll ich lernen, fand ich dies: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
Ist es jemand, der nicht nur wie csh
, oder sollten wir wirklich vermeiden csh
?
Ich verwende die neuesten Debian- und FreeBSD-Versionen.
Ich fange an, mich mit all diesen Shell-Optionen zu verlaufen, sie sehen für mich alle gleich aus (mit Ausnahme der Syntax; ich meine, sie bieten alle die gleichen Möglichkeiten). Deshalb möchte ich die offizielle lernen.
Antworten:
Sie müssen die Standard-Shell für ein bestimmtes System überhaupt nicht verwenden. Sowohl Debian als auch FreeBSD bieten eine Reihe unterschiedlicher Shells, von denen die meisten oder alle auf beiden verfügbar sind, entweder vorinstalliert oder einfach zu installieren.
Achten Sie auf die Benennung. Es ist nicht ungewöhnlich
/bin/csh
, wirklich tcsh/bin/sh
zu sein oder bash oder ksh zu sein.sh
, die Bourne-Shell, ist die älteste noch gebräuchliche Unix-Shell.bash
ist wahrscheinlich das am weitesten verbreitete sh-Derivat;ksh
undzsh
sind auch weit verbreitet.csh
Die C-Shell wurde von Bill Joy für BSD entwickelt. Es verfügt über einige Funktionen, die eine bequemere interaktive Verwendung ermöglichen alssh
(oder zumindest als die alte Versionsh
, die zu dieser Zeit existierte).tcsh
wird voncsh
vielen neuen Funktionen abgeleitet und fügt viele hinzu, von denen die meisten auf die interaktive Verwendung abzielen. Wie Sie beim Lesen von csh.whynot gesehen haben , haben csh und tcsh einige Probleme, wenn es darum geht, sie für Skripte zu verwenden , anstatt interaktiv.Persönlich habe ich mit csh angefangen und dann zu tcsh gewechselt, als es verfügbar wurde. Ich benutze csh jetzt selten für Skripte, bevorzuge sh oder bash (oder Perl für etwas ziemlich Komplexes).
(Update, einige Jahre später: Seitdem habe ich tcsh aufgegeben und verwende bash jetzt interaktiv.)
Mein Rat wäre, eine einzelne Shell auszuwählen und sie gut zu lernen, indem ich sie sowohl auf FreeBSD als auch auf Debian verwende. Wenn Sie sich für tcsh entscheiden, müssen Sie es wahrscheinlich auf Debian installieren :
sudo apt-get install tcsh
. Wenn Sie sich für Bash entscheiden, weiß ich nicht, ob es auf FreeBSD vorinstalliert ist. Wenn dies nicht der Fall ist, sollte die Installation ebenso einfach sein.Es ist nicht notwendig, dieselbe Shell interaktiv und für Skripte zu verwenden, aber es kann Verwirrung vermeiden und zu einer kürzeren Lernkurve führen.
ksh ist wahrscheinlich ungefähr so mächtig wie bash, und zsh ist noch mächtiger (und hat viele Funktionen, für deren Erlernen ich mir nie die Zeit genommen habe).
Ich empfehle Bash sowohl für FreeBSD als auch für Debian (und für alle anderen Unix-ähnlichen Systeme, die Sie möglicherweise verwenden) sowie für die interaktive Verwendung und die Skripterstellung. Aber andere Entscheidungen sind absolut legitim und einige passen vielleicht besser zu Ihnen.
quelle
grep root /etc/passwd
es herausfinden. Jeder Benutzer verwendet die von ihm bevorzugte Shell und kann siechsh
gegebenenfalls ändern.