说实话,谁能想到呢,Shell 其实就是Linux里的一门小语言。虽然没C那么庞大的库,却能干不少活儿。它跟Linux贴得紧,直接开个终端就能用,根本不需要额外安装,学起来也挺顺手。 其实脚本也没啥复杂的,就是把一堆命令写到一个文件里,支持条件、循环和函数,相当于把重复干的活儿封装成了小模块。一旦写好下次就省事了,直接运行就行。 你看Linux就有两副面孔,一个是图形界面靠鼠标操作,另一个就是命令行界面全靠键盘。Shell 就是连接这两边的“翻译官”。学会了在命令行里折腾,你会发现它比GUI快多了,也更省资源。 咱们来看看主流的Shell都有谁。Sh是最老的Bourne Shell,语法最保守;Bash也就是Bourne Again Shell是个增强版,兼容性好,是Linux和macOS的默认选择;Ksh是Korn Shell,语法像C语言;Csh/tcsh也挺像C语言;Zsh是个集大成者,社区活跃还有插件系统很好用。 Bash的进化挺厉害的,从Bourne到Bash再到各个发行版的默认选项。常用的命令有history | grep找历史记录,Ctrl+R逆向搜索历史记录。Tab补全路径和命令也挺方便。< > |是重定向和管道,把多个程序串起来用。还有alias ll='ls -al'这种设置别名的小技巧能让你打字更高效。 那些以rc结尾的文件比如~/.bashrc、~/.zshrc这些都是启动前会运行的初始化脚本。在这里配环境变量、别名、函数相当于给系统提前热身。 怎么安装和切换Shell呢?比如用sudo yum install ksh zsh就能安装;用chsh -s /bin/zsh就能切换到Zsh。为啥要切换呢?因为不同Shell的语法细节不一样,循环、条件判断、字符串处理都可能写出不一样的写法。写脚本前得先确认目标平台用的是哪种Shell。 推荐先学Bash主要是因为它不用装到处都能用,语法比Sh现代比Ksh简洁。社区里的教程、开源项目还有运维工具基本都围绕Bash转。先搞定它再扩展到Zsh和Fish会容易很多。