2009-09-25 12:03:09 +0000 2009-09-25 12:03:09 +0000
107
107

Как сделать Bash моей оболочки по умолчанию на Ubuntu?

У меня есть .bash_profile в домашнем каталоге, но он не запускается при входе в систему. Если я сделаю следующее, то все будет так, как я ожидал:

ssh myhost
bash
source ~/.bash_profile

Но обычно все происходит при входе в систему. Мысли?

Ответы (8)

176
176
176
2009-09-25 12:08:58 +0000

Используйте:

chsh

Введите пароль и укажите путь к оболочке, которую вы хотите использовать.

Для Bash это будет /bin/bash. Для Zsh это будет /usr/bin/zsh.

37
37
37
2009-09-25 12:09:20 +0000

Помимо ответа akira, вы также можете отредактировать ваш файл /etc/passwd , чтобы указать вашу оболочку по умолчанию.

Вы найдете строку, подобную этому примеру:

john:x:1000:1000:john,,,:/home/john:/bin/sh

Оболочка указана в конце.

4
4
4
2009-09-25 12:14:23 +0000

Вы можете проверить свою терминальную программу. Она может быть настроена на выполнение /bin/sh, а не /bin/bash

Bash выполняет .bash_профиль только для сеансов входа. .bashrc выполняется для всех сессий bash, а не только для сессий входа. Попробуйте использовать .bash_profile из .bashrc (избегайте циклических зависимостей!) или настройте вашу терминальную программу на выполнение /bin/bash -l в качестве оболочки.

4
4
4
2018-01-25 18:44:30 +0000

Включить вечеринку:

$ /bin/bash

Смена оболочки для пользователя:

$ sudo usermod -s /bin/bash username

где:

-s, --shell SHELL new login shell for the user account
2
2
2
2010-06-01 11:40:25 +0000

Одной из альтернатив является переименование сценария запуска в .profile. Этот файл исходит от большинства Unix-оболочек .

1
1
1
2019-11-17 19:17:11 +0000

Если вы каким-то образом не видите свое имя пользователя в файле /etc/passwd [это тот случай, когда ваша система находится под контролем какого-то другого домена, например, в IT-компаниях] Или там написано “пользователь не найден” с опцией chsh, то нижеприведенный процесс может вам помочь.

Логика нижеприведенного трюка -> На Ubuntu, /bin/sh - тире. Вы можете переключить систему на использование bash. В Ubuntu, /bin/sh - символическая ссылка на тире. Вместо этого вы можете сделать его символической ссылкой на bash. Чтобы изменить его, запустите

sudo dpkg-reconfigure dash

И нажмите No, чтобы переключиться на bash.

Теперь перейдите в Terminal->Edit->preferences->Command and put the check box with statement

Run command as login shell

And that’s it’s it.

1
1
1
2019-06-27 13:29:35 +0000

Чтобы сделать любую оболочку по умолчанию, сначала проверьте, установлена ли она и распознана ли она на вашем компьютере, посмотрев на содержимое /etc/shells:

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

Затем используйте chsh для изменения оболочки:

$ sudo chsh -s /usr/bin/bash $(whoami) # or sudo chsh -s /bin/bash $(whoami)

Ссылки

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/whoami
  3. https://linux.die.net/man/5/shells
  4. https://linux.die.net/man/1/chsh
0
0
0
2018-09-15 19:37:41 +0000

В вашем вопросе недостаточно информации, чтобы я мог точно сказать, но я уже сталкивался с той же проблемой. Если предположить, что вы уже получили /bin/bash набор в вашем вводе пароля, это может быть способ, которым ваш терминал запускается.

Если вы пытаетесь запустить GUI-терминал, скажем, gnome-terminal, возможно, вы ожидаете, что оболочка прочитает ваши bash-файлы запуска. Однако это не происходит на Ubuntu и, возможно, на других системах по умолчанию.

Я исправил это в Ubuntu, отредактировав настройки gnome-терминала и установив команду запуска в bash -l. -l это сокращение от --login. Это говорит bash запускаться как оболочка для входа в систему, что заставляет его загружать скрипты запуска, как вы получаете при входе в систему через ssh.

Я уверен, что этому есть хорошее объяснение, но я нашел это удивительным и более чем немного раздражающим, так как я использую одинаковые профили в linux, cywgin и macos системах.

Похожие вопросы

19
12
11
6
5