Перейти к содержимому

Chsh s bin zsh что это

  • автор:

Chsh s bin zsh что это

Команда chsh позволяет сменить командную оболочку, используемую для входа в систему.

Базовый синтаксис команды выглядит следующим образом:

$ chsh [-s /файл/командной/оболочки] [имя пользователя]

Важно помнить о том, что полный путь к файлу командной оболочки должен находиться в файле конфигурации /etc/shells для ее корректного распознавания, поэтому вам могут понадобиться права пользователя root для добавления новой командной оболочки в систему. После добавления пути к файлу командной оболочки в упомянутый файл вы можете выполнить команду chsh либо от лица обычного пользователя, либо от лица пользователя root. (Пользователь root может изменить командную оболочку любого пользователя, при этом обычные пользователи могут изменять лишь свои командные оболочки.)

Полный путь к файлу интересующей командной оболочки должен передаваться в качестве значения параметра -s таким образом, как показано ниже:

$ chsh -s /usr/local/bin/zsh

Вам будет предложено ввести свой пароль для того, чтобы избежать ситуаций, когда пользователь исполняет команду и отходит на некоторое время по своим делам, предоставляя третьим лицам возможность ввести любые данные. (Хотя запрос пароля не является чем-то необычным для UNIX-подобных систем и нередко используется для защиты пользователей от их же ошибок, для исполнения такой вредоносной команды, как, к примеру, rm -rf /home/user не потребуется вводить не только пароль, но и какое-либо подтверждение. При этом чаще всего приходится слышать мнение, что пользователь не должен отходить по своим делам, не выходя из системы, а требующее ввода пароля программное обеспечение вынуждает бесполезно тратить время.)

После завершения работы утилиты chsh вы вернетесь в текущую командную оболочку и вам придется выйти из системы и войти в нее снова (или использовать команду exec для смены командной оболочки). При следующем входе в систему будет использоваться уже новая командная оболочка.

При вызове chsh без аргументов для смены командной оболочки будет использован один из следующих диалогов:

$ chsh
Password:
Changing the login shell for user
Enter the new value, or press return for the default
Login Shell [/path/to/shell]:

$ chsh
Changing shell for user.
Password:
New shell [/path/to/old/shell]:

Параметр -l позволяет вывести список всех известных системе командных оболочек (этот список также можно получить с помощью команды cat /etc/shells). Однако, этот и некоторые другие параметры не доступны во всех вариантах утилиты chsh. Например, вариант утилиты от Julianne Frances Haugh не поддерживает параметр -l, да и вообще не принимает каких-либо параметров помимо -s и имени пользователя.

При работе с системами, в которых пользователям не разрешено использовать команду chsh, вы можете разместить вызов exec в файле .profile или .login для смены командной оболочки при каждом входе в систему. Например, команда exec -c newsh -l позволяет адаптировать окружение старой командной оболочки к новой командной оболочке, которая будет использоваться для входа в систему, что не соответствует ряду требований к безопасности системы и может не удовлетворять тех пользователей, которые желают сменить командную оболочку «по всем правилам» (то есть, корректным образом зарегистрировав ее в файле конфигурации /etc/passwd и так далее). Для этого вам в любом случае придется пользоваться той версией утилиты chsh, которая используется в вашей системе.

И последний совет: не вводите путь к произвольным бинарным файлам, ведь в этом случае вы не сможете войти в систему и для исправления ситуации вам понадобятся права пользователя root.

Какой порядок запуска в терминале `chsh -s/ bin/ zsh` ?

курс ModernJS. урок 28. После установки и проверки NodeJS(по инструкции) на OSX, в DOC появился Терминал с записью: The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
iMac-Vlad:~ vladvlad$ подскажите, какой порядок исполнения этой команды, если это НАДО.

2 ответов

Спасибо! Я понял,что ничего делать не надо, пока что, пусть висит в DOC. А когда чуть оботрусь в программировании, то РАЗБЕРУСЬ сам. Почитал о настройках терминала, очень интересно.

А сам nodejs установился? Если да, то можно ничего не делать. Вообще zsh — это новый терминал (shell) для mac, вместо классического bash, они похожи.

Oh My Zsh: прокачай свой терминал

Oh My Zsh

Стандартный терминал Unix систем, будь то MacOS или Linux, неплох. И все же, от инструмента, за которым приходится работать каждый день, хочется большего. Ниже представлена версия того, как сделать его более удобным и продуктивным.

Новичкам возможно будет интересно (и полезно):

  • пройти курс по основам командной строки ;
  • изучить шпаргалки linux cheat sheet ;
  • ознакомится с программированием на Shell в Unix .

Знакомьтесь, iTerm2

Для начала, замените стандартный терминал на что-нибудь получше. Пользователям MacOS рекомендую iTerm2 . Для пользователе прочих Unix систем существуют другие решения, например Guake .

Список функций iTerm2 представлен на официальной странице , среди них: автодополнение, поиск с подсветкой в консоли, сплит панели, копирование без использования мыши, переключение в терминал с помощью горячей клавиши, менеджер паролей и другие.

iTerm2

Чтобы установить iTerm2 вручную: скачайте его с официального сайта, распакуйте скачанный архив и переместите приложение в папку с программами.

Или, если используете Homebrew, установить iTerm2 можно одной командой:

brew cask install iterm2

Самый популярный шорткат — быстрое отображение или скрытие iTerm2. Можно сделать чтобы консоль выезжала сверху, как в Quake.

iTerm2 Console

Но фича не работает из коробки, поэтому потребуется выполнить некоторые действия: перейдите в настройки (iTerm2Preferences), далее ProfilesKeysConfigure Hotkey Window, хоткей можно указать любой, остальные настройки как на скриншоте ниже.

Configure Hotkey iTetm2

Далее (там же в Profiles) перейдите в Window, и установите настройки как на скриншоте (или измените по своему усмотрению). За стиль окна отвечает настройка Style.

Configure Window iTetm2

Можно двигаться дальше.

Мигрируй на Zsh

Zsh она же Z shell — одна из современных командных оболочек Unix. Мало кто знаком и использует все ее функции. Однако это и не требуется — фреймворк Oh My Zsh, который мы установим далее, позволит настраивать ее и кастомизировать с помощью тем и плагинов.

У пользователей MacOS, скорее всего, Zsh уже установлена, если нет — установите с помощью менеджера пакетов Homebrew, а затем сделайте zsh оболочкой по умолчанию.

brew install zsh
chsh -s /bin/zsh

Установка zsh в Ubuntu и Debian.

apt install zsh
chsh -s /bin/zsh

Пользователи прочих Unix систем наверняка справятся с установкой .

Убедиться, что zsh является оболочкой по умолчанию можно следующей командой.

echo $SHELL

Результат /bin/zsh означает, что все сделано верно.

Далее необходимо перелогиниться. Когда вновь откроете терминал, возможно увидите приветственное сообщение zsh. Ничего не меняйте и выйдите, выбрав q.

Zsh: быстрый старт

Еще до установки Oh My Zsh и плагинов можно оценить мощь Zsh.

Попробуйте ввести следующую команду:

Она вставит в консоль предыдущую команду. Будет полезна, если забыли указать sudo для команды требующей root:

you-sudo-command
error: you cannot perform this operation unless you are root.
sudo !!
sudo you-sudo-command

От предыдущей команды можно взять только аргумент.

cd ~/MyFolder
cd: no such file or directory: cd ~/MyFolder
mkdir !*
mkdir ~/MyFolder

Вставить в консоль последнюю команду, начинающуюся с указанных символов:

!part-of-command

Конструкция похожа на предыдущую, но применима для известной части символов в середине или в конце команды:

!?part-of-command?

Например, !?VIDEO? из моей истории команд, после нажатия на Tab, преобразуется в:

git push --set-upstream origin dt.feature.VIDEO-10000

Опечатку в последней введенной команде можно исправить так:

^dc^cd

А с помощью следующей команды удобно сделать бэкап файла.

cp nginx.conf

Конструкция выше аналогична команде:

cp nginx.conf nginx.conf.bak

Следующая конструкция удалит ранее распакованные файлы. Будет полезна если вы распаковали архив tar.gz не в тот каталог.

rm -f `tar ztf /path/to/file.tar.gz`

Примеры выше, малая доля того, что умеет Zsh. Еще больше возможностей открывается при использовании фреймворка Oh My Zsh.

Установка Oh My Zsh

Oh My Zsh — open source фреймворк, поддерживаемый сообществом. Предназначен для управления настройками Zsh и расширяющий его функционал и за счет плагинов и тем.

Установка через curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Установка через wget

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Установка вручную (загрузите скрипт, затем выполните его)

curl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh sh install.sh

Oh My Zsh установится в папку ~/.oh-my-zsh. Если понадобится удалить Oh My Zsh, не удаляйте папку вручную, а воспользуйтесь специальной командой:

uninstall_oh_my_zsh

Oh My Zsh в действии

Одно из неудобств консоли — перемещение по папкам. Oh My Zsh расширяет возможности автодополнения по кнопке Tab.

Например, Oh My Zsh исправляет регистр букв. Можно написать:

cd ~/de

Затем нажать Tab и команда преобразуется в:

cd ~/Desktop/

Если с введенных символов начинаются имена нескольких каталогов, по нажатию на Tab будет выведен список уточнений, а при повторном нажатии Tab, стрелками (или последующими нажатиями Tab) можно будет выбрать нужный каталог.

Автодополнение в Oh My Zsh

Автодополнение работает для любой части файлов и каталогов. Чтобы перейти в каталог ~/Downloads, можно написать:

cd load

По нажатию Tab, строка будет преобразована.

cd ~/Downloads/

Oh My Zsh умеет дополнять имена каталогов по всему пути, а не только по последней его части, например:

ls /v/l/apa

По нажатию Tab, строка будет преобразована.

ls /var/log/apache2

А если добавить в файл конфигурации ~/.zshrc часто используемые каталоги в переменную CDPATH, то не нужно будет печатать даже первые буквы имен каталогов.

export CDPATH=/var/www:/home/имя_пользователя/MyFolder
cd MyFolder

Выбор темы

Дефолтная тема Oh My Zsh минималистична и хороша, но я предпочитаю Agnoster. Обратите внимание, как информативно выглядит в ней git-репозиторий.

Чтобы установить тему из репозитория откройте файл ~/.zshrc, и в поле ZSH_THEME замените значение на имя понравившейся темы.

ZSH_THEME="agnoster"

Подобрать тему можно на странице репозитория Oh My Zsh .

Чтобы установить внешнюю тему, скачайте ее, а затем переместите в каталог тем ~/.oh-my-zsh/custom/themes.

Если после установки темы наблюдаете проблему со шрифтами, странные символы или кривые уголочки нужно установить дополнительные шрифты powerline patched fonts .

cd ~/Downloads/
git clone https
://github.com/powerline/fonts.git
cd fonts
./install.sh

Затем перейдите в настройки iTerm2Preferences, далее ProfilesText и в поле Font выберите скачанный шрифт, например Meslo LG или Droid Sans. Перезапустите терминал, теперь шрифты будут корректно отображаться в выбранной теме.

Выбор цветовой схемы

Рекомендую попробовать цветовые схемы iTerm2 Material Design или тему Dracula .

Цветовые схемы устанавливаются в дополнение к темам, чтобы сделать вид терминала еще привлекательнее, или вместо них — если тему по душе вы еще не подобрали.

Так выглядит мой терминал с установленной темой Agnoster и цветовой схемой Dracula.

Чтобы изменить цветовую схему терминала, скачайте понравившуюся, а затем перейдите в настройки iTerm2Preferences, далее ProfilesColor и в поле Color Presets (справа внизу), выберите пункт Import и импортируйте, а затем выберите скачанную тему.

Плагины

Плагины расширяют возможности Oh My Zsh. Список всех плагинов входящих в состав Oh My Zsh приведен на странице репозитория .

Как и в случае с темами, чтобы добавить плагин, нужно прописать его название в файле ~/.zshrc, секция plugins. Например, чтобы активировать плагин docker, добавьте «docker» в секцию plugins.

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
docker
)

Чтобы установить сторонний плагин, его нужно предварительно скачать и положить в каталог сторонних плагинов ~/.oh-my-zsh/custom/plugins.

По умолчанию включен только один плагин — git. Он показывает актуально ли текущее состояние репозитория, активную ветку и есть ли изменения. Таким образом не нужно постоянно проверять git branch -v и git status.

Несколько полезных плагинов из репозитория Oh My Zsh:

npm — добавлят поддержку автодополнения к npm;
vagrant — автодополнения для vagrant, если пользуетесь им;
composer — автодополнения и алиасы;
sudo — если для выполнения команды потребовались права суперпользователя, плагин позволит не возвращаться в начало строки, а нажать два раза Esc, и он добавит sudo в начало команды.

И пара интересных внешних плагинов:

zsh-syntax-highlighting — добавляет подсветку синтаксиса, подсвечивает команду если в написании допущена ошибка;
zsh-autosuggestions — предугадывает команды на основе ранее вводимых.

Алиасы

Алиасы или псевдонимы — это сокращения для длинных команд или даже последовательности команд.

Список текущих алиасов Oh My Zsh можно посмотреть командой:

alias

Свои алиасы можно добавлять в файле ~/.zshrc

Example aliases alias zshconfig="mate ~/.zshrc" alias ohmyzsh="mate ~/.oh-my-zsh" alias dkps="docker ps" alias dkst="docker stats"

Шпаргалка с алиасами встроенными в Oh My Zsh доступна на странице репозитория . Ознакомьтесь, а лучше запомните.

Ссылки

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Настройка ZSH в MacOS

С началом использования MacOS, почти сразу понимаешь, что стандартный терминал не очень-то и удобен.

В качестве оболочки будем использовать ZSH, о нём, думаю, не слышал только любитель красивых UI, а вместо стандартного терминала я используем iTerm2.

В MacOS ZSH предустановлен, поэтому сразу устанавливаем его в качестве оболочки по умолчанию с помощью команды:

chsh -s /bin/zsh

После перезапуска терминала оболочкой должен быть уже ZSH.

Если попросит начать настройку, то прервём сей процесс, нажав q.

Ручками не нужно переписывать конфиги, пусть это сделает Oh My Szh. Это набор плагинов и настроек, которые решают самые популярные задачи и делают ваш шелл просто супер удобным. Установим его, следуя инструкциям с официального сайта.

Переходим в домашний каталог и выполняем:

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

Установка прошла, но ничего не поменялось? Надо закрыть терминал и снова открыть его, чтобы настройки, которые приехали к нам из oh-my-zsh, прочитались и применились. Закрыли-открыли, теперь видим новое приветствие:

Это стандартная тема oh-my-zsh под названием robbyrussell (по имени автора). Мы можем поставить любую из тем, которые поставляются с oh-my-zsh. Я, использую Bureau.

Чтобы поменять тему, напишите её название (маленькими буквами, как на странице со списком тем) в файле .zshrc . Он лежит в вашей домашней папке ( /Users/Ваш_логин или /home/ваш_логин ). Поскольку он начинается с точки, он скрыт. Включите отображение скрытых файлов. Тему нужно прописать в переменную ZSH_THEME , это в районе восьмой строки, вот так:

Сохраните файл и снова перезапустите терминал (или откройте в нём новую вкладку). Теперь шелл выглядит по-новому:

Это тема Bureau. В верхней строчке сначала имя пользователя, потом имя машины, потом путь к папке, где пользователь сейчас находится. Справа текущее время. В следующей строке просто символы, которые обозначают, что ввод здесь, а справа после шестиугольника текущая версия Node.js, ветка Git (если пользователь сейчас в Git-репозитории), и кружочки, которые обозначают, что есть несохранённые изменения. В этой теме версия Node.js показывается только если вы используете Node Version Manager.

Если, увидите кривые символы, то не пугайтесь, всё это происходит из-за некоторых отсутствующих шрифтов в системе.

  1. Скачаем архив — вот здесь.
  2. Перейдём в “fonts-master/UbuntuMono/” и установим все шрифты в этой директории.
  3. В настройках терминала выставляем шрифт “Ubuntu Mono derivative Powerline”.

После перезапуска терминала вы, наконец, сможете узреть нормально работающий терминал.

Для правильной работы темы во встроенном терминале VScode в конфиг нужно добавить:

“terminal.integrated.shell.osx”: “/bin/zsh”,
“terminal.integrated.fontFamily”: “Ubuntu Mono derivative Powerline”

Можно использовать и другие шрифты

Я буду использовать Инконсолата . Получите предпочитаемый шрифт из этих шрифтов Powerline . Затем скачайте и установите его.

Или скачать весь шрифт.

git clone https://github.com/powerline/fonts.git cd fonts ./install.sh

Чтобы изменить шрифт, перейдите к iTerm2 > Preferences > Profiles > Text > Change Font .

Теперь вы можете увидеть Inconsolata в списке как один из шрифтов. Выберите предпочитаемый шрифт. Для шрифтов, которые поддерживают лигатуры, такие как FiraCode , установите флажок «Использовать лигатуры», чтобы ваши стрелки и другие операторы отображались стильно, например ( ).

Установите цветовую схему

Давайте изменим цветовую схему, чтобы подчеркнуть красоту нашего терминала. Перейдите к iTerm2-Color-Schemes и загрузите папку ZIP. Затем извлеките загруженную папку, потому что то, что нам нужно, находится в папке схем.

Перейдите к iTerm2 > Preferences > Profile > Colors > Color Presets > Import

  • Перейдите в папку схем и выберите предпочитаемые цветовые схемы для их импорта.
  • Нажмите на определенную цветовую схему, чтобы активировать ее. В этом сценарии я активировал Galaxy, который является моей предпочтительной цветовой схемой.

становите плагины

Oh My ZSH поставляется с предустановленным плагином git. Чтобы добавить больше, например, докер, автоматические предложения, подсветку синтаксиса и многое другое.

Клонируем репозиторий Git

git clone https://github.com/zsh-users/zsh-docker.git $/plugins/zsh-docker

Перейдите в .oh-my-zsh > custom > plugins каталог, чтобы просмотреть клонированный каталог.

Добавьте плагин в раздел плагинов конфигурационного файла, ~/.zshrc показанного ниже.

Обновите свои изменения, выполнив команду

source ~/.zshrc

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *