
Linux基础
文章平均质量分 76
芯动大师
InfoQ签约作者,阿里云专家博主,51CTO专家博主,华为云云享专家,嵌入式开发工程师,AE工程师。
座右铭:向着太阳,追逐梦想!
展开
-
一款自研Python解释器
PikaScript是一个完全重写的超轻量级python引擎,具有完整的解释器,字节码和虚拟机架构,可以在少于4KB的RAM下运行,用于小资源嵌入式系统。相比同类产品,如MicroPython,LuaOS等,资源占用减少85%以上。入选2021年度 Gitee最有价值开源项目,加入RT-Thread嵌入式实时操作系统编程语言类软件包。在CH32V103 RISC-V开发板上完成了PikaScript的部署,并为CH32V103提交了PikaSciprt标准BSP和驱动模块包,并完成了交互式运行的驱动。原创 2024-04-12 22:55:23 · 515 阅读 · 0 评论 -
Linux设备树(DTS)介绍
Dts:DTS即Device Tree Source,是一个文本形式的文件,用于描述硬件信息。一般都是固定信息,无法变更,无法overlay。原创 2023-11-15 20:38:44 · 362 阅读 · 0 评论 -
Linux 源码包安装
SRPM 包,比 RPM 包多了一个“S”,是“Source”的首字母,所以 SRPM 可直译为“源代码形式的 RPM 包”。也就是说,SRPM 包中不再是经过编译的二进制文件,都是源代码文件。可以这样理解,SRPM 包是软件以源码形式发布后直接封装成 RPM 包的产物。从表中可以看到,SRPM 包的命名与 RPM 包基本类似,唯一区别在于 SRPM 包多了“src”标志,即 SRPM 包采用“包名-版本号-发布次数-发行商-src.rpm”的方式进行命名,比如“原创 2023-11-13 20:18:24 · 254 阅读 · 0 评论 -
Linux提取RPM包文件
在讲解如何从 RPM 包中提取文件之前,先来系统学习一下 cpio 命令。cpio 命令用于从归档包中存入和读取文件,换句话说,cpio 命令可以从归档包中提取文件(或目录),也可以将文件(或目录)复制到归档包中。归档包,也可称为文件库,其实就是 cpio 或 tar 格式的文件,该文件中包含其他文件以及一些相关信息(文件名、访问权限等)。归档包既可以是磁盘中的文件,也可以是磁带或管道。原创 2023-11-12 19:28:09 · 1057 阅读 · 0 评论 -
Linux RPM包安装、卸载和升级
我们以安装 apache 程序为例。因为后续章节还会介绍使用源码包的方式安装 apache 程序,读者可以直观地感受到源码包和 RPM 包的区别。原创 2023-11-11 19:06:39 · 893 阅读 · 1 评论 -
Linux软件包(源码包和二进制包)
Linux下的软件包众多,且几乎都是经 GPL 授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。GPL,全称 General Public License,中文名称“通用性公开许可证”,简单理解 GPL 就是一个保护软件自由的一个协议,经 GPL 协议授权的软件必须开源,请猛击《开源协议》了解更多信息。Linux下的软件包可细分为两种,分别是源码包和二进制包。原创 2023-11-10 22:20:24 · 305 阅读 · 0 评论 -
Linux awk命令
除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk。曾有人推测 awk 命令的名字来源于 awkward 这个单词。其实不然,此命令的设计者有 3 位,他们的姓分别是 Aho、Weingberger 和 Kernighan,awk 就取自这 3 为大师姓的首字母。和 sed 命令类似,awk 命令也是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。原创 2023-11-09 21:56:41 · 512 阅读 · 0 评论 -
Linux tail命令:显示文件结尾的内容
这条命令会显示文件的最后 10 行内容,而且光标不会退出命令,每隔一秒会检查一下文件是否增加新的内容,如果增加就追加到原来的输出结果后面并显示。【例 3】 监听文件的新増内容。【例 2】查看 /etc/passwd 文件末尾 100 个字节的数据内容。【例 1】查看 /etc/passwd 文件最后 3 行的数据内容。[root@localhost ~]# tail [选项] 文件名。如果想终止输出,按【Ctrl+c】键中断 tail 命令即可。此命令常用的选项及含义。原创 2023-11-08 21:49:03 · 379 阅读 · 0 评论 -
Linux cat命令
cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。关于此命令,有人认为写 cat 命令的人是因为喜欢猫,因此给此命令起名为“cat”,其实不然,cat 是 concatenate(连接、连续)的简写。注意,cat 命令用于查看文件内容时,不论文件内容有多少,都会一次性显示。如果使用 "-A" 选项,则相当于使用了 "-vET" 选项,可以查看文本中的所有隐藏符号,包括回车符($)、Tab 键(^I)等。原创 2023-11-07 21:34:36 · 318 阅读 · 0 评论 -
Linux Vim批量注释和自定义注释
我们可以延伸一下,如果想取消文件行首的快捷键,则可以设置 ":map^B 0x",快捷键为 "Ctrl+B", "0" 表示跳到行首,"x" 表示删除光标所在处字符。其中 "^P" 为定义快捷键 "Ctrl+P"。注意:必须同时按 "Ctrl+V+P" 快捷键生成 "^P" 方可有效,或先按 "Ctrl+V" 再按 "Ctrl+P" 也可以,直接输入 "^P" 是无效的。"l#" 就是此快捷键要触发的动作,"l" 为在光标所在行行首插入,"#" 为要输入的字符,"" 表示退回命令模式。原创 2023-11-06 21:07:05 · 1765 阅读 · 0 评论 -
Linux Vim撤销和恢复撤销快捷键
然后按“Esc”键,使 Vim 由输入模式转为命令模式,并使用 yy 命令将这一行文本复制到剪贴板中,如此我们就可以在文本任意位置通过键入 p(或大写的 P)命令将复制的内容粘贴到光标所在的位置。在此基础上,通过 u(小写)命令就可以使文本内容恢复到上一次做粘贴操作之前的样子,其中“上一次”的含义是,恢复操作是可以叠加的,即按一次就会在现有基础上做一次恢复操作。同样,恢复撤销的操作和撤销操作是相对应的,通过按 Ctrl+R 组合键,可以撤销之前所做的一次恢复操作。原创 2023-11-05 19:41:12 · 8178 阅读 · 0 评论 -
Linux gzip命令:压缩文件或目录
好吧,也是可以的,不过很别扭。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为“.gz”。gzip 压缩命令非常简单,甚至不需要指定压缩之后的压缩包名,只需指定源文件名即可。再强调一下,gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件。命令中的源文件,当进行压缩操作时,指的是普通文件;原创 2023-10-30 21:48:11 · 4045 阅读 · 0 评论 -
Linux zip命令:压缩文件或目录
注意,zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩时使用。[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表。【例 1】zip 命令的基本使用。下面给大家举几个例子。原创 2023-10-30 21:44:05 · 872 阅读 · 0 评论 -
Linux tar打包命令
Linux 系统中,最常用的归档(打包)命令就是 tar,该命令可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打包。使用 tar 命令归档的包通常称为 tar 包(tar 包文件都是以“.tar”结尾的)。原创 2023-10-30 21:40:53 · 370 阅读 · 0 评论 -
Linux环境变量及作用
其实,环境变量是由固定的变量名与用户或系统设置的变量值两部分组成的,我们完全可以自行创建环境变量来满足工作需求。但是,这样的环境变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用。Linux 系统能够正常运行并且为用户提供服务,需要数百个环境变量来协同工作,但是,我们没有必要逐一学习每个变量,这里给大家列举了 10 个非常重要的环境变量。Linux 作为一个多用户多任务的操作系统,能够为每个用户提供独立的、合适的工作运行环境,因此,一个相同的环境变量会因为用户身份的不同而具有不同的值。原创 2023-10-30 21:35:31 · 114 阅读 · 0 评论 -
Linux mv命令:移动文件或改名
如果我们确认需要覆盖已经存在的同名文件,则可以使用 "-f" 选项进行强制移动,这就不再需要用户手工确认了。如果需要移动几百个同名文件,但是不想覆盖,这时就需要 "-n" 选项的帮助了。mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。需要注意的是,同 rm 命令类似,mv 命令也是一个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果。如果源文件和目标文件在同一目录中,那就是改名。-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;原创 2023-10-29 21:33:23 · 1242 阅读 · 1 评论 -
Linux rm命令:删除文件或目录
注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。所以,在真正删除文件的时候,我们会选择强制删除。-i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。原创 2023-10-29 21:29:37 · 1723 阅读 · 0 评论 -
Linux cp命令:复制文件和目录
【例 4】 "-l" 和 "-s" 选项我们如果使用 "-l" 选项,则目标文件会被建立为源文件的硬链接;这两个选项和 "-d" 选项是不同的,"d" 选项要求源文件必须是软链接,目标文件才会复制为软链接;所以,当我们使用 "-a" 选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者,所属组、时间和软链接性。使用 "-a" 选项来取代 "-d、-p、-r" 选项更加方便。这个例子说明,如果在复制软链接文件时不使用 "-d" 选项,则 cp 命令复制的是源文件,而不是软链接文件;原创 2023-10-29 21:26:08 · 3398 阅读 · 0 评论 -
Linux cp命令:复制文件和目录
【例 4】 "-l" 和 "-s" 选项我们如果使用 "-l" 选项,则目标文件会被建立为源文件的硬链接;这两个选项和 "-d" 选项是不同的,"d" 选项要求源文件必须是软链接,目标文件才会复制为软链接;所以,当我们使用 "-a" 选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者,所属组、时间和软链接性。使用 "-a" 选项来取代 "-d、-p、-r" 选项更加方便。这个例子说明,如果在复制软链接文件时不使用 "-d" 选项,则 cp 命令复制的是源文件,而不是软链接文件;原创 2023-10-28 22:04:57 · 1334 阅读 · 0 评论 -
Linux ln命令:建立链接文件
inode 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的 block 编号。硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。如果目标文件已经存在,则删除目标文件后再建立链接文件;原创 2023-10-28 21:59:57 · 276 阅读 · 0 评论 -
Linux touch命令:创建文件及修改文件时间
可以看到,touch 命令可以只修改文件的访问时间,也可以只修改文件的数据修改时间,但是不能只修改文件的状态修改时间。因为,不论是修改访问时间,还是修改文件的数据时间,对文件来讲,状态都会发生改变,即状态修改时间会随之改变(更新为操作当前文件的真正时间)。需要注意的是,touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。原创 2023-10-28 21:45:22 · 605 阅读 · 0 评论 -
Linux mkdir命令:创建目录(文件夹)
仔细看上面的权限部分,也就是 ls 命令输出的第一列数据(绿色部分),test 和 test1 目录由于不是使用 -m 选项设定访问权限,因此这两个目录采用的是默认权限(这里的默认权限值是 755,后续章节再详细介绍默认权限)。-p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo。【例 2】使用 -p 选项递归建立目录。原创 2023-10-27 21:56:31 · 1250 阅读 · 1 评论 -
Linux ls命令:查看目录下文件
注意,当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。通过使用 -a,你会看到以 . 为开头的几个文件,以及目录文件 (.)、(..)、.gconf 等等,这些都是隐藏的目录和文件。ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。默认所有者是文件的建立用户。原创 2023-10-26 21:15:37 · 323 阅读 · 0 评论 -
Linux cd命令:切换目录
需要注意的是,在 Linux 系统中,根目录确实存在 .(当前目录)以及 ..(当前目录的父目录)两个目录,但由于根目录是最顶级目录,因此根目录的 .. 和 . 的属性和权限完全一致,也就是说,根目录的父目录是自身。cd 命令,是 Change Directory 的缩写,用来切换工作目录。Linux 中的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,所以 cd 命令没有执行文件所在路径。所谓 Shell 内置命令,就是 Shell 自带的命令,这些命令是没有执行文件的;原创 2023-10-25 20:47:48 · 851 阅读 · 0 评论 -
Linux绝对路径和相对路径
由于指令的执行需要系统的支持,若你的执行文件放置在本目录,并且本目录没有加入PATH路径中,并非正规的执行文件目录(/bin, /usr/bin 等加入PATH路径中的目录为正规的执行文件目录),此时就需要在指令所在目录下严格按照./command指令格式来该执行指令。总之,绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。但除此之外,使用相对路径的方式会更简单。原创 2023-10-23 21:08:59 · 537 阅读 · 0 评论 -
Linux远程管理工具
Linux远程管理服务器多基于 SSH 协议。本节给大家介绍 2 种常见的基于 SSH 协议的远程管理工具,分别是 PuTTY 和 SecureCRT。在使用远程管理工具之前,应先设置宿主机 Windows 与虚拟机 Linux 能够连通。这里要注意 VMware 的网卡设置,Linux 中更改网络设置可以使用 ifconfig 和 setup 命令,若还是无法进行远程连接,要么就是 SSH 服务没有启动,要么就是 Linux 防火墙默认屏蔽了 SSH 服务的端口。原创 2023-10-20 21:09:59 · 259 阅读 · 0 评论 -
Linux远程管理协议
(RFB、RDP、Telnet和SSH)是Linux的远程管理协议。提到远程管理,通常指的是远程管理服务器,而非个人计算机。个人计算机可以随时拿来用,服务器通常放置在机房中,用户无法直接接触到服务器硬件,只能采用远程管理的方式。远程管理,实际上就是计算机(服务器)之间通过网络进行数据传输(信息交换)的过程,与浏览器需要 HTTP 协议(超文本传输协议)浏览网页一样,远程管理同样需要远程管理协议的支持。原创 2023-10-19 21:45:10 · 337 阅读 · 0 评论 -
虚拟机来安装Linux的优势
笔者认为,通过虚拟机软件学习是初学者学习 Linux 的最佳方式。在与部分读者的交流中,笔者发现,很多初学者都认为,学习 Linux 就必须将自己的电脑装成 Linux 系统或者必须要有真正的服务器设备。而实际上,这是一些机构、书籍或网络文章给大家传导的错误思想。其实,学习 Linux 最简单、最实用的环境就是虚拟机环境(例如,通过 VMware Workstation 软件学习),这样说的原因有如下几点。原创 2023-10-18 20:33:51 · 236 阅读 · 0 评论 -
VMware虚拟机安装Linux系统的介绍
许多新手连 Windows 的安装都不太熟悉,更别提 Linux 的安装了;即使安装成功了,也有可能破坏现有的 Windows 系统,比如导致硬盘数据丢失、Windows 无法开机等。所以一直以来,安装 Linux 系统都是初学者的噩梦。然而,通过虚拟机技术很容易冲破这种困境。由于虚拟机安装 Linux 所有的操作(例如硬盘分区、删除或修改数据)都是在虚拟硬盘中进行,因此不会对现有的数据和系统造成任何损失,即使安装失败了也无所谓。原创 2023-10-17 20:56:47 · 268 阅读 · 0 评论 -
虚拟机是什么
简单地说,虚拟机(Virtual Machine)就是允许我们在当前操作系统中运行其他操作系统的软件,本质上和 VS、QQ 这些应用程序一样。所以,只要我们在电脑(PC 或笔记本等)上安装好虚拟机软件,就可以模拟出来若干台相互独立的虚拟 PC 设备,每一个都如何一台真实的计算机。在此基础上,我们可以给每台虚拟的 PC 设备安装指定的操作系统,这样就可以实现在一台电脑上同时运行多个操作系统。另外,还可以将这些虚拟的系统连成局域网,用来部署网站集群架构等更深层次的运维技术。原创 2023-10-16 20:53:40 · 150 阅读 · 0 评论 -
安装Linux系统对硬件的要求
内存:当然是越大越好,事实上,在 Linux 服务器中内存远比 CPU 要重要的多,因为如果内存不够大,就不得不使用硬盘中的内存置换空间(又称 swap 空间),但我们都知道,CPU从内存中读取数据要比从硬盘中读取数据的效率高得多,所以内存太小很可能会影响系统整体的性能。举个例子,如果是一般的小型服务器,其硬盘容量大于 20GB 就基本够用了,但是如果你的服务器是用来作为备份或者作为小企业的文件服务器,那么可能就要考虑选用适当的磁盘阵列(RAID)模式了。光盘、键盘和鼠标:这些硬件都是非必备的,能用就行。原创 2023-10-15 19:36:14 · 611 阅读 · 0 评论 -
Linux该如何学习,给你支招
如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法。这只是自己关于学习Linux的建议。原创 2023-10-14 21:11:11 · 173 阅读 · 0 评论 -
Linux桌面环境(桌面系统)
早期的 Linux 系统都是不带界面的,只能通过命令来管理,比如运行程序、编辑文档、删除文件等。所以,要想熟练使用 Linux,就必须记忆很多命令。后来随着 Windows 的普及,计算机界面变得越来越漂亮,点点鼠标就能完成很多工作,人们已经习惯了图形界面化的操作,很难再忍受一片漆黑的命令行窗口了。这推动了 Linux 社区进行变革,很快推出了 Linux 系统的图形界面环境。完成工作的方式不止一种,Linux 一直以来都以此而闻名,在图形桌面上更是如此,Linux 有各种各样的图形化桌面可供选择。原创 2023-10-13 21:51:03 · 1256 阅读 · 0 评论 -
Linux和UNIX的关系及区别
Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。原创 2023-10-12 21:30:28 · 582 阅读 · 0 评论 -
Linux是什么,其特点是啥
与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件,其 logo 是一只企鹅。与 Windows 不同之处在于,Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。Linux,全称GNU/Linux,是一种类似Unix的操作系统,可以免费使用,自由传播。它是一个基于POSIX的多用户、多任务、多线程、多CPU的操作系统。随着互联网的发展,Linux得到了全世界软件爱好者、组织和公司的支持。原创 2023-10-11 20:50:03 · 268 阅读 · 0 评论