在命令行里做第一个 Hello World,其实就是把一句话输出到屏幕或者运行一个小程序看到文本返回。无论 Windows、macOS 还是 Linux,步骤都离不开:打开终端、写/保存代码、赋予权限或编译(如需)、执行命令并观察输出。本文带你一步步从最简单的 echo 开始,扩展到脚本、解释型语言、编译型语言,并解释常见错误、编码与环境问题,帮助你在命令行里自信地跑通 Hello World。
为什么要从命令行学 Hello World?

很多人第一次学编程或使用服务器,会从图形界面开始。但命令行更接近计算机的本质:它教你如何与操作系统对话、如何管理文件、如何组合小工具。把 Hello World 放到命令行来做,可以同时学到
- 标准输入/输出(stdin/stdout)概念;
- 脚本运行与执行权限;
- 编译与运行的基本流程;
- 以及常见的调试思路和错误排查方法。
准备工作:你需要什么
先别急着写代码,确认下面这些准备有助于后续顺利进行:
- 一个终端程序:Windows 的 PowerShell 或 cmd,macOS 的 Terminal,Linux 的 GNOME Terminal、Konsole 等。
- 文本编辑器:可以用记事本、Notepad++、VS Code、vim、nano 等。
- 至少一种运行环境或编译器:Python、Node.js、GCC(C)、OpenJDK(Java)等,后面我会说明如何安装常见工具。
- 了解基本命令:cd、ls/dir、cat/type、echo。
核心概念(用一句话解释)
- 终端(Terminal):你和操作系统对话的窗口;
- Shell:解释你输入命令的程序(bash、zsh、PowerShell 等);
- 标准输出:程序输出文本到屏幕的“管道”;
- 执行权限:在类 Unix 系统上运行脚本需要的权限位;
- 编译与运行:编译型语言要先变成可执行文件,解释型语言则在解释器中直接运行。
最简单的开始:用 echo 打个招呼
这是零阻力的第一步,几乎任何终端都支持。
Linux / macOS(bash / zsh)
echo "Hello World"
你会看到屏幕上出现 Hello World。对,真的就是那么简单。
Windows (cmd)
echo Hello World
Windows PowerShell
Write-Output "Hello World"
脚本版 Hello World:Bash、PowerShell
写成脚本可以重复执行,也能学会文件权限和 shebang(类 Unix)。
Bash 脚本(Linux/macOS)
# hello.sh #!/usr/bin/env bash echo "Hello World"
保存后运行:
chmod +x hello.sh ./hello.sh
注意:没有 +x 权限会报 Permission denied。嗯,这是新手常碰到的。
PowerShell 脚本(Windows)
# hello.ps1 Write-Output "Hello World"
在 PowerShell 中运行:
.\hello.ps1
如果被策略阻止,可能需要调整 ExecutionPolicy(这涉及安全,务必谨慎)。
解释型语言的 Hello World
解释型语言通常只需安装运行时,就能直接运行脚本,调试非常便捷。
Python
# hello.py
print("Hello World")
运行:
python hello.py # 或 python3 hello.py(取决于系统)
如果提示命令不存在,说明没安装 Python 或 PATH 未配置。
Node.js(JavaScript)
/* hello.js */
console.log("Hello World");
node hello.js
编译型语言的 Hello World:C、C++、Go
编译型语言需要先把源码变成可执行文件,步骤多一点,但你会学到编译器输出、错误信息解析。
C(使用 gcc)
/* hello.c */
#include <stdio.h>
int main(void) {
printf("Hello World\n");
return 0;
}
gcc hello.c -o hello ./hello # Linux/macOS hello.exe # Windows 或者 .\hello.exe
如果 gcc 未安装,可以用包管理器安装(apt、yum、brew、choco 等)。
Go
// hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
go run hello.go # 或 go build hello.go ./hello
Java 的 Hello World(稍微复杂一点)
/* HelloWorld.java */
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
javac HelloWorld.java java HelloWorld
Java 需要注意类名和文件名一致、JDK 安装与 PATH 配置。
一些重要的细节与常见错误(务必读)
- 路径问题:命令行默认工作目录很重要,使用 cd 切换。误以为文件在当前目录是常见错误。
- 文件编码:Windows 记事本保存时默认可能不是 UTF-8,会导致某些语言(如 Python)读取时报错。建议保存为 UTF-8 无 BOM。
- 换行符差异:Windows 用 CRLF,Unix 用 LF。C/C++ 或 shell 脚本的 shebang 在 CRLF 下可能报错(/bin/bash^M)。用 dos2unix 或文本编辑器转换。
- 执行权限:类 Unix 系统需要 chmod +x;Windows 通过文件扩展名决定执行方式。
- 环境变量与 PATH:运行命令时系统会在 PATH 指定的位置查找可执行文件。新安装的工具如果不在 PATH,需要手动添加或用绝对路径。
- 错误信息阅读:别急着网上搜复制粘贴,先读清楚报错行号、文件名和关键字,这往往能把你带到问题根源。
输入参数与基本交互
让 Hello World 更“会说话”,我们加入参数与用户输入。
Bash 读取参数和输入
#!/usr/bin/env bash # hello_arg.sh if [ -z "$1" ]; then echo "Hello World" else echo "Hello, $1" fi
./hello_arg.sh Alice # 输出 Hello, Alice
Python 读取命令行参数
# hello_arg.py
import sys
name = sys.argv[1] if len(sys.argv) > 1 else "World"
print(f"Hello, {name}")
重定向、管道与日志
命令行的强大在于把小工具串起来。
- 重定向 > 将输出写入文件:
echo "Hello" > out.txt
- 追加 >>:
echo "Again" >> out.txt
- 管道 | 把一个程序的输出送给另一个:
echo "Hello World" | grep Hello
- 错误重定向 2>>:
somecmd 2>> error.log
在服务器或远程机器上运行 Hello World
通常你会通过 SSH 连接到远程机器,然后按前面步骤执行。SSH 的基本命令:
ssh user@host
连接后记得查看自己的环境(which python、echo $SHELL、uname -a),小心别在生产机上随意运行未知脚本。
表:不同平台的常用命令对照
| 用途 | Linux / macOS | Windows (cmd / PowerShell) |
| 列出目录 | ls |
dir |
| 显示文件内容 | cat file |
type file |
| 打印文本 | echo "text" |
echo text / Write-Output "text" |
| 执行脚本 | ./script.sh(需 +x) |
.\script.ps1 或 script.bat |
安装常见运行环境(简要提示)
- Linux(Debian/Ubuntu):apt-get install python3 gcc openjdk-11-jdk nodejs
- macOS:推荐用 Homebrew(brew install python node go gcc),或者通过官方包安装。
- Windows:推荐使用包管理器 Chocolatey 或者官方安装程序;也可以使用 Windows Subsystem for Linux(WSL)来运行类 Unix 环境。
安装后用 python --version、node --version 等命令确认。
常见问题与简短解法(遇到就看)
- 命令未找到:检查是否安装以及 PATH 是否包含可执行文件目录。
- 权限被拒绝:类 Unix 下用 chmod,Windows 检查文件属性与执行策略。
- 编码或乱码:确保文件保存为 UTF-8,终端使用 UTF-8 编码。
- shebang 报错:检查首行的 #! 是否正确、文件是否存在 CRLF。
接下来可以做的练习(循序渐进)
- 把 Hello World 改成接收名字并问候,并保存日志到文件(学习重定向);
- 写一个简单的循环版本,每秒打印一次并用 Ctrl+C 中断(了解信号);
- 把 Hello World 打包成可执行文件(Go、Rust、C),体会构建过程;
- 在远程服务器上自动运行脚本(用 cron 或 systemd),了解守护进程的概念。
最后,关于心态与调试小技巧
开始总会慢半拍,报错看不懂是常态。一个简单的习惯能帮你很多:
- 先读报错信息,找到行号或关键字;
- 搜索报错时加上你用的语言/环境名,不要盲目复制粘贴命令;
- 一步一步来:确认环境、确认文件、确认权限,然后运行;
- 多试几次,遇到奇怪的问题时换台机器或新建一个最小可复现示例。
嗯,大概就是这些。你现在已经掌握了在命令行里实现 Hello World 的完整套路:从最简单的 echo 到脚本与编译语言,连带学会了常见问题的排查办法。照着练一遍,别怕错,把终端当成你的实验台,就会越来越顺手。