zoukankan      html  css  js  c++  java
  • linux常用命令及内核简单介绍

    查看系统版本:cat /proc/version 

    • ls: 列出目录
    • cd:切换目录
    • pwd:显示目前的目录
    • mkdir:创建一个新的目录
    • rmdir:删除一个空的目录
    • cp: 复制文件或目录
    • rm: 移除文件或目录
    • mv: 移动文件与目录,或修改文件与目录的名称
    • mv b b.c:把b重命名为b.c
    • gcc b.c -o b:编译b.c生成到b中
    • ./b:执行b
    • cat -b hello.c:查看文件内容

    vi/vim 的使用

    • i 切换到输入模式,以输入字符。
    • x 删除当前光标所在处的字符。
    • : 切换到底线命令模式,以在最底一行输入命令。

    输入模式

    在命令模式下按下i就进入了输入模式。

    在输入模式中,可以使用以下按键:

    • 字符按键以及Shift组合,输入字符
    • ENTER,回车键,换行
    • BACK SPACE,退格键,删除光标前一个字符
    • DEL,删除键,删除光标后一个字符
    • 方向键,在文本中移动光标
    • HOME/END,移动光标到行首/行尾
    • Page Up/Page Down,上/下翻页
    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
    • ESC,退出输入模式,切换到命令模式

    底线命令模式

    在命令模式下按下:(英文冒号)就进入了底线命令模式。

    底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

    在底线命令模式中,基本的命令有(已经省略了冒号):

    • q 退出程序
    • w 保存文件

    按ESC键可随时退出底线命令模式。

    cp linux-4.4.115-wyb.tar.xz /usr/src/

    tar -xvf linux-4.4.115-wyb.tar.xz -C ./kernel

    mkdir kernel

    什么是内核模块

    内核模块是具有独立功能的程序。它可以被单独编译,但是不能单独运行,它的运行必须被链接到内核作为内核的一部分在内核空间中运行

    内核模块必须至少有两个函数:一个“开始”(初始化)函数——称之为init_module(),当模块加载(insmod)到内核时,将调用该函数;一个“结束”(清理)函数——称之为cleanup_module(),当卸载模块(rmmod)时将调用该函数。

    最简单的Helloworld模块

    hello.c

    #include<linux/module.h>
    #include<linux/kernel.h>
    int init_module(void)
    {
            printk("strat###????nihao,hello world,sfdsfsf.$$$$$$$$$$$$$$
    ");
            return 0;
    }
    void cleanup_module(void)
    {
            printk("end###################
    ");
    }
    MODULE_LICENSE("GPL");

    对应的Makefile文件

    obj-m := hello.o
    al:
            make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
    clean:
            make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean

    然后执行相应的命令:

    $ make //编译 

    $ make clean 

    $ insmod hello.ko//插入模块

    $ rmmod hello//移除模块

    $ lsmod |grep hello //列出模块

    $ dmesg grep| tail -10 //查看是否打印对应内容

    内核中的锁机制

  • 相关阅读:
    linux笔记2.20
    新安装ubuntu后几项配置
    linux网络配置
    linux笔记2.19
    jquery在不同浏览器获取文件路径出现问题!
    软件工程师如何定义自己的职业路线
    标识符
    结对项目-四则运算 “软件”之升级版
    小学四则运算 “软件”之初版
    分布式版本控制系统Git的安装与使用
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/10196763.html
Copyright © 2011-2022 走看看