zoukankan      html  css  js  c++  java
  • ubuntu下载linux内核源码

    ubuntu仓库里面关于源码部分配置的好全啊,什么都有,ps:包括vim的各种插件居然也有人打包放到仓库里,真是方便。

    1.首先查看一下本系统使用的内核版本号:

    cat /proc/version

    Linux version 4.4.0-66-generic (buildd@lgw01-28) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017
    2.然后使用apt搜一下,看看有没有对应的最新版:

    apt search linux-source

    linux-source/xenial-updates,xenial-updates,xenial-security,xenial-security 4.4.0.70.76 all
      Linux kernel source with Ubuntu patches

    linux-source-4.4.0/xenial-updates,xenial-updates,xenial-security,xenial-security,now 4.4.0-70.91 all [installed]
      Linux kernel source for version 4.4.0 with Ubuntu patches

    linux-source-4.8.0/xenial-updates,xenial-updates 4.8.0-44.47~16.04.1 all
      Linux kernel source for version 4.8.0 with Ubuntu patches
    3.然后,安装即可,安装后到/usr/src目录查找。

    apt install linux-source-4.4.0

    4.进入/usr/src/linux-source-4.4.0目录后,解压到自己的home目录(注意:压缩包自建好了文件夹,不用建新的了):

    tar xjvf linux-source-4.4.0.tar.bz2 -C ~

    5.安装ctags(其实安装的是:exuberant-ctags),方便查看该源代码:

    apt install ctags

    6."--ctags setting--
    " 按下F5重新生成tag文件,并更新taglist
    map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
    imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> :TlistUpdate<CR>
    set tags=tags
    set tags+=./tags "add current directory's generated tags file
    set tags+=~/arm/linux-2.6.24.7/tags "add new tags file(刚刚生成tags的路径,在ctags -R 生成tags文件后,不要将tags移动到别的目录,否则ctrl+]时,会提示找不到源码文件)

    set tags+=./tags表示在当前工作目录下搜索tags文件
    set tags+=~/arm/linux-2.6.24.7/tags表示在搜寻tags文件的时候,也要搜寻~/arm/linux-2.6.24.7/文件夹下的tags文件。
    然后保存并退出vi。这样,你就可以用vim在任意地方查看有关Linux的函数原形。

    7.tag命令用法:
    Ctrl+]  跳到当前光标下单词的标签
    Ctrl+O  返回上一个标签
    Ctrl+T  返回上一个标签
    :tag TagName 跳到TagName标签
    以上命令是在当前窗口显示标签,当前窗口的文件替代为包标签的文件,当前窗口光标跳到标签位置。如果不希望在当前窗口显示标签,可以使用以下命令:
    :stag TagName 新窗口显示TagName标签,光标跳到标签处
    Ctrl+W + ]  新窗口显示当前光标下单词的标签,光标跳到标签处
    当一个标签有多个匹配项时(函数 (或类中的方法) 被多次定义),":tags" 命令会跳转到第一处。如果在当前文件中存在匹配,那它将会被首先使用。
    可以用这些命令在各匹配的标签间移动:
    :tfirst    到第一个匹配
    :[count]tprevious 向前 [count] 个匹配
    :[count]tnext  向后 [count] 个匹配
    :tlast    到最后一个匹配
    或者使用以下命令选择要跳转到哪一个
    :tselect TagName
    输入以上命令后,vim会为你展示一个选择列表。然后你可以输入要跳转到的匹配代号 (在第一列)。其它列的信息可以让你知道标签在何处被定义过。
    以下命令将在预览窗口显示标签
    :ptag TagName 预览窗口显示TagName标签,光标跳到标签处
    Ctrl+W + }  预览窗口显示当前光标下单词的标签,光标跳到标签处
    :pclose   关闭预览窗口
    :pedit file.h 在预览窗口中编辑文件file.h(在编辑头文件时很有用)
    :psearch atoi 查找当前文件和任何包含文件中的单词并在预览窗口中显示匹配,在使用没有标签文件的库函数时十分有用。
     
    最简单的使用方法举例
    用vi在任意目录写一个Test.c文件,内容如下:

    int main(void)
    {
    printf("Hello World! ");
    return 0;
    }

    写好后末行模式输入w保存好(不要退出vi),按Esc回到指令模式,把光标停留在printf上
    然后按 Ctrl+W + ],vi会自动跳到Linux系统函数printf()处,这时我们能查看printf()的原形
    查看完了,按Ctrl+o(回到上一个标签) 就回到原来的地方。

  • 相关阅读:
    30分钟掌握ES6/ES2015核心内容[上和下], 不错的说
    根据HTML5 获取当前位置的经纬度【百度地图】【高德地图】
    vue2 入门 教程 单页应用最佳实战[*****]
    JavaScript如何比较两个数组的内容是否相同【转】
    推荐下:开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
    浅谈 Underscore.js 中 _.throttle 和 _.debounce 的差异[转]
    原生JavaScript插件开发[转]
    性能监控之Spotlight
    Jmeter(三十五)聚合报告
    Jmeter(三十四)Jmeter-Question之“Cookie获取”
  • 原文地址:https://www.cnblogs.com/litifeng/p/6637847.html
Copyright © 2011-2022 走看看