1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

zsh - Path aus bash - wie?

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Bier, 29.08.07.

  1. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Moin!

    Ich habe aus Liebhaberei am Mac nun vor zukünftig zsh zu nutzen. Nun, das klappt out of the box, schon mal schön. Nach dem Konfigurieren als Standardshell per Netinfo-Manager habe ich nun das Problem, dass die Path Angaben aus meiner .profile der zsh fehlen.

    Wie kann ich diese nun in die zsh exportieren?

    Gruß,
    Bier
     
  2. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    okay, einfach in die zshrc kleistern, Danke :p
     
  3. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Mal abgesehen davon, daß man die eigene Shell bitteschön nicht per Netinfo Manager ändern sollte...
    Dazu gibt es immerhin chsh (Change Shell). Außerdem kann man die Shell direkt im Terminal.app ändern (wenn man dort eine andere als in X11 verwenden möchte).

    Wirf mal einen Blick in die Shell Initialisierung der zsh! nicht, daß Du Dir inkompatible Initialisierungen in die ~/.profile einbaust. Diese Datei wird nämlich auch von der bash und csh/tcsh verwendet die sich in der angewandten Syntax teilweise deutlich unterscheiden.

    Aus Neugierde: Was konkret erwartest/erhoffst Du Dir von der zsh? Welche Shell(s) hast Du bisher verwendet?
    Gruß Pepi
     
  4. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Rein interessehalber: Warum nicht per NetInfo Manager?
     
  5. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Da hänge ich mich dran: warum nicht NetInfo. Bis jetzt Nullprobleme!

    Ich habe schon viele shells durch: ash, korn-shell, tenex-c... je nachdem, was für ein system es war.

    Für zsh:

    saugute Dokumentation: nur wenige sachen sind so gut wie zsh dokumentiert:
    http://www.michael-prokop.at/computer/tools_zsh_liebhaber.html

    viele funktionale add ins:
    Variablendeklaration
    Komplettierung zwischen matches via Tab mehrfach = schneller
    partielle Dateipfad Komplettierung :) = sehr viel schneller (Tippfaulheit)
    irgendwelche Korrektur Funktionen... keine Ahnung

    Code:
     wikide () { ${=BROWSER} http://de.wikipedia.org/wiki/"${(C)*}" }
    
    Quelle: http://www.michael-prokop.at/computer/config/.zshrc

    So Sachen rocken.
    Was spricht da noch für bash. Selbst vom Aussehen her:

    Code:
    bier@host ~
    
    Name@hostname PFAD

    Was willste mit ner Bash? a) kann die das alles nicht, b) muckt die rum c) ist zsh much more leet :)

    chsh benötigt allerdings noch ne .profile... die ich eh nicht pflege. Mag ja sein, dass bash als Standard genommen wird, aber Pfade werde ich gerade noch so manuell da reinsetzen können. Das ne 10 Sekunden Sache mit vi.
     
  6. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Weil die Begriffe experimentieren und Netinfo Manager definitiv nicht zusammenpassen sofern man nicht ein explizites dem Untergang geweihtes Testsystem nutzt. Im Netinfo Manager kann man nebenbei einfach zu schnell zu viel zerstören. Ich möchte nicht einem unbekannten User eine geladene, entsicherte Gatling Gun in die Finger geben. Ich hab selbst schon Dinge mit Netinfo getan von denen die Apple Entwickler selbst gesagt haben, daß es unmöglich ist. Aber ich würde das keinem anderen User/Admin zumuten oder empfehlen wollen. (Ich hab' nicht gesagt, daß es nicht funktioniert. :))

    Versteht mich nicht falsch, ich will die bash nicht verteidigen. Ich bin selbst mit einer sh und csh groß geworden und habe erst einiges nachdem die bash unter Mac OS X als default erklärt wurde gewechselt. Ich habe historisch auch schon mit so einigem an Shells gearbeitet, nur eben konkret noch nicht mit der zsh, deswegen hat mich interessiert was konkret für diese Shell spricht.

    Von den genannten Dingen sind mir noch nicht alle ganz klar, bzw. so wie ich sie verstehe, verwende ich das auch unter der bash momentan so.

    Explizite Variablendeklaration ist unter bash nicht notwendig, aber möglich.
    Komplettierung von Matches habe ich in der bash ebenfalls, ebenso partielle Pfadkomplettierung bis zu dem Buchstaben wo unterschieden werden muß.
    Bei irgendwelche Korrekturfunktionen kann ich genauso mal schwammig ja sagen, wobei das mehr eine Frage der Terminalemulation ist als die der Shell. (Meiner Ansicht nach.)
    So Dinge wie eine Wikipedia Suche kann ich mir in der bash ebenso mit einem Alias oder einer Function bauen, das geht aber wohl in jeder Shell.
    Dein Prompt ist weder beeindruckend noch 1337. :) Auch das geht in jeder Shell, das ist auch mehr Geschmackssache was man alles in ein Prompt verpacken will.

    Wie gesagt, bisher ist jetzt bei den genannten Beispielen nix explizites dabei von dem ich sagen müßte, daß ich das in der bash nicht auch schon habe. So gesehen spricht für mich noch nichts gegen die bash oder für die zsh. Falls ich augenscheinlich etwas falsch verstanden haben sollte bitte ich um ein wenig Elaboration, damit ich es auch verstehe. :)

    Den Link werd' ich mir beizeiten zu Gemüte führen. Danke
    Gruß Pepi
     
  7. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Ja, da hast Du mich falsch verstanden: bash und zsh ist wie VW und Ferrari. Es gibt Leute, die sind sind mit dem einen zufrieden, weil sie in einem Golf genauso sitzen können; es gibt Leute, die haben es eilig.

    Code:
    % autoload -U compinit
    % compinit
    
    Dafür ist die zsh berühmt. Da hat man im Screen bei cd z. B. Verzeichnismenüs. Sehr schnell!

    Den Stil kann man aufbessern:

    Code:
    % zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
    % zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
    
    Das heißt, das sieht dann so aus, wenn ich mein Medienlaufwerk suche:

    [​IMG]
    Was doch recht praktsch ist.

    Code:
    % setopt correctall
    
    Korrigiert mir Tippfehler.

    Code:
    % setopt autocd
    
    Auto cd... das nervt recht stark. Also machte fortan einfach /Volumes/Media/Dilvert und da los weiter.

    Insgesamt bin ich erst am Anfangen. Die im obrigen Post genannten Funktionen sind noch recht stark... ich glaube, das hat die bash nur sehr viel umständlicher und sehr viel langsamer.
     
  8. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Eilig hab' ich es immer. :) Trotzdem konntest Du mir noch nichts zeigen was meine bash nicht schon kann. Ich bin durchaus gewillt mir das sehr intensiv anzusehen, aber ich brauche dann doch ein gutes Argument dafür um meine Zeit dahinein zu investieren. Und bisher würde sich für mich noch nichts anbieten was ein etwaiges Umlernen nicht nur rechtfertigen sondern auch schmackhaft machen würde. Ich weis natürlich nicht wie Deine bash konfiguriert ist/war. :)

    Tab-Completion hat ja nicht nur die bash, auch in der csh/tcsh gibts das. Das ist kein Grund die Shell zu wechseln, außer man verwendet eine die das nicht kann.

    Hier zum Vergleich bei meiner (natürlich unkonfigurierten) zsh ein Autocomplete meines ~/Movies Ordners:

    Code:
    Bauxite-Beauty% [b]cd Movies/[i][TAB][/i][/b]
    DTV/
    K750i/
    Life\ after\ Death\ by\ PowerPoint\ -\ Part\ 1.mp4*
    Life\ after\ Death\ by\ PowerPoint\ -\ Part\ 2.mp4*
    Lifted.mp4
    OSCON\ Keynote\ Identity\ 2.0mov
    OTR/
    apple_ilife-overview_20070807_768x480.mov
    apple_ilife08-welcome_20070807_i320x200.m4v
    iMovie\ Projects.localized/
    
    Zum Vergleich dazu der idente Vorgang in meiner bash
    Code:
    [pepi@Bauxite-Beauty:~]$ [b]cd Movies/[i][TAB][/i][/b]
    DTV/                       OTR/
    K750i/                     iMovie Projects.localized/
    Man kann es bestimmt in der zsh auch einstellen, daß bei einem cd auch nur Verzeichnisse als autocomplete angeboten werden. Dateien sind ja im Kontext von cd nicht sinnvoll.
    Text in fett wurde von mir eingegeben. Text in kursiv ist sinngemäß zu interpretieren und nicht unbedingt literal.

    Wie gesagt, das soll kein für oder Wider bash oder zsh sein. Es soll auch anderen Mitlesern dieses Threads zeigen, daß es sich durchaus auszahlt sich seine Shell der Wahl auch gut einzurichten.
    Gruß Pepi
     
  9. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Weil das nicht nur die Standardshell im Terminal ändert, sondern auch die für essentiell notwendige Skripte deiner gesamten Benutzersitzung, also auch "unterhalb" der grafischen Oberfläche.
    This is a "don't do it". Seiteneffekte unabsehbar...
    Wenn du nur im Terminal eine andere Shell willst: Benutze die Einstellungen des Programms "Terminal".
     
    MacMark und Hilarious gefällt das.
  10. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Mir fällt aber nichts ein, was systemintern dagegen spricht. Die BSD Wartungsskripte laufen selbstredend, in cron hängt auch nichts bash-Brauchendes. Außerdem ist die zsh 100% bash kompatibel. Es gibt keine unerwünschten Seiteneffekte; laut system.log.

    Konkret?
     
  11. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Danke für die Erklärung :D
     
  12. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Guter Witz. "man bash". RTFM.
    Nur weil bash, sh und zsh ein und die selbe Binary sind...... verhalten sie sich noch lange nicht gleich.
     
  13. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
  14. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Wobei ich gestehen muß, daß es sich dabei wohl um die unübersichtlichste und unbrauchbarste aller man pages handelt die mir je untergekommen sind. Trotzallem gibt es für die bash auch gute Dokumentation!

    Der Ehrlichkeit halber erwähnen wir unseren jungen Padawans gegenüber, daß der cron immer noch existiert, jedoch unter 10.4 vom launchd aufgerufen wird.
    Gruß Pepi
     
  15. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Das Wort "veraltet/deprecated" besagt das. Ansonsten hätte ich geschrieben "abgeschafft".
     
  16. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Das steht so auch weder im Quote, noch in der Manpage? He? *kopfkratz*

    - Naja... also seit 2 Tagen macht zsh Spaß. Nie wieder bash... so einfach ist das. Nahtloser Übergang, das meinte ich eigentlich damit. Denn auf den ersten Blick ist da nicht viel anders. Mal schauen, was der längere, viel tiefere zweite Blick mir offenbart. Ich bin weder zsh-Kenner, noch bash Fanatiker, noch bash-Hasser. Dazu kenne ich die shells doch alle zu lange und sie haben mich treu begelietet. *bash kraul* (Mein erster Hund wird bash heißen, sicher nicht zsh... :); doch eigentlich ein guter Hundename... so gehorsam und so)

    Wenn ich schon viel mehr als nur: ist kompfortabler und kann mehr, die zsh, sagen könnte, wäre das Experiment der Liebhaberei wegen ja schon vorbei.

    So wie lauchnd als init System begreife, ist das alles andere als zsh inkompatibel und hat damit nix zu tun. Diesem Systemteil ist die Shell egal. Von daher... Punkt für mich. Danke MacMark

    Denn noch immer hat mir keiner einen echten inkompatiblen Punkt geliefert, nur "Don't so" ohne das Warum.
     
  17. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Andersrum: Du müßtest nachweisen, daß es nirgendwo zu Problemen führt, wenn Du das Normalverhalten umbiegst. Das kannst Du aber nicht, da Du dazu die Interna von OS X ziemlich genau kennen müßtest.

    Es würde genügen, wie Rastafari schrieb, im Terminal.app eine andere Shell zu wählen. Dann hast Du Deine Dingsbums-Shell und alles andere läuft garantiert wie vorher.
     
  18. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Ich kann sogar einen inkompatiblen Punkt nennen (sogar mehrere leider sehr interne Sachen, die ich selber nicht verstehe). Die zsh ist noch nicht 100% in UTF8 kompatibel. Problem dabei sind Umlaute dann. In der xterm-Emulation definitiv funktioniert die Übernahme der Umlaute nicht (wohl aber die Darstellung).

    Naja... die perfekte Shell ist nicht erfunden .), oder etwa doch: http://de.wikipedia.org/wiki/Windows_PowerShell
    Jedenfalls lass ich meine Shell von nem Bash-Banausen nicht als Dingsbums Shell bezeichnen :p
     
  19. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Hast Du Deinen Fehler inzwischen eingesehen?
     
  20. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    He, Fehler? *Kopfkratz*

    Ich wechsel zur Zoidberg Shell. :)
     

Diese Seite empfehlen