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内核源码和开发环境)。