ksh和bash区别、linux更改用户的默认登陆shell

ksh和bash区别

ksh在unix上使用较多。比如hpux,AIX。
bash在linux上使用较多。

bash

最早的 Shell 是 Bourne Shell(sh), 随着 Linux 的发展, 又出现好多 Shell,如: csh, tcsh, ksh, tksh, dtksh, pdksh, bash, zsh. 有这么多 Shell,每个 Shell 都有自己的特点,使用起来肯定不方便,所以 IEEE 制订了 POSIX 标准。

ksh

ksh 的全称是 Korn shell,是一个 Linux/Unix shell,用来访问 Linux/Unix 系统。它完全向上兼容 Bourne shell 并包含了 C shell 的很多特性

1982 年,AT&T 贝尔实验室的 David Korn 开发了 Korn shell(即 ksh)。Korn shell 与许多其他 shell 类似,向后兼容 Bourne shell (sh)。在超过 25 年的发展历程中,它已进化为强健、稳定和非常可靠的 shell。IBM 在 AIX 中使用 Korn shell 作为其缺省 shell。

第一种是 AIX 普通用户的缺省 shell,即标准 ksh shell。Korn shell 符合计算机环境的可移植操作系统接口标准 (POSIX),这是操作系统的国际标准。

AIX 提供的第二种 Korn shell 是增强 Korn shell,称为 ksh93。除标准 Korn shell 所拥有的所有强大功能外,增强 Korn shell 还包含如下功能:
算术增强
复合变量
复合赋值
关联数组
变量名引用
参数扩展
规程函数
函数环境
PATH 搜索规则
shell 历史记录
其他内置命令

根据您的喜好来设置 Korn shell 相当简单:登录到 ksh 下时,使用带有 -o 开关的 set 命令来查看您的当前设置:

#  set -o
Current option settings are:
allexport        off
bgnice           on
emacs            off
errexit          off
gmacs            off
ignoreeof        off
interactive      on
keyword          off
markdirs         off
monitor          on
noexec           off
noclobber        off
noglob           off
nolog            off
notify           off
nounset          off
privileged       off
restricted       off
trackall         off
verbose          off
vi               off
viraw            off
xtrace           off
#

下面简单介绍各项设置(您也可以通过运行 man set 找到这些说明)
allexport:自动导出所有定义的后续变量。
bgnice:在后台以更低的优先级运行所有进程。
emacs:编辑输入的命令行文本时,使用 emacs 风格的行内编辑器。
errexit:如果某个命令产生非 0(零)的退出状态并且设置了 ERR 陷阱,则执行 ERR 陷阱并退出。
gmacs:编辑输入的命令行文本时,使用 gmacs 风格的行内编辑器。
ignoreeof :忽略文件结束字符,并且不退出 shell。如果用户想要退出,则必须键入 exit 命令或按 11 次 Ctrl-D。
keyword :此选项将命令的所有参数放入环境中,而不仅仅放入命令之前的参数,使用 set 命令可以查看这些参数。
markdirs:在来自文件名替换的所有目录的末尾添加一个正斜杠 (/)。
monitor:将所有后台进程作为独立进程运行,并在进程结束时向 stdout 输出一行信息以通知用户。
noexec:不执行命令。仅检查语法错误。
注意:此参数在交互式 shell 中无效。
noclobber :当输出重定向到现有文件时,此标记可阻止截断这些文件。然而,启用此选项后,如果使用大于号加管道符号 (>|),则仍然会发生截断。
noglob:禁用文件名替换。
nolog:如果使用此选项,则函数定义不会存储在历史文件中。
nounset:如果执行替换,则所有未设置参数都作为错误返回。
restricted :运行受限制的 shell。用户无法执行下列操作:更改目录;更改 SHELL、ENV 或 PATH 变量;执行在文件名中包含正斜杠 (/) 的命令;或重定向输出。
trackall:每个命令在最初运行时都作为被跟踪的别名。
verbose:当 shell 读取输入行时,向 stdout 显示所有这些行。
vi:编辑输入的命令行文本时,使用 vi 风格的行内编辑器。
viraw:键入字符时,将每个字符处理成在 vi 编辑器下输入的原样。
xtrace:执行命令时,向 stdout 显示所有命令和参数。

若要开启内置命令集选项,请使用 -o 开关。相反,如果改变主意,可以使用 +o 开关关闭这些选项。

ksh具体使用,看 参考章节引用的文章!

linux更改用户的默认登陆shell

1.一般linux系统会默认使用一种shell,比如我当前系统使用的默认shell是bash,可以使用如下方法查看。

# echo $SHELL
/usr/bin/bash

2.当我们想尝试其他类型的shell时,可以使用如下方式切换,以及切换回来。

# cat /etc/shells

/bin/csh
/bin/ksh
/bin/psh
/bin/tsh
/bin/bsh
/usr/bin/csh
/usr/bin/ksh
/usr/bin/psh
/usr/bin/tsh
/usr/bin/bsh
/opt/freeware/bin/bash

#修改默认的shell为ksh
chsh [username [shell]]

# chsh root /bin/ksh

#查看修改是否成功

# head -1 /etc/passwd
root:!:0:0::/:/bin/ksh

参考

ksh 精萃
参考URL: https://blog.csdn.net/shangboerds/article/details/48623533
ksh的基本使用知识
参考URL: http://blog.chinaunix.net/uid-16981447-id-2839946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值