Kecuali jika saya salah paham, jawaban yang ditandai dari Caleb hanyalah instalasi per pengguna normal langkah-langkah dengan menambahkan file .zshrc ke direktori skel dan mengubah shell pengguna baru default, tetapi tidak benar-benar berfungsi atau benar-benar menjawab pertanyaan karena setiap pengguna masih memerlukan dir oh-my-zsh/akan masih mengharuskan setiap pengguna mengkloning dir oh-my-zsh ke folder mereka sendiri yang berarti itu tidak benar-benar terinstal di seluruh sistem , itu hanya secara otomatis memberi mereka file zshrc dan mengubah shell default menjadi zsh, tetapi tanpa oh-my-zsh di setiap folder pengguna, itu akan error.
Dari apa yang saya pahami tentang pertanyaan itu menanyakan cara memasang oh-my-zsh di seluruh sistem alias menginstalnya di SATU tempat dan tidak perlu mengotak-atik secara manual pada setiap pengguna baru/memiliki git clone dari oh-my-zsh pada setiap direktori pengguna. Dengan asumsi itu masalahnya, inilah yang saya lakukan berdasarkan Paket AUR Arch Linux yang biasanya saya gunakan tetapi mencari yang sama di server centos, namun ini dapat dilakukan di distro apa pun. Kredit diberikan kepada MarcinWieczorek dan pengelola lainnya , saya baru saja mengadaptasi di bawah ini sehingga dapat melakukan hal yang sama pada distro non-arch.
Jika Anda sudah menginstal oh-my-zsh di root, lewati saja ke Langkah 3. Ini bukan khusus distro, cukup gunakan File Patch AUR untuk zshrc
Langkah #1
Instal zsh tentu saja
Langkah #2
Instal oh-my-zsh sebagai root seperti biasa (tunjukkan metode wget, lihat jawaban Caleb untuk alternatif)
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Langkah #3
Pindahkan penginstalan ke /usr/share begitu juga di seluruh sistem
#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
Sekarang oh-my-zsh terinstal secara global dan pengguna hanya membutuhkan file zshrc tersebut. jadi SEKARANG adalah tempat jawaban Caleb masuk meskipun lakukan saja di bawah ini karena /etc/adduser.conf hanya di debian sedangkan di bawah ini harus distro independen.
Langkah #4
Atur agar menjadi default pada pengguna baru
# 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
Nah, itu benar instalasi oh-my-zsh dengan semua pengguna baru secara otomatis menerapkannya dengan pengaturan /usr/share/oh-my-zsh/zshrc dan tidak diperlukan langkah lain.
Lain-lain Catatan
-
Untuk setiap pengguna yang sudah ada sebelumnya dengan oh-my-zsh:
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
- Anda dapat menyetel default OMZ pengguna baru di /usr/share/oh-my-zsh/zshrc
- Pembaruan Otomatis dinonaktifkan karena pengguna baru tidak memiliki izin untuk memperbarui file /usr/share/oh-my-zsh
- Untuk memperbarui oh-my-zsh cukup cd ke /usr/share/oh-my-zsh/ dan jalankan 'sudo git pull'
- Cache oh-my-zsh akan ditangani per pengguna dalam setiap direktori pengguna di bawah ~/.oh-my-zsh-cache/ (dibuat secara otomatis)
Peringatan Adil:ini mengasumsikan linux gaya Debian, tetapi ini harus bekerja pada bentuk lain juga. Ini juga menganggap Anda memulai dari awal.
Bagian 1 , instal:
Anda perlu menginstal sistem zsh secara luas, dan tidak hanya untuk satu pengguna. (Anda mungkin sudah melakukannya tetapi saya akan memasukkannya hanya untuk menjadi komprehensif)
pastikan Anda telah menginstal zsh, cukup:sudo apt-get install zsh
Ikuti panduan pemasangan oh-my-zsh atau Anda dapat:
gunakan keriting
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
gunakan wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Bagian 2 , Menyiapkan zsh saat pengguna baru ditambahkan:
Anda harus membuatnya agar pengguna baru menggunakan zsh secara default. Di /etc/adduser.conf
Anda file edit baris yang bertuliskan:
DSHELL=/bin/sh
ke:
DSHELL=/bin/zsh
Anda juga harus mengubahnya untuk /etc/default/useradd
file, ubah baris:
SHELL=/bin/sh
ke:
SHELL=/bin/zsh
Bagian 3 , atur tema khusus Anda.
Saya memiliki file tema khusus (di sini) yang saya ingin dimiliki oleh semua pengguna di sistem. Pertama, Anda harus menambahkan file ke .oh-my-zsh/themes
Anda map:
cp your_custom_style.zsh-theme ~/.oh-my-zsh/themes
Selanjutnya, edit .zshrc
Anda file di direktori home Anda, ubah ZSH_THEME="default"
ke ZSH_THEME="your_custom_style"
Kemudian, muat ulang .zshrc
Anda file dengan:. ~/.zshrc
Bagian 4 , menyiapkan direktori home pengguna baru.
Kita perlu menempatkan file apa pun yang kita inginkan untuk dimiliki oleh pengguna baru di /etc/skel
direktori, karena inilah yang disalin sistem saat membuat direktori home pengguna baru. Lihat panduan admin sistem ini untuk detailnya.
Salin file pengguna Anda (Anda mungkin perlu sudo):
cp -r .oh-my-zsh /etc/skel/
cp .zshrc /etc/skel
Sekarang Anda dapat menambahkan pengguna baru dan mereka akan memiliki oh-my-zsh secara default dengan tema khusus apa pun yang Anda inginkan.
Jika Anda ingin mengubah semua shell pengguna yang ada ke zsh, saya akan merekomendasikan membaca pertanyaan serverfault ini.
Jika Anda ingin menginstal Oh-My-Zsh di seluruh sistem, pendekatan praktis yang menimpa file dengan jumlah paling sedikit adalah:
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
Edit /etc/skel/.zshrc
:
- Edit baris
export ZSH=$HOME/.oh-my-zsh
(saat ini baris 5) - Ubah baris menjadi:
export ZSH=/etc/oh-my-zsh
export ZSH_CACHE_DIR=~/.oh-my-zsh/cache
Kemudian edit /etc/default/useradd
dan ubah baris SHELL=...
ke SHELL=/bin/zsh
.
Itu pada dasarnya semua (tentu saja, git dan zsh harus sudah diinstal).
Untuk memperbarui pengguna yang sudah ada sebelumnya:login sebagai mereka dan cp /etc/skel/.zshrc ~/.zshrc
Perbarui: Tolong jangan edit ini. Saya baru saja mengembalikan hasil edit yang benar-benar merusaknya!
Masuk sebagai ROOT
Langkah 1:Instal 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
Langkah 2:Pasang 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
Langkah 3:Tambahkan Ekstra (Opsional - Lihat bagian bawah untuk fitur tambahan)
Langkah 4:Buat tautan Simbolik
# Create Symbolic Links to /etc/skel
sudo ln /usr/share/oh-my-zsh/zshrc /etc/skel/.zshrc
Langkah 5:Tambahkan oh-my-zsh untuk root
# Change shell to ZSH for root
echo "$USER" | chsh -s /usr/local/bin/zsh
Langkah 6:Tambahkan oh-my-zsh untuk pengguna
# 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
ATAU
sudo -i -u username bash << EOF
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
echo username | chsh -s /usr/local/bin/zsh
EOF
EKSTRA:
Ubah tema menjadi 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
Aktifkan Koreksi otomatis
sed -i 's/# ENABLE_CORRECTION="true"/ENABLE_CORRECTION="true"/g' /usr/share/oh-my-zsh/zshrc
Aktifkan saran Otomatis dan penyorotan Sintaks
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
Tambahkan 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