GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mendapatkan konfigurasi oh-my-zsh di seluruh sistem yang aman?

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

Linux
  1. Panduan pemula untuk DNSSEC dan cara mengamankan Internet

  2. Bagaimana saya bisa mendapatkan daftar jaringan nirkabel yang tersedia di Linux?

  3. Bagaimana saya bisa mendapatkan kembali fungsi utama saya?

  1. Bagaimana saya bisa mendapatkan `find` untuk mengabaikan direktori .svn?

  2. Bagaimana saya bisa mendapatkan folder temp dari mesin yang menjalankan maven?

  3. Bagaimana saya bisa memeriksa konfigurasi preemption kernel saya?

  1. Bagaimana saya bisa mendapatkan CMake untuk menemukan instalasi Boost alternatif saya?

  2. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  3. Cara mendapatkan penggunaan CPU