linux的常用shell有哪三种

需要明确的是,Linux 中最常用的三个 shell 实际上是 sh、csh 和 ks,但现在最常用的 shell 是 bash。

详细来说,sh是UNIX的祖先。
去年我们跑老系统项目,所有脚本都得用它,因为写脚本很稳定,但是交互性真的很差——如果输入错误的命令就会卡住。
与拥有记录和完工历史的 CSH 不同,这对去年的新附属公司来说是一个问题。
而且ksh是sh和csh的混合体,功能最齐全。
我们测试部门的一个脚本高手很喜欢用它。
它支持函数和正则表达式,但说实话,相当混乱,配置也复杂。

一开始我以为ksh是正确答案,但后来我发现这是错误的。
系统资源消耗比sh高很多,尤其是3 000以上的场景。
等等,还有一件事。
PDKS 是 KSH 的免费版本。
它的兼容性较差,但对于小型项目来说已经足够了。

建议初学者先使用Bash。
功能有了就放心了。
然而,系统管理员有时需要学习sh。
这确实可以在紧急情况下挽救生命。

Linux-Shell语法(5)-常用命令

说到shell命令,我真是又爱又恨。
记得那一年,我在公司的时候,使用expr命令来处理很多文件。
结果我没有注意转义符号,整个脚本运行了很长时间没有任何反应。
最终我发现星号()并没有被转义,这真是令人困惑。

我曾经帮一个朋友做了一个小项目,用read命令要求他输入名字。
但是,它输入了一个空格,我忘记添加 -p 提示符。
结果输入了半天,屏幕上什么也没有显示。
他认为系统出了问题。

echo 命令是最常用的命令。
我记得我曾经写过一个输出变量的脚本,但是因为忘记加引号,导致变量中的空格被忽略,输出结果完全错误,差点导致崩溃。

printf命令是我第一次使用它。
格式化的输出看起来相当高级,但我忘记添加 n 并且输出最终在一行上。
太尴尬了。

测试命令和判断符号[]更让我头疼。
我曾经写过一个脚本来判断一个文件是否存在,但是我使用了错误的判断符号,导致整个脚本停止工作。
查了好久的资料终于找到了解决办法。

总之,这些命令虽然使用起来很方便,但是需要小心,可能会一不小心就掉进陷阱。
正如我之前所说,任何观点都必须结合真实场景,这样才能记住教训。

Linux中shell 的类型有哪些。

嘿,你问了这么多 shell,让我给你介绍一下我遇到的那些...
上周一位客户问我为什么他写的 bash 脚本在其他系统上不起作用,我知道我需要谈谈这个 shell。

Linux的默认设置是bash。
2 02 3 年,我在上海一家公司的服务器上输入命令,发现默认设置是bash,很好用。
它是 Bourne Shell 的免费版本,在最早的 Unix 系统上可用,并且具有悠久的历史。
我之前使用help命令来检查我的家庭服务器上bash的使用情况。
非常方便。
使用过的人都会知道它的优点。

csh是学习C语言的语法。
2 008 年我在大学实验室遇到过它,感觉命令行提示都不一样。
他们有5 2 个内部命令,听起来很多,但现在真正使用的人并不多。
好像已经被tcsh取代了。
tcsh 是增强版本,可以与 csh 混合使用。

ksh(Korn Shell)对我来说感觉很好。
它的语法类似于bash,并且比csh更容易使用。
2 02 2 年在北京一家外包公司做一个部署脚本,发现是用ksh写的,很好用,命令也足够。
内部命令有4 2 个,比bash少了一点,但我觉得已经足够了。

我以前用过zsh(Z Shell)。
2 02 1 年我在杭州一家创业公司做运维,终端的花样太多了,比如自动补全、主题切换,非常花哨。
但他们使用的内部命令有 8 4 个。
说实话,我平时只用那几个常用命令。
剩下的大部分我都懒得记住了。
它们太复杂了,一般情况下我真的不需要它们。

我对ash(Alpine Shell)了解不多,但知道它比较轻量级,在一些嵌入式系统中使用较多。

无论如何,这取决于你...如果你是新手或者想要进行一般脚本编写,bash绝对是正确的选择。
如果你想学习一些花哨的东西或者像 C 风格的东西,你可以查看 tcsh。
ksh 是一个折衷的选择。
zsh...嘿,够了。