【基础软件专项训练营】笔记 - 详解

news/2025/10/13 12:01:45/文章来源:https://www.cnblogs.com/tlnshuju/p/19138149

【基础软件专项训练营】笔记 - 详解

2025-10-13 11:57  tlnshuju  阅读(0)  评论(0)    收藏  举报

基础软件专项训练营

  • OpenEuler,Linux

  • OpenGauss,数据库 和 SQL

  • Kunpeng

openEuler:AI时代的全场景操作系统

问题:Windows系统中,开发者如何完成以下任务?

T1. 显示C语言源码,要求在行首添加行号

T2. 目录中所有的C语言源码的行数,并排序输出行数和文件名

T3. 查找最近3天修改过的C语言源码文件,并打包放到指定目录

Linux 的命令行

查找文件:find

选项功能描述
-name按文件名查找,支持使用通配符*和?
-type按文件类型查找,可以是f(普通文件)、d(目录)、1(符号链接)等
-size按文件大小查找,支持使用+或-表示大于或小于指定大小,单位可以是c(字节)、W
(字数)、b(块数)、k(KB)、M(MB)或G(GB)
-mtime按修改时间查找,支持使用+或-表示在指定天数前或后,days是一个整数表示天数
-newer按比较时间查找,如比参考文件的时间戳更新、或比指定的时间戳更新等
-print输出匹配的所有文件名,或将结果写入指定文件
exec执行外部程序,如对匹配的文件进行删除操作或其他各种处理
[ict@openEuler22 my-utils]$ find -name11*
./my-nl.c
./my-libc.c
./my-cat.c
./build/CMakeFiles/3.22.0/CompilerIdC/CMakeCCompilerId.c
./mytee.c
./my-wc.c
[ict@openEuler22 my-utils]$ find -name"*.c"-mtime -3
./my-nl.c
./my-libc.c
./build/CMakeFiles/3.22.0/CompilerIdC/CMakeCCompilerId.c
./my-wc.c

打包文件:tar

[~]$ find -name "*.c" -mtime -3 -exec tar rvf ~/latest.tar \;
./my-nl.c
./my-libc.c
./build/CMakeFiles/3.22.0/CompilerldC/CMakeCCompilerld.c
./my-wc.c
[ict@openEuler22my-utils]$filelatest.tar
latest.tar: POSIX tar archive (GNU)
find -name"*.c"-mtime-3-exec wc -I { \;|sort -nr

源自UNIX的设计哲学
UNIX重要的设计原则(设计哲学)
道格拉斯·麦克罗伊是Unix系统上管道机制,也是Unix文化的缔造者之一:
1.程序应该只关注一个目标,并尽可能把它做好
2.让程序能够互相协同工作
3.应该让程序处理文本数据流,因为这是一个通用的接口

title: 简洁至上; 一切皆文件; 提供机制而非策略; 保持一致

VI - 编辑器之神

小结
UNIX的设计思想并不过时:大道至简,使用文本,小工具协作起来
Linux的开源开放创造了软件史上的奇迹,也是学习宝库
Linux是开发者真正友好的,乐趣与效率兼得

操作系统的组成部分

系统内核和系统调用接口

系统内核(简称为内核),是操作系统的核心组成部分,负责进程管理、内存管理
文件管理和设备管理等,并通过系统调用接口向应用程序提供计算机系统的基本功能。

内核的架构主要有宏内核和微内核两种(Linux采用宏内核架构)。宏内核将全部的内
核模块作为一个单一的内核态任务运行于同一个地址空间;微内核则将内核拆分为多
个独立的模块分别运行于独立的地址空间。

内核为应用程序提供系统服务的机制是系统调用。系统调用(SystemCall)是把应
用程序的参数传给内核,请求相应的内核函数在内核里完成相应的处理,并将处理结
果返回给应用程序的过程。

应用程序

操作系统一般还提供了必要的应用程序–系统应用,如编译器、公用函数库、
编辑器、Shell等。
1.编译器
编译器是开发新应用程序的必备工具。。常见的C/C++编译器主要有GCC
(GNU Compiler Collection,GNU 编译器套件)、Microsoft Visual C++等。
2.公用函数库
公用函数库通常指的是C/C++运行库,glibc是GNU 发布的C 运行库,是
GNU/Linux操作系统中基础API。
3.编辑器
编辑器的用途是修改文本文件,在不同的操作系统中可能不同。Linux下的最
为流行的是Vi和 Emacs。

用户界面

用户界面是指操作系统为用户提供的使用接口,便于用户使用操作系统。用户界面通
常分为两类:CLI(CommandLineInterface,命令行界面)和 GUI(Graphical
User Interface,图形用户界面)。
(1)CLI指文本模式下的用户界面,主要依据用户的命令行文本来进行交互,一般
只使用键盘进行输入、使用文本信息作为输出,如UNIX类操作系统的各种Shell程
序。
(2)GUI指图形模式下的用户界面,多使用鼠标等指针设备进行输入、使用图形内
容作为输出,如Windows 操作系统的Explorer程序,macOS中的Finder应用
UNIX 类操作系统中的 GNOME、KDE、Xfce 等。

CLI实际上是由一种称为"Shell”的应用程序在操作系统内核的基础上实现的。
1977年,斯蒂芬·伯恩为V7UNIX 开发了 Bourne Shell,其凭借简洁、快速
的特点,一直沿用至今,简称为 sh。
OpenEuler 等 GNU/Linux系统中默认的 Shell是Bourne Again Shell(简称

Bash),它与 sh 完全向后兼容。
在UNIX类操作系统中,无论是CLI,还是GUI,都只是一种普通的应用程序,
只不过执行着与系统交互的特殊任务。

主流操作系统简介

根据操作系统的应用领域划分,可分为3类:
(1)桌面操作系统
(2)服务器操作系统
(3)嵌入式操作系统

服务器操作系统

服务器操作系统一般指的是安装在大型计算机(如Web服务器、应用服务器和数
据库服务器等)上的操作系统,更关注性能、安全性、可用性等。服务器操作系
统主要有下列三大类。
(1)UNIX 系列有 FreeBSD、Oracle Solaris、IBM AIX、HP-UX 等。
(2) GNU/Linux 系列有 CentOS、RHEL、Debian、Ubuntu 等。
(3)Windows Server 系列有 Windows NT、Windows Server 2003、
Windows Server 2008、Windows Server 2022 等

嵌入式操作系统

嵌入式操作系统是指用于嵌入式设备的操作系统,重点关注效率、功耗、实时性等。
嵌入式系统是指以应用为中心,以计算机技术为基础,能够根据用户需求(功能、
可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。
嵌入式领域常用的操作系统有μC/OS-Ⅲ、嵌入式Linux、WindowsEmbedded、
VxWorks等。

GNU/Linux 的优秀特性

Linux适用于服务器、云计算、嵌入式计算等多种不同领域,已成为应用最为广泛的
操作系统之一。
Linux的开源性质赋予开发者自由,他们可访问和修改源码,定制开发环境,并为社
区做出贡献,促进合作与创新。
由于Linux系统的高稳定性、安全性和灵活性,无论是面向个人计算机的桌面系统
面向物联网的嵌入式系统,还是面向超级计算机的服务器系统,都可以使用Linux。

秉承 UNIX 设计哲学

UNIX 以其简洁、高效、优雅的设计哲学,成为计算机科学的基石。UNIX强调简单、
可组合、可重用、透明和灵活等因素。举UNIX 设计哲学的几个主要原则:
(1)小即是美
(2)只做一件事,并做到极致
(3)连接程序,协作完成复杂功能
(4)提供机制,而非策略
(5)使用纯文本文件来存储信息
  (6)一切皆文件

可移植性

可移植性是指代码从一种体系结构移植到另外一种体系结构的难易程度。
Linux拥有精心设计的内核,基于C语言开发的运行库,以及兼容POSIX的大量应
用程序,整个系统都具有良好的可移植性,可支持大多数不同体系结构的计算机
可移植性往往是与性能相予盾的,Linux在这个方面走的是中间路线。

项目背景:开源OS的挑战与机遇
·异构计算将成为企业算力应用的主流
异构计算是指在系统中使用不同体系结构的处理器的联合计算方式,如CPU、GPU、NPU、FPGA等算
力芯片各有所长,分别完成多样性的算力任务
最典型的表现就是算力中心从通用的CPU向XPU转变
·软硬件协同发展对操作系统的新要求
在底层用软硬件结合的方式解决异构计算需求,同时降低异构计算的复杂性,让软件开发者可以在一个
统一开放的操作系统之上,进行应用技术的创新
在云边端协同大趋势下,让边缘计算设备、端设备也享受到云原生的交付、迭代的性能
·在复杂多变的全球化格局和商业环境中,完全依赖于国外的开源系统存在高风险
互联网行业采用率最高的Linux发行版之一CentOS宣布即将停止服务
美国近期出台“不允许将安全漏洞共享到中国”的新规则后
自主基础软件的挑战与机遇

openEuler入门使用

本节概述和学习目标
》学习Linux的重要途径就是在CLI下使用。Linux的一个显著特点是
在CLI下交互效率高,执行适当的命令就能完成系统管理、文件处理
软件计算等各种复杂任务,给予用户丰富的选择,操作简单灵活但功
能强大。
》本小节主要介绍Shell交互实验。通过本实验的学习,要求掌握常见
的基础Shell交互命令

使用目录
目录是openEuler文件系统中的基本组成部件,用于组织若干文件和其他目
录,目录也是一种文件。
openEuler使用一种层级化的目录结构,以唯一的根目录“/”为起点,在
根目录下放置了如下子目录

使用目录
目录是openEuler文件系统中的基本组成部件,用于组织若干文件和其他目
录,目录也是一种文件。
openEuler使用一种层级化的目录结构,以唯一的根目录“/”为起点,在
根目录下放置了如下子目录

文件类型

  • 常规文件:最常见的文件,也是一般意义上的文件,用于存
    储文本或二进制数据等。

  • 目录文件:一种特殊类型的文件,用于分级组织其他文件和
    目录,主要包含存放在该目录下的其他文件或目录的名称,
    属性等信息,便于对这些文件进行统一管理。

  • 链接文件:另一种特殊类型的文件,它指向另一个文件或目
    录的引引用。


Here 文档

  • 向一条命令传递输入的一种特殊方法是使用here文档
    允许命令从脚本程序中得到输入数据

  • Here文档可以用来调用交互式的程序,比如编辑器
    并且向它提供一些事先定义好的输入。

  • 更常见的用途是在程序中输出大量的文本,而不需要
    echo输出每一行

GUI界面简介
openeuler是一个面向企业级的Linux发行版,默认以命令行界面(CLI)
为主,但支持用户手动安装多种桌面环境(DE)以适应不同需求。
主要特点:
· 模块化支持:可安装GNOME、KDE、Xfce、UKUI等主流桌面环境
· 轻量级优化:Xfce等环境适合资源受限场景,UKUI则针对国产化生态优化710。
· 兼容性:支持ARM/x86架构,适配国产芯片(如鲲鹏)

sed
sed 对输入流(或文件)进行查找替换、删除、插入等操作,
非常适合将同样的动作同时应用于大量的文件
sed的基本语法格式如下:
$ sed [options][actions][files]

①修改"intt"为"int"
$ sed “s/intt/int/” add.c
②在第1行插入"#include<stdio.h>"
$ sed -i “1 i #include <stdio.h>“add.c
③在所有文件的第1行都插入”#include<stdio.h>”
$ find.-name I*.c| xargs sed -i “1 i #include <stdio.h>”

需求:册删除文本开头的数字序号和空格各(本书中的示例代码前面
有数字序号和空格,使用时需要删除)
命令:
$ sed -i -r ‘s/(\s[0-9]\s|[0-9]+\s)//gfile_name
解释:
(1)-i:表示直接修改原文件
(2)-r:开启正则表达式
(3)s/(\s[0-9]\sl[0-9]+\s)//g’:文本开头的数字序号和空格

gawk
gawk是一个文本处理工具,可以处理结构化文本数据,执行数
据转换、报告生成和数据分析等
基本语法格式
$ gawk [options]‘BEGIN{ command1 } pattern{ command2 }
END{ command3}’ [files]
中间的命令主要包括3个部分
BEGIN块:开始语句,用来预处理或输出表头,可选
pattern块:循环读取行数据并处理
END块:结束语句,用来生成报告等,可选

文本格式化
(1) LaTeX
LaTeX是基于TeX开发的一种高效率、高质量的排版系统,
支持多种排版选项和样式,可方便地生成各种类型的文档,例
如报告、幻灯片等
(2) Pandoc
Pandoc是一款功能强大的文档格式转换工具,支持将文档
从一种格式转换为另一种格式
(3) groff
groff 是troff 的GNU版本,可生成各种格式的高质量输出
包括文本、数学公式、图表等


理解 C/C++ 程序的构建模型

使用CMake 构建my-nl
编写my-nl的描述文件CMakeLists.txt:
cmake_minimum_required(VERSION 2.9)
project(my-utils)
add_executable(my-nl my-nl.c)
INSTALL(TARGETS"my-nl" RUNTIME DESTINATION bin)
生成Makefile
$ mkdir build&&cd build
$ cmake…&&ls
CMakeCache.txtCMakeFilescmake_install.cmake
Makefile
构建
$make&& sudo make install

自动化测试
CMake支持两种自动化测试方式
①在 CMakeLists.txt 文件中添加 add_test 命令
使用独立的命令行工具ctest来执行广泛的测试

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

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

相关文章

vs2022程序包管理器控制台中文乱码

在程序包管理器控制台中输入以下命令,即可解决中文乱码问题:[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

2025年10月精密弹簧厂家最新推荐排行榜,高精度弹簧,耐疲劳弹簧,定制弹簧,工业弹簧公司推荐!

2025年10月精密弹簧厂家最新推荐排行榜:高精度弹簧、耐疲劳弹簧与定制弹簧的行业标杆随着工业技术的不断进步,精密弹簧在各个领域的应用越来越广泛。无论是高精度弹簧、耐疲劳弹簧还是定制弹簧,选择一家可靠的生产厂…

LockSupport是什么

LockSupport是什么LockSupport让线程等待和唤醒的方法和Object类中的区别:方式一:使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒线程 方式二:LockSupport类可以阻塞当前线程以及唤醒指定被阻…

(26)ASP.NET Core2.2 EF保存(基本保存、保存相关数据、级联删除、启用事务)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年国内脱硫剂生产厂家最新推荐排行榜:氧化铁 / 羟基氧化铁 / 常温氧化铁 / 沼气等多类型产品优质企业全方位解析

引言当前工业领域对气体脱硫需求日益严苛,天然气、沼气、甲醇等行业在生产中,需依赖高性能脱硫剂保障安全与环保。但市场上脱硫剂厂家繁杂,部分企业存在工艺落后、质量不稳定、售后缺失等问题,让采购企业难以抉择。…

护花使者

这晚在街中偶遇心中的她 两脚决定不听使唤跟她归家 深宵的冷风 不准吹去她 她那幽幽眼神快要对我说话 纤纤身影 飘飘身影 默默转来吧 对我说浪漫情人爱我吗 贪心的晚风 竟敢拥吻她 将她秀发温温柔柔每缕每缕放下 卑污的…

实用指南:Kafka 合格候选主副本(ELR)在严格 min ISR 约束下提升选主韧性

实用指南:Kafka 合格候选主副本(ELR)在严格 min ISR 约束下提升选主韧性pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

2025年10月石头纸设备定做厂家最新推荐榜单:诚信专业,品质卓越之选!

2025年10月石头纸设备定做厂家最新推荐榜单:诚信专业,品质卓越之选!随着环保意识的提升和科技的进步,石头纸作为一种新型环保材料,逐渐受到市场的青睐。石头纸设备作为生产这种材料的关键工具,其质量和性能直接影…

H5移动端图片查看器

一、新建名为ImageViewer.vue的组件,代码如下: <!-- ImageViewer.vue --> <template><div class="fullscreen-viewer" v-if="visible" @click="closeViewer"><d…

2025年10月复合钢丝网厂家最新推荐排行榜,镀锌复合钢丝网,不锈钢复合钢丝网,建筑用复合钢丝网公司推荐!

2025年10月复合钢丝网厂家最新推荐排行榜:镀锌、不锈钢及建筑用复合钢丝网公司推荐随着工业和建筑业的快速发展,复合钢丝网在多个领域的应用越来越广泛。无论是用于建筑加固、防护围栏还是其他用途,选择一家优质的复…

typora无需激活版及最新激活版方法!双击安装就能用

软件介绍 Typora 是一款Markdown编辑器,支持实时预览,所见即所得。跨平台,支持Windows、macOS、Linux。适合写作、笔记、技术文档等。本教程将提供‌合法安全‌的安装方案,并解决常见问题,助你高效完成部署!直接…

类和对象(二) - 实践

类和对象(二) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

2025 年国内风化板源头厂家最新推荐排行榜:聚焦优质原料与精湛工艺,助力消费者精准选购靠谱企业榜单吧台/松木/桌面/茶台风化板厂家推荐

引言当前风化板市场需求持续增长,但行业乱象也让消费者选购时倍感困扰。一方面,大量厂家涌入导致产品质量参差不齐,部分企业为压缩成本使用劣质木材,使风化板易出现变形、开裂问题,严重影响使用体验;另一方面,市…

20232312 2025-2026-1 《网络与系统攻防技术》实验一实验报告

20232312 2025-2026-1 《网络与系统攻防技术》实验一实验报告20232312 2025-2026-1 《网络与系统攻防技术》实验一实验报告 1.实验内容 1.1通过学习、分析可执行文件pwn1,学习了三种漏洞利用技术:​​直接修改程序机…

2025年10月方钢厂家最新推荐排行榜,热轧方钢,冷拉方钢,高强度方钢,优质方钢供应商推荐!

2025年10月方钢厂家最新推荐排行榜:热轧方钢、冷拉方钢、高强度方钢、优质方钢供应商推荐随着工业和建筑业的快速发展,方钢作为重要的建筑材料之一,其需求量持续增长。为了帮助筛选方钢品牌,特此发布权威推荐榜单,…

OpenBLAS blas_thread_init: pthread_create failed for thread 1 of 4: Operation not permitted

https://blog.csdn.net/qq_45237725/article/details/148383599 (加权限)无可奈何花落去,似曾相识燕归来

QPSK调制在瑞利、高斯和莱斯信道下的MATLAB仿真

QPSK调制在不同信道条件下性能仿真的MATLAB实现 %% QPSK在瑞利、高斯和莱斯信道下的仿真 clear; close all; clc;%% 仿真参数设置 numBits = 1e6; % 传输的比特数 SNR_dB = 0:2:20; % 信噪比范…

Delapp文件删除工具!Windows中删除文件和文件夹的简单工具!仅507KB的工具小巧且方便

有的时候我们删文件总是遇到无法删除,提示文件在另一程序打开,但是又没有打开,怎么删也删不掉, ​​ 软件介绍 Delapp 是一款开源免费的Windows文件删除工具,免安装、小巧、速度快、支持win7……帮你解除占用,爽…

在 2023 年屌爆了一整年的 shadcn/ui 用的 Headless UI 到底是何方神圣?

在 2023 年屌爆了一整年的 shadcn/ui 用的 Headless UI 到底是何方神圣? 2024-03-1113,974阅读8分钟 专栏: Headless UI 无头组件的介绍与实现 作者:易师傅 、github 声明:本文为稀土掘金技术社区首发签约文章…

基于Hadoop+Spark的商店购物趋势分析与可视化平台科技达成

基于Hadoop+Spark的商店购物趋势分析与可视化平台科技达成pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…