- How to Find Which Shell You Are Using on Linux
- Find out which shell you are using in Linux
- Method 1
- Method 2
- Method 3
- Method 4
- Bonus Tip: Know the version of the shell
- Как определить и изменить командную оболочку (shell) в Linux
- Оболочки Linux
- Как определить текущую командую оболочку
- Способ 1
- Способ 2
- Способ 3
- Как посмотреть список оболочек, доступных в системе
- Как временно переключиться на другую оболочку
- Как изменить оболочку
- Заключение
- Смена командной оболочки (shell) в Linux
- Оболочки Linux
- Как определить текущую командую оболочку
- Как посмотреть список оболочек, доступных в системе
- Как временно переключиться на другую оболочку
- Как изменить оболочку на постоянной основе
- Как узнать, какая оболочка используется в Linux
- Как узнать, какая в действительности используется оболочка Linux
How to Find Which Shell You Are Using on Linux
Here are four simple commands to find out which shell are you using in Linux.
Which Shell am I using in Linux? Is that even a question? Of course, it is. There are several shell available for Linux systems. Some of the most popular ones are:
You may wonder this in a few situations.
For example, if you log into a Linux system not known to you, you may wonder which shell is being used by default. If you frequently change shell in Linux, you might wonder which shell you are using at the moment.
Let me show you various Linux commands to find out which shell you are using.
Find out which shell you are using in Linux
Now there is no command that will give you this output with 100% accuracy for all the shells. But these commands should be accurate for most of the shells.
Method 1
You can use the special shell parameter $$. “$$” indicates the process id of the current instance of the shell you are running. This is a read-only parameter and cannot be modified.
If you try to see the process information, it should show you the process name i.e. the shell here.
The output should be like this:
PID TTY TIME CMD 15012 pts/0 00:00:00 zsh
Method 2
You can also use $0. $0 can be the name of the shell or the name of shell script. When it is used inside a shell script, it denotes the name of the script.
But if you use it in a shell without filename, it will show the name of the shell.
The output will simply have the name of the shell:
Method 3
You can also use the pstree command. pstree means process tree and it shows all the running processes as a tree.
If you provide it with no argument, it will show all the processes from init or systemd.
However, if you give it a process id, it will show all that processes as the root of the tree. In other words, it will show all the processes initiated by that process.
You can use the same $$ bash parameter we saw in method 1.
Method 4
The last method is using the files in proc directory. If you read the article about checking CPU info in Linux, you probably already know that this directory contains the runtime system information about your Linux system.
You can use the following command to get the shell you are using:
The output should give you the name of the shell.
Bonus Tip: Know the version of the shell
So you learned how to know which shell you are using. What about the version of the shell you are using? You can get the version of the shell simply by adding –version after the name of your running shell.
For example, if you are running zsh, you can use this:
The output will give you the version information:
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
I hope this quick tutorial helped you in finding out which shell you are running. Don’t forget to check out another simple tip on changing shell in Linux.
By the way, do you use some other way to check which shell you are using? Why not share it with us in the comment section?
Как определить и изменить командную оболочку (shell) в Linux
Командная оболочка или командный интерпретатор в Linux — это программа, которая в текстовой среде выступает в качестве интерфейса между пользователем и операционной системой. Она интерпретирует вводимые команды с терминала и вызывает необходимые программы.
Когда вы работаете в терминале, именно командная оболочка обрабатывает вводимые вами команды. Более того, оболочки Linux поддерживают написание программ на языке оболочки.
Оболочки Linux
Одна из самых популярных командных оболочек — это оболочка Bash (Bourne Again Shell). Она используется по умолчанию в большинстве дистрибутивов Linux.
Существуют разные оболочки Linux. Можно отметить:
Оболочки могут очень сильно отличаться друг от друга. Они отличаются функциональностью, синтаксисом команд, строкой приветствия, дружелюбностью к пользователю и другими параметрами и возможностями.
Как определить текущую командую оболочку
Есть несколько способов определить оболочку, используемую по умолчанию в вашей системе Linux. Рассмотрим несколько из них, так как в разных системах (и оболочках) какие-то способы могут не сработать.
Также нужно знать, что у разных пользователей системы могут использоваться разные оболочки.
Способ 1
Переменная окружения SHELL хранит путь до исполняемого файла оболочки. Выполним команду:
Из вывода команды, мы видим, что используется оболочка bash.
Способ 2
Также можно воспользоваться командой echo $0 . Данная команда выведет на экран имя текущего работающего процесса, внутри которого она выполнена. Так как мы выполняем команду внутри оболочки, то будет выведено имя оболочки.
Способ 3
Определим, работающий процесс оболочки командой ps.
ps -p $$ PID TTY TIME CMD 10792 pts/3 00:00:00 bash
Как посмотреть список оболочек, доступных в системе
Список оболочек, которые в данный момент установлены и доступны в системе Linux, хранится в файле /etc/shells
Выведем содержимое файла /etc/shells , для этого выполняем команду:
cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash
Как временно переключиться на другую оболочку
Чтобы временно переключиться на другую оболочку, достаточно выполнить в терминале команду, соответствующую ее имени. После этого вы переключитесь на новую оболочку.
Например, переключимся на оболочку sh. Выполняем команду:
Как изменить оболочку
Для изменения командной оболочки на постоянной основе служит команда chsh (от слов change shell).
Чтобы изменить оболочку текущего пользователя нужно выполнить команду:
В качестве параметра путь_новой_оболочки необходимо указать путь до исполняемого файла оболочки, который вы можете найти в файле /etc/shells (см. выше).
Например, изменим оболочку на sh. Для этого выполняем команду (при выполнении команды нужно будет ввести пароль):
После этого нужно выйти и снова войти в систему.
Чтобы изменить оболочку, используемую по умолчанию, для другого пользователя, то команде chsh необходимо указать имя этого пользователя:
Заключение
Мы рассмотрели, как определить текущую оболочку Linux, как просмотреть список доступных оболочек, а также как изменить оболочку, используемую по умолчанию.
Чтобы получить информацию о какой-либо оболочке (доступной в системе) можно воспользоваться Man-страницами. Например:
Дополнительные оболочки можно устанавливать средствами системы (из репозиториев). Например, для установки оболочки fish в Ubuntu Linux, выполните команду
Смена командной оболочки (shell) в Linux
Командная оболочка или командный интерпретатор в Linux — это программа, которая в текстовой среде выступает в качестве интерфейса между пользователем и операционной системой. Она интерпретирует вводимые команды с терминала и вызывает необходимые программы.
При работе в терминале именно командная оболочка обрабатывает вводимые команды. Более того, оболочки Linux поддерживают написание программ на языке оболочки.
Оболочки Linux
Одна из самых популярных командных оболочек — это оболочка Bash (Bourne Again Shell). Она используется по умолчанию в большинстве дистрибутивов Linux.
Существуют разные оболочки Linux:
Все оболочки отличаться друг от друга функциональностью, синтаксисом команд, строкой приветствия, дружелюбностью к пользователю и другими параметрами и возможностями.
Как определить текущую командую оболочку
Есть несколько способов определить оболочку, используемую по умолчанию в вашей системе Linux. Рассмотрим несколько из них, так как в разных системах (и оболочках) какие-то способы могут не сработать.
Можно воспользоваться командой echo $0 . Данная команда выведет на экран имя текущего работающего процесса, внутри которого она выполнена. Так как мы выполняем команду внутри оболочки, то будет выведено имя оболочки.
Определим, работающий процесс оболочки командой ps :
grep ваш_пользователь /etc/passwd
Как посмотреть список оболочек, доступных в системе
Список оболочек, которые в данный момент установлены и доступны в системе Linux, хранится в файле /etc/shells
Выведем содержимое файла /etc/shells , для этого воспользуемся командой cat :
/bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash /bin/zsh /usr/bin/zsh /usr/bin/fish
Вы можете найти полный путь к своей оболочке, используя следующую команду:
type -a bash type -a zsh type -a ksh
Как временно переключиться на другую оболочку
Чтобы временно переключиться на другую оболочку, достаточно выполнить в терминале команду, соответствующую ее имени. После этого вы переключитесь на новую оболочку.
Например, переключимся на оболочку sh . Выполняем команду:
Как изменить оболочку на постоянной основе
Для изменения командной оболочки на постоянной основе служит команда chsh (от слов change shell ).
Чтобы изменить оболочку текущего пользователя:
chsh -s путь_до_новой_оболочки chsh -s chsh -s chsh -s /bin/bash chsh -s /bin/bash vanay
Например, изменим оболочку на sh . Для этого выполняем команду (при выполнении команды нужно будет ввести пароль):
Затем нужно перелогинится:
su - $USER su - [имя пользователя]
Как узнать, какая оболочка используется в 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 выведет примерно следующую строку:
GNU bash, версия 5.1.4(1)-release (x86_64-pc-linux-gnu)