oh-my-zsh(およびzsh)を削除せずに「無効にする」方法は?

oh-my-zsh(およびzsh)を削除せずに「無効にする」方法は?

私はzshとoh-my-zshを含む新しい開発環境を試しています。 oh-my-zshがインストールされているので、デフォルトでは私の端末(iTerm2とTerminal)で始まり、常にzshで始まり、設定はoh-my-zshで始まります。 oh-my-zshを削除せずに、oh-my-zshを使用してzshとその設定の使用を「無効にする」または停止できるかどうか疑問に思います。再びオンにする方法も知っておくといいようです。

現在私の端末は自動的にzshに入り(私の考えでは)oh-my-zshを自動的に使用します。私はこれについてより多くのコントロールを持ち、zshを使うときとoh-my-zsh機能を使うときの両方を制御できるようにしたいです。

また、私が知りたいことの1つは、起動時に実行を開始するシェルがターミナルアプリケーションでどのように認識されるかです。調節できれば本当にいいと思います!

あなたが私に与えるすべての命令の「理由」をできるだけ説明すれば役に立ちます! :)


私はOS Xを使用しています。これが重要かどうかはわかりませんが、私は私の環境よりも一般的なUnix環境に適用される答えを好む傾向があります。

答え1

zsh質問の表現が不明であり、使用を中止したいのか、使用を中止したいのかはわかりませんoh-my-zsh。どちらも扱います。

障害を負うzsh

chsh以前に使用したシェルを実行して選択します。以前にどのシェルを使用したかわからない場合は、ほぼ確実にそうですbash。このコマンドは、ユーザーに関連する「ログイン・シェル」を変更します。デフォルトでは、デフォルトのシェルが変更されます。

変更を適用するには、新しいターミナルウィンドウを開く必要があります。それでも問題が解決しない場合は、ログアウトして再度ログインして環境を再初期化する必要があります。

無効のみ可能oh-my-zsh

  1. 存在することを確認してください~/.zshrc.pre-oh-my-zsh。それは本当かもしれません。 (oh-my-zshこのファイルは、インストールスクリプトが古いファイルを削除したときに生成されます。起動ファイルと同様の起動ファイルです。).zshrc.zshrczsh.bashrcbash
  2. もしそうなら、を実行しますmv ~/.zshrc ~/.zshrc.oh-my-zsh。これによりoh-my-zsh生成されたコンテンツが除外されるため、を.zshrc実行して元のコンテンツを復元できますmv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
  3. 存在しない場合は、~/.zshrcテキストエディタで開きます。その行を見つけてsource $ZSH/.oh-my-zshコメントを付けるか削除します。これにより初期化が無効になりますoh-my-zsh

変更を適用するには、シェルを再起動する必要があります。

答え2

chsh -s /bin/bash

新しいデフォルトシェルを手動で設定するには、chsh -s /my/new/shell(例:chsh -s /bin/bash)を実行します。その後、シェルを再度開きます。

答え3

@Gillesは答えに少し隠されているので、.zshrc .zshenvなどの設定なしでzshをロードする簡単な方法です。

zsh -f

これは、構成のどの要素がzshの特定の機能の実行を妨げるかをテストしたい場合に便利です。

答え4

環境変数を設定して、zshに別のディレクトリからユーザー固有の構成ファイルをロードするように指示できます。ZDOTDIRzshを始める前に。

構成ファイルをロードせずにzshを起動するには、ZDOTDIR存在しないディレクトリに設定してください。システム設定ファイルをスキップするには(除外/etc/zshenv)を実行しますzsh -f。システム構成ファイルをスキップしてユーザー固有のファイルを実行するには、を実行しますzsh -d

たとえば、oh-my-zshをデフォルト値に設定せずにテストドライブを実行したい場合は、.zshrcoh-my-zshのファイルをホームディレクトリに置かないでください。代わりに他の場所に置いてください。~/.oh-my-zshZDOTDIR=~/.oh-my-zsh zshoh-my-zshを使いたいときに実行してください。


ターミナルアプリケーションは、環境変数で指定されたシェルを実行しますSHELL。この変数が設定されていない場合は、/etc/passwdユーザーデータベース()で指定されたログインシェルを実行します。ターミナルエミュレータの起動時にさまざまなアプリケーションを要求できますxterm -e fish

関連情報