Linux入门

一、环境搭建

安装完成ubantu后,安装vim和gcc.
在终端输入如下命令行:
sudo apt-get install vim
sudo apt-get install gcc

二、知识点

1.根目录和家目录的区别

掌握这些之间的关系,是为了能正确理解cd系列命令的操作意义,才能熟练利用命令来进入各个文件夹,用编辑器来编写代码。
Linux文件系统的目录结构:树形结构。
cd /: 进入根目录。根目录是所有文件夹的根。
/bin:系统启动时需要的执行文件(二进制)。放置的是在单人维护模式下还能够被操作的指令,这些指令可以被root与一般账号所使用。比如常用的cat、chmod、chown、date、mv、mkdir、cp。
/boot:引导加载器所需文件,系统所需图片保存与此。主要放置开机会使用到的档案。
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,如挂载光驱:mount/dev/cdrom/mnt。
/etc:系统配置文件存放的目录,系统主要的设定档几乎都放置在这个目录内,例如人员的账号密码档、各种服务的启始档等等。
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下。
/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比如常见的/lib/modules.
/media:放置的是可移除的装置,比如软碟、光碟、DVD等等装置都暂时挂载于此。
/mnt:暂时挂载某些额外的装置。
/opt:给主机额外安装软件所摆放的目录。
/proc:虚拟文件系统,此目录的数据都在内存中,比如系统核心、外部设备、网络状态。
/root:系统管理员的家目录。
/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这是给系统管理员root使用的命令,一般用户只能查看不能使用。
/srv:service,是一些网络服务启动之后,这些服务所需要取用的资料目录。
/tmp:一般用户或正在执行的程序临时存放文件的目录。
/usr:应用程序存放目录。Unix Software Resource的缩写,所有系统默认的软件都会存放在这里。
/var:主要针对常态性变动的文件,比如缓存、登录档以及某些软件运作所产生的文件。

例:从根目录进入home家目录。

2.相对路径和绝对路径
绝对路径:由根目录(/)开始写起的文件名或目录名称。
相对路径:相对于目前路径的文件名写法。
三、实践操作(程序模块+编译模块+运行)
1)helloworld程序模块
(头文件+初始化函数+退出函数+模块加载函数+模块卸载函数+许可证申明)
#include<linux/init.h> /必要头文件,指定初始化函数module_init()和清除函数module_exit()
#include<linux/kernel.h> /驱动要写入内核,与内核相关头文件。
#include<linux/module.h> /必要的头文件,支持动态添加和卸载模块,包含了大量的符号和函数的定义。
static int __init one_init(void)
{
printk(“Hello world!\n”);
return 0;
}

static void __exit one_exit(void)
{
printk(“byebye!\n”);
}

module_init(one_init); /初始化执行one_init函数
module_exit(one_exit); /卸载时执行one_exit函数

MODULE_LICENSE(“GPL”); /模块的许可证
2)Makefile编译文件
obj-m:=helloworld.o /产生目标文件
CURRENT_PATH:= ( s h e l l p w d ) / 指 明 当 前 路 径 L I N U X K E R N E L : = (shell pwd) /指明当前路径 LINUX_KERNEL:= (shellpwd)/LINUXKERNEL:=(shell uname -r) /指明内核源代码的当前版本
LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL) /内核源代码的绝对路径

all:
make -C ( L I N U X K E R N E L P A T H ) M = (LINUX_KERNEL_PATH) M= (LINUXKERNELPATH)M=(CURRENT_PATH) modules

clean:
make -C ( L I N U X K E R N E L P A T H ) M = (LINUX_KERNEL_PATH) M= (LINUXKERNELPATH)M=(CURRENT_PATH) clean

3)安装模块 make 执行后生成.ko文件。
4)载入模块 insmod helloworld被载入。

5)卸载模块 rmmod helloworld模块已被移除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值