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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ADAS多传感器后融合算法解析-下篇

ADAS多传感器后融合算法解析-下篇 在ADAS多传感器后融合(上)中我们介绍了后融合的接口、策略。本文将主要介绍后融合的实现流程、难点及注意事项。 附赠自动驾驶学习资料和量产经验&#xff1a;链接 二、后融合处理流程 如下图为基本RC后融合系统流程图&#xff0c;接下来将…

day 36 贪心算法 part05● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

一遍过。首先把区间按左端点排序&#xff0c;然后右端点有两种情况。 假设是a区间&#xff0c;b区间。。。这样排列的顺序&#xff0c;那么 假设a[1]>b[0],如果a[1]>b[1]&#xff0c;就应该以b[1]为准&#xff0c;否则以a[1]为准。 class Solution { public:static bo…

argocd部署

一、前言 ArgoCD 是一个开源的、持续交付工具&#xff0c;用于自动化部署应用程序到 Kubernetes 集群。它基于 GitOps 理念&#xff0c;通过使用 Git 作为单一的源头来管理应用程序的配置和部署状态&#xff0c;argocd会定时监控git仓库中的yaml配置文件&#xff0c;当git仓库中…

验证码/数组元素的复制.java

1&#xff0c;验证码 题目&#xff1a;定义方法实现随机产生一个5位的验证码&#xff0c;前面四位是大写或小写的英文字母&#xff0c;最后一位是数字 分析&#xff1a;定义一个包含所有大小写字母的数组&#xff0c;然后对数组随机抽取4个索引&#xff0c;将索引对应的字符拼…

JSON Web Token 入门教程

JSON Web Token&#xff08;JWT&#xff09;是一种可以在多方之间安全共享数据的开放标准&#xff0c;JWT 数据经过编码和数字签名生成&#xff0c;可以确保其真实性&#xff0c;也因此 JWT 通常用于身份认证。这篇文章会介绍什么是 JWT&#xff0c;JWT 的应用场景以及组成结构…

46秒AI生成真人视频爆火,遭在线打假「换口型、声音」

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 发布在https://it.weoknow.com 更多资源欢迎关注 是炒作还是真正的 AI 视频能力进化&#xff1f; AI 生成视频已经发展到这个程…

rabbitmq集群问题排查

blowcode-test-redis04、blowcode-test-redis05、blowcode-test-redis06 这3个节点搭建的rabbitmq集群&#xff0c;04是主节点。 某次分别观察3个节点的管理页面&#xff0c;先都只能看到自己的节点是正常的绿色状态&#xff0c;猜测节点都各自为政了。 下图是05节点成功加入0…

iOS_convert point or rect 坐标和布局转换+判断

文章目录 1. 坐标转换2. 布局转换3. 包含、相交 如&#xff1a;有3个色块 let view1 UIView(frame: CGRect(x: 100.0, y: 100.0, width: 300.0, height: 300.0)) view1.backgroundColor UIColor.cyan self.view.addSubview(view1)let view2 UIView(frame: CGRect(x: 50.0, …

Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 解释&#xff1a;请求的数据既不在Redis中也不在数据库中&#xff0c;这时我们创建一个黑名单来存储该数据&#xff0c;下次再有类似的请求进来…

TikTok养号保姆式操作攻略

TikTok养号的重要性不必多少&#xff0c;不仅可以在创号初期保障账号安全&#xff0c;后期的账号流量也需要以前期养好账号为前提。下面就给大家分享如何养号的真实操作攻略&#xff01; 一、为什么要养号 &#xff08;1&#xff09;提高系统推荐精准度 系统不了解新账户人设…

AtCoder Beginner Contest 337 A - E

A - Scoreboard 大意 高桥队和青木队进行了场比赛&#xff0c;给出每场比赛中高桥队和青木队的积分&#xff0c;问最后谁总分更高或平局。 思路 统计总分比较即可。 代码 #include<iostream> using namespace std; int main(){int n, a0, b0;cin >> n;while(…

报错:ValueError: assignment destination is read-only 的解决方案

运行出现报错&#xff1a; ValueError: assignment destination is read-only 解决方案&#xff1a; 加一个.copy() data open_file(r"G:/21.tif").transpose(2,0,1)data data.copy()

Linux下的多线程编程:原理、工具及应用(5)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Flower of Life—陽花 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶️ ☰ …

python--切片

1.切片&#xff1a; 切片是编程语言为有序序列&#xff08;sequence&#xff09;准备的&#xff0c;用来切割或者截取某个片段 一个完整的切片是包含三个参数和两个冒号" : " ,用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时&#xff0c;默认第…

java设计模式之适配器模式

适配器模式概述 众所周知,我们国家的生活用电的电压是220V,而笔记本电脑、手机等电子设备的工作电压没有这么高,为了使笔记本、手机等设备可以使用220V的生活用电,就需要使用电源适配器(ACAdapter),也就是人们常说的充电器或变压器,有了这个电源适配器,原本不能直接工作…

2024室内设计和建筑必须知道的十大3D渲染趋势!

2023年对建筑圈是非常不平凡的一年&#xff0c;高清视频渲染、元宇宙全覆盖、AI模型大爆发.....不断发展的 3D 数字技术世界正迅速重塑建筑设计行业。 2024年&#xff0c;室内设计和建筑设计领域在3D渲染方面又将迎来怎样的变革&#xff1f;以下十大3D渲染趋势&#xff0c;你不…

代码随想录——搜索插入位置(Leetcode35)

题目链接 class Solution {public int searchInsert(int[] nums, int target) {int len nums.length;int left 0;int right len - 1;int index -1;while(left < len / 2){if(nums[left] target || target < nums[left]){index left;break;}else{left;}if(nums[ri…

详解 WebWorker 的概念、使用场景、示例

前言 提到 WebWorker&#xff0c;可能有些小伙伴比较陌生&#xff0c;不知道是做什么的&#xff0c;甚至不知道使用场景&#xff0c;今天这篇文章就带大家一起简单了解一下什么是 webworker&#xff01; 概念 WebWorker 实际上是运行在浏览器后台的一个单独的线程&#xff0…

opengl草稿复习,承上启下

目录 1、链接文件夹中的cpp 2、链接资源到输出目录 3、多编译目标 4、cmakelist添加库 4、添加glfw和glad 5、glfw运行 6、NDC、VBO、VAO 7、渐变三角形 8、渲染两个三角形 9、渲染两个三角形&#xff0c;同时基于原来颜色进行渐变 1、链接文件夹中的cpp cmake_minimu…

跨站脚本攻击

跨站脚本攻击又称XSS攻击&#xff0c;是代码注入攻击的一种。利用XSS漏洞&#xff0c;攻击者可以窃取Cookies或劫持会话&#xff0c;或注入恶意 HTML 或 JavaScript 代码到页面中&#xff0c;又或者将当前页面重定向至一个攻击者搭建的恶意网站。XSS漏洞的产生多是因为网站开发…