Подтвердить что ты не робот

Что такое команда * nix для просмотра оболочки входа пользователя по умолчанию

Что такое команда * nix для просмотра оболочки входа пользователя по умолчанию?

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

Псевдокод

$ get-shell
/usr/bin/zsh
4b9b3361

Ответ 1

Канонический способ запроса файла /etc/passwd для этой информации - getent. Вы можете анализировать вывод getent стандартными инструментами, такими как cut, чтобы извлечь оболочку входа пользователя. Например:

$ getent passwd $LOGNAME | cut -d: -f7
/bin/bash

Ответ 2

Команда finger.

[[email protected] ~]$ finger ken
Login: ken                      Name: Kenneth Berland
Directory: /home/ken                    Shell: /bin/tcsh
On since Fri Jun 15 16:11 (PDT) on pts/0 from 70.35.47.130
   1 hour 59 minutes idle
On since Fri Jun 15 18:17 (PDT) on pts/2 from 70.35.47.130
New mail received Fri Jun 15 18:16 2012 (PDT)
     Unread since Fri Jun 15 17:05 2012 (PDT)
No Plan.

Ответ 3

Оболочка входа определена в /etc/passwd. Итак, вы можете сделать:

grep username /etc/passwd

Ответ 4

Я думаю, что вы ищете:

#!/bin/bash

cat /etc/passwd | grep $1 | cut -d ':' -f 7

EDIT: @jrrs рекомендовали эту версию в качестве улучшения... Я согласен...

#!/bin/bash

grep "^$1" /etc/passwd | cut -d ':' -f 7

Сохраните это как get-shell где-то на своем пути (возможно ~/bin), а затем вызовите его так:

get-shell userfoo