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

Как сменить sh на bash

  • автор:

Как изменить оболочку (shell) по умолчанию для пользователя Linux

По дефолту в Debian, который стоит у меня на сервачке, оболочкой назначен sh. Он неприкольный и лоховской, поэтому юзаю я bash.

Если сосчитать, сколько раз я за предыдущие годы вбил /bin/bash после логина. то лучше не считать =) А можно было всего-то погуглить и сделать следующее.

Сделать вот так:

> su # вводим пароль и превращаемся в рута > usermod -s /bin/bash dubr

Вуаля. Теперь юзер dubr будет попадать в bash сразу после входа.

Ну и да, посмотреть текущую оболочку можно так:

> echo $SHELL

А узнать, какие вообще есть в распоряжении сервера, вот так:

> cat /etc/shells

Чего-то мало букв получилось. Так что еще один хинт от чайника ламеру. У меня так себе память на цифры, поэтому свой айпишник я не помню (хотя узнать на глаз смогу =)). На маке нету PuTTY, в котором можно сохранить подключения (то есть наверное есть какой-то маковский за 80 баксов, но я не искал). Поэтому с ssh я работаю прямо из терминала. Довольно долго я делал так:

> ping blogovo.ru

Дальше копируем IP и подключаемся к нему. Пока однажды не догадался, что можно в принципе и вот так:

> ssh dubr@blogovo.ru

Ну и да, по уму надо вообще-то закрывать вход по логину и юзать ключи. Но мне традиционно лень =)

Всем удачного красноглазия.

Чего бы еще почитать:

Камменты

VPSadm 13.01.2017, 18:58 #

Хах. Про «открытие» возможности подключения по домену улыбнуло 🙂
А можно еще пользоваться хистори, и подключаться как-нибудь
ssh du. Если правильно настроен .bashrc или .inputrc, то из хистори подтянется ближайшая команда, которая начинается с этих символов. А она скорей всего и будет подключением.

Дубр он самый 20.01.2017, 04:24 #

VPSadm, спасибо, погуглю про хистори.

Пока что я выяснил, что .inputrc у меня не заведен, а нажатие PgUp (внезапно!) проматывает вверх окно терминала =)

VPSadm 14.03.2017, 11:15 #

Ну да, стандартно так и работает. А для реверс поиска по хистори стандартно — ctrl+R. И там начинаешь набирать ssh du

CrazyMihey 16.02.2018, 19:47 #

Ну и сколько Страждущих ломанулись подбирать Пароль от dubr@blogovo.ru после такого Откровения?
После генерации Ключей можно написать «PermitRootLogIn WithOut-PassWord» в «/etc/ssh/sshd_config», а на Рабочей Машине настроить Профили для SSH (совсем недолго!). Тогда Подключение будет происходить по Команде «ssh blogovo.ru» быстро и без всякой МозгоЕбли с Паролями. Недостатков всего Два: Моск перестаёт запоминать Пароли и в случае НеВосполнимой Утраты «Рабочей Машинки» с Секретным Ключом подцепиться не получится даже если Моск всё-таки вспомнит Пароль 🙂

Статья Как поменять Shell на Bash

Оболочка (shell) – это не что иное, как команда, которая предоставляет текстовый пользовательский интерфейс (также известный как «интерфейс командной строки») для Linux, MacOS и Unix-подобных операционных систем. Оболочка Bash читает команды, такие как ls, date и другие, введенные в терминал, а затем запускают их. Это основная функция оболочки bash.

29840

Как узнать оболочку по умолчанию для пользователя?

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

$ grep vivek /etc/passwd vivek:x:1005:1005. /home/vivek:/bin/zsh
$ ps -p $$ PID TTY TIME CMD 14314 pts/9 00:00:00 zsh

Как определить и изменить командную оболочку (shell) в Linux

Как изменить оболочку Shell в Linux

Командная оболочка или командный интерпретатор в Linux — это программа, которая в текстовой среде выступает в качестве интерфейса между пользователем и операционной системой. Она интерпретирует вводимые команды с терминала и вызывает необходимые программы.

Когда вы работаете в терминале, именно командная оболочка обрабатывает вводимые вами команды. Более того, оболочки Linux поддерживают написание программ на языке оболочки.

Оболочки Linux

Одна из самых популярных командных оболочек — это оболочка Bash (Bourne Again Shell). Она используется по умолчанию в большинстве дистрибутивов Linux.

Существуют разные оболочки Linux. Можно отметить:

Оболочки могут очень сильно отличаться друг от друга. Они отличаются функциональностью, синтаксисом команд, строкой приветствия, дружелюбностью к пользователю и другими параметрами и возможностями.

Как определить текущую командую оболочку

Есть несколько способов определить оболочку, используемую по умолчанию в вашей системе Linux. Рассмотрим несколько из них, так как в разных системах (и оболочках) какие-то способы могут не сработать.

Также нужно знать, что у разных пользователей системы могут использоваться разные оболочки.

Способ 1

Переменная окружения SHELL хранит путь до исполняемого файла оболочки. Выполним команду:

echo $SHELL /bin/bash

Из вывода команды, мы видим, что используется оболочка bash.

Способ 2

Также можно воспользоваться командой echo $0 . Данная команда выведет на экран имя текущего работающего процесса, внутри которого она выполнена. Так как мы выполняем команду внутри оболочки, то будет выведено имя оболочки.

echo $0 bash

Способ 3

Определим, работающий процесс оболочки командой ps.

ps -p $$ PID TTY TIME CMD 10792 pts/3 00:00:00 bash

Определить текущую оболочку Shell в Linux

Как посмотреть список оболочек, доступных в системе

Список оболочек, которые в данный момент установлены и доступны в системе Linux, хранится в файле /etc/shells

Выведем содержимое файла /etc/shells , для этого выполняем команду:

cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash

Список командных оболочек Linux

Как временно переключиться на другую оболочку

Чтобы временно переключиться на другую оболочку, достаточно выполнить в терминале команду, соответствующую ее имени. После этого вы переключитесь на новую оболочку.

Например, переключимся на оболочку sh. Выполняем команду:

Переключиться на другую оболочку в Linux

Как изменить оболочку

Для изменения командной оболочки на постоянной основе служит команда chsh (от слов change shell).

Чтобы изменить оболочку текущего пользователя нужно выполнить команду:

chsh -s путь_новой_оболочки

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

Например, изменим оболочку на sh. Для этого выполняем команду (при выполнении команды нужно будет ввести пароль):

chsh -s /bin/sh

После этого нужно выйти и снова войти в систему.

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

chsh -s /bin/sh yuriy

Заключение

Мы рассмотрели, как определить текущую оболочку Linux, как просмотреть список доступных оболочек, а также как изменить оболочку, используемую по умолчанию.

Чтобы получить информацию о какой-либо оболочке (доступной в системе) можно воспользоваться Man-страницами. Например:

man rbash

Дополнительные оболочки можно устанавливать средствами системы (из репозиториев). Например, для установки оболочки fish в Ubuntu Linux, выполните команду

sudo apt install fish

Как сменить оболочку в Linux

Как изменить оболочку в Linux

В этом краткой статье показано, как проверить работающую оболочку, доступную оболочку в системе и как изменить оболочку по умолчанию в Linux.

Возможно, вы уже знаете, что в Linux и других Unix-подобных системах доступно несколько оболочек. Bash является оболочкой по умолчанию почти во всех дистрибутивах Linux, но есть и другие популярные оболочки, такие как:

Некоторые из оболочек предоставляют дополнительные функции более удобным для пользователя способом. Возьмите, например, оболочку fish. Он частично начинает показывать вам подсказки команд, основанные на вашей предыдущей набранной команде. Это очень удобно, если вы не хотите постоянно помнить ярлыки на терминале Linux.

Давайте посмотрим несколько способов смены оболочки в вашей системе Linux.

Как узнать оболочку по умолчанию?

Чтобы узнать, какая оболочка по умолчанию установлена ​​для вас в вашей системе Linux, вы можете проверить переменную среды SHELL. Обычно оболочкой по умолчанию является bash, и она отображается так:

echo $SHELL /bin/bash

Как узнать, какую оболочку вы сейчас используете?

Не существует единого метода, который бы сообщал вам, какая оболочка используется со 100% точностью.

Вы можете попробовать либо echo $ 0, который показывает вывод, подобный этому:

echo $0 zsh

или проверьте процесс, используя ps -p $$ следующим образом:

ps -p $$ PID TTY TIME CMD 9625 pts/0 00:00:00 zsh

Как увидеть все оболочки, доступные в вашей системе Linux?

Все оболочки, доступные в ваших системах Linux, перечислены в файле /etc/shells. Вы можете использовать команду cat или less для просмотра содержимого файла.

# /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash /usr/bin/tmux /usr/bin/fish /bin/zsh /usr/bin/zsh

Как сменить оболочку на другую?

Если вы хотите использовать другую оболочку, вы можете просто ввести ее имя и войти в новую оболочку. Например, если вы хотите использовать Z Shell (zsh), вы можете использовать:

Вы можете ввести exit, чтобы выйти из новой оболочки и вернуться к предыдущей.

Как навсегда изменить оболочку по умолчанию в Linux?

Предположим, вам очень понравилась оболочка Fish, и вы хотите использовать ее в качестве оболочки по умолчанию, чтобы каждый раз, когда вы открываете терминал или используете ssh для входа в систему, вы использовали ее вместо оболочки bash по умолчанию.

Linux позволяет изменить оболочку по умолчанию с помощью команды chsh. Лучший способ изменить оболочку по умолчанию для вашего вошедшего в систему пользователя — указать имя оболочки, указанное в файле /etc/shells, с параметром -s.

chsh -s /usr/bin/fish

Вы должны выйти из системы, чтобы изменения вступили в силу, иначе вы будете думать, что запуск chsh не изменил оболочку.

Вы заметили, что мы должны были указать полный путь, как он был указан в файле /etc/shells? Если бы мы использовали chsh -s fish, это дало бы нам ошибку типа «chsh: fish is an invalid shell».

Какая оболочка нравится вам?

Мы надеемся, что эта небольшая статья помогла вам изменить оболочку в Linux. Если вы подумали об изменении оболочки по умолчанию, возможно, вы используете что-то другое, чем оболочка bash. Какая это оболочка? Почему вы предпочитаете ее другим?

Делитесь своими взглядами в комментариях ниже.

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

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