私が誤解していない限り、Caleb からのマークされた回答は、通常のユーザーごとのインストール です。 skel dir に .zshrc ファイルを追加し、デフォルトの新規ユーザー シェルを変更する手順を実行しますが、実際には機能しないか、実際には質問に答えません なぜなら、各ユーザーはまだ oh-my-zsh dir が必要です/ 各ユーザーが oh-my-zsh dir を自分のフォルダーに複製する必要があります。つまり、実際にはシステム全体にインストールされていません 、自動的に zshrc ファイルを提供し、デフォルトのシェルを zsh に変更しますが、各ユーザー フォルダーに oh-my-zsh がないとエラーになります。
質問について私が理解していることから、oh-my-zsh system-wide をインストールする方法を尋ねています 別名、1か所にインストールし、新しいユーザーごとに手動でいじったり、各ユーザーディレクトリにoh-my-zshのgitクローンを作成したりする必要はありません。その場合、これは私が通常使用する Arch Linux の AUR パッケージに基づいて行ったことですが、centos サーバーで同じものを探していましたが、これはどのディストリビューションでも実行できます。 MarcinWieczorek と他のメンテナに感謝 、以下を適応させただけなので、非アーキテクチャ ディストリビューションでも同じことができます。
すでに oh-my-zsh がルートにインストールされている場合は、ステップ 3 に進みます。これはディストリビューション固有ではなく、zshrc 用の AUR パッチ ファイルを使用するだけです
ステップ #1
もちろんzshをインストールしてください
ステップ #2
通常どおり oh-my-zsh を root としてインストールします (wget メソッドを示します。別の方法については Calebs の回答を参照してください)
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
ステップ #3
インストールを /usr/share に移動して、システム全体に適用します
#Copy zsh files to /usr/share for all uer access
mv /root/.oh-my-zsh /usr/share/oh-my-zsh
# Move into the dir and copy the zshrc template to zshrc (which will be the default for users)
cd /usr/share/oh-my-zsh/
cp templates/zshrc.zsh-template zshrc
# Nab the patch file from MarcinWieczorek's AUR Package and apply to the zshrc file
wget https://aur.archlinux.org/cgit/aur.git/plain/0001-zshrc.patch\?h\=oh-my-zsh-git -O zshrc.patch && patch -p1 < zshrc.patch
これで、oh-my-zsh がグローバルにインストールされ、ユーザーはその zshrc ファイルだけを必要とします。 /etc/adduser.conf は debian のみにあるのに対し、以下はディストリビューションに依存しないはずなので、今はカレブの答えが出てくるところです。
ステップ #4
新規ユーザーのデフォルトに設定
# Create hard link to the zshrc file so it creates an actual independent copy on new users
sudo ln /usr/share/oh-my-zsh/zshrc /etc/skel/.zshrc
# Set default shell to zsh
sudo adduser -D -s /bin/zsh
これは真実です oh-my-zsh をインストールすると、すべての新規ユーザーが /usr/share/oh-my-zsh/zshrc 設定で自動的に適用され、他の手順は必要ありません。
その他のメモ
-
oh-my-zsh を使用している既存のユーザーの場合:
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
- 新しいユーザーの OMZ デフォルトを設定できます /usr/share/oh-my-zsh/zshrc 内
- 自動更新は無効です 新しいユーザーには /usr/share/oh-my-zsh ファイルを更新する権限がないため
- oh-my-zsh を更新するには /usr/share/oh-my-zsh/ に cd して「sudo git pull」を実行するだけです
- oh-my-zsh キャッシュは、~/.oh-my-zsh-cache/ (自動作成) の下の各ユーザー ディレクトリ内でユーザーごとに処理されます
公正な警告:これは Debian スタイルの Linux を想定していますが、他の形式でも同様に動作するはずです。これは、ゼロから始めることも前提としています。
パート 1 、インストール:
1 人のユーザーだけでなく、システム全体に zsh をインストールする必要があります。 (すでにこれを行っているかもしれませんが、包括的にするために含めます)
zsh がインストールされていることを確認してください:sudo apt-get install zsh
oh-my-zsh インストール ガイドに従うか、次のいずれかを行います。
カールを使用
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
wgetを使う
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
パート 2 、新しいユーザーが追加されたときの zsh のセットアップ:
新しいユーザーのデフォルトが zsh になるようにする必要があります。 /etc/adduser.conf
で 次の行をファイル編集します:
DSHELL=/bin/sh
へ:
DSHELL=/bin/zsh
/etc/default/useradd
にも変更する必要があります ファイルで、次の行を変更します:
SHELL=/bin/sh
へ:
SHELL=/bin/zsh
パート 3 、カスタム テーマを設定します。
システム上のすべてのユーザーに持たせたいカスタム テーマ ファイル (ここ) があります。まず、ファイルを .oh-my-zsh/themes
に追加する必要があります フォルダ:
cp your_custom_style.zsh-theme ~/.oh-my-zsh/themes
次に、 .zshrc
を編集します ホーム ディレクトリのファイルで、ZSH_THEME="default"
を変更します。 ZSH_THEME="your_custom_style"
まで
次に、.zshrc
をリロードします ファイル:. ~/.zshrc
パート 4 、新しいユーザーのホーム ディレクトリを設定します。
/etc/skel
に新しいユーザーに持たせたいファイルを配置する必要があります これは、システムが新しいユーザーのホーム ディレクトリを作成するときに、このディレクトリがコピーされるためです。詳細については、このシステム管理ガイドを参照してください。
ユーザーのファイルをコピーします (sudo が必要な場合があります):
cp -r .oh-my-zsh /etc/skel/
cp .zshrc /etc/skel
<ブロック引用> これで、新しいユーザーを追加できるようになり、デフォルトで oh-my-zsh が設定され、必要なカスタム テーマが設定されます。
他のすべての既存ユーザーのシェルを zsh に変更したい場合は、この serverfault question を読むことをお勧めします。
Oh-My-Zsh をシステム全体にインストールしたい場合、最小数のファイルを上書きする便利な方法は次のとおりです。
sudo git clone https://github.com/robbyrussell/oh-my-zsh.git /etc/oh-my-zsh
sudo cp /etc/oh-my-zsh/templates/zshrc.zsh-template /etc/skel/.zshrc
sudo mkdir -p /etc/skel/.oh-my-zsh/cache
/etc/skel/.zshrc
を編集 :
- 行
export ZSH=$HOME/.oh-my-zsh
を編集します (現在は 5 行目) - 行を次のように変更します:
export ZSH=/etc/oh-my-zsh
export ZSH_CACHE_DIR=~/.oh-my-zsh/cache
次に /etc/default/useradd
を編集します 行 SHELL=...
を変更します SHELL=/bin/zsh
へ .
基本的にはこれですべてです (もちろん、git と zsh は既にインストールされている必要があります)。
既存のユーザーを更新するには:ユーザーとしてログインし、cp /etc/skel/.zshrc ~/.zshrc
更新: これを編集しないでください。完全に失敗した編集をロールバックしました!
ROOT としてログイン
ステップ 1:ZSH をインストールする
# Download and extract ZSH
wget https://github.com/zsh-users/zsh/archive/zsh-5.8.tar.gz -P /tmp/demo/zsh
cd /tmp/demo/zsh
tar -xvzf zsh-*
cd zsh-zsh-5.8
# configure and make
sudo ./Util/preconfig
sudo ./configure
sudo make && sudo make install
# Add ZSH to the list of shells
echo /usr/local/bin/zsh | sudo tee -a /etc/shells
ステップ 2:oh-my-zsh をインストールする
# If you're running the Oh My Zsh install script as part of an automated install,
# you can pass the flag --unattended to the install.sh script.
# This will have the effect of not trying to change the default shell, and also won't
# run zsh when the installation has finished.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
# Add oh-my-zsh to /usr/share
mv /root/.oh-my-zsh /usr/share
mv /usr/share/.oh-my-zsh /usr/share/oh-my-zsh
mv /root/.zshrc /usr/share/oh-my-zsh
mv /usr/share/oh-my-zsh/.zshrc /usr/share/oh-my-zsh/zshrc
# Modify zshrc to point to /usr/share/oh-my-zsh
sed -i 's|export ZSH="'"$HOME"'/.oh-my-zsh"|export ZSH="\/usr\/share\/oh-my-zsh"|g' /usr/share/oh-my-zsh/zshrc
ステップ 3:追加機能 (オプション - 追加機能については下部をご覧ください)
ステップ 4:シンボリック リンクを作成する
# Create Symbolic Links to /etc/skel
sudo ln /usr/share/oh-my-zsh/zshrc /etc/skel/.zshrc
ステップ 5:root に oh-my-zsh を追加する
# Change shell to ZSH for root
echo "$USER" | chsh -s /usr/local/bin/zsh
ステップ 6:ユーザーに oh-my-zsh を追加する
# Change user
su - username
# Copy zshrc to $HOME for user
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
# Change shell to ZSH for user
echo "$USER" | chsh -s /usr/local/bin/zsh
または
sudo -i -u username bash << EOF
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
echo username | chsh -s /usr/local/bin/zsh
EOF
おまけ:
テーマをpowerlevel10kに変更
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-/usr/share/oh-my-zsh/custom}/themes/powerlevel10k
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="powerlevel10k\/powerlevel10k"/g' /usr/share/oh-my-zsh/zshrc
自動修正を有効にする
sed -i 's/# ENABLE_CORRECTION="true"/ENABLE_CORRECTION="true"/g' /usr/share/oh-my-zsh/zshrc
自動提案と構文の強調表示を有効にする
git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-/usr/share/oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-/usr/share/oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sed -i 's/plugins=(git)/plugins=(\n git\n zsh-autosuggestions\n zsh-syntax-highlighting\n)/' /usr/share/oh-my-zsh/zshrc
sed -i 's/plugins=(git)/plugins=(git)\nZSH_DISABLE_COMPFIX=true/' /usr/share/oh-my-zsh/zshrc
Nord dircolors を追加
git clone --depth=1 https://github.com/arcticicestudio/nord-dircolors.git /tmp/demo/dircolors
mv /tmp/demo/dircolors/src/dir_colors /usr/share/
cd /usr/share/
mv /usr/share/dir_colors /usr/share/.dir_colors
tee -a /usr/share/oh-my-zsh/zshrc >/dev/null <<'EOF'
test -r "/usr/share/.dir_colors" && eval $(dircolors /usr/share/.dir_colors)
EOF