1. 什么是脚本语言?
脚本语言 是一种编程语言,它写出的程序(叫"脚本")通常不需要编译 ,而是由另一个程序(叫"解释器")逐行读取并执行。
-
特点:
-
开发速度快,修改方便。
-
适合自动化重复任务、系统管理、快速原型开发。
-
常见例子:Python、JavaScript、Bash、PowerShell、Perl、Lua、Ruby 等。
-
-
与编译型语言的区别:
-
编译型语言(如C、C++、Java)需要先编译成机器码才能运行,运行速度快,但修改后要重新编译。
-
脚本语言直接运行源代码,开发效率高,但执行速度通常稍慢(现代脚本语言已优化得很快)。
-
注意:如今"脚本语言"和"编程语言"的界限变模糊,Python等语言也可以编译成字节码,但习惯上仍称其为脚本语言。
2. 脚本文件的扩展名是什么?
扩展名是文件名中最后一个点后面的部分(如 test.py 的 .py),用于提示操作系统或解释器这个文件应该用什么程序打开。
常见的脚本扩展名:
| 脚本语言 | 常见扩展名 | 说明 |
|---|---|---|
| Bash | .sh |
有时也用无扩展名(但需在文件头加 #!/bin/bash) |
| PowerShell | .ps1 |
|
| Python | .py |
|
| JavaScript | .js |
可用于浏览器或 Node.js 环境 |
| Perl | .pl |
|
| Ruby | .rb |
|
| Windows 批处理 | .bat 或 .cmd |
这是 CMD 专用的脚本 |
注意 :扩展名不是绝对强制性的(Linux 不依赖扩展名,而是看文件头部的 shebang,如 #!/usr/bin/env python),但在 Windows 上扩展名非常重要,它告诉系统用什么程序执行。
3. CMD、Bash、PowerShell 怎么理解?
这三个都是 命令行解释器(也叫 Shell),它们的作用是:
-
接收你输入的命令,解析并执行。
-
可以运行内置命令(如
dir、ls)、外部程序(如thrift)、以及执行脚本文件。
它们之间的主要区别:
| 名称 | 全称/出身 | 默认平台 | 语法风格 | 脚本扩展名 | 特点 |
|---|---|---|---|---|---|
| CMD | Command Prompt(命令提示符) | Windows | DOS 风格(copy、del、echo) |
.bat 或 .cmd |
古老但兼容性好,功能较弱 |
| PowerShell | PowerShell | Windows(现已跨平台) | 基于 .NET,面向对象(命令是 Get-ChildItem 这种"动词-名词"格式) |
.ps1 |
功能非常强大,可以调用 .NET 类,管道传递对象而非文本 |
| Bash | Bourne Again Shell | Linux / macOS(Windows 上可通过 WSL 或 Git Bash 使用) | Unix 风格(ls、cp、grep) |
.sh |
最流行的 Unix shell,语法灵活,脚本能力强 |
它们与脚本语言的关系:
-
Bash 本身也是一种脚本语言 ,写好的
.sh文件由 Bash 解释执行。 -
PowerShell 本身也是一种脚本语言 ,写好的
.ps1文件由 PowerShell 解释执行。 -
CMD 的批处理(.bat) 也是一种极简的脚本语言。
-
此外,这些 Shell 也可以执行其他脚本语言编写的脚本(比如在 Bash 里执行
python test.py)。
举个直观的例子
假设你有一个任务:创建文件夹 my_folder,然后里面新建一个文件 hello.txt,写入 "Hello world"。
-
用 CMD 脚本(test.bat):
batch
mkdir my_folder cd my_folder echo Hello world > hello.txt -
用 Bash 脚本(test.sh):
bash
#!/bin/bash mkdir my_folder cd my_folder echo "Hello world" > hello.txt -
用 PowerShell 脚本(test.ps1):
powershell
New-Item -ItemType Directory -Name my_folder Set-Location my_folder "Hello world" | Out-File hello.txt
这三种脚本分别由 CMD、Bash、PowerShell 执行。
总结
| 概念 | 一句话解释 |
|---|---|
| 脚本语言 | 一种解释执行的编程语言,用于快速开发自动化任务。 |
| 扩展名 | 文件名末尾的标识,提示系统该用什么程序打开脚本(如 .sh、.ps1、.py)。 |
| CMD / Bash / PowerShell | 都是命令行解释器(Shell),它们既是交互式的命令环境,也能执行各自语法的脚本。 |