当前位置: 首页 > news >正文

浅谈Linux 权限、压缩、进程与服务

概述

放假回家,对Linux系统的一些知识进行重新的整理,做到温故而知新,对用户权限管理、文件赋权、压缩文件、进程与服务的知识进行了一次梳理和总结。

权限管理

Linux最基础的权限是用户和文件,先了解基础的用户权限和文件权限。

用户权限

在大多数的Linux发行版中,我们都建议初学者创建一个有限权利的账户,我的stark这个用户就是有限权限的账户。

有些命令对系统的稳定性和安全性造成威胁,具有有限的权限意味着我们不能运行一些可怕的命令,在Linux中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面。

在安装完linux系统后,加入我们创建的个人用户叫做stark,这时系统中默认只有两个用户root和stark,我们只在必要的时候才会切换为root身份,其他时候,都是在用有限权限的用户在运行,这个策略的保护大大地提高了Linux系统的安全性,有效防止误操作或者是病毒的攻击。

1、sudo 暂时成为root,终端会提示你输入密码,这个密码是你个人用户的密码,即为stark的账户密码

[stark@localhost ~]$ sudo systemctl status nginx.service
[sudo] stark 的密码:

2、sudo su切换到root身份,使用exit命令退出root,回到stark账号上。
3、su,这个命令需要输入的是root的密码,这个是需要重点记忆的。

用户操作

1、添加账户名为 work 的用户,并设置密码

[root@localhost ~]# useradd work
[root@localhost ~]# passwd work
更改用户 work 的密码 。
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。

2、删除用户

使用userdel删除用户,如果想删除home目录,使用-r命令

userdel work # 删除用户
userdel -r work # 删除用户和家目录
群组操作

1、创建名为work的群组

groupadd work

2、对群组添加用户

假如要将stark这个用户放到我刚创建的work这个群组里。

usermod -g work stark

可以将一个用户添加到多个群组,用-G参数,把用户stark同时添加到work、stark的群组中,备注:群组名之间要用逗号分隔,而且没有空格!

usermod -G work,stark stark
  • -i:对用户重命名 /home中的用户家目录名不改变,需要手动修改
  • -g:修改用户所在群组

需要注意的是,使用usermod时要小心,因为配合-g-G参数时,它会把用户从原先的群组里剔除,加入到新的群组。

如果你不想离开原先去群组,又想加入新的群组,可以在-G的参数基础上加上-a参数。

usermod -aG work,stark stark

3、删除群组

删除名为work的群组

groupdel work

4、用groups命令可以获知一个用户属于哪个群组

[root@localhost home]# groups stark
stark : work
文件权限

1、文件权限

修改文件的所有者和群组,这里有个chown万能的命令,-R参数非常有用,R是recursive的缩写,表示递归,用来设置子目录和子文件。

chown -R stark:stark file.txt

2、文件访问权限

在Linux系统里,每个文件和目录都有一系列的权限属性,使用chmod命令修改文件的访问权限,chmod命令不需要是root用户才能运行,只要你是此文件的所有者,就可以用chmod来修改文件的访问权限。

chmod的绝对用法来分配权限,使用数字赋予文件访问权限chmod 640 file.txt,对所有者、所属组、其他用户,只要分别做加法就可以了,然后把三个和连起来。

权限数字说明
r4
w2
x1执行

chmod的相对用法是使用字面来赋予权限,+表示添加权限,-表示去除权限,=表示分配权限。

[stark@localhost ~]$ chmod u=rwx,g=r,o=- test.sh
[stark@localhost ~]$ ll | grep test.sh
-rwxr-----  1 stark work    35  15 16:34 test.sh
权限说明
u所有者
g群组
o其他

防火墙

Linux防火墙是一个用于管理系统内部网络访问的组件,旨在防止未经授权的访问和恶意攻击,Centos7以后 iptables 更换为 firewalld。

1、查看防火墙状态命令

systemctl status firewalldfirewall-cmd --state
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)Active: active (running) since Sun 2025-01-05 21:19:47 CST; 19min agoDocs: man:firewalld(1)Process: 268803 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)Main PID: 267866 (firewalld)Tasks: 3 (limit: 22689)Memory: 37.6MCPU: 833msCGroup: /system.slice/firewalld.service└─267866 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

2、设置开放和移除端口

防火墙上添加和移除端口操作,以80端口为例,添加/移除操作后,需要重启防火墙服务。

#添加80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#移除80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent#重启防火墙
firewall-cmd --reload
systemctl reload firewalld.service 

3、查看已经开放的端口

sudo firewall-cmd --list-ports
80/tcp 3306/tcp

重定向

重定向输出

Linux重定向的作用是把本来要显示在终端的命令结果,输送到别的地方,到文件中或者作为其他命令的输入。

>最简单的操作就是把操作的命令的输出结果重定向到文件中,使用这个符号要小心,如果此文件不存在,则新建一个文件,如果此文件已经存在,那就会把文件内容覆盖掉,而且是不会征求用户确认的。

>>是将重定向的内容写入到文件末尾,起到追加的作用,如果文件不存在,也会被创建。

有时候我们既不想把输出结果显示在终端上,也不想输出在文件中,Linux中有一个俗称黑洞文件 /dev/null

重定向错误输出

先介绍三种输出stdin,stdout,stderr:

1、从键盘向终端输入数据,这是标准输入,也就是stdin,对应的文件描述符是0。
2、终端接收键盘输入的命令,会产生两种输出,即标准输出stdout,对应的文件描述符是1,一种是标准错误输出,即stderr,对应的文件描述符是2。

2>&1将标准错误输出重定向与标准输出相同的地方。

定时任务

Linux中的定时任务由crontab命令来执行,用来读取和修改名为crontab的文件,crontab文件包含了你要定时执行的程序列表,也包含了执行的时刻。

crontab用于修改crontab文件,cron用于实际执行定时的程序。

crontab 的三个主要参数:

  • -l:显示crontab文件
  • -e:修改crontab文件
  • -r:删除crontab文件

命令格式
minute hour dom month dow command

1、分钟,取值范围 (0-59)
2、小时,取值范围 (0-23)
3、日,取值范围 (1-31)
4、月份,取值范围 (1-31)
5、星期几,取值范围 (0-6,星期日是0)
6、要执行的命令

例句:

Crontab意义
47 * * * * command每个小时的47分都执行 command 命令
0 0 * * 1 command每个星期1的凌晨都执行 command 命令
30 5 1-15 * * command每个月的1-15日的5点30分都执行command命令
0 0 * * 1,3,4 command每个月星期一、星期三、星期四的凌晨都执行command命令
0 */2 * * * command每2个小时的整点(0,2,4,6 等等)都执行command命令
*/10 * * * 1-5 command每个星期一到星期五的每个10的倍数的分钟

压缩和解压

操作压缩和解压时,先了解两个概念,将多个文件变成一个总文件,叫打包,将一个大文件通过某些压缩算法变成一个小文件,叫压缩。

1、创建一个归档

把tartest文件夹中的文件,压缩成名为tartest.tar压缩包的命令如下。

  • c: create 表示创建
  • v: verbose 表示显示操作的细节
  • f: file 指定归档文件
[stark@localhost ~]$ sudo tar -cvf tartest.tar tartest/
[sudo] stark 的密码:
tartest/
tartest/erros.log
tartest/file.txt
tartest/nohup.out

2、显示归档里的内容

-tf显示归档里的内容,并不解开归档。

[stark@localhost ~]$ tar -tf tartest.tar
tartest/
tartest/erros.log
tartest/file.txt
tartest/nohup.out

3、追加文件到归档

把 result.txt 追加到文档到 tartest.tar 归档中

[stark@localhost ~]$ tar -rvf tartest.tar result.txt
result.txt

4、解压归档文件

tar -xvf tartest.tar

进程和服务

进程

简单来说,进程就是加载到内存中运行的程序,大多数程序运行时都只在内存中启动一个进程,有的软件在程序运行时却会创建不少进程,比如 Apache、Mysql等等。

1、列出所有参数的所有进程

ps -ef 

2、列出指定用户运行的进程

ps -u www

3、通过Cpu和内存过滤进程

ps aux | less 

默认的结果集是未排好序的,可以通过 --sort参数来排序,根据CPU使用率降序排列:ps -aux --sort -pcpu,根据内存使用率来降序排列:ps -aux --sort -pmem

将CPU和内存参数合并到一起,并通过管道显示前10个结果ps -aux --sort -pcpn,+pmem | head

4、以树形结构显示进程

pstree 命令有很丰富的参数,更多使用man pstree查看文档

[stark@localhost ~]$ pstree -p  | grep mysql|-mysqld_safe(164526)---mysqld(165067)-+-{mysqld}(165068)|                                      |-{mysqld}(165069)|                                      |-{mysqld}(165070)

5、关闭进程

5.1、Ctrl+C停止终端中正在运行的进程

Ctrl+C这个组合键只能作用于当前终端中正在运行的程序,而终端中的复制和粘帖需要用Ctrl+Shift+CCtrl+Shift+V来执行。

5.2、kill命令

可以同时用kill来结束好几个进程,只要用空格隔开他们的PID,可以用kill -9来立即强制结束进程。

sudo kill 254653 254656 254655

5.3、killall

killall命令同一个程序运行时可能启动多个进程,不同于kill命令,killall命令后接程序名。

服务

在Linux中有特殊的进程,这些进程不与任何终端关联,并且无论用户的身份如何,都在后台运行,这些进程的父进程是PID进程号为1的进程,PID为1的进程只在系统关闭时才会被销毁。

这些进程会在后台一直运行,并且等待我们给他们分配工作,在Unix/Liunx的世界中,我们将这类进程称之为守护进程,守护进程也被称为service,服务器软件大多数都是以守护进程形式运行的,守护进行的名字通常会在最后有一个d,例如systemd,httpd,smbd等等。

Linux操作系统的开机过程:BIOS启动->BootLoader启动->加载系统内核->内核进行初始化->启动初始化进程->初始化工作。

Systemd

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。历史上,Linux 的启动一直采用init进程,Systemd使用并行代替了init的串行。Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

1、Systemd管理系统

# 重启系统
$ sudo systemctl reboot# 关闭系统,切断电源
$ sudo systemctl poweroff# CPU停止工作
$ sudo systemctl halt# 暂停系统
$ sudo systemctl suspend# 让系统进入冬眠状态
$ sudo systemctl hibernate# 让系统进入交互式休眠状态
$ sudo systemctl hybrid-sleep# 启动进入救援状态(单用户状态)
$ sudo systemctl rescue

systemctl list-units命令可以查看当前系统的所有 Unit 。

# 列出正在运行的 Unit
$ systemctl list-units# 列出所有Unit,包括没有找到配置文件的或者启动失败的
$ systemctl list-units --all# 列出所有没有运行的 Unit
$ systemctl list-units --all --state=inactive# 列出所有加载失败的 Unit
$ systemctl list-units --failed# 列出所有正在运行的、类型为 service 的 Unit
$ systemctl list-units --type=service

2、Unit 的状态

systemctl status命令用于查看系统状态和单个 Unit 的状态。

# 显示系统状态
$ systemctl status# 显示单个 Unit 的状态
$ sysystemctl status bluetooth.service# 显示远程主机的某个 Unit 的状态
$ systemctl -H stark@172.16.163.141 status httpd.service

除了status命令,systemctl还提供了三个查询状态的简单方法,主要供脚本内部的判断语句使用,以mysql服务为例。

# 显示某个 Unit 是否正在运行
$ systemctl is-active mysql.service# 显示某个 Unit 是否处于启动失败状态
$ systemctl is-failed mysql.service# 显示某个 Unit 服务是否建立了启动链接
$ systemctl is-enabled mysql.service

3、Unit 管理

对于用户来说,最常用的是下面这些命令,用于启动和停止 Unit(主要是 service)。

# 立即启动一个服务
$ sudo systemctl start apache.service# 立即停止一个服务
$ sudo systemctl stop apache.service# 重启一个服务
$ sudo systemctl restart apache.service# 杀死一个服务的所有子进程
$ sudo systemctl kill apache.service# 重新加载一个服务的配置文件
$ sudo systemctl reload apache.service# 重载所有修改过的配置文件
$ sudo systemctl daemon-reload# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service# 显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service# 设置某个 Unit 的指定属性
$ sudo systemctl set-property httpd.service CPUShares=500

4、开机启动

# 开机自动启动服务
sudo systemctl enable httpd# 开机不自动启动服务
sudo systemctl disable httpd# 查看服务是否开机自动启动
sudo systemctl is-enable httpd# 查看各个级别下服务的启动和禁止情况
systemctl list-unit-files --type=service

问题

1、sudo 命令,暂时成为root,需要注意的是有可能会提示 stark 不在 sudoers 文件中。此事将被报告。,切换root身份,编辑/etc/sudoers文件,配置权限,步骤如下。

su -
vim /etc/sudoers
stark   ALL=(ALL)   ALL

相关文章:

浅谈Linux 权限、压缩、进程与服务

概述 放假回家,对Linux系统的一些知识进行重新的整理,做到温故而知新,对用户权限管理、文件赋权、压缩文件、进程与服务的知识进行了一次梳理和总结。 权限管理 Linux最基础的权限是用户和文件,先了解基础的用户权限和文件权限…...

LeetCode 0040.组合总和 II:回溯 + 剪枝

【LetMeFly】40.组合总和 II:回溯 剪枝 力扣题目链接:https://leetcode.cn/problems/combination-sum-ii/ 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates…...

springCload快速入门

原作者:3. SpringCloud - 快速通关 前置知识: Java17及以上、MavenSpringBoot、SpringMVC、MyBatisLinux、Docker 1. 分布式基础 1.1. 微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自…...

实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作

要实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作,以及通过WiFi上传图片到微信小程序,并在微信小程序中上传图片到开发板进行训练,可以按照以下步骤进行: 1. 硬件连接 确保K210开发板…...

FlashAttention v1 论文解读

论文标题:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 论文地址:https://arxiv.org/pdf/2205.14135 FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。…...

Kafka 副本机制(包含AR、ISR、OSR、HW 和 LEO 介绍)

文章目录 Kafka 副本机制(包含AR、ISR、OSR、HW 和 LEO 介绍)1. 副本的基本概念2. 副本同步和一致性2.1 AR(Assigned Replicas)2.2 ISR(In-Sync Replicas)2.3 OSR(Out-of-Sync Replicas&#xf…...

QtCreator在配置Compilers时,有一个叫ABI的选项,那么什么是ABI?

问题提出 QtCreator在配置Compilers时,有一个叫ABI的选项,那么什么是ABI? ABI(Application Binary Interface)介绍 ABI(Application Binary Interface,应用二进制接口)是指应用程序与操作系统或其他程序…...

ResNet--深度学习中的革命性网络架构

一、引言 在深度学习的研究和应用中,网络架构的设计始终是一个关键话题。随着计算能力和大数据的不断提升,深度神经网络逐渐成为解决复杂任务的主流方法。然而,随着网络层数的增加,训练深度神经网络往往面临梯度消失或梯度爆炸的…...

【 软件测试项目实战】 以淘宝网购物车管理功能为例

一、测试功能模块分析 选择淘宝网购物车管理功能进行测试,核心子功能包含: 单商品添加/删除购物车商品数量修改多商品勾选与批量删除失效商品识别与处理 二、测试用例设计方法论应用 1. 等价类划分法(商品添加操作) 分析&…...

Go 中 defer 的机制

文章目录 Go 语言中 defer 的底层机制与实战解析一、defer 的执行顺序:后进先出(LIFO)示例 :多个 defer 的执行顺序 二、defer 的参数预计算:值拷贝的陷阱示例 :参数预计算的影响 三、defer 与闭包&#xf…...

智能小区物业管理系统推动数字化转型与提升用户居住体验

内容概要 在当今快速发展的社会中,智能小区物业管理系统的出现正在改变传统的物业管理方式。这种系统不仅仅是一种工具,更是一种推动数字化转型的重要力量。它通过高效的技术手段,将物业管理与用户居住体验紧密结合,无疑为社区带…...

【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互

Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…...

HTML DOM 对象

HTML DOM 对象 引言 HTML DOM(文档对象模型)是现代网页开发的核心技术之一。DOM 将 HTML 或 XML 文档结构化,使其成为可编程的对象。通过 DOM,开发者可以轻松地操作网页内容、样式和结构。本文将详细介绍 HTML DOM 对象的相关知识,包括其概念、结构、操作方法以及在实际…...

高温环境对电机性能的影响与LabVIEW应用

电机在高温环境下的性能可能受到多种因素的影响,尤其是对于持续工作和高负荷条件下的电机。高温会影响电机的效率、寿命以及可靠性,导致设备出现过热、绝缘损坏等问题。因此,在设计电机控制系统时,特别是在高温环境下,…...

【09-电源线布线与覆铜 GND与转孔】

走线 从接触点处走线 TYPEC画线-加铜皮 1.关闭不需要的层(锡膏层和阻焊层和机械层) 紫色阻焊层 L: 顶层锡膏 底层锡膏 顶层阻焊 底层阻焊 2.修改线框或者贴铜 3.顶层走不过去:打四个孔 核心:走线-打孔-贴铜皮 设置孔的参数:大小和人为盖有 挨一下其他才会有网络 4个孔也要贴…...

算法题(48):反转链表

审题: 需要我们将链表反转并返回头结点地址 思路: 一般在面试中,涉及链表的题会主要考察链表的指向改变,所以一般不会允许我们改变节点val值。 这里是单向链表,如果要把指向反过来则需要同时知道前中后三个节点&#x…...

C++ 泛型编程指南02 (模板参数的类型推导)

文章目录 一 深入了解C中的函数模板类型推断什么是类型推断?使用Boost TypeIndex库进行类型推断分析示例代码关键点解析 2. 理解函数模板类型推断2.1 指针或引用类型2.1.1 忽略引用2.1.2 保持const属性2.1.3 处理指针类型 2.2 万能引用类型2.3 传值方式2.4 传值方式…...

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索

题解如下 题目:解析决策树:代码设计: 代码: 题目: 解析 决策树: 代码设计: 代码: class Solution {private boolean[][] visit;//标记使用过的数据int m,n;//行,列char…...

9 点结构模块(point.rs)

一、point.rs源码 use super::UnknownUnit; use crate::approxeq::ApproxEq; use crate::approxord::{max, min}; use crate::length::Length; use crate::num::*; use crate::scale::Scale; use crate::size::{Size2D, Size3D}; use crate::vector::{vec2, vec3, Vector2D, V…...

基于vue船运物流管理系统设计与实现(源码+数据库+文档)

船运物流管理系统目录 目录 基于springboot船运物流管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、货运单管理 3、公告管理 4、公告类型管理 5、新闻管理 6、新闻类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考…...

海思ISP开发说明

1、概述 ISP(Image Signal Processor)图像信号处理器是专门用于处理图像信号的硬件或处理单元,广泛应用于图像传感器(如 CMOS 或 CCD 传感器)与显示设备之间的信号转换过程中。ISP通过一系列数字图像处理算法完成对数字…...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.12 连续数组:为什么contiguous这么重要?

2.12 连续数组:为什么contiguous这么重要? 目录 #mermaid-svg-wxhozKbHdFIldAkj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-wxhozKbHdFIldAkj .error-icon{fill:#552222;}#mermaid-svg-…...

Chromium132 编译指南 - Android 篇(一):编译前准备

1. 引言 欢迎来到《Chromium 132 编译指南 - Android 篇》系列的第一部分。本系列指南将引导您逐步完成在 Android 平台上编译 Chromium 132 版本的全过程。Chromium 作为一款由 Google 主导开发的开源浏览器引擎,为众多现代浏览器提供了核心驱动力。而 Android 作…...

Jenkins未在第一次登录后设置用户名,第二次登录不进去怎么办?

Jenkins在第一次进行登录的时候,只需要输入Jenkins\secrets\initialAdminPassword中的密码,登录成功后,本次我们没有修改密码,就会导致后面第二次登录,Jenkins需要进行用户名和密码的验证,但是我们根本就没…...

#define,源文件与头文件,赋值表达式

1.#define 1.1定义 #define 是一个预处理指令,用于定义宏 宏,是预处理阶段(在编译之前)由预处理器处理的代码片段 1.2使用 1.2.1 #define 可以定义常量 #define PI 3.14159 1.2.2 #define 可以定义宏函数 #define SQUARE(x) ((…...

wordpress外贸独立站常用询盘软件

LiveChat LiveChat是一家提供实时聊天软件的公司,帮助企业通过其平台与客户进行即时通讯,提高客户满意度和忠诚度。他们的产品允许企业在网站、应用程序或电子邮件等多个渠道与客户互动,从而提升客户体验并促进销售增长。 LiveChat的软件特…...

网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。

一、前言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,于1月下旬完成了开发一款网络爬虫软件的学习目标。这里对本次学习及应用开发进行一下回顾总结。 前几天我已经发了一篇日志(网络爬虫学习:应用selenium从搜…...

Zookeeper入门部署(单点与集群)

本篇文章基于docker方式部署zookeeper集群,请先安装docker 目录 1. docker初期准备 2.启动zookeeper 2.1 单点部署 2.2 集群部署 3. Linux脚本实现快速切换启动关闭 1. docker初期准备 拉取zookeeper镜像 docker pull zookeeper:3.5.6 如果拉取时间过长&#xf…...

2025最新在线模型转换工具onnx转换ncnn,mnn,tengine等

文章目录 引言最新网址地点一、模型转换1. 框架转换全景图2. 安全的模型转换3. 网站全景图 二、转换说明三、模型转换流程图四、感谢 引言 在yolov5,yolov8,yolov11等等模型转换的领域中,时间成本常常是开发者头疼的问题。最近发现一个超棒的…...

文件读写操作

写入文本文件 #include <iostream> #include <fstream>//ofstream类需要包含的头文件 using namespace std;void test01() {//1、包含头文件 fstream//2、创建流对象ofstream fout;/*3、指定打开方式&#xff1a;1.ios::out、ios::trunc 清除文件内容后打开2.ios:…...

AJAX XML

AJAX XML 引言 随着互联网技术的不断发展,Web应用对用户交互性和实时性的要求越来越高。AJAX(Asynchronous JavaScript and XML)技术的出现,为Web应用开发提供了强大的支持。AJAX技术允许Web应用在不重新加载整个页面的情况下,与服务器进行异步通信。XML作为数据传输格式…...

Linux文件原生操作

Linux 中一切皆文件&#xff0c;那么 Linux 文件是什么&#xff1f; 在 Linux 中的文件 可以是&#xff1a;传统意义上的有序数据集合&#xff0c;即&#xff1a;文件系统中的物理文件 也可以是&#xff1a;设备&#xff0c;管道&#xff0c;内存。。。(Linux 管理的一切对象…...

JavaScript常用的内置构造函数

JavaScript作为一种广泛应用的编程语言&#xff0c;提供了丰富的内置构造函数&#xff0c;帮助开发者处理不同类型的数据和操作。这些内置构造函数在创建和操作对象时非常有用。本文将详细介绍JavaScript中常用的内置构造函数及其用途。 常用内置构造函数概述 1. Object Obj…...

Shell篇-字符串处理

目录 1.变量引用 2.获取字符串长度 3.字符串截取 4.删除子字符串 5.字符串替换 总结&#xff1a; Bash&#xff08;Shell 脚本&#xff09;中的字符串处理语法。以下是对其的介绍和总结&#xff1a;Bash 变量可以使用不同的语法来获取、修改和删除字符串的内容。图片中列…...

Arduino大师练成手册 -- 控制 AS608 指纹识别模块

要在 Arduino 上控制 AS608 指纹识别模块&#xff0c;你可以按照以下步骤进行&#xff1a; 硬件连接 连接指纹模块&#xff1a;将 AS608 指纹模块与 Arduino 连接。通常&#xff0c;AS608 使用 UART 接口进行通信。你需要将 AS608 的 TX、RX、VCC 和 GND 引脚分别连接到 Ardu…...

C++ Primer 命名空间的using声明

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

C#,入门教程(12)——数组及数组使用的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(11)——枚举&#xff08;Enum&#xff09;的基础知识和高级应用https://blog.csdn.net/beijinghorn/article/details/123917587https://blog.csdn.net/beijinghorn/article/details/123917587 数组是一种数据集合&#xff0c;是一组…...

深入浅出并查集(不相交集合实现思路)

引言 并查集&#xff08;Disjoint Set Union&#xff0c;简称DSU&#xff09;是一种用于处理一些不交集的合并及查询问题。它主要支持两种操作&#xff1a;查找&#xff08;Find&#xff09;和合并&#xff08;Union&#xff09;。 查找&#xff1a;确定某个元素属于哪一个子…...

M|哪吒之魔童闹海

rating: 8.5 豆瓣: 8.5 上映时间: “2025” 类型: M动画 导演: 饺子 主演: 国家/地区: 中国大陆 片长/分钟: 144分钟 M&#xff5c;哪吒之魔童闹海 制作精良&#xff0c;除了剧情逻辑有一点瑕疵&#xff0c;各方面都很到位。总体瑕不掩瑜。 上映时间&#xff1a; &…...

【c++】类与对象详解

目录 面向过程思想和面向对象思想类的定义引入类的关键字类定义的两种方式类的访问限定符类的作用域类大小的计算封装 this指针类的6个默认成员函数构造函数初步理解构造函数深入理解构造函数初始化列表单参数构造函数引发的隐式类型转换 析构函数拷贝构造函数赋值运算符重载运…...

LabVIEW如何有效地进行数据采集?

数据采集&#xff08;DAQ&#xff09;是许多工程项目中的核心环节&#xff0c;无论是测试、监控还是控制系统&#xff0c;准确、高效的数据采集都是至关重要的。LabVIEW作为一个图形化编程环境&#xff0c;提供了丰富的功能来实现数据采集&#xff0c;确保数据的实时性与可靠性…...

Golang 并发机制-4:用Mutex管理共享资源

并发性是Go的强大功能之一&#xff0c;它允许多个线程&#xff08;并发线程&#xff09;同时执行。然而&#xff0c;权力越大&#xff0c;责任越大。当多个例程并发地访问和修改共享资源时&#xff0c;可能会导致数据损坏、竞争条件和不可预测的程序行为。为了解决这些问题&…...

如何用微信小程序写春联

​ 生活没有模板,只需心灯一盏。 如果笑能让你释然,那就开怀一笑;如果哭能让你减压,那就让泪水流下来。如果沉默是金,那就不用解释;如果放下能更好地前行,就别再扛着。 一、引入 Vant UI 1、通过 npm 安装 npm i @vant/weapp -S --production​​ 2、修改 app.json …...

从零开始:用Qt开发一个功能强大的文本编辑器——WPS项目全解析

文章目录 引言项目功能介绍1. **文件操作**2. **文本编辑功能**3. **撤销与重做**4. **剪切、复制与粘贴**5. **文本查找与替换**6. **打印功能**7. **打印预览**8. **设置字体颜色**9. **设置字号**10. **设置字体**11. **左对齐**12. **右对齐**13. **居中对齐**14. **两侧对…...

LLMs之OpenAI o系列:OpenAI o3-mini的简介、安装和使用方法、案例应用之详细攻略

LLMs之OpenAI o系列&#xff1a;OpenAI o3-mini的简介、安装和使用方法、案例应用之详细攻略 目录 相关文章 LLMs之o3&#xff1a;《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读 LLMs之OpenAI o系列&#xff1a;OpenAI o3-mini的简介、安…...

DeepSeek-R1 低成本训练的根本原因是?

在人工智能领域&#xff0c;大语言模型&#xff08;LLM&#xff09;正以前所未有的速度发展&#xff0c;驱动着自然语言处理、内容生成、智能客服等众多应用的革新。然而&#xff0c;高性能的背后往往是高昂的训练成本&#xff0c;动辄数百万美元的投入让许多企业和研究机构望而…...

C语言:结构体

一&#xff0c;结构体 C语⾔已经提供了内置类型&#xff0c;如&#xff1a;char、short、int、long、float、double等&#xff0c;但是只有这些内置类型还是不够的&#xff0c;假设我想描述学⽣&#xff0c;描述⼀本书&#xff0c;这时单⼀的内置类型是不⾏的。 描述⼀个学⽣需…...

java练习(5)

ps:题目来自力扣 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这…...

【高等数学】贝塞尔函数

贝塞尔函数&#xff08;Bessel functions&#xff09;是数学中一类重要的特殊函数&#xff0c;通常用于解决涉及圆对称或球对称的微分方程。它们在物理学、工程学、天文学等多个领域都有广泛的应用&#xff0c;例如在波动方程、热传导方程、电磁波传播等问题中。 贝塞尔函数的…...

贪吃蛇实现

1.资料来源 https://learn.microsoft.com/zh-cn/windows/console/getstdhandle 2.前言 简介 贪吃蛇是久负盛名的游戏&#xff0c;和俄罗斯方块、扫雷等游戏位列于经典游戏的行列。 《贪食蛇》中玩家控制一条不断移动的蛇&#xff0c;在屏幕上吃掉出现的食物。每吃掉一个食物…...