Linux下Rust编程入门指南
在Linux系统中,推荐使用rustup(Rust官方工具链管理器)安装Rust,它集成了编译器(rustc)、包管理器(cargo)及常用工具。打开终端,执行以下命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
按照终端提示完成安装(需输入用户密码)。安装完成后,通过以下命令验证是否成功:
rustc --version # 查看Rust编译器版本
cargo --version # 查看cargo包管理器版本
若显示版本号,则说明安装成功。
Rust的入口函数是main
,使用println!("...")
宏输出内容(println
是宏,需用!
标识)。创建项目目录并编写代码:
mkdir ~/hello_rust && cd ~/hello_rust # 创建项目目录
nano main.rs # 创建并编辑main.rs文件
在main.rs
中输入以下内容:
fn main() {
println!("Hello, Rust on Linux!"); // 打印Hello World
}
保存并退出(Nano中按Ctrl+O
保存,Ctrl+X
退出)。编译并运行程序:
rustc main.rs # 编译源文件(生成可执行文件hello_rust)
./hello_rust # 运行可执行文件
终端将输出Hello, Rust on Linux!
。
Cargo是Rust的官方项目管理工具,可简化构建、依赖管理和运行流程。创建新项目:
cargo new my_project # 创建名为my_project的项目(自动生成src/main.rs和Cargo.toml)
cd my_project # 进入项目目录
Cargo.toml
是项目的配置文件(记录项目名称、版本、依赖等),src/main.rs
是主程序入口。运行项目:
cargo run # 自动编译并运行项目(等价于cargo build + ./target/debug/my_project)
构建发布版本(优化性能):
cargo build --release # 生成可执行文件位于target/release/my_project
Cargo会自动处理依赖下载、编译缓存等问题,是Rust开发的必备工具。
Rust变量默认不可变(immutable),使用let
声明:
let x = 42; // 不可变变量(类型自动推断为i32)
// x = 100; // 编译错误:无法修改不可变变量
若需修改变量,需添加mut
关键字:
let mut y = 10; // 可变变量
y = 20; // 合法
常量使用const
声明,必须在编译时确定值:
const PI: f64 = 3.1415926; // 常量(类型必须显式声明)
i32
/u32
,有符号/无符号32位整数)、浮点数(f32
/f64
)、布尔值(bool
)、字符(char
,4字节Unicode字符)。tuple
,固定长度的不同类型组合,如(i32, f64)
)、数组(array
,固定长度的同类型组合,如[i32; 5]
)。if-else if-else
,条件表达式必须返回bool
类型:let score = 85;
if score > 90 {
println!("Excellent");
} else if score > 75 {
println!("Good");
} else {
println!("Pass");
}
loop
(无限循环,需用break
退出)、while
(条件循环)、for
(遍历集合):let mut i = 0;
while i < 5 {
println!("{}", i);
i += 1;
}
for num in 0..5 { // 0..5表示0到4的范围
println!("{}", num);
}
使用fn
关键字定义函数,返回值类型需用->
标注(无返回值用()
):
fn add(a: i32, b: i32) -> i32 {
a + b // 最后一行表达式的值作为返回值(无需分号)
}
std::net
模块扫描指定IP段的开放端口,学习网络编程和错误处理。std::fs
模块遍历目录,批量修改文件名(如添加前缀)。hyper
或actix-web
框架构建HTTP服务器,响应GET/POST请求(适合学习异步编程)。tokio
处理异步通信(学习并发编程)。tokio
异步执行systemctl is-active
命令,监控服务状态;通过lettre
库发送邮件报警(整合配置文件、日志记录)。rust-for-linux
项目编写字符设备驱动(如虚拟设备),学习内核安全编程(需Linux内核源码和开发环境)。