Как проверить текущую оболочку linux
Перейти к содержимому

Как проверить текущую оболочку linux

  • автор:

Как узнать, какая оболочка используется в Linux

Существует несколько оболочек Linux, каждая из которых имеет свои особенности. Примеры популярных оболочек: Bash (является оболочкой по умолчанию на множестве дистрибутивов) и ZSH (по умолчанию является оболочкой на Kali Linux, имеет много поклонников).

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

Посмотрите, что именно будет выведено:

  • /bin/bash — значит у вас Bash
  • /usr/bin/zsh — значит у вас ZSH

Как узнать, какая в действительности используется оболочка Linux

Но действительно ли всё так просто с оболочками?

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

На скриншоте чётко видно, что команда вывела «/usr/bin/zsh», поэтому можно сказать, что используется оболочка ZSH.

Но это неправильный ответ.

Да, оболочкой по умолчанию в этой системе является ZSH, но чуть выше выполнена команда

и даже хотя оформление или приглашение командной строки не поменялось, теперь введённые команды обрабатывает Bash.

Это легко доказать, если выполнить команду

то Bash покажет краткую справку по своим командам. А ZSH выведет сообщение, что команда не найдена:

Что же на самом деле показывает переменная $SHELL? Видимо, это просто оболочка, используемая по умолчанию в данной системе, без учёта того, что пользователь мог запустить другую оболочку. Тем не менее вывод значение переменный $SHELL в большинстве случаев ответит на вопрос, какая оболочка используется на этой системе.

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

Ещё один способ «узнать» Bash, это посмотреть на реакцию последовательного нажатия сочетания клавиш Ctrl+x Ctrl+v. В ответ на это Bash выведет примерно следующую строку:

How can I find which desktop enviroment I am using? [duplicate]

How can I find which desktop environment I am using?

I want to accomplish this using command line.

Lucio's user avatar

6 Answers 6

And you can try $DESKTOP_SESSION for the DE.

This command seems to be useful:

  • in GNOME returns /usr/bin/gnome-session (and more)
  • in MATE returns /usr/bin/mate-session (and more)
  • in LXDE returns /usr/bin/lxsession (and more)
  • in JWM returns /usr/bin/icewm-session (should be jwm-session, not?!)

I’ve tested the best tools I’ve found with:

aGNOME under Linux Mint installed
bGNOME under Linux Mint Live USB
cMATE under Linux Mint
dLXDE under Lubuntu
eJWM under Puppy Linux (JWM is not a desktop environment but a stacking window manager).
fXFCE under Debian Buster

Results

env | grep DESKTOP_SESSION= (so-so)

echo $GDMSESSION (so-so)

pgrep -l «gnome|kde|mate|cinnamon|lxde|xfce|jwm» or ps -A | egrep -i «gnome|kde|mate|cinnamon|lxde|xfce|jwm» (well, but not perfect)

HardInfo (very well, but not perfect)

Conclusion

A combination of HardInfo and the command ps -A | egrep -i «gnome|kde|mate|cinnamon|lxde|xfce|jwm» probably will give the desired answer.

For the window manager you can use:

In a terminal or console, you can run:

The item that appears in more lines should be the answer

Lucio's user avatar

You can run HardInfo. It’s ready by default at least in Linux Mint; or you could install it (from Synaptic, . ).

You can run it a) from the main menu > Search box > hardinfo, or b) from the main menu > All applications > System Tools or Administration > System Information, or c) from the main menu > All applications > All > System Information, or d) from a terminal or console > hardinfo > Enter, or e) from the Run Application dialog (Alt+F2) > hardinfo > Enter.

Once HardInfo opens you just need to need to click on the «Operating System» item and look to the «Desktop Environment» line.

How to test what shell I am using in a terminal?

How to check what shell I am using in a terminal? What is the shell I am using in MacOS?

13 Answers 13

Several ways, from most to least reliable (and most-to-least "heavy"):

  1. ps -p$$ -ocmd= . (On Solaris, this may need to be ps -p$$ -ofname= and on macOS and on BSD should be ps -p$$ -ocommand= .)
  2. Check for $BASH_VERSION , $ZSH_VERSION , and other shell-specific variables.
  3. Check $SHELL ; this is a last resort, as it specifies your default shell and not necessarily the current shell.

tomglynch's user avatar

I’ve found that the following works in the four shells I have installed on my system (bash, dash, zsh, csh):

The following works on zsh, bash, and dash, but not on csh:

As the question asks for the shell used and does not talk about the potential arguments passed to it, here is a way that avoid showing them:

jlliagre's user avatar

There are two really simple ways:

  • -h or finishing all options with = for not showing any header.
  • -o comm for showing only the process basename ( bash instead of /bin/bash ).
  • -p <PID> list only process whith PID form list suplied.

Using the /proc process information pseudo-file system:

This option behaves exactly as the ps command above.

This /proc/PID/exe links to the file being executed, which in this case would point to /bin/bash, /bin/ksh, etc.

For getting only the name of the shell you can just use

This is the only option that will always give the same result even if you are in an script, sourced code, or terminal, as links to the binary of the shell interpreter in use.

Warning You must be aware that this will show the ultimate binary, so ksh may be linked to ksh93 or sh to bash.

The usage of /proc is really useful via the /proc/self , which links to the PID of the current command.

Как узнать какая графическая оболочка стоит в linux через терминал

Здравствуйте!
Делаю первые шаги в Ubuntu. Стоит Ubuntu 12.04 LTS (шла с новым системником)
Как я понимаю, Ubuntu, — это OC. а как узнать, какая установлена оболочка?
Ивиняюсь за глупый вопрос, но в инете ничего не попалось — в основном инфа, как установить.

и еще, если можно в двух словах: для чего существует приложение Ubuntu one? Там встроенная справка на англ — не особенно разгуляешься. Я правильно понимаю, что там что-то с файлами связано? просто кликать мышкой боязно

Графическая оболочка
Здравствуйте , не подскажет ли кто как установить графическую оболочку на Ubuntu, я пытался это.

Не грузится графическая оболочка
Доброго времени суток! Ubuntu 18.3 начал сыпаться диск, видимо запорол загрузчик, загрузился с.

Слетела графическая оболочка Ubuntu
Добрый день. После очередного рекомендуемого обновления пакетов Ubuntu и перезагрузки, разрешение.

После обновлений не загружается графическая оболочка
Всех приветствую. Включаю сегодня утром рабочий комп. Дружелюбная чтоб ее нахер система NetRunner.

compizomania

Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ

Страницы

28 декабря 2014

Как узнать версии дистрибутива и окружения рабочего стола в Ubuntu/Linux Mint

В этой статье я хочу поделиться с новичками в Linux, как и где можно посмотреть/узнать установленную версию дистрибутива и используемое окружение рабочего стола на вашем компьютере.
Узнать версии дистрибутива и окружения рабочего стола, а также разрядность системы (32 или 64-bit) в Ubuntu/Linux Mint можно двумя способами: графически и в терминале, с использованием специальных команд.

Как видно на нижнем снимке, приложение Сведения о системе даёт исчерпывающую информацию о названии и версии дистрибутива, а также тип разрядности ОС (в моём случае — 64-bit):

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

Скопируйте и выполните в терминале (нажмите Enter) следующую команду:

После выполнения команды вы должны увидеть в терминале примерно следующую информацию о названии дистрибутива, версии, кодовом названии, архитектуре/разрядности ОС и версии окружения Unity:

Приложение О системе также даёт подробную информацию о названии, версии дистрибутива и версии рабочего окружения Cinnamon, а также тип разрядности ОС:

Скопируйте и выполните в терминале (нажмите Enter) следующую команду:

После выполнения команды вы должны увидеть в терминале примерно следующую информацию о названии дистрибутива, версии, кодовом названии, архитектуре/разрядности ОС и версии окружения Cinnamon:

P.S. Для удобства отображения необходимых параметров системы, я объединил три различные команды в одну, через точку с запятой и пробел, но их также можно выполнять по отдельности:

Подробнее познакомиться с терминальными командами вы можете в следующей статье: Терминальные команды в Linuх.

11 комментариев :

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

можно еще добавить сведения о ядре uname -r

В терминале Убунту строчка «No LSB modules are available» что означает? Что за модуль такой?

Как то так https://ru.wikipedia.org/wiki/Linux_Standard_Base

lsb_release -a чуть более универсальный, конечно. Но не для старых версий систем на ядре Linux

Есть ещё один годный терминальный вариант: screenfetch

=Есть ещё один годный терминальный вариант: screenfetch= Да, но это отдельная программа screenfetch, которая требует предварительной установки перед запуском в терминале. Данная статья ориентирована на уже установленную графическую программу «О системе» и терминальные команды, которые не требуют установки, а просто выводят информацию в терминале.

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

lsb_release — a , самое то.
Кстати, сегодня день рождения у Линуса нашего Бенедикта Торвальдса. 45 лет. Желаю ему долгих лет.

Добрый день. Я новичок:)
Подскажите, пожалуйста, как быть.
У меня на компе коряво работает соединение sftp с сервером. Посоветовали снести Cinnamon, поставить Mate, и типа будет мне счастье. А у меня очень медленный 3ж-интернет. И качать все и устанавливать заново нет возможности.
Я скачала пакет mate, запустила его командой install и т.д., а терминал мне отвечает:

$ sudo apt-get install Mint-Meta-Mate [sudo] password for kozlovska: E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Resource temporarily unavailable) E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

Помогите, пожалуйста. Как мне запустить установку?

=Посоветовали снести Cinnamon, поставить Mate, и типа будет мне счастье.=
1. Снести Cinnamon, это значит на его место на ж/диске установить дистрибутив Mate, а не просто установить пакет, т.к. разработчики не рекомендую этого делать из-за конфликта пакетов.
2.=Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Resource temporarily unavailable)= Это значит, что у Вас запущен другой процесс и ресурс временно не доступен. Нужно перезагрузить систему, чтобы освободить ресурс, либо нужно найти запущенный процесс, выполнив в терминале команду: sudo pgrep apt-get
А затем убить запущенный и незаконченный процесс командой: sudo pkill apt-get
После выполнения данной команды, выполните команду на обновление, чтобы убедиться что база apt разблокирована: sudo apt-get update
Сообщение «Не удалось получить доступ к файлу блокировки» не должно появиться и обновление пройдёт успешно.

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

Главное меню » Операционная система Linux » Как узнать, какую оболочку вы используете в Linux

Вы можете удивиться этому в нескольких ситуациях.

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

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

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

Теперь нет команды, которая даст вам этот вывод со 100% точностью для всех оболочек. Но эти команды должны быть точными для большинства оболочек.

Способ 1

Вы можете использовать специальный параметр оболочки $$. «$$» указывает идентификатор процесса текущего экземпляра оболочки, которую вы запускаете. Этот параметр доступен только для чтения и не может быть изменен.

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

Вывод должен быть таким:

Способ 2

Вы также можете использовать $0. $0 может быть именем оболочки или именем сценария оболочки. Когда он используется внутри сценария оболочки, он обозначает имя сценария.

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

Вывод будет просто иметь имя оболочки:

Способ 3

Вы также можете использовать команду pstree. pstree означает дерево процессов и показывает все запущенные процессы в виде дерева.

Если вы не укажете аргумент, он покажет все процессы из init или systemd.

Однако, если вы дадите ему идентификатор процесса, он покажет весь этот процесс как корень дерева. Другими словами, он покажет все процессы, инициированные этим процессом.

Вы можете использовать тот же параметр $$ bash, который мы видели в методе 1.

Способ 4

Последний метод использует файлы в каталоге proc. Если вы прочитали статью о проверке информации о процессоре в Linux, вы, вероятно, уже знаете, что этот каталог содержит информацию о системе времени выполнения вашей системы Linux.

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

Вывод должен дать вам имя оболочки.

Бонусный совет: узнайте версию оболочки

Итак, вы узнали, как узнать, какую оболочку вы используете. Как насчет версии используемой оболочки? Вы можете получить версию оболочки, просто добавив –version после имени вашей запущенной оболочки.

Например, если вы используете zsh, вы можете использовать это:

Вывод даст вам информацию о версии:

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

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