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
解决方法:
从您提供的错误信息来看,编译过程中遇到了几个问题:
-
交叉编译工具链未找到:
错误信息显示aarch64-none-linux-gnu-gcc: command not found,这意味着您的系统中没有安装用于 aarch64 架构的交叉编译工具链。您需要安装这个工具链才能正确编译面向 aarch64 架构的内核模块。 -
Makefile 配置问题:
您的 Makefile 可能没有正确配置,或者没有正确地指向内核源代码树和模块源代码目录。但是,从您提供的命令来看,您已经手动指定了这些路径,所以问题可能不在这里。 -
环境变量设置:
如果您的系统默认没有设置PATH环境变量来包含交叉编译工具链的路径,您可能需要在编译之前手动设置它。
为了解决这个问题,您可以尝试以下步骤:
-
安装交叉编译工具链:
对于 aarch64 架构,您可能需要安装aarch64-linux-gnu-gcc而不是aarch64-none-linux-gnu-gcc(除非您确实有一个名为aarch64-none-linux-gnu-gcc的特定工具链)。您可以使用包管理器来安装它,例如在 Ubuntu 上:sudo apt-get updatesudo apt-get install gcc-aarch64-linux-gnu或者,如果您正在使用一个特定的交叉编译工具链包,请确保按照该包的说明进行安装。
-
检查 Makefile:
确保您的 Makefile 中没有硬编码的路径或错误的变量设置。如果您是从其他地方复制的 Makefile,请确保它适用于您的环境和内核版本。 -
设置环境变量:
如果交叉编译工具链已安装但不在默认路径中,您可以将其路径添加到PATH环境变量中:export PATH=$PATH:/path/to/your/cross-compiler替换
/path/to/your/cross-compiler为实际的交叉编译工具链路径。 -
重新运行 make 命令:
在解决了上述问题后,重新运行make命令,确保使用正确的交叉编译工具链和参数。 -
检查内核源代码树:
确保您的内核源代码树是完整的,并且与您正在编译的模块版本兼容。
如果您遵循了上述步骤但仍然遇到问题,请检查是否有其他依赖项缺失或配置错误,并考虑在内核开发社区或相关论坛上寻求帮助。
2.linux 删除文件命令
在Linux中,删除文件的命令主要是rm(remove的缩写)。使用这个命令时,你需要指定想要删除的文件名或文件路径。以下是一些基本的用法:
-
删除单个文件:
rm 文件名例如,要删除名为
example.txt的文件,你可以使用:rm example.txt -
删除多个文件:
rm 文件名1 文件名2 ...例如,要同时删除
example1.txt和example2.txt,你可以使用:rm example1.txt example2.txt -
删除目录中的所有文件(但保留目录本身):
如果你想删除目录中的所有文件和子目录,可以使用rm命令与通配符*结合:rm 目录名/*例如,要删除
documents/目录中的所有内容,但保留documents/目录本身,你可以使用:rm documents/* -
递归删除目录及其内容(包括目录本身):
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编辑器的三种主要状态及其功能:
-
命令模式(Command Mode)
- 这是VI编辑器启动后的默认模式。在此模式下,用户可以输入各种命令来控制编辑器的行为,如移动光标、删除文本、复制文本等。
- 用户可以通过按
Esc键从其他模式返回到命令模式。 - 常用命令包括:
h(左移光标)、j(下移光标)、k(上移光标)、l(右移光标)、dd(删除当前行)、yy(复制当前行)等。
-
插入模式(Insert Mode)
- 在插入模式下,用户可以输入文本到文件中。这是进行实际编辑工作的模式。
- 用户可以通过在命令模式下按
i(在当前光标位置前插入文本)、a(在当前光标位置后插入文本)、o(在当前行的下一行插入新行并开始编辑)等键进入插入模式。 - 要退出插入模式并返回到命令模式,用户可以按
Esc键。
-
底行模式(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编辑器的官方文档或寻求社区的帮助。
1505

被折叠的 条评论
为什么被折叠?



