如何检查Mac OSX中的可用shell?

dav*_*ras 1 macos bash shell terminal zsh

如何检查我可以在OSX终端应用程序中使用的所有不同shell?

默认的是bash,我知道zsh,因为我尝试过并且有效.我想知道如何检查是否还有这两个.

小智 7

在 MacOS 中,以下命令将列出系统上可用的 shell

$ ls -l /bin/*sh
-r-xr-xr-x  1 root  wheel   618448 Nov 19 00:26 /bin/bash
-rwxr-xr-x  1 root  wheel   380016 Feb  7 16:11 /bin/csh
-r-xr-xr-x  1 root  wheel  1287040 Sep 21 00:35 /bin/ksh
-r-xr-xr-x  1 root  wheel   618512 Nov 19 00:26 /bin/sh
-rwxr-xr-x  1 root  wheel   380016 Feb  7 16:11 /bin/tcsh
-rwxr-xr-x  1 root  wheel   610288 Sep 21 00:35 /bin/zsh
Run Code Online (Sandbox Code Playgroud)


dav*_*ras 5

简单的方法是去/etc检查shells文件.内容是Mac OSX中可用的shell列表.

默认包括:

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过/bin直观地识别它们来检查它们的二进制文件.当然,您必须了解它们才能识别它们.

  • 实际上,`/ etc/shells`包含所有*有效*的shell,但并非所有*可用* - 这是一个重要的区别.如果在`/ etc/shells`中列出了一个shell,则意味着用户可以选择它,但不一定,它已安装并且用户可以选择它.所以应该总是检查`/ etc/shells`中列出的二进制文件是否确实存在(例如,使用`[-x $ shell_bin]`) (2认同)