Використання zsh як стандартного командного процесора на комп’ютері Mac

Починаючи з macOS Catalina, на комп’ютерах Mac як стандартний командний процесор для входу в систему й інтерактивний командний процесор використовується zsh. Також можна налаштувати zsh для використання за замовчуванням і в раніших версіях macOS.

За замовчуванням комп’ютер Mac використовує zsh або bash як інтерпретатор для входу в систему й інтерактивний командний процесор:

  • zsh (Z shell) — стандартний командний процесор для всіх новостворених облікових записів, починаючи з macOS Catalina.

  • bash — стандартний командний процесор у macOS Mojave і раніших версіях.

Командний процесор zsh має високу сумісність із командним процесором Bourne (sh) і здебільшого сумісний із bash, але з деякими відмінностями. Щоб отримати докладніші відомості про командний процесор zsh і його всебічну систему заповнення командного рядка, введіть man zsh у програмі «Термінал».

Як змінити стандартний командний процесор

Незалежно від того, який командний процесор налаштовано в обліковому записі користувача — zsh (рекомендовано), bash чи інший, — стандартний командний процесор можна змінити в параметрах «Користувачі та групи» або в командному рядку.

У командному рядку

У програмі «Термінал» введіть команду $ chsh -s path, де path є одним зі шляхів командного процесора, зазначених у папці /etc/shells, як-от /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh, or /bin/tcsh.

З меню «Користувачі та групи»

На пристроях із macOS Ventura або новішої версії:

  1. Перейдіть у меню Apple > «Системні параметри», а потім натисніть «Користувачі та групи» на бічній панелі.

  2. Утримуючи клавішу Control, клацніть своє ім’я чи зображення користувача в списку праворуч, а потім виберіть «Експертні параметри».

  3. Введіть своє ім’я користувача та пароль, коли з’явиться відповідний запит.

  4. Виберіть командний процесор у меню «Командний процесор», а тоді натисніть «OK», щоб зберегти зміни.

У раніших версіях macOS:

  1. Відкрийте меню Apple  > «Системні параметри» й натисніть «Користувачі та групи».

  2. Натисніть значок замкаNo alt supplied for Image і введіть ім’я користувача та пароль.

  3. Утримуючи клавішу Control, клацніть своє ім’я в списку користувачів ліворуч, а потім виберіть «Експертні параметри».

  4. Виберіть командний процесор у меню «Командний процесор», а тоді натисніть «OK», щоб зберегти зміни.

Як використовувати інший командний процесор, не змінюючи стандартний

Якщо ви не хочете, щоб у нових вікнах і вкладках програми «Термінал» використовувався стандартний командний процесор для входу в систему:

  1. Відкрийте програму «Термінал» і виберіть меню «Термінал» > «Параметри».

  2. На вкладці «Загальні» виберіть варіант «Команду (повний шлях)».

  3. У відповідному полі введіть один зі шляхів командного процесора, зазначених у папці /etc/shells, наприклад /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh або /bin/tcsh.

Якщо викликати командний процесор bash, коли в macOS налаштовано використання іншого, з’явиться повідомлення про те, що стандартним інтерактивним командним процесором зараз є zsh. Щоб вимкнути це попередження, можна додати до ~/.bash_profile або ~/.profile таку команду:

export BASH_SILENCE_DEPRECATION_WARNING=1

Як перемкнутися на профіль і командний рядок zsh

Якщо ви використовуєте профіль bash, наприклад для встановлення змінних оточення, псевдонімів або змінних шляху, слід перейти на використання еквіваленту zsh. Наприклад:

  • .zprofile є еквівалентом профілю .bash_profile, що запускається під час входу в систему, зокрема через SSH;

  • .zshrc є еквівалентом .bashrc, що запускається для кожного нового сеансу програми «Термінал».

Якщо ви використовуєте профіль .profile (сумісний зі стандартом POSIX), ви можете зробити так, що zsh автоматично зчитуватиме його параметри, додавши цю команду до .zprofile:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Деякі параметри можна також перенести з профілю bash до профілю zsh без змін. Наприклад, щоб установити змінні оточення: export MY_SETTING=1.

Командний процесор zsh розпізнає інший набір специфікаторів командного рядка, ніж bash, і має чіткіший синтаксис для зазначення підсвічування виводу, що дає змогу уникнути використання складних escape-послідовностей ANSI. Наприклад, синтаксис для стандартного командного рядка bash у профілі .bash_profile:

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

Щоб перетворити такий командний рядок bash на командний рядок zsh у разі використання профілю .zprofile або .zshrc:

export PS1="%10F%m%f:%11F%1~%f \$ "

Докладніші відомості див. на довідковій сторінці командного процесора zsh.

Як перевірити сценарії командного процесора

Щоб перевірити сумісність сценаріїв із сумісними з Bourne командними процесорами в macOS Catalina або новіших версіях, можна змінити /var/select/sh на /bin/bash, /bin/dash або /bin/zsh. У разі зміни /var/select/sh на командний процесор, відмінний від bash, слід пам’ятати, що сценарії, які використовують команди, характерні для bash, можуть працювати неправильно.

Щоб командний процесор zsh працював у режимі емуляції sh, можна виконати команду zsh --emulate sh.

Інформація про продукти, вироблені не компанією Apple, або про незалежні веб-сайти, які не контролюються та не тестуються компанією Apple, не носить рекомендаційного характеру та не рекламується компанією. Компанія Apple не несе жодної відповідальності за вибір, функціональність і використання веб-сайтів або продукції сторонніх виробників. Компанія Apple також не несе відповідальність за точність або достовірність даних, розміщених на веб-сайтах сторонніх виробників. Зверніться до відповідного постачальника за додатковою інформацією.

Дата опублікування: