ZYNQ学习之Ubuntu环境下的Shell与APT下载工具

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

一、Ubuntu Shell操作

简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫做“敲命令”,国外人玩的 比较洋气,人家叫做“Shell”。因此以后看到 Shell 这个词语第一反应就是在终端中敲命令,将多个Shell命令按照一定的格式放到一个文本中,那么这个文本就叫做 Shell 脚本。

严格意义上来讲,Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell 负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。

1.1、Shell 基本操作

Shell命令格式:

command -options [argument]

  • command: Shell 命令名称。
  • options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。
  • argument:Shell 命令是可以带参数的,也可以不带参数运行。
Shell命令支持自动补全功能:
使用自动补全功能以后我们只需要输入命令的前面一部分字母,然后按下TAB键,如果只有一个命令匹配的话就会自动补全这个命令剩下的字母。如果有多个命令匹配的话系统就会发出报警声音,此时再按下一次 TAB 键就会列出所有匹配的命令,

1.2、常用 Shell 命令

1、目录信息查看命令 ls

文件浏览是最基本的操作,Shell 下文件浏览命令为 ls(L的小写),格式如下:

ls [选项] [路径]

ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录, 它的主要参数有:

  • -a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。
  • -l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
  • -t 将文件按照创建时间排序列出。
  • -A 和-a 一样,但是不列出“.”(当前目录)和“..”(父目录)。
  • -R 递归列出所有文件,包括子目录中的文件。

Shell 命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细 信息,包括以“.”开头的隐藏文件:

7f7f466455dd4c6cb14f142c559b1073.png

2、目录切换命令 cd

要想在 Shell 中切换到其它的目录,使用的命令是 cd,命令格式如下:

cd [路径]

路径就是我们要进入的目录路径,比如下面所示操作:

  • cd /                 //进入到根目录“/”下,Linux 系统的根目录为“/”
  • cd /usr           //进入到目录“/usr”里面
  • cd ..               //进入到上一级目录
  • cd ~               //切换到当前用户主目录

048bee9aa06e4146ae0089f097f5d5c0.png

3、当前路径显示命令 pwd

pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数,

命令格式如下:

pwd

使用如下图所示:

857623df4e444f6dbce20c1b63034d8e.png

4、系统信息查看命令 uname

要查看当前系统信息,可以使用命令 uname,命令格式如下:

uname [选项]

可选的选项参数如下:

  • -r     列出当前系统的具体内核版本号。
  • -s     列出系统内核名称。
  • -o     列出系统信息。

9d6e69e0d3a14840b55b7bd82f9893cd.png

5、清屏命令 clear

clear 命令用于清除终端上的所有内容,只留下一行提示符。

命令格式如下:

clear

使用如下图所示:

9138d79172df427394d1f136f2d12b75.png

5740100551c74f2d87bab9ec22a21d9a.png

6、切换用户执行身份命令 sudo

Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户 root,有时执行一些操作的时候是需要用 root 超级用户身份才能执行,比如安装软件。通过 sudo 命令可以使我们暂时将身份切换到 root 用户。

当使用 sudo 命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!

sudo命令格式如下:

sudo [选项] [命令]

选项主要参数如下:

  • -h          显示帮助信息
  • -l           列出当前用户可执行与不可执行的命令
  • -p          改变询问密码的提示符

28b6f35d63764c42b99dc837f4a0f2a4.png

直接使用“adduser test”命令添加用户的时候提示“adduser:只有 root 才能将用户或组添加到系统”。所以要在前面加上“sudo”命令,表示以这条命令以 root 超级用户的身份执行 adduser 操作。

7、添加用户命令 adduser

在讲解 sudo 命令的时候已经用过命令“adduser”,此命令需要 root 超级用户身份去运行。

命令格式如下:

adduser [参数] [用户名]

常用的参数如下:

  • -system                  添加一个系统用户
  • -home DIR             DIR 表示用户的主目录路径
  • -uid ID                    ID 表示用户的 uid。
  • -ingroup GRP        表示用户所属的组名。
8、删除用户命令 deluser

删除用户使用命令“deluser”, 命令参数如下:

deluser [参数] [用户名]

主要参数有:

  • -system 当用户是一个系统用户的时候才能删除
  • -remove-home 删除用户的主目录  
  • -remove-all-files 删除与用户有关的所有文件
  • -backup 备份用户信息

同样的命令“deluser”也要使用“sudo”来以 root 用户运行,以删除前面创建的用户test为例,deluser使用如下图所示:

d82340dc03a54a2585596136acb862fd.png

fd5004d2556946a0a252155237879942.png

9、切换用户命令 su

前面在讲解命令“sudo”的时候说过,“sudo”是以 root 用户身份执行一个命令,并没有更改当前的用户身份,所有需要 root 身份执行的命令都必须在前面加上“sudo”。

命令“su”可以直接将当前用户切换为 root 用户,切换到 root 用户以后就可以尽情地尽情任何操作了!因为你已经获得了系统最高权限,在 root 用户下,所有的命令都可以无障碍执行,不需要在前面加上“sudo”,

“su”命令格式如下:

su [选项] [用户名]

常用选项参数如下:

  • -c -command         执行指定的命令,执行完毕以后回复原用户身份。
  • -login                     改变用户身份,同时改变工作目录和 PATH 环境变量。
  • -m                          改变用户身份的时候不改变环境变量
  • -h                           显示帮助信息

以切换到 root 用户为例,使用如下图所示:

c08c33c501714b1c8506fd38e93ea4e5.png

sudo su切换到root用户,@前面的root表示当前为root超级用户,gbxluo-virtual-machine表示虚拟机名,“/home/gbxluo”表示当前路径,“#”表示当前是root超级用户。

10、显示文件内容命令 cat

Shell 下读取文件内容的方法是使用命令“cat”,命令格式如下:

cat [选项] [文件]

选项主要参数如下:

  • -n         由 1 开始对所有输出的行进行编号。
  • -b         和-n 类似,但是不对空白行编号。
  • -s         当遇到连续两个行以上空白行的话就合并为一个行空白行

97dd51dc752d43b68dcd935c0118554c.png

11、?显示和配置网络属性命令 ifconfig

ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP 地址等等,此命令格式如下:

ifconfig interface options | address

主要参数如下:

  • interface                 网络接口名称,比如 eth0 等。
  • up                           开启网络设备。
  • down                      关闭网络设备。
  • add                         IP 地址,设置网络 IP 地址。
  • netmask add         子网掩码。

命令 ifconfig 的使用如下图所示,暂时有问题:

2ef90f15269b4c99837d08b8cfccb225.png

12、系统帮助命令 man

通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等, “man”命令格式如下:

man [命令名]

比如我们要查看命令“su”的说明,输入“man su”即可,如下图所示:

bed1c44266ce4cee9cbad508645ca7b8.png

输入man su后,敲击Enter键进入如下界面:

c9f4a55de37642f3b23fb4505ea53ea9.png

press h for help:

3ce56b94f1f0449bb1cf627354bb177c.png

press q to quit!按q键返回上一层或退出到终端。

13、 系统重启命令 reboot

通过点击 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,或者使用 Shell 命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键即可。

命令格式如下:

reboot

使用如下图所示:

2088511356c94da689dd57b5df5fd30b.png

14、系统关闭命令 poweroff

使用命令“poweroff”就可以关闭系统,在终端中输 入命令“poweroff”然后按下回车键即可关闭 Ubuntu 系统。

命令格式如下:

poweroff

使用如下图所示:

941fef0fcdfe4027bc2ac29a14387f48.png

15、软件安装命令 install

Ubuntu 下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令“intsall”来安装。当然 Ubuntu 下也有其它的软件安装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式 Linux 开发。

命令“install”格式如下:

  •         install [选项]... [-T]  源文件       目标文件
  • 或: install [选项]...        源文件...    目录
  • 或: install [选项]... -t     目录           源文件...
  • 或: install [选项]... -d    目录...

“install”命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。

命令“install”通常和命令“apt-get”组合在一起使用的,关于“apt-get”命令下面会讲。

二、Ubuntu的APT下载工具

APT 下载工具是Ubuntu 下用的最多的下载工具。

APT 下载工具可以实现软件自动下载、配置、安装二进制或者源码的功能。APT 下载工具和install命令结合在一起构成了 Ubuntu 下最常用的下载和安装软件方法。它解决了 Linux 平台下安装软件的一个缺陷,即软件之间相互依赖。

选择APT 工具的安装源

APT 采用的C/S模式,也就是客户端/服务器模式,PC作为客户端,当需要下载软件的时候就向服务器请求,因此需要知道服务器的地址(服务器的地址也叫做安装源或者更新源【安装的源头或更新的源头,就是url超链接】)。

aea3411642f049e5b9862029d4c5a576.png

单击软件和更新后,弹出如下窗口:

55c5bafa74ee48e39cc31284bd8b65df.png

在上图中的“Ubuntu 软件”选项卡下面的“下载自”就是 APT 工具的安装源,因为人在中国,所以需要选择中国的服务器,否则的话可能会导致下载失败。

这个也就是网上说的Ubuntu安装成功以后要更新源。

在我们使用APT工具下载安装或者更新软件的时候,首先会在下载列表中与本机软件对比,看一下需要下载哪些软件,或者升级哪些软件,默认情况下APT会下载最新的软件包,被安装的软件包所依赖的其它软件也会被下载安装。

1、更新本地数据库

想查看本地哪些软件可以更新的话可以使用如下命令:

sudo apt-get update
这个命令会访问源地址,并且获取软件列表并保存在本电脑上,过程如下图所示:
6a1029786f064f46a62a4ca7fdce90b3.png

2、?检查依赖关系

如果想查看本地哪些软件可以更新的话可以使用如下命令:

sudo apt-get check

0c1adc1cd7c14664a43a274f36733f79.png

3、软件安装

安装软件,使用如下命令:

sudo apt-get install package-name

可以看出上述命令是由“apt-get”和“install”组合在一起的,“package-name”就是要安装的软件名字,“apt-get”负责下载软件,“install”负责安装软件。

比如要安装软件Ubuntu 下的串口工具“minicom”,就可以使用如下命令:

sudo apt-get install minicom

执行上述命令以后就会自动下载和安装 minicom 软件,如下图所示:

f82c0226bd584169832dad769e9ddbd3.png

上图就是安装 minicom 这个软件的过程,在安装的过程中,会有如下所示询问: 您希望继续执行吗?[Y/n] 如果希望继续执行的话就输入 y,如果不希望继续执行的话就输入 n。

安装完成以后我们 直接在终端输入如下命令打开 minicom 这个串口软件:

minicom -s

打开以后的 minicom 软件如下图所示:

3e810bc578d04db4b87f98aa0126eb99.png

退出 minicom可以直接按下 ESC 键。

minicom的使用可以上网搜索,待以后用着再说。

正点原子推荐使用apt替代 apt-get

查了一下原因主要如下:

apt 默认启用一些对用户实际使用有益的操作,比如:可以在 apt 安装或删除操作过程中显示进度条。在更新软件包列表的时候还可以提示你可以升级的包的数量。虽然使用 apt-get 也可以实现这些功能,但是 apt 默认开启这些特性。

虽然 apt 有些命令和 apt-get 类似,但是 apt 并没有向后兼容 apt-get。这意味着不可能使用 apt 完全替代 apt-get 命令。

7ecd82c066364934bb52127979e66bea.png

apt 也有一些自己的命令。

bcba87b2723e4bd7a9fa86b287e404fc.png

apt-get 已被弃用?

没有任何信息表明 apt-get 已被弃用,实际上也不应该,因为它还有比 apt 更多的功能。对于一些使用场景,如脚本操作,可能还要用 apt-get 命令。

应该使用 apt 还是 apt-get?

作为普通的 Linux 用户,优先使用 apt,它是 Linux 发行版推荐的命令。它提供了包管理必要的选项,更重要的是便于记忆。

  • apt 是 apt-get 和 apt-cache 的子集,为包管理提供必要的命令。
  • 虽然 apt-get 没有被弃用,但是作为普通 Linux 用户,推荐开始频繁的使用apt。

4、?软件更新

更新软件的话使用命令:

sudo apt-get upgrade package-name

其中 package-name 为要升级的软件名字,比如我们升级刚刚安装的 minicom 这个软件,如下图所示:

bb2c9db3925c405180f7d858ab0ea164.png

866a672f4ed54116a831d6e395ffe247.png

从上图可以看出,minicom 已经是最新的了,不用更新,不过有其它软件需要更新,因此会自动更新其它的软件。

这里是不是有问题?我只想更新minicom,它倒好,全给我更新了?

5、卸载软件

要卸载某个软件的话使用如下命令:

sudo apt-get remove package-name

其中 package-name 是要卸载的软件,比如卸载前面安装的 minicom 这个软件,操作如下图所示:

3a1e0290fba744369c3fa8140c919a3f.png

从上图中可以看出软件 minicom 被卸载掉了。

参考链接:

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

apt 和 apt-get 的区别 - 掘金

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

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

相关文章

如何本地搭建群晖虚拟机并实现无quickconnect服务环境远程访问

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

解密Google Cloud 全新 PaLM2及创新应用

&#x1f4f8;背景 因长期在大模型相关的部门工作&#xff0c;每天接收到很多和AI相关的信息&#xff0c;但小编意识到目前理解到的一些AI知识还有些片面。 恰逢稀土掘金开发者大会有谈到大模型相关的知识&#xff0c;于是借此机会&#xff0c;对大模型相关的一些知识再了解一…

【SpringCloud】探索Eureka注册中心

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 …

Protobuf基础使用

Protobuf是什么 在我们日常编写代码的过程中&#xff0c;经常会涉及到网络传输的部分。我们通常会在网络之间传递各种各样的请求&#xff0c;但是在我们日常架构之中&#xff0c;经常会涉及后端服务器之间的通信&#xff0c;通信过程中&#xff0c;可能传递的对象就是一个类。…

【vscode打开多文件夹】

1)将文件夹添加到工作空间中 2)文件夹方式展开 3)最终效果 小技巧&#xff1a; 文件夹的位置不对的话&#xff0c;可以拖动进行调整。

Linux--动静态库的原理和使用详解

本文介绍了Linux系统中动态库与静态库的概念、原理以及使用方法。通过深入讲解动态库与静态库的区别和优劣势&#xff0c;帮助读者更好地理解并选择合适的库类型来进行软件开发。 动态库和静态库的概念 动态库&#xff08;Dynamic Link Library&#xff0c;简称DLL&#xff09…

优化金融展厅设计,细节提升客户体验与实用效能

“很赚钱”大部分公众对金融行业的第一印象&#xff0c;这足以见得金融行业在社会经济发展中的重要性&#xff0c;而为了更好的宣传和科普金融相关信息&#xff0c;金融展厅的设计和建设成为了重要措施&#xff0c;它能够充分展示金融机构的实力、品牌形象和服务优势&#xff0…

Jmeter使用BeanShell保存数据到文件

1、目的 在使用jmeter压测时&#xff0c;业务上下连贯&#xff0c;需要对一些编号进行关联操作。这里使用‘JSON提取器’将值提取出来&#xff0c;后面请求可以直接使用。其它业务想要使用就只能把值保存到文件&#xff0c;再使用文件做参数化了。 2、JSON提取器 提取请求值 提…

网站监控工具必要的功能

什么是网站监控 网站监控是持续跟踪网站在互联网上的性能和可用性&#xff0c;以确保其正常运行并提供良好的用户体验的过程&#xff0c;在当今的数字时代&#xff0c;一个表现良好的网站对公司的声誉至关重要&#xff0c;打开速度慢的网站会对用户体验产生负面影响&#xff0…

leetcode 347.前K个高频元素

题目 思路 1.统计每个数出现的次数&#xff1a;可以用HashMap。key为num,value为这个数出现的次数。 2.怎样返回HashMap中value最大的前k个key呢&#xff1f; 这里用优先队列的方法&#xff08;本质是堆&#xff09; 我们要维护一个小根堆。我们在堆中存储&#xff08;key,…

APP信息收集思路总结(反代理,反虚拟机,反证书校验思路整理)

前言 本文是我在学习过程中的总结&#xff0c;希望可以被指导提议指正。 APP概况 app跟一个网站很像。 网站分为前端后端。 app就好像网站的前端一样&#xff0c;app不需要浏览器&#xff0c;而前端需要浏览器。 他们都需要服务器&#xff0c;也就是说&#xff0c;进行we…

实现登录拦截功能

1.4、实现登录拦截功能 温馨小贴士&#xff1a;tomcat的运行原理 当用户发起请求时&#xff0c;会访问我们像tomcat注册的端口&#xff0c;任何程序想要运行&#xff0c;都需要有一个线程对当前端口号进行监听&#xff0c;tomcat也不例外&#xff0c;当监听线程知道用户想要和…

#Linux(make工具和makefile文件以及makefile语法)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;make为编译辅助工具&#xff0c;解决用命令编译工程非常繁琐的问题 &#xff08;2&#xff09;在终端键入make即可调用make工具&#xff0…

huawei 华为 交换机 配置 LACP 模式的链路聚合示例 (交换机之间直连)

组网需求 如 图 3-22 所示&#xff0c; SwitchA 和 SwitchB 通过以太链路分别都连接 VLAN10 和 VLAN20 的网络&#xff0c;且SwitchA 和 SwitchB 之间有较大的数据流量。用户希望 SwitchA 和 SwitchB 之间能够提供较大的链路带宽来使相同VLAN 间互相通信。在两台 Switch 设备上…

攻防演练利器:六款蓝队开源防御工具特点剖析

实战化的攻防演习活动一般具有时间短、任务急等特点&#xff0c;作为防守方&#xff0c;蓝队需要在日常安全运维工作的基础上&#xff0c;从攻击者角度出发&#xff0c;了解攻击者的思路与打法&#xff0c;并结合本单位实际网络环境、运营管理情况&#xff0c;制定相应的技术防…

性能测试丨GreatSQL TPC-H 性能测试报告正式发布!

1、测试背景概述 本次测试针对GreatSQL开源数据库基于标准 TPC-H 场景的测试。 TPC-H&#xff08;商业智能计算测试&#xff09;是美国交易处理效能委员会&#xff08;TPC&#xff0c;TransactionProcessing Performance Council&#xff09;组织制定的用来模拟决策支持类应用…

抽取CLOB字段中XML的特定元素的VALUE值

在ORACLE数据库中&#xff0c;有时XML文件会被保存在CLOB字段中。 这时候&#xff0c;若是我们要获取此字段XML中特定元素的VALUE值&#xff0c;就需要用到xmltype 这个函数。 如下面的 XML文件&#xff0c;保存在 TABLE_A 的CLOB_K 字段&#xff0c;若是我们要获取其中的 Y…

C语言从入门到精通(第5版)-----读书笔记

第一章 C语言概述 1.1 C语言的发展史 1.1.1程序语言简述 1、机器语言 低级语言&#xff0c;又称二进制代码语言。一种使用0、1表示的二进制代码编写指令以执行计算机操作的语言。 特点&#xff1a;计算机可以直接识别&#xff0c;不需要进行任何翻译。 2、汇编语言 为了减…

RDMA内核态通信测试krping学习

krping模块是一个内核可加载模块&#xff0c;它实现了客户机/服务器ping/pong程序&#xff0c;这个模块仅仅为了测试内核rdma的API&#xff08;单边的READ和Write&#xff1b;双边的SEND和RECEIVE&#xff09;。该模块允许通过一个名为/proc/krping的/proc条目建立连接并运行pi…

ElasticSearch8 - 基本操作

前言 本文记录 ES 的一些基本操作&#xff0c;就是对官方文档的一些整理&#xff0c;按自己的习惯重新排版&#xff0c;凑合着看。官方的更详细&#xff0c;建议看官方的。 下文以 books 为索引名举例。 新增 添加单个文档 (没有索引会自动创建) POST books/_doc {"n…