Як знайти список доступних оболонок за допомогою командного рядка?


20

Як перелічити наявні оболонки для використання в командному рядку?


(IFS=: && grep -rl tcsetpgrp $PATH | xargs grep -rl setrlimit)в системі Debian, здається, дає гарне наближення.
Стефан Шазелас

У Fedora 20 він повертається /bin/bash /bin/crash /bin/gdb(і символьні посилання від /usr/bin).
Крістіан Цюпіту

Відповіді:


30

Щоб перерахувати наявні оболонки для входу для використання на час, введіть наступну команду:

cat /etc/shells

Приклад:

pandya@pandya-desktop:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/ksh93

Для отримання інформації про оболонку відвідайте wikipedia .


Зауважте, що це працюватиме не для всіх систем. Наприклад, Solaris та HP-UX за замовчуванням не мають файлу / etc / shell.
Warwick

Чому я /bin/trueі /bin/falseв цьому списку?
Бернхард

2
@bernhard - Тут є хороше пояснення / bin / true та / bin / false тут посилання
Warwick

6

Ви також можете скористатися chsh -l Це надрукує список оболонок.

Приклад: -

[anurag@focused ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin

3
Для менеchsh: invalid option -- 'l'
Pandya

@Pandya чи можете ви надати повну команду, яку ви використовуєте. Ви можете використовувати його разом із комбінацією інших методів або конструкцій оболонок, таких як ((...)) або [...] або [[...]]
Anurag Anand



@Pandya man7.org/linux/man-pages/man1/chsh.1.html Це надає опцію -l. Просто натисніть на посилання вгорі сторінки, щоб перейти на сторінку man-util man
Anurag Anand

2

Принаймні OpenBSD та NetBSD:

$ getent shells

Увімкнено (Ubuntu) Linux та багато інших Unices (включаючи BSD):

$ grep '^[^#]' /etc/shells

У програмі Solaris файл /etc/shellsможе не існувати. Список дійсних оболонок міститься в shells(4)посібнику. У моїй ванільній системі Solaris 11.3 в цьому списку перераховані наступні оболонки:

/bin/bash         /usr/bin/bash     /bin/pfbash   /usr/bin/pfbash
/bin/csh          /usr/bin/csh      /bin/pfcsh    /usr/bin/pfcsh
/bin/jsh          /usr/bin/jsh      /sbin/jsh     /usr/sbin/jsh
/bin/ksh          /usr/bin/ksh      /bin/pfksh    /usr/bin/pfksh
/bin/ksh93        /usr/bin/ksh93    /bin/pfksh93  /usr/bin/pfksh93
/bin/sh           /usr/bin/sh       /bin/pfsh     /usr/bin/pfsh
/bin/tcsh         /usr/bin/tcsh     /bin/pftcsh   /usr/bin/pftcsh
/sbin/sh          /usr/xpg4/bin/sh  /sbin/pfsh    /usr/xp4/bin/pfsh
/bin/zsh          /usr/bin/zsh      /bin/pfzsh    /usr/bin/pfzsh
/usr/sfw/bin/zsh

Варто зазначити, що на моїй установці ні, /usr/sfw/bin/zshні /usr/xp4/bin/pfshіснує ...

Короткий список дійсних оболонок Solaris (копії кожної вилученої оболонки):

/bin/bash       /bin/ksh        /bin/pfcsh      /bin/pfsh       /bin/sh
/bin/csh        /bin/ksh93      /bin/pfksh      /bin/pftcsh     /bin/tcsh
/bin/jsh        /bin/pfbash     /bin/pfksh93    /bin/pfzsh      /bin/zsh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.