交叉编译工具链未找到处理和vi使用

1.概要

2.内容

1.问题处理

topeet@ubuntu:~/cq/hellword$ sudo make
make -C /home/topeet/lnx/linux-5.10.198     M=/home/topeet/cq/hellword modules    #make操作
make[1]: 进入目录“/home/topeet/lnx/linux-5.10.198”
make[1]:aarch64-none-linux-gnu-gcc:命令未找到
  CC [M]  /home/topeet/cq/hellword/helloworld.o
/bin/sh: 1: aarch64-none-linux-gnu-gcc: not found
make[2]: *** [scripts/Makefile.build:286:/home/topeet/cq/hellword/helloworld.o] 错误 127
make[1]: *** [Makefile:1832:/home/topeet/cq/hellword] 错误 2
make[1]: 离开目录“/home/topeet/lnx/linux-5.10.198”
make: *** [Makefile:8:all] 错误 2

解决方法:

从您提供的错误信息来看,编译过程中遇到了几个问题:

  1. 交叉编译工具链未找到
    错误信息显示 aarch64-none-linux-gnu-gcc: command not found,这意味着您的系统中没有安装用于 aarch64 架构的交叉编译工具链。您需要安装这个工具链才能正确编译面向 aarch64 架构的内核模块。

  2. Makefile 配置问题
    您的 Makefile 可能没有正确配置,或者没有正确地指向内核源代码树和模块源代码目录。但是,从您提供的命令来看,您已经手动指定了这些路径,所以问题可能不在这里。

  3. 环境变量设置
    如果您的系统默认没有设置 PATH 环境变量来包含交叉编译工具链的路径,您可能需要在编译之前手动设置它。

为了解决这个问题,您可以尝试以下步骤:

  1. 安装交叉编译工具链
    对于 aarch64 架构,您可能需要安装 aarch64-linux-gnu-gcc 而不是 aarch64-none-linux-gnu-gcc(除非您确实有一个名为 aarch64-none-linux-gnu-gcc 的特定工具链)。您可以使用包管理器来安装它,例如在 Ubuntu 上:

    sudo apt-get update
    sudo apt-get install gcc-aarch64-linux-gnu

    或者,如果您正在使用一个特定的交叉编译工具链包,请确保按照该包的说明进行安装。

  2. 检查 Makefile
    确保您的 Makefile 中没有硬编码的路径或错误的变量设置。如果您是从其他地方复制的 Makefile,请确保它适用于您的环境和内核版本。

  3. 设置环境变量
    如果交叉编译工具链已安装但不在默认路径中,您可以将其路径添加到 PATH 环境变量中:

    export PATH=$PATH:/path/to/your/cross-compiler

    替换 /path/to/your/cross-compiler 为实际的交叉编译工具链路径。

  4. 重新运行 make 命令
    在解决了上述问题后,重新运行 make 命令,确保使用正确的交叉编译工具链和参数。

  5. 检查内核源代码树
    确保您的内核源代码树是完整的,并且与您正在编译的模块版本兼容。

如果您遵循了上述步骤但仍然遇到问题,请检查是否有其他依赖项缺失或配置错误,并考虑在内核开发社区或相关论坛上寻求帮助。

2.linux 删除文件命令 

在Linux中,删除文件的命令主要是rm(remove的缩写)。使用这个命令时,你需要指定想要删除的文件名或文件路径。以下是一些基本的用法:

  1. 删除单个文件

    rm 文件名

    例如,要删除名为example.txt的文件,你可以使用:

    rm example.txt
  2. 删除多个文件

    rm 文件名1 文件名2 ...

    例如,要同时删除example1.txtexample2.txt,你可以使用:

    rm example1.txt example2.txt
  3. 删除目录中的所有文件(但保留目录本身):
    如果你想删除目录中的所有文件和子目录,可以使用rm命令与通配符*结合:

    rm 目录名/*

    例如,要删除documents/目录中的所有内容,但保留documents/目录本身,你可以使用:

    rm documents/*
  4. 递归删除目录及其内容(包括目录本身):

    rm -r 目录名

    或者,使用-rf选项来强制删除而不提示确认:

    rm -rf 目录名

    例如,要递归地删除documents/目录及其所有内容,你可以使用:

    rm -r documents/

    或者,不提示确认地删除:

    rm -rf documents/

注意

  • 使用rm命令时要非常小心,特别是使用-rf选项,因为它会永久删除文件和目录而不提示确认,无法恢复。
  • 在默认情况下,rm不会删除目录。要删除目录,你需要使用-r(递归)选项。
  • 在一些系统中,为了安全起见,rm命令可能会配置为别名,例如rm -i,以在删除前提示确认。你可以通过运行alias命令来检查是否有这样的别名设置。

3. vi 常用命令

VI(Visual Interface)是一款在Unix/Linux环境下广泛使用的文本编辑器,以其强大的功能和高效的编辑速度而受到程序员的青睐。VI编辑器提供了丰富的命令,用于文本的打开、编辑、搜索、替换、删除、复制、粘贴、保存和退出等操作。以下是VI编辑器的一些常用命令:

一、打开和创建文件

  • vi 文件名:打开或新建文件,并将光标置于第一行首。如果文件已存在,则打开该文件;如果文件不存在,则创建一个新文件。
  • vi +n 文件名:打开文件,并将光标置于第n行首。
  • vi + 文件名:打开文件,并将光标置于最后一行首。
  • vi +/pattern 文件名:打开文件,并将光标置于第一个与pattern匹配的字符串处。
  • vi -r 文件名:恢复上次编辑时因系统崩溃而未保存的文件。

二、移动光标

  • h:光标左移一个字符。
  • j:光标下移一行。
  • k:光标上移一行。
  • l:光标右移一个字符。
  • w:光标跳到下一个字的开头。
  • e:光标跳到下一个字的字尾。
  • b:光标回到上一个字的开头。
  • 0:光标移到当前行的行首。
  • $:光标移到当前行的行尾。
  • G:光标移到文件的最后一行。
  • nG:光标移到文件的第n行。
  • Ctrl+B:屏幕往后移动一页。
  • Ctrl+F:屏幕往前移动一页。
  • Ctrl+U:屏幕往后移动半页。
  • Ctrl+D:屏幕往前移动半页。

三、插入文本

  • i:在当前光标位置前插入文本。
  • I:在当前行的行首插入文本。
  • a:在当前光标位置后插入文本。
  • A:在当前行的行尾插入文本。
  • o:在当前行的下一行插入新行并开始编辑。
  • O:在当前行的上一行插入新行并开始编辑。

四、删除文本

  • x:删除光标所在位置的字符。
  • X:删除光标所在位置的前一个字符。
  • dd:删除光标所在行。
  • ndd:删除光标所在行及其后的n-1行。
  • dw:删除光标所在位置的字到字尾。
  • d$:删除光标所在位置到行尾的内容。
  • d0:删除光标所在位置到行首的内容。

五、复制和粘贴文本

  • yy:复制光标所在行。
  • nyy:复制光标所在行及其后的n-1行。
  • p:将缓冲区内的内容粘贴到光标所在位置。
  • P:将缓冲区内的内容粘贴到光标所在位置的前一行。

六、搜索和替换文本

  • /pattern:从光标开始处向文件尾搜索pattern。
  • ?pattern:从光标开始处向文件首搜索pattern。
  • n:在同一方向重复上一次搜索命令。
  • N:在反方向上重复上一次搜索命令。
  • :s/p1/p2/g:将当前行中所有p1替换为p2。
  • :n1,n2s/p1/p2/g:将第n1至n2行中所有p1替换为p2。
  • :%s/p1/p2/g:将文件中所有p1替换为p2。

七、保存和退出文件

  • :w:保存当前文件。
  • :w 文件名:将当前文件另存为指定文件。
  • :q:退出VI编辑器(如果文件已修改,则无法退出)。
  • :q!:不保存修改,强制退出VI编辑器。
  • :wq:保存修改并退出VI编辑器。
  • :x:保存修改并退出VI编辑器(与:wq相同,但仅在文件有修改时才保存)。

八、其他常用命令

  • u:撤销上一次操作。
  • Ctrl+R:重做上一次撤销的操作。
  • .:重复上一次执行的命令。
  • v:进入可视模式,选中文本。
  • V:进入可视行模式,选中整行文本。
  • Ctrl+V:进入可视块模式,选中矩形区域文本。
  • :set nu:显示行号。
  • :set nonu:取消显示行号。

VI编辑器的命令非常丰富,这里只列出了一些最常用的命令。熟练掌握这些命令,可以大大提高文本编辑的效率。

4.vi 的编辑状态 

VI编辑器在Linux系统中是一款非常受欢迎的文本编辑器,以其简洁而强大的功能著称。VI编辑器主要有三种状态或模式,这些模式帮助用户在不同任务间切换,提高编辑效率。以下是VI编辑器的三种主要状态及其功能:

  1. 命令模式(Command Mode)

    • 这是VI编辑器启动后的默认模式。在此模式下,用户可以输入各种命令来控制编辑器的行为,如移动光标、删除文本、复制文本等。
    • 用户可以通过按Esc键从其他模式返回到命令模式。
    • 常用命令包括:h(左移光标)、j(下移光标)、k(上移光标)、l(右移光标)、dd(删除当前行)、yy(复制当前行)等。
  2. 插入模式(Insert Mode)

    • 在插入模式下,用户可以输入文本到文件中。这是进行实际编辑工作的模式。
    • 用户可以通过在命令模式下按i(在当前光标位置前插入文本)、a(在当前光标位置后插入文本)、o(在当前行的下一行插入新行并开始编辑)等键进入插入模式。
    • 要退出插入模式并返回到命令模式,用户可以按Esc键。
  3. 底行模式(Last Line Mode,也称为底线命令模式)

    • 底行模式允许用户执行一些高级命令,如保存文件、退出编辑器、设置编辑环境等。
    • 用户可以通过在命令模式下按:(冒号)键进入底行模式。
    • 常用命令包括::w(保存文件)、:q(退出编辑器)、:wq(保存文件并退出编辑器)、:set nu(显示行号)等。

此外,值得注意的是,虽然有时为了简化,用户可能会将底行模式视为命令模式的一部分,但严格来说,它们是VI编辑器中两个独立且功能不同的模式。

总的来说,VI编辑器的这三种状态为用户提供了灵活而强大的文本编辑功能。通过熟练掌握这些模式及其之间的切换,用户可以高效地进行文本编辑工作。

5.vi 如何删除内容 

在VI编辑器中删除内容是一个常见的操作,可以通过一系列命令来实现。以下是在VI编辑器中删除内容的一些常用方法:

一、删除单个字符

  • x命令:在命令模式下,将光标定位到要删除的字符上,然后按下x键即可删除该字符。

二、删除单个单词

  • dw命令:在命令模式下,将光标定位到要删除的单词上,然后按下dw键即可删除该单词。如果光标在单词中间,它会从光标位置删除到单词的末尾。

三、删除整行

  • dd命令:在命令模式下,将光标定位到要删除的行首,然后按下dd键即可删除整行。被删除的行可以被粘贴到其他地方。

四、删除多行

  • ndd命令:在命令模式下,将光标定位到要删除的起始行上,然后按下ndd键,其中n为要删除的行数。例如,要删除3行,则按下3dd键。

五、删除到行尾

  • D命令:在命令模式下,将光标定位到要删除的位置上,按下D键即可删除光标位置到行尾的内容。注意,D是大写字母。

六、删除到行首

  • d0命令:在命令模式下,将光标定位到要删除的位置上,按下d0键即可删除光标位置到行首的内容。注意,0是数字零。

七、删除多个字符

  • nx命令:在命令模式下,按下nx键即可删除从当前位置开始的n个字符。例如,要删除5个字符,则按下5x键。

八、删除指定范围内的字符

  • 进入可视模式:在命令模式下,按下v键进入可视模式,然后使用上下左右箭头键选中要删除的字符范围。
  • 执行删除操作:在选中要删除的字符范围后,按下d键即可删除选中的字符。

九、删除选中文本

  • 进入可视模式:同样地,可以通过v键进入可视模式,然后使用移动命令选择要删除的文本块。
  • 执行删除操作:在选中要删除的文本块后,按下d键即可删除该文本块。

十、撤销删除操作

  • u命令:如果不小心删除了不该删除的内容,可以使用u命令来撤销上一次的删除操作。在命令模式下按下u键即可。

需要注意的是,以上所有删除操作都是在命令模式下进行的。在进入VI编辑器后,默认处于命令模式。如果当前不在命令模式,可以通过按下Esc键来返回到命令模式。

此外,VI编辑器还提供了其他更高级的删除命令和选项,用户可以根据具体需求进行学习和掌握。在进行删除操作时,请务必小心谨慎,以免误删重要内容。建议在执行删除操作之前先备份文件,以确保数据安全。

6.vi 插入剪切板的内容 

在VI编辑器中插入剪切板的内容可以通过以下几种方式实现:

一、使用系统剪切板

如果你的VI编辑器(如Vim)支持系统剪切板,你可以直接在插入模式下粘贴剪切板中的内容。

  • 进入插入模式:在VI编辑器中,按i键进入插入模式。
  • 粘贴剪切板内容:在插入模式下,你可以使用系统默认的粘贴快捷键来粘贴剪切板中的内容。在大多数Linux系统中,你可以按Shift+Insert键来粘贴剪切板中的内容。

二、使用VI编辑器的寄存器功能

VI编辑器提供了寄存器功能,你可以将文本复制到寄存器中,然后在需要的地方粘贴。

  • 复制文本到寄存器:在命令模式下,你可以使用yy命令复制整行文本,或者使用yw命令复制当前单词。这些命令默认将文本复制到无名寄存器("")中。
  • 进入插入模式:按i键进入插入模式。
  • 粘贴寄存器内容:在插入模式下,你可以按Ctrl+R键,然后按"(双引号)键,最后按寄存器名称(如果不指定,则默认为无名寄存器"")来粘贴寄存器中的内容。例如,要粘贴无名寄存器中的内容,你可以按Ctrl+R,然后按"键两次。

三、使用命令行模式粘贴

在VI编辑器的命令行模式下,你也可以粘贴剪切板中的内容。

  • 进入命令行模式:在命令模式下,按:键进入命令行模式。
  • 粘贴剪切板内容:在命令行模式下,你可以使用系统默认的粘贴快捷键来粘贴剪切板中的内容。在大多数Linux系统中,你可以按Shift+Insert键来粘贴剪切板中的内容。

注意事项

  • 确保你的VI编辑器(如Vim)支持系统剪切板功能。如果不支持,你可能需要通过配置文件(如.vimrc)来启用该功能。
  • 在使用VI编辑器的寄存器功能时,要注意寄存器名称是区分大小写的。
  • 在使用系统剪切板时,要注意不同操作系统和桌面环境可能有不同的默认粘贴快捷键。

总的来说,将剪切板的内容插入到VI编辑器中是一个相对简单的操作,但具体方法可能因VI编辑器的版本和配置而异。如果遇到问题,建议查阅VI编辑器的官方文档或寻求社区的帮助。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值