Pokud tomu nerozumím, označená odpověď od Caleba je jen normální instalace pro uživatele kroky s přidáním souboru .zshrc do adresáře skel a změnou výchozího prostředí pro nového uživatele, ale ve skutečnosti to nefunguje ani neodpovídá na otázku protože každý uživatel stále vyžaduje adresář oh-my-zsh/by stále vyžadovat, aby každý uživatel naklonoval adresář oh-my-zsh do své vlastní složky, což znamená, že není nainstalovaný v celém systému , jen jim automaticky dá soubor zshrc a změní výchozí shell na zsh, ale bez oh-my-zsh v každé uživatelské složce dojde k chybě.
Z toho, co jsem pochopil, je otázka, jak nainstalovat oh-my-zsh v celém systému aka mít to nainstalované na JEDNOM místě a nevyžadovat ruční pohrávání si s každým novým uživatelem/mít git klon oh-my-zsh na každém uživatelském adresáři. Za předpokladu, že tomu tak je, zde je to, co jsem udělal na základě balíčku AUR od Arch Linuxu, který normálně používám, ale hledal jsem totéž na serveru centos, nicméně to lze provést na jakémkoli distribuci. Kredit dostává MarcinWieczorek a ostatní správci , Právě jsem upravil níže uvedené, takže mohu udělat totéž v distribucích bez archů.
Pokud již máte oh-my-zsh nainstalovaný v rootu, přejděte ke kroku 3. Toto není specifické pro distribuci, pouze používá soubor opravy AUR pro zshrc
Krok č. 1
Nainstalujte samozřejmě zsh
Krok č. 2
Nainstalujte oh-my-zsh jako root jako normálně (zobrazuje metodu wget, alternativu viz Calebsova odpověď)
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Krok č. 3
Přesuňte instalaci do /usr/share, aby byla v celém systému
#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
Nyní je oh-my-zsh nainstalován globálně a uživatel potřebuje pouze tento soubor zshrc. takže TEĎ přichází Calebova odpověď, i když proveďte níže uvedené, protože /etc/adduser.conf je pouze na debianu, zatímco níže uvedené by mělo být nezávislé na distribuci.
Krok č. 4
Nastavte jej jako výchozí pro nové uživatele
# 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
Nyní je to pravda instalace oh-my-zsh se všemi novými uživateli, kteří jej automaticky použijí s nastavením /usr/share/oh-my-zsh/zshrc a nejsou potřeba žádné další kroky.
Různé poznámky
-
Pro všechny již existující uživatele s oh-my-zsh:
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
- Můžete nastavit nové uživatelské výchozí hodnoty OMZ v /usr/share/oh-my-zsh/zshrc
- Automatické aktualizace jsou zakázány protože noví uživatelé nemají oprávnění aktualizovat soubory /usr/share/oh-my-zsh
- Pro aktualizaci oh-my-zsh stačí cd do /usr/share/oh-my-zsh/ a spustit 'sudo git pull'
- Cache oh-my-zsh bude zpracována pro každého uživatele v rámci každého uživatelského adresáře pod ~/.oh-my-zsh-cache/ (vytvořeno automaticky)
Spravedlivé varování:předpokládá se linux ve stylu Debianu, ale mělo by to fungovat i na jiných formách. To také předpokládá, že začínáte od nuly.
Část 1 , instalace:
Budete muset nainstalovat zsh celý systém a ne pouze pro jednoho uživatele. (možná jste to již udělali, ale zahrnu to jen proto, aby to bylo komplexní)
ujistěte se, že jste nainstalovali zsh, jednoduše:sudo apt-get install zsh
Postupujte podle instalačního průvodce oh-my-zsh nebo můžete:
použijte curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
použijte wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Část 2 , Nastavení zsh při přidání nových uživatelů:
Budete to muset udělat tak, aby noví uživatelé jako výchozí měli zsh. Ve vašem /etc/adduser.conf
soubor upravte řádek, který říká:
DSHELL=/bin/sh
komu:
DSHELL=/bin/zsh
Měli byste jej také změnit na /etc/default/useradd
soubor, změňte řádek:
SHELL=/bin/sh
komu:
SHELL=/bin/zsh
Část 3 , nastavte si vlastní motiv.
Mám vlastní soubor motivu (zde), který jsem chtěl, aby měli všichni uživatelé v systému. Nejprve byste měli přidat soubor do .oh-my-zsh/themes
složka:
cp your_custom_style.zsh-theme ~/.oh-my-zsh/themes
Dále upravte .zshrc
soubor ve vašem domovském adresáři, změňte ZSH_THEME="default"
na ZSH_THEME="your_custom_style"
Poté znovu načtěte .zshrc
soubor s:. ~/.zshrc
Část 4 , nastavení domovských adresářů nového uživatele.
Všechny soubory, které chceme, aby noví uživatelé měli, musíme umístit do /etc/skel
adresář, protože to je to, co systém zkopíruje při vytváření domovského adresáře nového uživatele. Podrobnosti naleznete v této příručce správce systému.
Zkopírujte soubory svého uživatele (možná budete muset použít sudo):
cp -r .oh-my-zsh /etc/skel/
cp .zshrc /etc/skel
Nyní budete moci přidávat nové uživatele a ve výchozím nastavení budou mít oh-my-zsh s libovolným vlastním motivem, který chcete, aby měli.
Pokud chcete změnit všechny ostatní existující uživatelské prostředí na zsh, doporučuji přečíst si tuto otázku o chybě serveru.
Pokud chcete instalaci Oh-My-Zsh pro celý systém, pohodlný přístup, který přepíše nejmenší počet souborů, je:
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
Upravit /etc/skel/.zshrc
:
- Upravte řádek
export ZSH=$HOME/.oh-my-zsh
(aktuálně řádek 5) - Změňte řádek na:
export ZSH=/etc/oh-my-zsh
export ZSH_CACHE_DIR=~/.oh-my-zsh/cache
Poté upravte /etc/default/useradd
a změňte řádek SHELL=...
na SHELL=/bin/zsh
.
To je v podstatě vše (samozřejmě již musí být nainstalovány git a zsh).
Chcete-li aktualizovat již existujícího uživatele:přihlaste se jako oni a cp /etc/skel/.zshrc ~/.zshrc
Aktualizace: Toto prosím neupravujte. Právě jsem vrátil úpravu, která to úplně zpackala!
Přihlaste se jako ROOT
Krok 1:Nainstalujte 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
Krok 2:Nainstalujte 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
Krok 3:Přidejte další (volitelné – podívejte se dole na další funkce)
Krok 4:Vytvořte symbolický odkaz
# Create Symbolic Links to /etc/skel
sudo ln /usr/share/oh-my-zsh/zshrc /etc/skel/.zshrc
Krok 5:Přidejte oh-my-zsh pro root
# Change shell to ZSH for root
echo "$USER" | chsh -s /usr/local/bin/zsh
Krok 6:Přidejte oh-my-zsh pro uživatele
# 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
NEBO
sudo -i -u username bash << EOF
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
echo username | chsh -s /usr/local/bin/zsh
EOF
EXTRA:
Změňte motiv na 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
Povolit automatickou opravu
sed -i 's/# ENABLE_CORRECTION="true"/ENABLE_CORRECTION="true"/g' /usr/share/oh-my-zsh/zshrc
Povolit automatické návrhy a zvýrazňování syntaxe
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
Přidejte 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