Как поменять интерпретатор линукс

Обновлено: 30.06.2024

Я использую Ubuntu 16.04 LTS. Я python3 установил. Установлены две версии, python 3.4.3 и python 3.6 . Всякий раз, когда я использую python3 команду, она принимает python 3.4.3 по умолчанию. Я хочу использовать python 3.6 с python3 .

python3 --version шоу version 3.4.3

Я устанавливаю, ansible который поддерживает version > 3.5 . Поэтому, когда я набираю ansible в терминале, он выдает ошибку из-за python 3.4

Что ты sudo update-alternatives --config python3 говоришь? update-альтернативы: ошибка: нет альтернативы для python3 Смотрите мой комментарий в ответе ниже о том, как использовать ansible с определенной версией python3. Вы также можете рассмотреть возможность удаления Python 3.4.

Покажет вам ошибку:

Вам нужно обновить свою версию update-alternatives , тогда вы сможете установить версию Python по умолчанию.

Установите python3.6 по умолчанию.

Или используйте следующую команду, чтобы установить python3.6 по умолчанию:

Этот ответ, вероятно, сломается apt . После выбора другой версии Python попробуйте запустить sudo apt update . Если он дает ошибку , как ModuleNotFoundError: No module named 'apt_pkg' вы хотите , чтобы пойти /usr/lib/python3/dist-packages и создать символическую ссылку: ln -s apt_pkg.cpython-<34m,36m>-x86_64-linux-gnu.so . Это дает мне ошибку: $ sudo update-alternatives --set python /usr/bin/python3.6 update-alternatives: error: no alternatives for python какие-либо предложения? @ GAD3R Спасибо. Мне удалось создать символическую ссылку вручную, чтобы указать на Python 3.6. Кроме того, у меня не установлен 3.7.

Вы можете добиться этого, применяя следующие простые шаги -

  1. Проверьте версию Python на терминале - python --version
  2. Получите права пользователя root. По типу терминала - sudo su
  3. Запишите пароль пользователя root
  4. Выполните эту команду, чтобы перейти на Python 3.6 -
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  5. Проверьте версию Python - python --version
  6. Готово.
Работает, прост для чтения и не использует псевдоним. +1 Отлично работает на Ubuntu 18.04. так просто, чем другие решения. Большое спасибо

Создайте символическую ссылку для / usr / bin / python3. В моем LinuxMint:

Использование этих команд может помочь вам:

  1. проверьте версию python: ls /usr/bin/python*
  2. псевдоним: alias python='/usr/bin/pythonxx'
  3. повторного входа в систему: .

спасибо, но после перезагрузки компьютера основным питоном будет все еще ex python 2.7

Простой ответ - добавить псевдоним для python3.6.

Просто добавьте эту строку в файл

/ .bashrc:, alias python3="python3.6" затем закройте свой терминал и откройте новый. Теперь, когда вы печатаете, python3 xxx он переводится в python3.6 xxx .

Это решение решает вашу проблему без необходимости слишком сильно настраивать вашу систему.

РЕДАКТИРОВАТЬ :

Как отметил Микаэль Кьер , это неверная конфигурация ANSIBLE в вашей системе.

Установите параметр ansible_python_interpreter конфигурации в / usr / bin / python3. Параметр конфигурации ansible_python_interpreter обычно устанавливается для каждого хоста в качестве переменной инвентаризации, связанной с хостом или группой хостов:

Как видно здесь о файле конфигурации:

Изменения могут быть внесены и использованы в файле конфигурации, который будет обрабатываться в следующем порядке:

Стилизованная подсказка оболочки на ноутбуке в стиле Ubuntu.

Фатмавати Ахмад Заенури / Shutterstock

Почему Shell важна

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

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

Оболочки, как правило, разрабатываются людьми, которые хотят, чтобы вещи вели себя определенным образом. Если ваше мышление совпадает с мышлением этого дизайнера, эта оболочка вполне подойдет вам. Плюс, пробовать новую оболочку в Linux легко.

В большинстве дистрибутивов Linux, включая Ubuntu, оболочка по умолчанию bash , Это делает большую работу и очень способный. Тем не менее, другая оболочка может сэкономить время, что окажет большое влияние на ваш рабочий процесс. Вы никогда не узнаете, не посмотрите ли вы!

СВЯЗАННЫЕ С: Что такое ZSH, и почему вы должны использовать его вместо Bash?

Ведро снарядов

Ранее мы рассмотрели различные оболочки Linux, но вот краткое введение к наиболее распространенным:

СВЯЗАННЫЕ С: В чем разница между Bash, Zsh и другими оболочками Linux?

Список установленных оболочек

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

cat / etc / shells в окне терминала.

Мы упоминали bash , dash , а также rbash , но что sh ?

sh это Томпсон оболочка, написанная еще в 1971 году Кен Томпсон из Bell Labs известность. Он больше не поддерживается и давно заменен современными оболочками. Он включен исключительно для обеспечения совместимости со старыми сценариями, в которых в первой строке по-прежнему указывается следующее:

Это инструктирует систему использовать sh оболочка для выполнения скрипта. У вас действительно есть эта древняя оболочка на вашем компьютере, и она используется для запуска ваших скриптов? which Команда скажет нам, какая программа действительно запускается при вводе команды.

Давайте посмотрим, что работает, когда вы печатаете sh :

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

который ш в окне терминала.

Это аккуратный и легкий способ обеспечения безопасности для сценариев, которые ожидают найти sh на современных системах.

Установка другой оболочки

Давайте установим fish оболочки и установить его по умолчанию для dave , В Ubuntu мы вводим следующую команду:

sudo apt-get устанавливает fish в окне терминала.

На Манджаро, используйте pacman :

sudo pacman -Sy рыбы в окне терминала.

На Fedora введите следующее:

После завершения установки вы можете проверить установленные оболочки еще раз:

cat / etc / shells в окне терминала.

Переменная окружения $ SHELL

$SHELL Переменная окружения содержит имя вашей текущей оболочки. Мы можем проверить, какой из них установлен с echo :

Давайте начнем fish ракушка:

Теперь давайте еще раз проверим, что $SHELL переменная окружения говорит:

эхо $ SHELL в окне терминала.

Первый раз мы используем echo $SHELL мы в bash ракушка. Переменная окружения содержит путь к bash исполняемый файл, /bin/bash ,

Когда вы запускаете новую оболочку (или любую другую программу), она наследует среду родительской оболочки. Так что fish оболочка наследует глобальные и экспортированные переменные среды из bash ракушка. Потому что значение в $SHELL переменная окружения не была изменена, она имеет то же значение в fish оболочка, что он сделал в bash ракушка.

Были запущены fish как и любая другая программа. Мы также можем использовать exit выйти из fish ракушка. Он закрывается, как и любая другая программа, и мы возвращаемся к bash ракушка.

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

Команда chsh

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

Всякий раз, когда вы входите в систему для получения командной строки, вы используете оболочку, настроенную для вашей оболочки входа. Когда вы уже вошли в систему и открыли окно терминала, вы используете оболочку, настроенную для вашей интерактивной оболочки. Это могут быть как одинаковые, так и разные оболочки.

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

chsh в окне терминала.

Вам будет предложено ввести пароль. Затем вы должны ввести путь к новой оболочке и нажать Enter.

Если мы сделаем удаленное соединение с этим тестовым компьютером с другого, мы окажемся в fish Shell, как только мы вошли в систему.

SSH-соединение, показывающее оболочку fish в качестве оболочки входа в систему в окне терминала.

Для изменения вашей интерактивной оболочки используйте chsh с -s (оболочка) вариант. Передайте путь к новой оболочке в командной строке:

Вам будет предложено ввести пароль и вы вернетесь в командную строку вашей текущей оболочки. Чтобы изменения вступили в силу, вам необходимо выйти из системы и снова войти в нее. Когда вы это сделаете, вы увидите приветствие и fish командная строка оболочки.

$SHELL Переменная окружения теперь содержит путь к вашей новой оболочке по умолчанию:

echo $ SHELL в окне терминала.

Изменение оболочки другого пользователя

Если у вас есть права root и вы можете использовать sudo Вы можете изменить оболочки других учетных записей пользователей. Команда такая же, как и раньше, с добавлением имени пользователя этого человека в командной строке:

sudo chsh -s / usr / bin / fish mary в окне терминала.

когда mary при следующем входе в систему она увидит новую оболочку, когда откроет окно терминала.

пользователь Мэри в командной строке fish shell, в окне терминала.

У каждого есть любимый

Если вам удобен выбор оболочки и она работает для вас, это здорово! Просто помните, что он должен быть в состоянии запускать обычные сценарии, такие как процедуры установки. Для оболочек, упомянутых здесь, это не должно быть проблемой.

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

Добрый день всем, кто оказался на данном сайте. Предположим, что у вас установлено несколько оболочек терминала, например ksh, zsh или стандартный bash. И вы хотите сменить ее выбрав один из вариантов. Рассмотрим пример на zsh, об установке которой писалось в этой статье. В этом примере мы вернем стандартную оболочку, то есть, обычный bash, который шел изначально. И так, давайте сначала посмотрим, какие варианты у нас есть. То есть, какие оболочки терминала у нас присутствуют в системе.

Какие оболочки имеются в системе

Shell Bash ZSH 1

Просмотр оболочек

Shell Bash ZSH 2
Shell Bash ZSH 3

Для возврата к оболочки по умолчанию, введите команду:

Shell Bash ZSH 4

Оболочка по умолчанию

Теперь давайте узнаем, а какая оболочка у нас сейчас используется по умолчанию. Для этого введите команду:

Shell Bash ZSH 5

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

Установка оболочки по умолчанию

Shell Bash ZSH 6

После чего, нужно выйти и зайти в систему. Ну и конечно проверить сам результат:

Shell Bash ZSH 9

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

Shell Bash ZSH 7

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
С уважением Cyber-X

В большинстве операционных систем Linux, bash является принятым по умолчанию интерпретатором командной строки. Для определения текущего интерпретатора введите следующую команду:

$ echo $SHELL
/bin/bash

В этом примере используется интерпретатор командной строки bash. Существует множество других командных интерпретаторов. Для активизации другого интерпретатора можно ввести его имя в командной строке (ksh, tcsh, csh, sh, bash и т.д.).

Выбор интерпретатора командной строки Linux

В большинстве полнофункциональных операционных систем Linux предоставляются на заметку все описанные здесь командные интерпретаторы. Но в небольших операционных системах могут быть предоставлены один или два интерпретатора.

Самым простым способом проверки доступности интересующего командного интерпретатора является ввод его имени в командной строке. Если интерпретатор запустился, он доступен.

Существует несколько причин для выбора альтернативных командных интерпретаторов.

  • Привычка работать в системах UNIX System V (во многих из них по умолчанию применяются интерпретатор ksh) или в системах компании Sun Microsystems и других системах на базе Berkeley UNIX (в них часто используется csh). В таком случае применение этих интерпретаторов командной строки окажется более удобным.
  • Необходимость запуска сценариев, которые создавались для определенного командного интерпретатора.
  • Возможности альтернативного командного интерпретатора могут оказаться более предпочтительными. Например, один из членов группы пользователей Linux предпочитает применять ksh, так как его не устраивает способ создания псевдонимов в bash.

Хотя большинство пользователей предпочитает работать в одном командном интерпретаторе, полученные навыки помогают научиться работать и в других интерпретаторах командной строки , изредка заглядывая в справочное руководство (например, с помощью команды manbash). Большинство используют bash, так как нет причин переходить на другой интерпретатор.

Использование Bash и ch

Название bash является аббревиатурой от Bourne Again SHell. Эта аббревиатура указывает на то, что bash наследует интерпретатор Bourneshell (команда sh), созданный Стивом Борном (Steve Bourne) из AT&TBell Labs. Брайан Фокс (Brian Fox) из Free Software Foundation создал bash в составе проекта GNU. В дальнейшем разработка перешла в руки Чета Рами (Chet Ramey) в Case Western Reserve University.

Интерпретатор bash содержит возможности, которые разрабатывались для интерпретаторов sh и ksh во времена ранних версий UNIX, а также ряд возможностей интерпретатора csh.

Можно рассчитывать, что в большинстве систем Linux, кроме специализированных (например, встраиваемых или загружающихся с внешнего диска), интерпретатор bash применяется по умолчанию. В специализированных системах может потребоваться командный интерпретатор меньшего объема, что подразумевает и ограничение возможностей.

Большинство примеров в этой статье рассчитано на использование bash.

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

Все предоставляемые операционные системы Linux по умолчанию используют интерпретатор bash, кроме операционных систем, загружаемых со сменных носителей, в которых по умолчанию применяется интерпретатор ash.

Использование tcsh (и более раннего интерпретатора csh)

Командный интерпретатор tcsh является реализацией интерпретатора Сshell (csh) с открытым исходным кодом. Интерпретатор csh был создан Биллом Джоем (Bill Joy) и используется по умолчанию практически во всех системах Berkeley UNIX (такие системы распространялись компанией Sun Microsystems).

Многие возможности csh, например редактирование командной строки и методы управления историей команд, были реализованы в интерпретаторе tcsh и в других командных интерпретаторах. Так же как команда sh запускает интерпретатор bash в режиме совместимости с интерпретатором sh, команда csh запускает интерпретатор tcsh в режиме совместимости с интерпретатором csh.

Использование интерпретатора ash

Интерпретатор ash является облегченной версией интерпретатора Berkeley UNIX sh. Он не содержит многих базовых функций и не предоставляет таких возможностей, как история команд.

Интерпретатор ash хорошо подходит для применения во встраиваемых системах с ограниченными системными ресурсами. В операционной системе FedoraCore 4 интерпретатор ash на порядок меньше интерпретатора bash.

Использование zsh

Интерпретатор zsh является еще одним клоном интерпретатора sh. Он соответствует требованиям стандарта POSIX (как и bash), но обладает другими возможностями, включая проверку орфографии и иной подход к редактированию командной строки. Интерпретатор zsh использовался по умолчанию в первых операционных системах MacOS X, но в современных системах по умолчанию применяется интерпретатор bash.

Читайте также: