Come trovare l'elenco delle shell disponibili dalla riga di comando?


20

Come elencare le shell disponibili per l'uso dalla riga di comando?


(IFS=: && grep -rl tcsetpgrp $PATH | xargs grep -rl setrlimit)su un sistema Debian sembra dare una buona approssimazione.
Stéphane Chazelas,

Su Fedora 20 ritorna /bin/bash /bin/crash /bin/gdb(e i collegamenti simbolici da /usr/bin).
Cristian Ciupitu,

Risposte:


30

Per elencare le shell di accesso valide disponibili da utilizzare in quel momento, digitare il comando seguente:

cat /etc/shells

Esempio:

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

Per informazioni sulla shell visitare wikipedia .


Si noti che questo non funzionerà per tutti i sistemi. Ad esempio, Solaris e HP-UX non hanno un file / etc / shells per impostazione predefinita.
Warwick,

Perché ho /bin/truee /bin/falsein questo elenco?
Bernhard,

2
@bernhard - C'è una buona spiegazione di / bin / true e / bin / false qui link
Warwick

6

Puoi anche usare chsh -l Questo stamperà l'elenco delle shell.

Esempio :-

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

3
Per me,chsh: invalid option -- 'l'
Pandya,

@Pandya puoi fornire il comando completo che stai usando. Potresti usarlo con una combinazione di altri metodi o costrutti di shell come ((...)) o [...] o [[...]]
Anurag Anand



@Pandya man7.org/linux/man-pages/man1/chsh.1.html Questa opzione fornisce -l. Basta fare clic sul collegamento nella parte superiore della pagina per accedere alla pagina man di linux-util
Anurag Anand,

2

Su almeno OpenBSD e NetBSD:

$ getent shells

Su (Ubuntu) Linux e molti altri Unices (inclusi BSD):

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

Su Solaris, il file /etc/shellspotrebbe non esistere. L'elenco delle shell valide è contenuto nel shells(4)manuale. Sul mio sistema Vanilla Solaris 11.3, questo elenca le seguenti shell:

/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

Vale la pena notare che sulla mia installazione, /usr/sfw/bin/zsh/usr/xp4/bin/pfshesiste né esiste ...

Un elenco più breve di shell Solaris valide (duplicati di ciascuna shell rimossa):

/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.