Сразу отмечу, что в командной строке я профан и воспользоваться всеми фичами zsh для меня не представляется возможным. В принципе.
Пожалуй, главный аргумент для меня в этом выборе - эстетический: красота.
Для любопытствующих "почитать" про zsh
https://eax.me/zsh/
https://habr.com/post/326580/с
Существует проект ohj-my-zsh поставляющий начинающим темы по ссылкам
https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
и
https://github.com/robbyrussell/oh-my-z ... nal-themes
В русской арч-вики есть статья про zsh
https://wiki.archlinux.org/index.php/Zs ... 0.BA.D0.B0
есть еще и английская версия этой же страницы
https://wiki.archlinux.org/index.php/zs ... figuration
Прочитал и сразу же приступаю:
Код: Выделить всё
[warum@perche /] echo $SHELL
/bin/bash
[warum@perche /] pacman -Syu
...
[warum@perche /] pacman -Ss zsh
...
[warum@perche /] pacman -S zsh
...
[warum@perche /] zsh
Согласно приведенной выше ссылке при первом запуске zsh
Появится сообщение... Но оно на английском и переводить его на арч-вики не стали.
Не знаю как кто, а я с английским не дружу. Поэтому для себя любимого на будущее (т.к. планирую еще не раз переустанавливать ПО на этих ноутбуках), а также таких же как и я англоНЕговорящих пользователей решил вооружившись Яндекс-переводчиком таки переводидть.
This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seehng this message because you have no zsh starting files
(the files .zsрenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
--- Type one of the keys in parentheses ---
=======================
Это функция конфигурации оболочки Z для новых пользователей, zsh-newuser-install.
Вы видите это сообщение, потому что у вас нет стартовых файлов zsh (файлов .zspenv,.zprofile, .zshrc, .злогин в каталоге~). Эта функция может помочь Вам с несколькими настройками, которые должны облегчить использование оболочки.
вы можете:
(q) выйти и ничего не делать. В следующий раз функция будет запущена снова.
(0) выход, создание файла ~/zshrc, содержащего только комментарий.
Это предотвратит повторный запуск этой функции.
(1) перейдите в Главное меню.
--- Введите один из ключей в скобках ---
Если совсем не ясно, что делать, то нажимаем q (этот вариант на арч-вики как раз есть).
Однако, там написано, что "В следующий раз функция будет запущена снова". А мне это не нужно. Зачем мне при открытии всегда эти вопросы? Я и так не сахар, а от вопросов без ответов становлюсь раздражительным. Значит надо разбираться.
Вводим (1)
И попадаем в Главное меню
Please pick one of the following options:
(1) Configure settings for history, i.e. command lines remembered
and saved by the shell. (Recommended.)
(2) Configure the new completion system. (Recommended.)
(3) Configure how keys behave when editing command lines. (Recommended.)
(4) Pick some of the more common shell options. These are simple "on" or "off" switches controlling the shell's features.
(a) Abort all settings and start from scratch. Note this will overwrite
any settings from zsh-newser-install already in the startup file.
It will not alter any of your other settings, however.
(q) Quit and do nothing else. The function will be run again next time.
--- Type one of the keys in parentheses ---
=======================
Выберите один из следующих вариантов:
(1) Настройка параметров для истории, т. е. командной строки вспомнил
и спасена скорлупой. (Рекомендуемый.)
(2) Настройте новую систему завершения. (Рекомендуемый.)
(3) Настройка поведения клавиш при редактировании командных строк. (Рекомендуемый.)
(4) выберите некоторые из наиболее распространенных вариантов оболочки. Это простые переключатели" on "или" off", управляющие функциями оболочки.
(а) отменить все настройки и начать с нуля. Обратите внимание, это приведет к перезаписи
любые настройки из zsh-newser-install уже есть в файле автозагрузки.
Однако это не изменит никаких других ваших настроек.
(q) выйти и больше ничего не делать. В следующий раз функция будет запущена снова.
--- Введите один из ключей в скобках ---
Сложный выбор когда не знаешь, что там будет дальше.
Похоже первые четыре пункта это и есть настройки zsh.
Переходим в пункт (1)
History configuration
==================
# (1) Number of lines of history kept within the shell.
HISTSIZE=1000
# (2) File where history is saved.
HISTFILE=~/.histfile
# (3) Number of lines of history to save to $HISTFILE.
SAVEHIST=1000
# (0) Remember edits and return to main menu (does not save file yet)
# (q) Abandon edits and return to main menu
--- Type one of the keys in parentheses ---
=======================
# (1)количество строк истории, хранящихся в оболочке.
HISTSIZE=1000
# (2) файл, в котором сохраняется история.
HISTFILE=~/.histfile
# (3) количество строк истории для сохранения в $HISTFILE.
SAVEHIST=1000
# (0) запомнить изменения и вернуться в Главное меню (Файл еще не сохранен)
# (q) отменить изменения и вернуться в Главное меню
--- Введите один из ключей в скобках ---
Пока не догоняю разницу между "количеством строк ... хранящихся в оболочке" и "количеством строк в ... $HISTFILE"
Они чего дублируются что ли? Если да, то я бы, наверное, оставил какое-то одно место. Особенно, на том компьютере, на который никто кроме меня не претендует залезть. Ладно, бы это было в организации. Один админ привык там смотреть, другой сям. Хотя у них свои учетки и каждый под себя бы настроил. Короче, не понимаю.
Ну да ладно, поехали по порядку:
Variable HISTSIZE
The maximum number of events stored in the internal history list. If you use the
HIST_EXPIRE_DUPS_FIRST option. setting this value larger than the SAVEHIST size will give
you the difference as a cushion for saving duplicated history events.
Edit a value. If it is left blank, nothing will be saved:
HISTSIZE> 1000
=======================
Переменная HISTSIZE
Максимальное число событий, хранящихся во внутреннем списке хронологии. Если используется параметр HIST_EXPIRE_DUPS_FIRST. установка этого значения больше, чем размер SAVEHIST даст вам разницу в качестве подушки для сохранения дублированных событий истории.
Измените значение. Если оставить поле пустым, ничего не будет сохранено:
HISTSIZE> 1000
Не знаю, может ли мне понадобиться больше, но меньше, точно делать не хочу. Оставляю как есть и жму Enter.
После чего попадаю в меню 1-0 и выбираю пункт (2)
=======================
Variable HISTFILE
The file to save the history in when an interactive shell exits. If unset, the history is not saved.
Edit a value. If it is left blank, nothing will be saved:
HISTFILE> ~/.histfile
=======================
Переменная HISTFILE
Файл для сохранения истории при выходе из интерактивной оболочки. Если этот параметр не задан, журнал не сохраняется.
Измените значение. Если оставить поле пустым, ничего не будет сохранено:
HISTFILE> ~/.histfile
Здесь опять же мне менять нечего. Жму Enter.
После чего попадаю в меню 1-0 и выбираю пункт (3)
=======================
Variable SAVEHIST
The maximum number of history events to save in the history file.
Edit a value. If it is left blank, nothing will be saved.
SAVEHIST> 1000
=======================
Переменная SAVEHIST
Максимальное число событий журнала, сохраняемых в файле журнала.
Измените значение. Если оставить поле пустым, ничего не будет сохранено.
SAVEHIST> 1000
...и опять без изменений. Жму Enter.
=======================
Что бы запомнить изменения и вернуться в Главное меню жму (0)
В Главном меню выбираю пункт (2)
The new completion system (compsys) allow you to complete
commands, arguments and special shell syntax such as variables. It provides
completions for a wide range of commonly used commands in most cases simply
by typing the TAB key. Documentation is in the zshcompsys manual page.
If it is not turend on, only a few simple completions such as filenames
are available but the time to start the shell is slightly shorter.
You can:
(1) Turn on completion with the default options.
(2) Run the configuration tool (compinstall). You can also run
this from the command line with the following commands:
autoload -Uz compinstall
compinstall
if you don't want to configure completion now.
(0) Don't turn on completion.
--- Type one of the keys in parentheses ---
=======================
Новая система завершения (compsys) позволяет выполнять команды, Аргументы и специальный синтаксис оболочки, такой как переменные. Он обеспечивает завершение для широкого спектра часто используемых команд в большинстве случаев, просто набрав клавишу TAB. Документация на странице справочника zshcompsys.
Если он не включен, доступно только несколько простых завершений, таких как имена файлов, но время запуска оболочки немного короче.
вы можете:
(1) включите завершение с параметрами по умолчанию.
(2) Запустите средство настройки (compinstall). Вы также можете запустить
это из командной строки со следующими командами:
autoload-Uz compinstall
compinstall
если Вы не хотите настраивать завершение сейчас.
(0)не включать завершение.
--- Введите один из ключей в скобках ---
Не очень понятно. Ну пусть закрывается с параметрами по умолчанию (1). Тут мы снова возвращаеся в Главное меню. И выбираем пункт (3)
=======================
Default editing configuration
========================
The keys in the shell's line editor can be made to behave either
like Emacs or like Vi, two common Unix editors. If you have no
experience of either, Emacs is recommended. If you don't pick one,
the shell will try to guess based on the EDITOR environment variable.
Usually it's better to pack one explicitly.
# (1) Change default editing configuration
bindkey -e
# (0) Remember edits and return to main menu (does not save flie yet)
# (q) Abandon edits and retourn to main menu
--- Type one of the keys in parentheses ---
=======================
Ключи в линейном редакторе оболочки можно заставить вести себя либо как Emacs, либо как Vi, два распространенных редактора Unix. Если у вас нет опыта, рекомендуется использовать Emacs. Если Вы не выберете один из них, оболочка попытается угадать на основе переменной среды редактора.
Обычно лучше упаковать один явно.
# (1) изменить конфигурацию редактирования по умолчанию
bindkey-e
# (0) запомнить изменения и вернуться в Главное меню (пока не сохраняет flie)
# (q) отказаться от правок и вернуться в Главное меню
--- Введите один из ключей в скобках ---
Видимо, (1)
Проваливаемся в следующее меню
=======================
Pick a keymap (set of keys) to use when editing.
Type:
(e) for Emacs keymap (recommended unless you are vi user)
(v) for Vi keymap
(n) not to set a keymap (allow shell to choose)
(k) to keep the current setting, (e):
--- Type one of the keys in parentheses ---
=======================
Выберите раскладку клавиатуры (набор клавиш) для использования при редактировании.
Тип:
(e) для раскладки клавиатуры Emacs (рекомендуется, если Вы не являетесь пользователем vi)
(V) для Ви раскладку
(n) не устанавливать раскладку клавиатуры (разрешить shell выбирать)
(k) сохранить текущую настройку, (e):
--- Введите один из ключей в скобках ---
В данном случае, тоже не понятна разница. Возьмем рекомендованое. В данном случае можно нажать (e) или (k) - результат будет одинаковый. (k) и следом (0)
Возврат в Главное меню и выбор следующего пункта.
Я выбрал (4)
На следующем экране, назовем его Меню 4.0 две колонки. В первой из них:
=======================
Common following are some of the shell options that are most often used.
The descriptions are very brief; if you would like more information,
read the zshoptions manual page (type "man zshoptions").
# (1) Change directory given just path.
# unsetopt autocad
# (2) Use additional pattern matching features.
# unsetopt extendedglob
# (3) Append new history lines instead of overwriting.
# unesetopt appendhistory
# (4) Unmatched patterns cause on error.
# setopt nomatch
# (5) Beep on errors.
# setopt beep
# (6) Immediately report changes in bachground job status.
# unsetopt notify
# (0) or (q) Return to main menu (no changes made yet)
--- Type one of the keys in parentheses ---
=======================
Ниже приведены некоторые наиболее часто используемые параметры оболочки.
Описания очень краткие; если вам нужна Дополнительная информация,
прочтите страницу руководства zshoptions (введите "man zshoptions").
# (1) изменить каталог по указанному пути.
# unsetopt autocad
# (2) используйте дополнительные функции сопоставления с образцом.
# unsetopt extendedglob
# (3) добавить новые строки истории вместо перезаписи.
# unesetopt appendhistory
# (4) Непарные узоры вызвать ошибки.
# nomatch setopt
# (5) звуковой сигнал об ошибках.
# setopt beep
# (6) немедленно сообщить об изменениях в статусе работы bachground.
# unsetopt уведомить
# (0) или (q) вернуться в Главное меню (изменений пока нет)
--- Введите один из ключей в скобках ---
Если перейти по цифре (1)
=======================
Option autocad:
If a command is issued that can't be executed as a normal command, and the command
is the name of a directory, perform the cd command to that directory. This option is only
applicable if the option SHIN_STDIN is set, i.e. if commands are being read from
standard input. The option is deigned for interactive use; it is recommended that cd
used explicitly in scripts to avoid ambiguity.
The option autocad is currently unset.
Type:
(s) to set it (turn it on)
(u) to unset it (turn it off)
(n) neither to set or unset it (use shell default: off)
(k) or (q) to keep the current setting:
--- Type a key ---
=======================
Параметр autocad:
Если команда не может быть выполнена как обычная команда, а команда-имя каталога, выполните команду CD в этот каталог. Эта опция применима только если установлена опция SHIN_STDIN, т. е. если команды считываются со стандартного ввода. Опция предназначена для интерактивного использования; рекомендуется, чтобы cd использовался явно в скриптах, чтобы избежать двусмысленности.
Параметр autocad в настоящее время не задан.
Тип:
(s) установить его (включить)
(u) снять его (Выключить)
(n) не устанавливать и не отключать его (используйте shell default: off)
(K) или (Q), чтобы сохранить текущие настройки:
--- Введите ключ ---
Перевод не добавил осмысленности тексту. Самым понятным словом в переводе показалось default. А посему мой выбор (n). После осуществления выбора, выбрасывает в предыдущее оконо.
Если приглядеться, то оно тоже, да не тоже:
В заголовке написано: Common shell options
===================
А последний пункт разделился на два
# (0) Remember edits and return to main menu (does not save file yet)
# (q) Abandon edits and return to main menu
# (0) запомнить изменения и вернуться в Главное меню (Файл еще не сохранен)
# (q) отменить изменения и вернуться в Главное меню
Заходим в цифру (2)
=======================
Option extendedglob:
Treat the '#', '~' and 'circumflex' characters as part of patterns for filename generation,
etc. (An initial unquoted '~' always produces named directory expansion.)
The option extendedglob is currently unset.
Type:
(s) to set it (turn it on)
(u) to unset it (turn it off)
(n) neither to set or unset it (use shell default: off)
(k) or (q) to keep the current setting:
--- Type a key ---
=======================
Опция extendedglob:
Рассматривайте символы'#', ' ~ ' и 'circumflex' как часть шаблонов для генерации имени файла и т. д. (Первоначальный некотируемых '~' всегда производит назвал расширение каталога.)
Параметр extendedglob в настоящее время не задан.
Тип:
(s) установить его (включить)
(u) снять его (Выключить)
(n) не устанавливать и не отключать его (используйте shell default: off)
(K) или (Q), чтобы сохранить текущие настройки:
--- Введите ключ ---
Если я првильно понял перевод (в чем совсем не уверен), то пункт (u) не позволяет использовать спецсимволы в названиях файлов и директорий. По моему это правильно. Для такого простого юзера, как я, и одного английского алфавита достаточно. Поэтому выбрал (u). Если выбор не верен, то вроде как можно запустить этот инсталлятор по-новой или отредактировать конфигурационный файл напрямую в текстовом редакторе.
Естественно, после выбора возвращаемся в предыдущее меню. И выбираем пункт (3)
=======================
Option appendhistory:
If this is set, zsh session will append their history list to the history file, rather than
replace it. Thus, multiple parallel zsh session will all have the new entries from their
history file, in the order that they exit. The file will still be periodically re-written to trim
it when the number of lines grous 20% beyond the value specified by $SAVEHIST (see
also the HIST_SAVE_BY_COPY option).
The option appendhistory is currently unset/
Type:
(s) to set it (turn it on)
(u) to unset it (turn it off)
(n) neither to set or unset it (use shell default: off)
(k) or (q) to keep the current setting:
--- Type a key ---
=======================
Параметр appendhistory:
Если этот параметр установлен, сеанс zsh добавит их список истории в файл истории, а не заменит его. Таким образом, несколько параллельных сеансов zsh будут иметь новые записи из своего файла истории в порядке их выхода. Файл по-прежнему будет периодически перезаписываться, чтобы обрезать его, когда количество строк на 20% превышает значение, указанное в $SAVEHIST (см. также параметр HIST_SAVE_BY_COPY).
Параметр appendhistory в настоящее время не задан/
Тип:
(s) установить его (включить)
(u) снять его (Выключить)
(n) не устанавливать и не отключать его (используйте shell default: off)
(K) или (Q), чтобы сохранить текущие настройки:
--- Введите ключ ---
Истории это я люблю. Их, имхо, много не бывает. Так что добавляю, и выбираю (s). И переходим к пункту (4)
=======================
Option nomatch:
If a pattern for fliename generation has no matches, print an error, instead of leaving it
unchanged in the argument list. This also applies to file expansion of an initial '~' or '='.
The option nomatch is currently set.
Type:
(s) to set it (turn it on)
(u) to unset it (turn it off)
(n) neither to set or unset it (use shell default: off)
(k) or (q) to keep the current setting:
--- Type a key ---
=======================
Вариант nomatch:
Если шаблон для генерации fliename не имеет совпадений, выведите ошибку вместо того, чтобы оставить ее без изменений в списке аргументов. Это также относится к расширению исходного файла ' ~ 'или'='.
Параметр nomatch в настоящее время установлен.
Тип:
(s) установить его (включить)
(u) снять его (Выключить)
(n) не устанавливать и не отключать его (используйте shell default: off)
(K) или (Q), чтобы сохранить текущие настройки:
--- Введите ключ ---
"Если не имеет совпадений ... выведите ошибку ... чтобы оставить без изменений". Не понятно. Кажется нужно включить, что бы выводить сообщение об ошибке (s) (вот только про какую ошибку идет речь вообще не внятно как-то написано). Придется постараться обратить внимание.
Опять возвращаемся в предыдущее меню. И выбираем следующий пункт (5)
=======================
Option beep:
Beep on error in ZLE.
The option beep is currently set.
Type:
(s) to set it (turn it on)
(u) to unset it (turn it off)
(n) neither to set or unset it (use shell default: off)
(k) or (q) to keep the current setting:
--- Type a key ---
=======================
Ну тут вроде и без переводчика понятно. Так-то если об ошибке будет сообщаться бипом вроде нужно. Но если мешает окружающим, или вас самого раздражает, то можно и отключить. Короче, я для начала выбираю (s). Если будет раздражать - выключу.
=======================
Option notify:
Report the status of background jobs immediately, rather than waiting until just before
printing a prompt.
The option notify is currently unset.
Type:
(s) to set it (turn it on)
(u) to unset it (turn it off)
(n) neither to set or unset it (use shell default: off)
(k) or (q) to keep the current setting:
--- Type a key ---
=======================
Опция уведомлять:
Немедленно сообщите о состоянии фоновых заданий, не дожидаясь непосредственно перед печатью приглашения.
Параметр notify в настоящее время не установлен.
Тип:
(s) установить его (включить)
(u) снять его (Выключить)
(n) не устанавливать и не отключать его (используйте shell default: off)
(K) или (Q), чтобы сохранить текущие настройки:
--- Введите ключ ---
В этот раз вроде понятно что написано. Не понятно зачем. Включем посмотрим (s).
=======================
Оставшиеся два пунктя я переводил раньше, поэтому сейчас просто нажимаем (0) для сохранения сделаных изменений.
=======================
И еще раз подтверждаем (0).
На этом настройка еще не совсем закончилась.
Перед нами следующее сообщение:
The function will not be run future, but you can run
it yourself as follows:
autoload -Uz zsh-newuser-install
zsh-newuser-install -f
The code added to ~/.zshrc is marked by the lines
# Lines configured by zsh-newuser-install
# End of lines configured by zsh-newuser-install
You should not edit anything between these lines if you intend to
run zsh-newuser-install again. You may, however, edit any other part
of the file.
perche%
=======================
Функция не будет запускаться в будущем, но вы можете запустить ее самостоятельно следующим образом:
autoload -Uz zsh-newuser-install
zsh-newuser-install -f
Код, добавленный в~/.zshrc отмечен линиями
# Линии, настроенные zsh-newuser-install
# Конец строк сконфигурирован zsh-newuser-install
Вы не должны редактировать что-либо между этими строками, если вы собираетесь
запустите zsh-newuser-install еще раз. Однако вы можете редактировать любую другую часть
из папки.
perche% (название моего хостнейма)
perche%
...М-м-м-м... И что бы это значило? хостнейм с %
при попытке ввода после perche%
echo $SHELL
в ответ получаю
/bin/bash
, значит все-таки приглашение консоли, но почему такое странное? и почему еще не zsh?
UPD: Оказывается perche% это и было приглашение zch (чего-то в таком виде оно мне не особо нравится: придется доработать).
Однако, для того, что бы у пользователя реально была эта оболочка нужно открыть
Найти строку с вашим именем пользователя:
Код: Выделить всё
username:x:1634231:100:Your Name:/home/username:/bin/bash
и замените bash на zsh:
Код: Выделить всё
username:x:1634231:100:Your Name:/home/username:/bin/zsh
Выйдите из системы и войдите в систему, чтобы изменения вступили в силу.
Код: Выделить всё
exit
perche login: warum
Password:
echo $SHELL
/bin/zch