ZYNQ学习之Ubuntu系统的简单设置与文本编辑

基本都是摘抄正点原子的文章:<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf,因初次学习,仅作学习摘录之用,有不懂之处后续会继续更新~

一、Ubuntu的简单操作

1.1 切换拼音输入法

Ubuntu 自带的拼音输入法,有两种方式切换,一 种是使用快捷键:Windows+空格键,一种是使用鼠标点击设置输入法。

1.2 打开Ubuntu终端

桌面右键》打开终端即可:

打开终端后如下图:

二、Ubuntu 下文本编辑

Gedit 编辑器与VI/VIM 编辑器

2.1 Gedit 编辑器

Gedit是Ubuntu自带的、窗口式的文本编辑器 。找到一个文本文件,双击打开,默认使用的就是 Gedit。

对Gedit的操作与Windows下的记事本相似。

2.2 VI/VIM 编辑器

在终端模式下进行文本编辑或者修改文件可以使用 VI/VIM编辑器,Ubuntu自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进行开发的人来说不方便,比如竟然不能使用键盘上的上下左右键调整光标位置。因此推荐使用 VIM 编辑器,VIM 编辑器是VI编辑器升级版本,VI/VIM 编辑器都是一种基于指令式的编辑器,不需要鼠标,也没有菜单,仅仅使用键盘来完成所有的编辑工作。

2.2.1 安装 VIM 编辑器

命令如下:

sudo apt-get install vim

注意:安装过程中报错如下:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

中文意思是:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

E: 无法获取dpkg前端锁(/var/lib/dpkg/lock-frontend),是否有其他进程正在使用它?

分析原因:

这个错误表明Ubuntu系统在尝试使用APT(高级包装工具)时无法获取一个锁文件。

锁文件用于防止多个进程同时修改系统软件包数据库,以防止数据库损坏。错误信息中的“资源暂时不可用”通常意味着文件系统正忙于处理其他进程的I/O操作,或者有其他用户正在使用APT。

解决方法:

查看哪些进程在并关闭这些进程

ps aux | grep -i apt

备注:最后我等待了一会,可以安装了,就没有使用上述强制关闭使用apt的进程这一方法。

2.2.2 VIM编辑器打开文档

安装完成以后就可以使用 VIM 编辑器了,VIM 编辑器有 3 中工作模式:输入模式指令模式底行模式,通过切换不同的模式可以完成不同的功能,以编辑一个文本文档为例讲解 VIM 编辑器的使用。打开终端,输入命令:

vim test.txt

新建一个test.txt文本文件并在终端中打开。

备注:如果路径下已经有test.txt文档,则会直接打开该文档。

如下图所示:

2.2.3 输入模式进行编辑

VIM默认是以只读模式打开的文档,因此要切换到输入模式,切换到输入模式的命令如下:

i 在当前光标所在字符的前面,转为输入模式。

I 在当前光标所在行的行首转换为输入模式。

a 在当前光标所在字符的后面,转为输入模式。

A 在光标所在行的行尾,转换为输入模式。

o 在当前光标所在行的下方,新建一行,并转为输入模式。

O 在当前光标所在行的上方,新建一行,并转为输入模式。

s 删除光标所在字符。 r 替换光标处字符。

最常用的就是“a”,在上图界面按下键盘上的“a”键,这时候终端左下角会提示“插入”字样,表示进入到了输入模式,并可以正常进行文字编辑,如下图:

2.2.4 进入指令模式

编辑完文字后,按下键盘的 ESC 键,VIM 的从输入模式切换到指令模式,终端左下角的“插入”字样就会消失,此时就不能在输入任何文本了,如果想再次输入文本的话就按下“a”键重新进入到输入模式。指令模式顾名思义就是输入指令的模式,这些指令是控制文本的指令,将这些指令进行分类,如下所示:

1、移动光标指令:

h(或左方向键)        光标左移一个字符。

l(或右方向键)         光标右移一个字符。

j(或下方向键)         光标下移一行。

k(或上方向键)        光标上移一行。 nG 光标移动到第 n 行首。

n+                          光标下移 n 行。

n-                           光标上移 n 行。

2、屏幕翻滚指令

Ctrl+f          屏幕向下翻一页,相当于下一页。

Ctrl+b         屏幕向上翻一页,相当于上一页。

3、复制、删除和粘贴指令

cc                 删除整行,并且修改整行内容

dd                 删除改行,不提供修改功能。

ndd               删除当前行向下 n 行。

x                   删除光标所在的字符。

X                  删除光标前面的一个字符。

nyy               复制当前行及其下面 n 行。

p                   粘贴最近复制的内容。

上面就是 VI/VIM的命令模式下最常用的一些命令,还有一些不常用的没有列出来,感兴趣的话可以自行上网查阅。

2.2.5 进入底行模式进行文档保存

从上面的命令可以看出,并没有保存文本的命令,那是因为保存文档的命令是在底行模式中,我们要先进入到指令模式,进入底行模式的方式是先进入指令模式下,然后在指令模式下输入“:”进入底行模式,如下图所示:

在上图中当进入底行模式以后会在终端的左下角就会出现符号“:”,可以在“:” 后面输入命令,常用的命令如下:

x         保存当前文档并且退出。

q         退出。

w         保存文档。

q!         退出 VI/VIM,不保存文档

要退出并保存文本的话需要在“:”底行模式下输入“wq”或者x,如下图所示:

注意:VIM 不可以使用 Ctrl+S 来保存!

        在 Ubuntu 下:Ctrl+S暂停该终端,Ctrl+Q 来重新打开终端

在 Ubuntu 下 Ctrl+S 快捷键不是用来完成保存的功能的,而是暂停该终端,此时终端不会再有任何反应,如果按下 Ctrl+S 关闭了当前终端的话可以按下 Ctrl+Q 来重新打开终端。

使用命令“cat”来查看刚刚新建的 test.txt 文档的内容,如下图所示:

2.2.6 在底行模式中查找字符

在上面讲解进入 VIM 的底行模式的时候使用了在指令模式下输入“:”的方法,还可以在指令模式下输入“/”进入底行模式,输入“/”以后如下图所示。

注意:这里没有冒号了!,直接在指令模式下输入"/"进入底行模式。

在“/”底行模式下我们可以在文本中搜索指定的内容,比如搜索 test.txt 文件中“输入”三个字,使用方法如下图所示:

在“/”后面输入要搜索的内容,然后按下Enter回车键就会在 test.txt 中找到与字符串“嵌入式”匹配的部分。

针对文档中有多个字符匹配的情况:

按Enter回车键后,按下小写n可向下查找该匹配字符

按Enter回车键后,按下大写N(或shift+n键)可向上查找该匹配字符

2.2.7 设置 TAB 键为 4 字节

VI 编辑器默认 TAB 键为 8 空格,我们改成 4 空格,用 vi 打开文件/etc/vim/vimrc,在此文件最后面输入如下代码:

set ts=4

修改完成以后保存并关闭文件。

2.2.8 VIM 编辑器显示行号

VIM 编辑器默认是不显示行号的,不显示行号不利于代码查看,设置 VIM 编辑器显示行号的方法是通过在文件/etc/vim/vimrc 中加入下面一行代码即可:

set nu

参考链接:

ZYNQ领航者V2开发板 — 正点原子资料下载中心 1.0.0 文档

解决apt-get /var/lib/dpkg/lock-frontend 问题 - 知乎

How to Fix 'E: Could not get lock /var/lib/dpkg/lock' Error in Ubuntu Linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言程序编译与链接(拓宽视野的不二之选)

文章目录 翻译环境和运行环境翻译环境预处理编译汇编链接 运行环境 翻译环境和运行环境 1&#xff0c;在ANSI C的任何⼀种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执⾏的机器指 令&#xff08;⼆进制指令&#…

WEB DDOS的安全策略

近年来网络攻击的数量和频率急剧上升&#xff0c;针对Web应用程序的DDoS海啸攻击就是其中增长非常迅速的一个种类。过去常见的HTTP/S洪水攻击正在大范围的转变为更难对付的Web DDoS海啸攻击&#xff0c;网络安全空间攻防对抗越演越烈&#xff0c;企业用户面临更加严峻的网络安全…

Vue 3中ref和reactive的区别

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

1.简单使用SmartTable

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;Android Studio 在android上进行统计数据、列表、表格数据等信息展示是常有的需求。 在Github上有一个优秀的控件&#xff1a;smartTable 1.功能介绍 快速配置自动生成表格&#xff1b;自动计算表格宽高&#xff1b;表…

低功耗、低成本 NAS 的可能性

使用现状&#xff1a;多台工作电脑&#xff0c;家里人手一台&#xff0c;还在两个住处 有好几台工作电脑&#xff0c;不同电脑有不同的用途&#xff0c;最大的问题就是各个电脑上文件的同步问题&#xff0c;这里当然就需要局域网里的公共文件夹&#xff0c;在NAS的问题上查了网…

【Canvas与艺术】模拟八一电影制片厂电影片头效果

【缘起】 八一厂每部电影前都有其专有开头&#xff0c;如&#xff1a;https://www.ixigua.com/6799821997258834440?logTag2eacce76401e13f9efe7 这个片头可以用canvas模拟下来。 【关键点】 线型放射状粒子系统的运作。 立体感五角星的绘制。 【图例】 【代码】 <!D…

单页面应用部署到iis上可以正常打开,刷新就404

当您遇到Dumi打包的网站部署到IIS上可以正常打开首页,但刷新页面时出现404错误的情况,这通常与以下几个方面有关: 路由处理: Dumi生成的项目通常基于SPA(Single Page Application)架构,使用前端路由来实现无刷新导航。这意味着大部分页面切换是在浏览器层面完成的,而不…

unity学习(73)——服务器异常--无法处理 123类型的数据包

服务器发送回的数据包&#xff0c;客户端根本读不出来&#xff0c;type都读不出来&#xff0c;拖了三天&#xff0c;把客户端翻了个底朝天&#xff0c;发现客户端一点问题都没有&#xff01; 所有的问题不是unity的模型问题&#xff0c;就是socket网络通信中断&#xff01; 1…

C++ 控制语句(一)

一 顺序结构 程序的基本结构有三种&#xff1a; 顺序结构、分支结构、循环结构 大量的实际问题需要通过各种控制流程来解决。 1.1 顺序结构 1.2 简单语句和复合语句 二 循环 2.1 for循环 语句流程图 注意&#xff1a;使用for语句的灵活性 三 while语句 四 do while语句

【项目技术介绍篇】如何在本地运行若依项目

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

程序员也写歌啦

我的第一首AI原创歌曲《旅途的歌声》 身为 AI 重度患者的我&#xff0c;时刻关注着每天发布的各种 AI 产品。面对这些雨后春笋般的 AI 产品&#xff0c;我也早就没那么敏感了。 但是今天尝试着用 AI 生成了一个音乐&#xff0c;真的震惊到了我&#xff01; 不到一分钟&#…

网络瞎复习

七层 应用进程 粘包问题以及如何理解是 TCP 面向字节流协议&#xff1f; 之所以会说 TCP 是面向字节流的协议&#xff0c;UDP 是面向报文的协议&#xff0c;是因为操作系统对 TCP 和 UDP 协议的发送方的机制不同&#xff0c;也就是问题原因在发送方。 先来说说为什么 UDP 是面…

【LaTeX】7实现章节跳转

使用 LaTeX 实现章节跳转 写在最前面1. 引入 hyperref 包2. 标记章节3. 引用章节示例代码注意 小技巧总结 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;…

C语言例4-15:从键盘输入一个整数,求其绝对值并输出。

代码如下&#xff1a; //从键盘输入一个整数&#xff0c;求其绝对值并输出。 #include<stdio.h> int main(void) {int n;printf("输出一个整数&#xff1a; \n");scanf("%d",&n); //从键盘输入一个整数保存至变量nif(n<0) //…

使用LangChain LCEL生成RAG应用、使用LangChain TruLens对抗RAG幻觉

# 导入LangChain的库 from langchain import *# 加载数据源 loader WebBaseLoader() doc loader.load("https://xxx.html")# 分割文档对象 splitter RecursiveCharacterTextSplitter(max_length512) docs splitter.split(doc)# 转换文档对象为嵌入&#xff0c;并…

程序员35岁的职业困惑及应对之道

35岁,对许多程序员来说,是一个职业生涯的重要分水岭。在这个年龄,一些人开始感到迷茫和焦虑,担心自己的技能已经落后,难以跟上日新月异的技术变革。而另一些人则充满信心,认为多年来积累的丰富经验和扎实的技术功底,将助力他们在未来的职业道路上取得新的飞跃。 无疑,在AI、自…

一款比 K8S 更好用的编排工具——Nomod 单机部署

上下文 最近公司需要调研类似 EMCHub 这样支持算力共享的服务。第一直觉是使用 K8S 或 K3S&#xff0c;作为 CNCF 孵化的顶级项目&#xff0c;同时也是当前云原生生态使用最广的编排系统。但是在学习 EMC Hub 源码过程中&#xff0c;偶然发现它是基于 Nomad 做的集群管理。 相…

鸿蒙HarmonyOS应用开发之使用NAPI接口在主线程中进行模块加载

场景介绍 Node-API中的napi_load_module接口的功能是在主线程中进行模块的加载&#xff0c;当模块加载出来之后&#xff0c;可以使用函数napi_get_property获取模块导出的变量&#xff0c;也可以使用napi_get_named_property获取模块导出的函数&#xff0c;目前支持以下场景&a…

vue3从精通到入门2:虚拟DOM的生成与真实DOM的转化

虚拟 DOM 实现是 Vue 框架的核心部分之一&#xff0c;它负责在真实 DOM 之上抽象出一个轻量级的、可复用的 JavaScript 对象树&#xff0c;用于高效地更新视图。 什么是虚拟DOM? 虚拟 DOM 是一个编程概念&#xff0c;它将真实的 DOM 树抽象为一个轻量级的 JavaScript 对象树…

2024年学鸿蒙开发有“钱”途吗?

随着科技的不断发展和智能设备的普及&#xff0c;鸿蒙系统作为华为自主研发的操作系统&#xff0c;正逐渐受到市场的关注。2024年&#xff0c;学鸿蒙开发是否有前途&#xff0c;成为了很多开发者关心的问题。本文将从多个角度分析鸿蒙系统的发展前景&#xff0c;以及学习鸿蒙开…