Linux驱动开发 ---- 1_Linux驱动开发基础
目录
学习目标
- 掌握Linux基本命令和操作。
- 理解Linux文件系统结构和权限管理。
- 在虚拟机中搭建开发环境并完成初步实践。
时间安排建议
- 理论学习(1-2小时):熟悉命令、文件系统和权限。
- 实践(1小时):安装Ubuntu虚拟机,练习命令和软件编译。
理论学习
1. 常用Linux命令
以下是第一天需要掌握的基础命令及其作用:
ls
:列出目录内容(在Linux中用dir
无效,需用ls
)。- 示例:
ls -l
(显示详细信息)。
- 示例:
cd
:切换目录。- 示例:
cd /home
(进入home目录)。
- 示例:
chmod
:修改文件权限。- 示例:
chmod 755 script.sh
(赋予执行权限)。
- 示例:
ps
:查看进程状态。- 示例:
ps aux
(列出所有进程)。
- 示例:
top
:实时监控系统资源。- 示例:运行
top
,按q
退出。
- 示例:运行
- 其他基础命令:
pwd
:显示当前路径。mkdir
:创建目录。rm
:删除文件或目录(谨慎使用-rf
选项)。cat
:查看文件内容。echo
:输出文本。
2. 文件系统结构
Linux文件系统是树状结构,根目录为/
。以下是关键目录的用途:
/bin
:存放基本命令(如ls
、cd
)。/etc
:配置文件目录(如网络配置)。/home
:用户主目录。/dev
:设备文件(如/dev/sda
表示硬盘)。/proc
:虚拟文件系统,反映系统状态。/var
:动态数据(如日志/var/log
)。
3. 权限管理
Linux使用权限控制访问。每个文件有三类权限:拥有者(user)、组(group)、其他(others)。
- 权限表示:
rwxr-xr-x
r
(读=4)、w
(写=2)、x
(执行=1)。- 示例:
755
= 拥有者(7=rwx)、组(5=r-x)、其他(5=r-x)。
- 修改权限:
chmod 644 file.txt
(拥有者读写,组和其他只读)。chown user:group file.txt
(更改拥有者和组)。
实践任务
任务1:安装Ubuntu虚拟机
- 下载工具和镜像:
- 安装VirtualBox(官网:virtualbox.org)。
- 下载Ubuntu 22.04 LTS镜像(ubuntu.com)。
- 配置虚拟机:
- 创建新虚拟机,分配2GB内存、20GB硬盘。
- 加载Ubuntu ISO,启动安装。
- 完成安装:
- 选择语言、时区,创建用户(如
user1
,密码123456
)。 - 安装完成后登录。
- 选择语言、时区,创建用户(如
任务2:练习基本命令
- 打开终端(Ctrl+Alt+T)。
- 执行以下操作并观察结果:
- 输入
ls
(提示:dir
无效,需用ls dir
列出目录)。 - 输入
cd /etc
然后pwd
(输出/etc
)。 - 输入
ps aux | grep bash
(查看bash相关进程)。 - 输入
top
,观察几秒后按q
退出。
- 输入
任务3:编译安装软件
- 更新软件源:
sudo apt update
- 安装编译工具:
sudo apt install build-essential
- 这将安装
gcc
、make
等工具。
- 这将安装
- 编写并编译一个C程序:
- 创建文件
hello.c
:nano hello.c
- 输入以下代码(完成后Ctrl+O保存,Ctrl+X退出):
- 创建文件
#include <stdio.h>
// 主函数:程序入口
int main() {
printf("Hello, Linux World!\n"); // 输出欢迎信息
return 0; // 返回0表示成功执行
}
- 编译并运行:
gcc hello.c -o hello ./hello
- 预期输出:
Hello, Linux World!
任务4:权限管理实践
检查
hello
权限:ls -l hello
- 输出类似:
-rwxr-xr-x
。
- 输出类似:
修改权限:
chmod 700 hello ls -l hello
- 输出变为:
-rwx------
(仅拥有者有权限)。
- 输出变为:
测试权限:
- 用另一用户(如
user2
)登录尝试运行./hello
,会提示“权限不足”。
- 用另一用户(如
代码详解与案例
示例:简单的Shell脚本
创建一个脚本,练习命令和权限管理:
- 创建文件
test.sh
:nano test.sh
- 输入以下内容:
#!/bin/bash
# 这是一个简单的脚本,用于演示Linux命令
echo "当前路径:"
/usr/bin/pwd # 显示完整路径
echo "当前用户:$USER" # 显示登录用户名
echo "正在运行的进程数:"
ps aux | wc -l # 统计进程数
- 添加执行权限并运行:
chmod +x test.sh ./test.sh
- 预期输出:
当前路径: /home/user1 当前用户:user1 正在运行的进程数: 105
- 预期输出:
代码注释详解
#!/bin/bash
:指定脚本解释器。echo
:输出文本,$USER
是环境变量。ps aux | wc -l
:管道操作,ps
列出进程,wc -l
统计行数。
注意事项
- 实践为主:每学一个命令,立即在终端尝试。
- 记录问题:如果遇到错误(如权限不足),用
man
命令查看帮助(如man chmod
)。 - 环境准备:确保虚拟机网络正常,方便后续下载内核源码。
总结
完成以上内容后,您将:
- 熟悉Linux基本命令(
ls
、cd
等)。 - 理解文件系统和权限基础。
- 成功搭建Ubuntu虚拟机并运行简单程序。