Как найти мою версию оболочки с помощью команды linux?

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

Команда:

echo $SHELL

Результат:

/bin/bash

Ответ 1

Это будет сделано:

$SHELL --version

В моем случае вывод:

zsh 5.0.2 (x86_64-pc-linux-gnu)

Ответ 2

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

Как указано в принятом ответе, для вашей оболочки входа по умолчанию $SHELL --version, вероятно, будет работать. Большинство (но не все) оболочки принимают опцию --version. (dash этого не делает.) И это предполагает, что значение $SHELL не изменилось (могут быть веские причины для этого).

Для оболочки, которую вы сейчас используете, если это bash, вы можете набрать:

echo $BASH_VERSION

Для tcsh:

echo $version

Для zsh:

echo $ZSH_VERSION
echo $ZSH_PATCHLEVEL # shows more detailed information

Для ksh:

echo $KSH_VERSION

Для fish:

echo $version

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

Bash, в частности, имеет переменную-массив $BASH_VERSINFO, которая дает больше информации в форме, которую легче обрабатывать программно. Печать $BASH_VERSINFO печатает только первый элемент; распечатать все элементы:

echo "${BASH_VERSINFO[@]}"