Linux 学习笔记(2)—— 关于文件和目录
目录
1、切换目录
2、查看系统信息
3、文本的创建和编辑
3-1)创建文件
3-2)查看文件
3-3)输出重定向和追加重定向
3-4)使用 vi 编辑器编辑文件
4、文件和文件夹的处理
4-1)对文件的处理
4-2)查看目录信息
4-3)对目录的操作
5、文件查找
6、查找文件中的内容
7、用户与用户组权限
8、文件和文件夹权限
9、文件归档和压缩
1、切换目录
cd ../ 或 cd .. | 切换到上一层目录(相对) |
cd 目录名 | 切换到指定目录(绝对) |
pwd | 查看当前所在的目录 |
cd ~ | 切换到当前用户的主目录中 |
2、查看系统信息
fdisk -l | 查看磁盘分区列表 |
free | 查看内存使用情况 |
cat /proc/meminfo | 查看内存信息 |
cat /proc/cpuinfo | 查看CPU信息 |
top命令(类似于window中的资源管理器):
top
| 默认进入到完整界面实时查看系统的消耗,进程的情况; 点击ctrl + C 或 q 键退出 |
top -n 1 | 查看当前的消耗,不用进入到界面实时观看 |
3、文本的创建和编辑
3-1)创建文件
vi /opt/learn.txt | 在指定目录下创建learn.txt文件,并进入 vi 编辑界面 |
touch /opt/learn | 在指定目录下创建learn文件。touch 仅单纯创建一个空白文件 |
cat > /opt/learn.txt << EOF | 在指定目录下创建文件,并在屏幕上输入内容,最后输入EOF表示输入结束。 如果不使用 << EOF 来结束,也可以在输入结束时直接按Ctrl+D来结束。 每次重复执行会将原有的内容覆盖掉。 |
echo "Hello World" > test.txt | 将指定内容输出重定向到文件中,如果文件不存在,则创建一个文件,如果存在,则会把原来的内容覆盖。 |
3-2)查看文件
vi /opt/test.txt | 在vi编辑器中输出文本内容(如果没有就会创建一个) |
cat /opt/test.txt | 在屏幕上输出文本内容 |
more /opt/test.txt | 分屏输出文本内容(在无法滚动的情况下比较适用,预先加载完全部内容,按回车键显示下一行) |
less /opt/test.txt | 分屏输出文本内容(与more的区别是,看到哪一行,就加载到哪一行,查看大文件适用) |
strings /opt/test.txt | 打印文件中可打印的字符 |
head -n 11 /opt/test.txt | 查看指定文件的前11行 |
head /opt/test.txt | 查看指定文件的前10行(默认10行) |
tail -n 20 /opt/test.txt | 查看指定文件的后20行 |
tail /opt/test.txt | 查看指定文件的后10行(默认是10行) |
tail -f /opt/test.txt | 通过流的方式实时查看最新的文件内容(实时监控日志) |
3-3)输出重定向和追加重定向
> 为输出重定向(将前面执行的结果输出到指定文本中,会覆盖文本中原有的内容);
>> 为追加重定向,将前面执行的内容追加到指定文本的末尾;
3-4)使用 vi 编辑器编辑文件
# 进入vi编辑器。如果没有这个文本文件,就会自动新建并进入vi编辑器
vi file.txt
进入vi编辑器后,首先会处于命令模式,即当前情况下所输入的都是命令;可以点击i、a、o等进入编辑模式;在编辑模式下,在按ESC键可以重新进入到命令模式。
以下为在 vi 编辑器命令模式中的一些命令。
i 或 a | 从命令模式进入到编辑模式;i为插入文本,a为追加文本;都在光标的位置输入 |
ESC | 从编辑模式进入命令模式 |
:w | 保存文本但不退出 |
:q! | 强制退出,不保存文本 |
:wq | 保存文本并退出 |
o | 在当前行的后面新增一行 |
O | 在当前行的前一行后新增一行 |
dd | 删除一行内容 |
D | 删除当前光标到行尾的内容 |
x | 删除当前光标所在处的一个字符 |
s | 删除一个字符并切换回编辑模式 |
S | 删除一行并切换回编辑模式 |
:n | 移动光标到第n行 |
$ | 光标移动到当前行文本的行尾 |
A | 光标移动到行尾并切换回编辑模式 |
^ | 光标移动到文本的行首 |
G | 光标移动到文本的末尾 |
gg | 光标移动到文本的行首 |
ZZ | 存盘退出 |
/字符串 | 查找某个字符串 |
n | 继续查找 |
:u | 撤销(相当于Ctrl+Z) |
:redo | 重做(相当于Ctrl+Y) |
4、文件和文件夹的处理
4-1)对文件的处理
cp —— 复制 | |
cp hello.txt /opt/test | 把 hello.txt 文件复制一份到 /opt/test 目录下 |
cp hello.txt /opt/test/he.txt | 把 hello.txt 文件复制一份到 /opt/test 目录下,并重命名为he.txt |
cp /opt/hello.txt ./ | 将指定的文件复制到当前文件夹下 |
rm —— 删除 | |
rm hello.txt | 删除指定文件 |
rm -f hello.txt | 强制删除,不重复确认 |
rm *.txt | 删除当前目录下的所有 .txt 文件 |
mv —— 移动(剪切) | |
mv hello.txt he.txt | 重命名hello.txt 文件为 he.txt |
mv hello.txt /opt/test | 将文件剪切到指定目录下 |
mv hello.txt /opt/test/he.txt | 将文件剪切到指定目录下并重命名为he.txt |
du -h hello.txt | 查看 hello.txt 文件的大小 |
true > test.txt | 清空文件内容 |
echo "" > test.txt | 清空文件内容 |
4-2)查看目录信息
ls 或 ls /opt | 查看当前目录(或指定目录)下没有被隐藏的所有文件(列出文件名称) |
ls -l 或 ll | 以列表的形式查看当前目录下各文件的信息 |
ls -a | 显示当前目录下的所有文件,包括隐藏文件 |
ls *.txt | 显示当前目录下所有以txt为后缀名的文件 |
ls /opt/test | 显示指定目录下的内容 |
ls -R /opt | 显示指定目录及其子目录的内容 |
在linux系统下如果要创建一个隐藏文件,只需要在文件名的最前面加一个点 "." 即可。
ls 直接查询不会查询到隐藏文件。ls -a 查询可以查询到。
4-3)对目录的操作
mkdir folder | 创建指定名称的目录 |
mkdir folder1 folder2 folder3 | 连续创建若干个目录 |
mkdir -p /opt/folder1/folder2/folder3 | 连续创建层次目录(folder1/folder2/folder3) |
rmdir /opt/mydir | 删除空的目录(不能删除非空的目录) |
rm -r ./test | 删除目录 |
rm -rf /opt/folder | 强制删除文件夹 |
cp -r /opt/test1 /opt/test2 | 拷贝文件夹(加上参数-r是深度拷贝) |
mv /opt/test /opt/test2 | 重命名文件夹 |
5、文件查找
find ./ -name "hello.txt" | 查找当前目录下名为hello.txt的文件或文件夹 |
find /home -name "hello" | 查找/home目录下名字为hello的文件或文件夹 |
find ./ -name "*" | 查找当前目录下的所有文件或文件夹 |
find ./ -name "[h|f]*" | 查找当前目录下所有以h或f开头的文件或文件夹 |
find ./ -name "[a-fA-F]*" | 查找当前目录下所有以小写字母a~f或大写字母A~F开头的文件或文件夹 |
find ./ -name "[^a-fA-F]" | 查找当前目录下所有不以a、b、c、d、e、f、A、B、C、D、E、F开头的文件 |
find ./ -name "h?llo" | 查找当前目录下满足h?llo条件的文件,其中?的位置代表一位任意字符 |
find ./ -perm 741 | 查找当前目录下所有权限为741的文件或文件夹 |
find ./ -user mary | 查找所有者为mary的文件或文件夹 |
find ./ -group dev | 查找所属组为dev的文件或文件夹 |
find ./ -mtime -3 | 查找3天内更新过的文件或文件夹 |
find ./ -mtime +3 | 查找3天前更新过的文件或文件夹 |
find ./ -newer hello.txt | 查找比hello.txt更新的文件或文件夹 |
find ./ ! -newer hello.txt | 查找比hello.txt更旧的文件或文件夹 |
find ./ -type d | 查找当前目录下的所有文件夹 ( f:普通文件 d:目录(文件夹) l:软链接文件 c:字符设备,如终端、磁带机等 b:块设备,如光盘、硬盘 ) |
find ./ -size 602c | 查找当前目录下文件大小为602字节的文件 ( c:byte k:kilobytes M:megabytes G:gigabytes ) |
find ./ -size +600c | 查找当前目录下文件大小大于602字节的文件 |
find ./ -name "hello*" -exec ls -l {} \; | 查找当前目录下所有以hello开头的文件,并将其细节显示出来(目录也会) |
find ./ -name "hello*" -exec rm {} \; | 查找当前目录下所有以hello开头的文件并将其删除 |
find ./ -name "hello*" | xargs ls -l | 查找当前目录下所有以hello开头的文件并将其细节显示出来 |
“|” 是管道符,管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。
xargs 的作用是 把前面管道符的输入作为后面指令的参数。
6、查找文件中的内容
grep "root" /etc/passwd | 查找/etc/passwd文件中包含root的行 |
grep -n "root" /etc/passwd | 查找/etc/passwd文件中包含root的行,并在每行的前方标注在原文中的行号 |
grep "^ma" /etc/passwd | 查找以ma开头的行 |
grep "bash$" /etc/passwd | 查找以bash结尾的行 |
grep "^[r|d]" /etc/passwd | 查找以r或d开头的行 |
grep -v "root" | 排除掉包含root在内的行 |
ls | grep test | 从ls的输出中过滤出包含test的行 |
grep -r games /etc | 在/etc目录下查找包含games的文件 |
find ./ name "*" | xargs grep word | 输出当前目录下文件名或目录名包含word的文件或目录 |
wc -l | 统计文件行数或输出的个数。 -c、--bytes、--chars只显示bytes数。 -l、--lines显示行数。 -w、--words只显示字数。 如不指定参数,则显示所有的统计信息 |
7、用户与用户组权限
在 linux 中,root 拥有最高的权限,所有文件或文件夹的权限设定对 root 都是无效的。
在正式的生产和服务器环境中,尽量使用普通的账号+人工权限设定的方式,避免出现漏洞后被人以root权限利用系统。
在 window 中,administrator 和 Linux 中的 root 等同。
cat /etc/group | 查看当前系统存在的用户组,<1000的是系统使用的,>1000的是用户创建的 |
groupadd test | 创建一个用户组名为test |
groupmod -n test testing | 将用户组test更名为testing |
groupdel test | 删除用户组test |
groups root | 查看用户root所在的所有组 |
cat etc/passwd | 查看所有账户 该文件每行代表一个用户账号,记录了账号的所有信息,包括用户名、密码、用户ID(UID)、组ID(GID)、连接、主目录和默认的shell等。 |
useradd -g test jack | 创建一个用户jack,主组归属于test |
useradd -g test jam -G dev | 创建一个用户jam,主组归属于test,附属组dev |
useradd ben | 创建一个用户ben,因为没有设定其归属的主组,默认将新增一个对应名为ben的组 |
usermod -g dev ben | 将用户ben换到dev组中 |
usermod -G 505 ben | 将用户ben附加到gid为505的组中 |
usermod -d /home/test ben | 将用户ben的登入目录改为/home/test (在修改前需要保证该目录存在) |
userdel ben | 删除用户ben |
userdel -f ben | 强制删除用户ben(即使该用户已经登录) |
userdel -r ben | 删除用户ben并删除其主目录 |
8、文件和文件夹权限
在任意的一个文件夹中,可以用ls -l或ll命令来显示其基本的信息和权限信息:
![]()
每一行中依次代表的内容如下:
1、文件权限:表示文件的访问权限,如读取、写入和执行权限。
2、链接数量:表示文件在文件系统中的硬链接数量。
3、文件所有者:表示文件的所有者用户及用户所属的组。
4、文件大小:表示文件的大小,以字节为单位。
5、修改时间:表示文件的最后修改时间。
6、文件名:表示文件的名称。
每一个文件都占一行来展示其信息,每一行的前10个字符所表示的意义如下:
如:drwxr-xr-x
第1个字母:‘-’代表普通文件,‘d’代表目录,‘l’为链接文件,相当于快捷方式
第2、3、4个字母代表当前文件或文件夹所属用户(owner)的权限,用u表示
第5、6、7个字母代表当前文件或文件夹所属的用户组(group)的权限,用g表示
地8、9、10个字母代表其他用户组和其他用户(other)的权限,用o表示
权限的表示方式:
r 读:也可以用数字 4 来表示
w 写:也可以用数字 2 来表示
x 执行:也可以用数字 1 来表示
su jame | 切换到jame用户 |
whoami | 查看当前的用户 |
chmod u+x test.txt | 为test.txt文件的所有者添加可执行权限 |
chmod u-w test.txt | 为文件的所有者去除写权限 |
chmod g-r test.txt | 为文件的所在组去除可读权限 |
chmod o+w test.txt | 为文件所在组之外的组添加可写权限 |
chmod a+w test.txt | 为所有角色添加可写权限 |
chmod a+wx test.txt | 为所有角色添加可写和可执行权限 |
chmod a-rwx test.txt | 去除所有用户对文件的读写和执行权限,此时只有root用户可以操作 |
chmod 777 test.txt | 将文件的权限设置为rwxrwxrwx,等同于chmod a-rwx test.txt (7就是4+2+1) |
chmod 643 test.txt | 将文件的权限设置为rw-r---wx |
chmod -R 755 /opt/temp | 将/opt/temp即其所有的子文件、子目录的权限改为755(连带) |
chown mary test.txt | 将test.txt文件的所有者改为mary |
chown mary /opt/temp | 将目录的所有者改为mary |
chown -R mary /opt/temp | 将目录及其子目录、子文件的所有者改为mary |
chgrp test hello.txt | 将hello.txt 所在的组该为test组 |
chgrp test /opt/temp | 将指定目录的所有组改为test组 |
chgrp -R mary /opt/temp | 将指定目录及其下属的目录和文件的所有组改为mary |
9、文件归档和压缩
在Linux中,文件归档的作用是将多个文件组合成一个单一的文件,这个过程称为归档。
它通常用于系统备份、将旧数据移至长期存储设备以及方便文件传输等场景。
tar 命令是用于创建归档文件的常用命令。
归档文件不是文件夹,虽然它们看起来像是文件夹,但实际上它们是单一的文件。可以在这个“文件夹”中放入任何类型的文件,包括文本文件、图片、视频等。归档文件的好处之一是,它们可以轻松地复制和移动到其他位置,而不需要单独管理每个文件。
文件归档后并不会被压缩大小;一般是多个文件一起归档后再进行压缩。
归档后的文件后缀为.tar;归档文件压缩后一般后缀为.tar.gz;
tar -cvf hello.tar ./* | 将当前目录下的所有文件归档为hello.tar; 修饰符c:创建一个新归档 v:详细列出被处理的文件 f:指定要创建的归档文件的文件名或要解压的归档文件的名字。它必须是tar命令的最后一个参数,后面直接接文件名 |
tar -cvf hello.tar /opt/test | 将指定目录下的所有文件归档为hello.tar; |
tar -cf all.tar test1 test2 test3 | 选择当前目录下的三个文件进行归档,归档文件命名为all.tar |
tar -tf test.tar | 将归档文件test.tar中的文件显示出来 |
tar -xvf test.tar | 将归档文件解压缩到当前目录下,恢复其中的文件和目录结构。 |
tar -zcvf hello.tar.gz hello.tar | 将归档文件hello.tar压缩成hello.tar.gz |
tar -zxvf hello.tar.gz | 将压缩文件解压成hello.tar归档文件 |
gzip hello.tar | 将归档文件hello.tar压缩成hello.tar.gz |
gzip -d hello.tar.gz | 将压缩文件解压成hello.tar归档文件 |
zip hello.zip hello.txt | 将hello.txt压缩并命名为hello.zip |
zip -r test.zip /opt/test | 将指定的目录进行压缩并命名为test.zip |
unzip -v hello.zip | 查看压缩文件hello.zip中的文件信息 |
unzip hello.zip | 解压缩hello.zip |
相关文章:

Linux 学习笔记(2)—— 关于文件和目录
目录 1、切换目录 2、查看系统信息 3、文本的创建和编辑 3-1)创建文件 3-2)查看文件 3-3)输出重定向和追加重定向 3-4)使用 vi 编辑器编辑文件 4、文件和文件夹的处理 4-1)对文件的处理 4-2)查看…...

[重要] 如何在桌面上生成一个指定网址的快捷方式
方法一: 要在桌面上生成一个指定网址的快捷方式,可以按照以下步骤进行操作: 首先,打开你的浏览器,并确保已经访问了你想要创建快捷方式的网址。 在浏览器中,将鼠标悬停在地址栏上的网址上,然后…...

PyQt和Qt的其他绑定(如PySide)相比有什么优势和劣势?
作为一个新手,你可能会对PyQt和Qt的其他绑定(如PySide)之间的优势和劣势感到困惑。没问题,这很正常。我们先来谈谈优势吧。 首先,PyQt是由C编写的,因此它具有强大的跨平台支持。这意味着无论你使用的是Win…...

4K三路虚拟情景实训教学系统VR4300:实现“微课录制+课堂实训”双教学需求
如今,ChatGPT横空出世,产生了极大的破圈效应。各种AI、大模型概念风起云涌,给千行百业带来了极大的机遇与挑战。 4K三路虚拟情景实训教学系统VR4300基于计算机技术,虚拟现实技术,抠像合成技术,AI大模型等优…...

python逆向还原dnspy反编译的C#算法
dnspy反编译中的代码如下: private void method_1(byte[] byte_2, byte[] byte_3, byte[] byte_4) {...

数学建模--最短路径算法的Python实现
目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 #最短路径算法 #针对有向图的最短路径问题,我们有很多的算法能解决. """ 目前主流算法如下所示: Dijkstra算法:Dijkstra算法是一种单源最短路径算法,用于计算从起点到其它所有节点的最短…...

webpack学习(一)基本配置
webpack学习(一)基本配置 目录 webpack学习(一)基本配置 webpack简介 五大核心配置 1.入口(entry) 2.输入(output) 3.加载器(loader) 4.插件(plugins…...

Oracle 遍历变量游标
背景 由于我们的数据库系统中的游标特别多,DBA让我们优化,减少游标的使用。 电脑系统:windows数据库:Oracle数据库图形化界面工具:Toad,DBeaver(我測試的時候用的)记录日期:2023-09-04 具体实…...

C++11新特性① | C++11 常用关键字实战详解
目录 1、引言 2、C11 新增关键字详解 2.1、auto 2.2、override 2.3、final 2.4、nullptr 2.5、使用delete阻止拷贝类对象 2.6、decltype 2.7、noexcept 2.8、constexpr 2.9、static_assert VC常用功能开发汇总(专栏文章列表,欢迎订阅…...

VUE3学习小记(2)- ref 与 reactive
ref() 在组合式 API 中,推荐使用ref()函数来声明响应式状态: import { ref } from vueconst count ref(0) ref() 接收参数,并将其包裹在一个带有 .value 属性的 ref 对象中返回: const count ref(0)console.log(count) // {…...

基于单片机的万年历温度无线传输控制系统系统
一、系统方案 本设计采用DS1302采集年月日时分秒,DS18B20采集温度值,按键设置温度报警上下限,实际测量温度低于下限或高于上限,蜂鸣器报警,同时将测量温度上传到蓝牙助手。 二、硬件设计 原理图如下: 三…...

ElementUI浅尝辄止19:Badge 标记
出现在按钮、图标旁的数字或状态标记。 1.如何使用? 可展示新消息数量。 //定义value属性,它接受Number或者String。<el-badge :value"12" class"item"><el-button size"small">评论</el-button> <…...

nginx两台负载均衡服务器之间使用keepalived实现高可用
目录 高可用HAkeepalived实现高可用VRRP协议单VIP架构VIP飘移脑裂双VIP架构(互为主从)keepalived监控 、执行脚本notify 高可用HA 单点故障:某个重要的功能只有一份,如果他出现问题,会导致全局不能使用 “高可用性”…...

如何将Express项目部署到Vercel
什么是Vercel? 想必好多前端同学都知道Vercel吧!如果还不了解的同学也没关系,好好看这篇文章,认识认识Vercel,我想对你部署项目有一定帮助。 Vercel 是一个云平台,用于托管和部署静态网站、前端应用程序以…...

Java作业3
1.下面代码的运行结果是(C) public static void main(String[] args){String s;System.out.println("s"s);}A.代码编程成功,并输出”s” B.代码编译成功,并输出”snull” C.由于String s没有初始化,代码不…...

ARM编程模型-寄存器组
Cortex A系列ARM处理器共有40个32位寄存器,其中33个为通用寄存器,7个为状态寄存器。usr模式和sys模式共用同一组寄存器。 通用寄存器包括R0~R15,可以分为3类: 未分组寄存器R0~R7分组寄存器R8~R14、R13(SP) 、R14(LR)程序计数器PC(R15)、R8_fiq-R12_fir为快中断独有 在不同模…...

C++ string
目录 string类介绍访问:[ ] 遍历迭代器遍历范围for遍历 容量相关:修改相关:编码表的了解写时拷贝的了解string的模拟 STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库&a…...

百亿级访问量,如何做缓存架构设计
说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如阿里、网易、有赞、希音、百度、网易、滴滴的面试资格,遇到一几个很重要的面试题:: 分布式缓存系统,如何架构?百亿级访…...

(数字图像处理MATLAB+Python)第十一章图像描述与分析-第三、四节:几何表述和形状描述
文章目录 一:几何描述(1)像素间几何关系A:邻接与连通B:距离 (2)像素间几何特征A:位置B:方向C:尺寸 (3)程序 二:形状描述&a…...

20230901工作心得:IDEA列操作lambda表达式加强版用法
今天是中小学开学时间,亦是9月的开始,继续努力。 今日收获较大的有四个地方,先说这四点。 1、IDEA列操作 使用场景:需要批量将Excel表格里的数据插入到数据库中,此时需要写大量的insert SQL语句。 比如像这样的&am…...

macOS Sonoma 14beta 7(23A5337a)更新发布,附黑/白苹果系统镜像
系统介绍(镜像请前往黑果魏叔官网下载) 黑果魏叔8 月 31 日消息,苹果今日向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 7 更新(内部版本号:23A5337a),本次更新距离上次发布隔了 8 天。 …...

QT基础教程之九Qt文件系统
QT基础教程之九Qt文件系统 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O 设备的类图(Qt5)&#…...

OpenCV(十八):图像直方图
目录 1.直方图统计 2.直方图均衡化 3.直方图匹配 1.直方图统计 直方图统计是一种用于分析图像或数据的统计方法,它通过统计每个数值或像素值的频率分布来了解数据的分布情况。 在OpenCV中,可以使用函数cv::calcHist()来计算图像的直方图。 calcHist(…...

mac pro 查看隐藏文件夹
在Mac上查看隐藏文件夹可以使用以下方法: 使用终端: 打开终端应用程序,位于“应用程序”文件夹的“实用工具”子文件夹中。 在终端中,输入以下命令,然后按回车键: defaults write com.apple.finder AppleS…...

软件测试/测试开发丨Selenium 高级定位 Xpath
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27036 一、xpath 基本概念 XPATH是一门在XML文档中查找信息的语言 XPATH使用路径表达式在XML文档中进行导航 XPATH的应用非常广泛,可以用于UI自…...

各类注意力机制Attention——可变形注意力
目录 《Attention is all you need 》稀疏Attention残差Attention通道注意力空间注意力时间注意力可变形注意力 《Attention is all you need 》 稀疏Attention 残差Attention 通道注意力 空间注意力 时间注意力 实际上序列类任务也属于时间注意力,比如transformer…...

桥接模式:连接抽象与实现
欢迎来到设计模式系列的第八篇文章!在之前的几篇文章中,我们已经学习了许多常见的设计模式,今天我们将继续探讨另一个重要的设计模式——桥接模式。 桥接模式简介 桥接模式是一种结构型设计模式,它主要用于将抽象部分与实现部分…...

同步推送?苹果计划本月推出 iOS17和iPadOS17,你的手机支持吗?
据报道,苹果公司计划在本月推出 iOS 17 和 iPadOS 17 正式版更新。与去年不同的是,这次更新将同时发布,而不是分别发布。根据彭博社的一位消息人士马克・古尔曼的说法,苹果公司认为 iOS 17 和 iPadOS 17 的第八个测试版已经非常接…...

方案展示 | RK3588开发板Linux双摄同显方案
iTOP-RK3588开发板使用手册更新,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY,四路同时输入…...

数据库-多表设计
概述: 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本分为三种: 一对…...