
macOSは引き続きzshを使用し、Catalinaでzshをデフォルトのシェルに設定できます。 Catalinaの場合、zshはデフォルトのシェルなので、bashとoh-my-zshの両方のトレースを削除しても大丈夫ですか?また、私はHyperTerminalを使用しています。これは、もはやoh-my-zshを必要としないことを意味します。
例:
Anacondaインストーラはもともとこのスクリプトを私のbashrcまたはbash_profileに追加したので、zshに切り替えたときにそれを.zshrcにコピーしました。私は最近bash_profile用に設計されているので、コピーする必要がないかコピーしてはいけないという内容を読んでいましたが、macOSはとにかくzshを使用しているので、どうすればよいのか疑問に思います。明らかに、Anacondaがどこにあるのかzshに知らせる必要がありますが、そのスクリプトが必要ですか、それともAnacondaパスをエクスポートできますかexport PATH=/Users/ty604/anaconda3/bin:$PATH
?
このAnacondaスクリプトをzshrcに保存し、bashのすべての痕跡を削除して、bashが消えてもMacがもう使用されないようにすることはできますか?
export PATH=/Users/ty604/anaconda3/bin:$PATH
# added by Anaconda3 2019.03 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/ty604/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/Users/ty604/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/ty604/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/Users/ty604/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
また、さまざまなシェルファイルの重複エクスポートコマンドのため、$ PATHへの冗長パスがたくさんあります。
$エコ$PATH
/Users/ty604/anaconda3/bin:/Users/ty604/anaconda3/condabin:/Users/ty604/anaconda3/bin:/Users/ty604/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:/Users/ty604/flutter/bin
マイシステムのファイル
.bash_history, .bash_profile, .bashrc, .profile, .zprofile, .zsh_history, .zshrc, .zshrc.pre-oh-my-zsh
マイシステムのフォルダ
.bash_sessions, .oh-my-zsh, .zsh
答え1
bash
表示されるシェル初期化コードは具体的には見えず、zsh
そのコードのソースであるさまざまなスクリプトも動作すると仮定するとうまくshell.bash
動作conda.sh
しなければなりません。スクリプトがあれば、shell.zsh
明らかに代わりに使用することを選択できますshell.bash
。
zsh
シェルでは、PATH
変数は配列に関連付けられていますpath
。両方とも一意の項目のみを含めることができますtypeset -U
。
以下は、特定の値に for を使用する例ですPATH
。
$ print -rC1 -- $path
/Users/ty604/anaconda3/bin
/Users/ty604/anaconda3/condabin
/Users/ty604/anaconda3/bin
/Users/ty604/.cargo/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Applications/VMware Fusion.app/Contents/Public
/usr/local/share/dotnet
/Users/ty604/flutter/bin
パスは/Users/ty604/anaconda3/bin
最初から繰り返されます。ルートを一意にするには(現在と未来):
$ typeset -U PATH path
$ print -rC1 $path
/Users/ty604/anaconda3/bin
/Users/ty604/anaconda3/condabin
/Users/ty604/.cargo/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Applications/VMware Fusion.app/Contents/Public
/usr/local/share/dotnet
/Users/ty604/flutter/bin
/bin
パスの先頭にプッシュするとどうなるか確認してください。
$ path=( /bin $path )
$ print -rC1 -- $path
/bin
/Users/ty604/anaconda3/bin
/Users/ty604/anaconda3/condabin
/Users/ty604/.cargo/bin
/usr/local/bin
/usr/bin
/usr/sbin
/sbin
/Applications/VMware Fusion.app/Contents/Public
/usr/local/share/dotnet
/Users/ty604/flutter/bin
(2番目は/bin
削除されました。)
path
配列は変数に関連付けられているため、変更もPATH
その変数に表示できます。
$ print -rC1 -- $PATH
/bin:/Users/ty604/anaconda3/bin:/Users/ty604/anaconda3/condabin:/Users/ty604/.cargo/bin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:/Users/ty604/flutter/bin
答え2
後でzshにフックこれは、$ PATHシステムがbashシェルetc/profile
から派生しているため、bashシェルのすべてのインスタンスを削除できることを意味します。
macOSのデフォルトシェルはzshなので、bashファイルは役に立ちません。