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/761625.shtml

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

相关文章

CSS隐藏video标签中各种控件

1.edio标签加上controls会出现视频控件&#xff0c;如播放按钮、进度条、全屏、观看的当前时间、剩余时间、音量按钮、音量的控制条等等 <video type"video/mp4" src"" autoplay"" style"width: 400px; height: 300px;" id"e…

idea 2023 spring initializr 没有JDK1.8选项的解决方法

在升级最新版本的IDEA后,新建项目里面的 spring initializr的选项里面已经没有了JDK1.8的选项了,原因是spring官方的initializr https://start.spring.io/ 现在主推3.x版本这个最低要求是JDK17, 解决方法: 将IDEA默认的 Initializr的URL https://start.spring.io/换成第三方…

3/21 work

自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面。&#xff08;不要使用课堂上的图片和代码&#xff0c;自己发挥&#xff0c;有利于后面项目的完成&#xff09; 要求&#xff1a; 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关设置&#xff0c;通…

记一次 .NET某游戏后端API服务 CPU爆高分析

一&#xff1a;背景 1. 讲故事 前几天有位朋友找到我&#xff0c;说他们的API服务程序跑着跑着CPU满了降不下去&#xff0c;让我帮忙看下怎么回事&#xff0c;现在貌似民间只有我一个人专注dump分析&#xff0c;还是申明一下我dump分析是免费的&#xff0c;如果想学习.NET高级…

JSP基础进阶(案例代码)

JDBC技术 通过JDBC连接MySQL数据库 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8" import "java.sql.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&quo…

Scikit-Learn逻辑回归(二)

Scikit-Learn逻辑回归二&#xff1a;多项式与正则化 1、多项式回归回顾1.1、逻辑回归为什么要使用多项式1.2、多项式回归及原理 2、逻辑回归与多项式 1、多项式回归回顾 本文接上篇&#xff1a;Scikit-Learn逻辑回归(一) 上篇中&#xff0c;我们详细介绍了逻辑回归的概念、原理…

计算机网络2 TCP/IP协议

目录 1 前言2 传输层2.1 端口号2.2 UDP2.3 TCP 3 网络层3.1 IP 4 数据链路层4.1 以太网4.2 ARP 5 DNS6 NAT 1 前言 2 传输层 2.1 端口号 端口号又分为&#xff1a; 知名端口&#xff1a;知名程序在启动之后占用的端口号&#xff0c;0-1023。 HTTP, FTP, SSH等这些广为使用的…

Netty(2)-编写简单的Netty应用程序

本篇将讲述如何书写简单的Netty服务端和客户端。 1. 编写服务端 所有的Netty服务器都需要以下两部分&#xff1a; 至少一个ChannelHandler&#xff0c;该组件实现了服务器对从客户端接收的数据的处理&#xff0c;即它的业务逻辑。引导&#xff0c;配置服务器的启动代码。至少…

【CKA模拟题】查找集群中使用内存最高的node节点

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesFind the Node that consumes the most MEMORY in all cluster(currently we have single cluster). Then, store the result in the …

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

作者&#xff1a;周静、吴宇奇、泮圣伟 在应用开发测试验证通过后、进行生产发布前&#xff0c;为了降低新版本发布带来的风险&#xff0c;期望能够先部署到灰度环境&#xff0c;用小部分业务流量进行全链路灰度验证&#xff0c;验证通过后再全量发布生产。本文主要介绍如何通…

springboot网站开发如何配置log4j日志插件

springboot网站开发如何配置log4j日志插件&#xff01;为了便于服务器等环境下的错误情况的排查根源&#xff0c;还是很有必要使用日志插件的&#xff0c;它可以记录下我们提前埋下的锚点信息。 在遇到故障&#xff0c;查看这些锚点记录的日志信息&#xff0c;可以快速高效的解…

低压MOS在无人机上的应用-REASUNOS瑞森半导体

一、前言 无人机的结构由机身、动力系统、飞行控制系统、链路系统、任务载荷等几个方面组成的。 无人机动力系统中的电机&#xff0c;俗称“马达”&#xff0c;是无人机的动力来源&#xff0c;无人机通过改变电机的转速来改变无人机的飞行状态。即改变每个电机的速度&#xf…

【Django开发】前后端分离美多商城项目第3篇:用户部分,1. 后端接口设计:【附代码文档】

美多商城项目4.0文档完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;美多商城&#xff0c;项目准备1.B2B--企业对企业,2.C2C--个人对个人,3.B2C--企业对个人,4.C2B--个人对企业。项目准备&#xff0c;配置1. 修改settings/dev.py 文件中的路径信息,2. INS…

数据结构--二叉树(超详细)

目录 1. 树概念及结构 1.1树概念 1.2树的表示 2. 二叉树概念及结构 2.1概念 2.2数据结构中的二叉树 2.3特殊的二叉树 2.4二叉树的存储结构 2.4.1顺序存储 2.4.2链式存储 2.5二叉树的性质 3. 二叉树顺序结构及概念 3.1二叉树的顺序结构 3.2堆的概念及结构 3.3堆的…

uinapp开发-PHP语言-后端安装说明-适用于圈子-陪玩-交友-校园-团购-外卖-分销等多系统-APP小程序H5多端皆有!

后端安装说明 全新安装客户&#xff0c;按此安装调试步骤&#xff0c;请按顺序&#xff1a; ** 后台安装步骤及说明 ** 1、在服务器里安装宝塔。下载www.bt.cn。 宝塔安装完毕后&#xff0c;安装环境&#xff0c;Nginx或者Apache 请选择PHP7.3 数据库mysql5.6。 NGINX 1.22.1轻…

matlab ICP配准高阶用法——统计每次迭代的配准误差并可视化

目录 一、概述二、代码实现三、结果展示1、原始点云2、配准结果3、配准误差本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 在进行论文写作时,需要做对比实验,来分析改进算法的性能,期间用到了迭代误差分布统…

前端框架推荐 Arco Design

Arco Design - 企业级产品的完整设计和开发解决方案 预览地址&#xff1a;Arco Design Pro - 开箱即用的中台前端/设计解决方案 一 开发 有vue3、React版本。 文档地址&#xff1a;Arco Design - 企业级产品的完整设计和开发解决方案 还配有对应脚手架&#xff1a;GitHub -…

【网络安全】CobaltStrike 使用

本文章仅用于信息安全学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若读者因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与作者无关。 Cobalt Strike是一款渗透测试神器&#xff0c;Cobalt Strike已经不再使用MSF而是作为单独的平台使…

ubuntu 22.04 安装驱动可能遇到的坑

1. 第一个坑 【gcc版本不匹配】 请确认你的gcc版本是不是12的&#xff0c;11是编译不通过的。 一般在最后编译时报错&#xff0c;在/var/log/nvidia-installer.log日志中可以看到以下字样 Warning: Compiler version check failed:The major and minor number of the compil…

Flink GateWay、HiveServer2 和 hive on spark

Flink SQL Gateway简介 从官网的资料可以知道Flink SQL Gateway是一个服务&#xff0c;这个服务支持多个客户端并发的从远程提交任务。Flink SQL Gateway使任务的提交、元数据的查询、在线数据分析变得更简单。 Flink SQL Gateway的架构如下图&#xff0c;它由插件化的Endpoi…