决战Linux操作系统
前言:
你是否也曾经为Linux所困扰过,在网上找的资料零零散散,是否学完Linux后还是懵懵懂懂,别怕,这篇博客是博主精心为你准备的,现在,就让我们一起来走进Linux的世界,决战Linux!
1.历史
Linux是一个类Unix的操作系统,在1991年,Linus从Unix的衍生版本Minix的基础上进行修改,设计出了Linux的第一个版本0.01
Linus把Linux发布到论坛上,其他开发者觉得这个系统设计得不错,越来越多的人参与到Linux的开发和修改中,Linux操作系统变得越来越完善和强大,最终形成了今天的Linux生态。
目前Linux内核属于GNU计划的一部分,源代码遵循GPL开源协议,要求修改发布者也必须开源。
2.Linux操作系统的组成
Linux系统指的是使用Linux内核的操作系统,使用标准Linux内核的系统叫做Linux的发行版
Linux内核完全免费开源,可以在www.kernel.org上下载
mainline:最新开发主线
6.10-rc6 ------------------ 6.10版本的第6个开发板
stable:最新稳定版
6.9.7
longterm:长期支持维护的版本
6.6.36 .... 4.19.316 注:EOF表示即将从官方维护列表中删除
Linux内核版本号:
主版本号.次版本号.维护版本号
主版本号修改:内核架构进行大幅重构 次版本号修改:内核某些模块进行了更新 维护版本号:修正BUG
Linux的发行版:
通常所说的Linux系统包括Linux内核和外部组件,库,应用程序组成的一个可以直接使用的操作系统,一般叫做Linux发行版
Debian: Ubuntu RedHat: centos Fedora
3.Linux内核的子系统
任务管理和调度
内存管理
设备驱动
网络子系统
虚拟文件系统
4.Linux文件系统的组成
bin:所有用户都可以使用的命令
sbin:系统命令(管理员命令)
usr:用户命令和相关文件
dev:设备文件
etc:配置文件
home:用户目录
lib:库文件
media:存储设备挂载目录
mnt:目录挂载点
opt:应用程序和服务
proc:proc文件系统挂载点
sys:sysfs文件系统挂载点
root:超级管理员用户目录
tmp:存放临时文件
var:存放日志文件
5.Linux命令
打开终端 ------------------- ctrl + alt + t
ls --------------------------- 查看指定目录下的内容
用法:ls 目录
-l:详细信息
-a:包括隐藏文件
- ls -l
压缩与解压命令
Linux下最常用的压缩包格式是:
- gz
- bz2
- zip
- xz
其中,gz和bz2格式一般都是通过tar命令来控制的,xz和zip格式各自由它们的同名命令控制。
- tar
- 释义:归档、释放、压缩、解压
常用选项:
-c 创建归档文件或压缩文件
-x 释放归档文件或解压文件
-t 用于查看压缩或归档文件中的数据
-f 用于指定目标操作的文件 (在选项f后面必须紧接需要操作的归档或压缩文件)
-v 用于输出压缩或解压的过程
-z 指定解压或压缩的目标类型是 gz 格式
-j 指定压缩或解压的目标类型为 bz2 格式
-J 指定【解压】的目标文件格式为 xz 格式
-C 指定解压的目标路径
- 常见用法:
第一,归档与释放:
gec@ubuntu:~$ tar cf a.tar dir/* ==> 将目录dir中的所有文件归档成a.tar
gec@ubuntu:~$ tar tf a.tar ==> 查看归档文件a.tar
gec@ubuntu:~$ tar xf a.tar ==> 释放归档文件a.tar第二,压缩与解压:
gec@ubuntu:~$ tar czf a.tar.gz dir/* ==> 将目录dir中的所有文件归档并压缩为gz格式
gec@ubuntu:~$ tar tf a.tar.gz ==> 查看压缩文件a.tar.gz
gec@ubuntu:~$ tar xzf a.tar.gz ==> 解压压缩文件a.tar.gzgec@ubuntu:~$ tar cjf a.tar.bz2 dir/* ==> 将目录dir中的所有文件归档并压缩为bz2格式
gec@ubuntu:~$ tar tf a.tar.bz2 ==> 查看压缩文件a.tar.bz2
gec@ubuntu:~$ tar xjf a.tar.bz2 ==> 解压压缩文件a.tar.bz2第三,指定路径:
gec@ubuntu:~$ tar -xf a.tar -C /tmp ==> 将文件释放到/tmp
gec@ubuntu:~$ tar -xzf a.tar.gz -C /tmp ==> 将文件解压到/tmp
- 注意:
-
- 归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小
- 压缩会用到压缩算法,文件总体会变小。
- xz
- 释义:压缩与解压
- 压缩操作:
- 先使用tar对所需文件进行归档
- 然后再使用 xz命令进行压缩
- 解压操作:
- 先使用 xz命令进行解压
- 然后再使用tar对所需文件进行释放归档
- 压缩操作:
- 常见用法:
gec@ubuntu:~$ xz a.tar ==> 将文件a.tar压缩成a.tar.xz
gec@ubuntu:~$ xz --decompress a.tar.xz ==> 解压a.tar.xztar -Jxvf test.tar.xz ==> 使用tar的J选项直接解压xz格式文件
- 注意:
- xz只能压缩单个文件,因此xz一般与tar配合使用,即:先用tar将要压缩的若干文件或目录归档成一个tar包,然后用xz将tar包压缩成xz格式压缩包。
zip
zip不是系统自带的命令,一般需要自己手工安装:
gec@ubuntu:~$ sudo apt install zip
- 释义:压缩与解压
- 常见用法:
gec@ubuntu:~$ zip a.zip file dir/ ==> 将指定的文件和目录压缩成a.zip
gec@ubuntu:~$ unzip a.zip ==> 解压a.zip
cd ---------------- 切换当前路径
相对路径:以当前位置作为起点,.表示当前位置,..表示上一级目录
绝对路径:以根目录作为起点
~ 代表是home目录,也就是家目录, / 代表的是根目录
~ 表示当前登录用户的家目录,而
/home 目录则是存放所有用户家目录的目录。您可以使用
~来表示当前用户的家目录,无论他们实际上的家目录是在
/home 目录下的哪个子目录中。
问:root超级用户是存储在/home/目录之下吗答:在大多数Linux系统中超级用户的主目录一root般是 /root,而不是 /home 目录下的某个子目录。/root 目录是 root 用户的家目录,类似于普通用户的家目录 /home/username
普通用户的家目录一般存储在 /home 目录下,然后在其下创建对应的用户名目录(例如/home/username )来存储普通用户的文件和配置。而root用户的家目录 /root 则是位于根目录下。
总结就是:
/home目录通常存储普通用户的家目录。
/root是 root 超级用户的家目录。
因此,root超级用户一般的家目录并不存储在/home目录之下。
问:普通用户如gec存储在/home/之下,那为什么gec可以往回遍历到/之下,不是最多到home吗
答:在Linux文件系统中,普通用户的家目录通常位于/home/username下,比如您提到的username是gec,则它的家目录一般是 /home/gec。
在Linux中,每个用户都有一个用户名和一个用户ID,普通用户在登录时会被分配一个特定的(UID)用户ID,用于识别和管理其对文件系统的访问权限。当普通用户登录系统后,它的当前工作目录会是其家日录 /home/gec,这是其默认启动位置。
尽管普通用户的家目录是 /home/gec,但在Linux中,任何用户(包括普通用户)都可以查看整个文件系统的目录结构,只要对相应的目录有足够的访问权限。也就是说,虽然普通用户的家目录是/home/gec,但它仍然可以通过绝对路径或相对路径访问整个文件系统,包括/根目录。
总结一下,普通用户的家目录仅仅是其默认的工作目录,可以确保用户在登录后能够直接访问到自己的文件和目录;但是用户仍然可以通过绝对路径或相对路径访问整个文件系统,只要对相应的目录有权限。
cd 切换工作路径 (跳转到指定的文件夹下)
常见用法
cd 直接切换到当前用户的家目录
cd ~ 同上(~ 波浪号就是当前用户的家目录的缩写)
cd / 切换到系统的根目录 ( / 就是指根目录 )
cd - 切换到上一次所在的路径(方便在两个路径之间相互切换)
cd .. 切换到上一层路路径 (.. 指的是上一层路径)
cd ../Even/Dir 切换到上一层路径的Even里面的Dir 中 (使用的是相对路径)
cd /home/even/Dir 切换到根目录中的home 里面的even 里面的Dir (使用的是绝对路径)
cd /mnt 切换到根目录的mnt 中 (在子系统或虚拟中 mnt 用于挂载Windows 共享进来的文件夹)
pwd --------------- 显示当前所在路径
clear -------------- 清屏命令
man -------------- 帮助手册
用法:man 命令/函数man -f *** ----------- 显示所有有关指定内容的帮助信息man 3 *** ----------- 查阅第3章中有关指定内容的帮助信息
mkdir ------------- 创建目录
mkdir 目录路径创建的目录必须不存在创建目录的上一级必须存在,如果要同时创建上一(几)级目录,可以加选项-p
rmdir ------------- 删除空目录
rmdir 目录路径
注:如果要删除非空目录,使用rm -rf,慎用
//sudo rm -rf /* ---------- 删库跑路
touch ---------------- 创建空文件
touch 文件名
rm ---------------- 删除文件
rm 文件路径
cp -------------- 拷贝命令
cp 用于复制指定的文件到指定的路径下
cp abc.c 123.c 把当前目录下的文件 abc.c 复制为 123.c
cp ../123.c ./Dir/456.c 把上一级目录中的123.c 复制到当前目录的Dir里面 并且名字为 456.c
cp ./Dir/456.c ../../ 把当前目录下的Dir 中的456.c 复制到 上一层目录的上一层目录中,并保持名字不变
mv --------------- 剪切命令
用法:mv 原文件路径 目标目录
sudo 临时使用超级用户的权限做某事
我们在Ubunt中默认是以普通用户登录的,因此在非本用户的家目录中进行增删改查大概率会由于没有权限而被拒绝Permission denied 因此需要临时使用超级用户去做
比如 touch /123.c 出现问题 则可以改为 sudo touch /123.c
6.共享文件夹
使用共享文件夹互通windows和Ubuntu文件是最简易的方法,方法如下:
1.在windows创建一个空目录
2.点击虚拟机菜单的设置按钮,在选项页面使能共享文件夹,添加创建的目录
3.共享文件夹在Ubuntu的路径为 /mnt/hgfs/共享文件夹名
7.文件操作命令
(1)查看文件内容 ---------------- cat/head/tail/more/less/hexdump
cat用法:(查看文件所有内容)cat 文件名(当前路径无需加路径,其他路径要加路径)
如: cat main.c cat ../main.chead用法:(查看文件开头的内容,默认10行,用-n指定行数)head 文件名(当前路径无需加路径,其他路径要加路径)
如:head main.c (默认显示文件前10行)head -15 main.c (表示显示文件前15行内容)tail用法:(查看文件末尾的内容,默认10行,用-n指定行数) tail 文件名(当前路径无需加路径,其他路径要加路径)
如: tail main.c (默认显示文件后10行) tail -15 main.c (表示显示文件后15行内容) more用法:(按页显示文件内容,回车/空格翻页,q退出浏览)more 文件名(当前路径无需加路径,其他路径要加路径)
如: more main.c more ./main.cless用法:(按页显示文件内容,上下键/翻页键/回车/空格翻页,q退出浏览)less 文件名(当前路径无需加路径,其他路径要加路径)
如: less main.c less ./main.c
less是more的加强版,可以方向键滚动,支持搜索跳转等功能hexdump用法:(用16进制显示文件内容) hexdump 文件名(当前路径无需加路径,其他路径要加路径)
如: hexdump main.c hexdump ./main.c
(2)修改文件权限 ------------------------- chmod
1.chmod 目标用户(+或者-)权限 文件名(当前路径无需加路径,其他路径要加路径)u:文件所有者g:同组用户o:其他用户a:所有用户+:添加权限-:去掉权限r:读权限w:写权限x:执行权限 比如:chmod u+x byebye.c ----------- 为文件所有者添加执行权限chmod 777 hello.c --------为所有用户添加读写执行操作权限2.chmod 权限数字 文件路径权限数字用三位8进制表示 rwx
比如:chmod 644 hello.c ----------- 改为rw-r--r--权限
-
- chmod 777 hello.c - 777 是一个三位数的八进制(octal)表示法,用于指定新的权限设置。在这个上下文中,每一位数字都代表了一组不同的用户(或用户组)的权限。 - 第一位数字(7)代表文件所有者的权限。 - 第二位数字(7)代表与文件所有者同组的用户的权限。 - 第三位数字(7)代表其他所有用户的权限。 每个数字(0-7)都是对读(r=4)、写(w=2)和执行(x=1)权限的二进制和表示。因此: - 7 = 4(读)+ 2(写)+ 1(执行) 所以,chmod 777 hello.c 的意思是将文件 hello.c 的权限设置为所有用户(文件所有者、与文件所有者同组的用户、其他所有用户)都可以读、写和执行该文件。
(3)创建链接文件 ------------------ ln
如果多个文件在磁盘中使用同样的存储位置,就叫做链接文件
链接文件分为软链接和硬链接
硬链接相当于原文件的别名,不依赖于原文件,硬链接的创建命令:
ln 原文件名 硬链接文件名 如: ln main.c man 硬链接相当于创建了一个原来文件的别名,通过硬链接文件可以对原文件内容进行 访问并更改,原文件位置更改对硬链接文件无影响,删除了硬链接文件对原文件 无影响
软链接相当于快捷方式,依赖于原文件,软链接的创建命令:
ln -s 原文件名 软链接文件名 如: ln -s main.c man 软链接相当于创建了一个快捷方式指向原文件,通过软链接文件可以对原文件内容 进行访问并修改,原文件位置更改则软链接文件失效,删除了软链接文件对原文件 也无影响。
(4)查看文件和文件夹所占磁盘空间大小 ------------------ du
du -sh 文件名文件名(当前路径无需加路径,其他路径要加路径)
如: du -sh ../main.c
(终端输出:)88K ../hello(88K为88KB)
(5)比较文件内容的命令 ------------------- cmp/diff
cmp 文件1 文件2 //提示第一个不同内容的位置
如: cmp man.c hello.cdiff 文件1 文件2//提示所有不同内容的位置
如: diff man.c hello.c
(6)显示文件部分内容 ------------- cut
cut -b 1-5 文件 --------------- 显示每行指定位置内的字节内容
如: cut -b 1-5 main.c
cut -d ' ' -f 1-3 文件 -------- 以空格作为分隔符
如: cut -d ' ' -f 1-3 main.c
(7)统计文件中行 单词 字符个数 ------------- wc
wc 文件名(当前路径无需加路径,其他路径要加路径)
输出结果:文件总行数 文件单词数(空格分单词) 总字符数 文件名
加以下命令可单独显示:
-l:显示行数
-w:显示单词数
-c:显示字符数//注:可以使用管道将一个命令的结果传递给另一个命令作为参数
如:ls -l | wc
将ls的输出结果作为参数给wc命令统计
(8)查看文件属性信息 -------------- file
file 文件名(当前路径无需加路径,其他路径要加路径)
如:file main.c
输出:
gec@ubuntu:~/hello$ file main.c
main.c: C source, ASCII text
(9)查看磁盘空间信息 ------------------ df
df 磁盘设备文件名(当前路径无需加路径,其他路径要加路径)输出:
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda5 30268356 16987560 11717916 60% /
(10)查找命令文件的路径 -------------- whereis
whereis 命令名 如:whereis ls
(11)文件查找命令 ------------------ find/grep
1.根据文件属性(文件名 大小 属主...)查找文件find 要查找的目录 -name "文件名";
如:find /home -name "*.c"(查找/home目录下的所有.c文件)
2.根据文件内容查找文件grep "内容" 多个文件grep -R "内容" 目录
如:grep "int" main.c man.c(查找文件中包含int的文件) grep -R "int" /home(查找/home目录中包含int的文件)
在查找时可以使用通配符进行模糊查找
* - 代表任意个任意字符
? - 代表1个任意字符
如:find /home -name "*.c"(查找/home目录下的所有.c文件)
(12)树状显示目录的结构 ---------------- tree
tree 目录路径 如: tree hello
(13)压缩和解压命令 --------------- tar
tar是一个打包和解包的命令
tar命令允许在打包时同时进行压缩,常见的压缩格式:bz2 gz xz
打包:tar -cvf 包名.tar 要打包的文件和目录tar -cjvf 包名.tar.bz2 要打包的文件和目录tar -czvf 包名.tar.gz 要打包的文件和目录tar -cJvf 包名.tar.xz 要打包的文件和目录
eg: tar -cjvf hello.tar.bz2 main.c man.c解压:tar -xvf 包名.tartar -xjvf 包名.tar.bz2tar -xzvf 包名.tar.gztar -xJvf 包名.tar.xz
eg: tar -xjvf hello.tar.bz2c - 打包
x - 解包
v - 显示过程
f - 文件操作
j - bz2格式
z - gz格式
J - xz格式
(14)挂载和卸载命令 --------------------------- mount/umount
mount -t 类型 挂载设备 挂载点
umount 挂载点比如:sudo mount -t vfat /dev/sdb1 /media/gec/U
8.linux用户命令
(1)使用系统权限 --------------- sudo
sudo 命令
(2)切换用户 ------------------ su
su 用户名
(3)修改密码 ------------------ passwd
(4)查看当前登录用户 ---------- whoami
(5)添加用户/用户组 -------- adduser/addgroup
adduser 用户名 addgroup 组名
(6)删除用户/用户组 ------- deluser/delgroup
deluser 用户名 delgroup 组名
(7)设置用户信息 ------------- usermod
usermod -d 新的用户目录 用户名 -------- 修改用户目录 usermod -L 用户名 -------------------- 封禁用户 usermod -U 用户名 -------------------- 解封用户
9.linux进程相关命令
(1)查看当前系统的进程 ----------------- ps
//查看系统所有进程 ps -elf ps aux
(2)杀死进程 ------------------ kill/killall
kill -9 进程号 killall -KILL 进程名
(3)动态查看进程状态 -------------- top
(4)查看进程间的关系 -------------- pstree
10.linux网络命令
(1)设置/查看网卡信息 -------------- ifconfig
ifconfig (显示当前网络信息) ifconfig 网卡名 ifconfig 网卡名 up/down ------- 启动/关闭网卡 ifconfig 网卡名 ip ------------ 修改ip
(2)测试网络是否联通 ------------ ping
ping ip ping 域名
5.网络配置
(1)通过配置文件修改网络配置
1./etc/network/interfacessudo vim /etc/network/interfaces
(2)修改虚拟机的网络配置
NAT模式ip要自动获取,桥接模式都可以(最好手动)
注意:如果虚拟机虚拟网卡有问题,需要重置虚拟机的网络
(3)重启虚拟机网络
重启ubuntu重置网络
sudo /etc/init.d/networking force-reload
sudo /etc/init.d/networking restart
结束语:
最后,很感谢你耐心看到了这里,相信你也对Linux操作系统有了一些新的认识,现在,打开你的电脑,挑选一个你喜欢的Linux版本,尽情享受输入命令按下回车的感受吧!
相关文章:

决战Linux操作系统
前言: 你是否也曾经为Linux所困扰过,在网上找的资料零零散散,是否学完Linux后还是懵懵懂懂,别怕,这篇博客是博主精心为你准备的,现在,就让我们一起来走进Linux的世界,决战Linux&…...
OceanBase 3.2.2 数据库问题处理记录
只记录OceanBase 数据库与OCP的异常处理,其它组件暂时不写录。 一、问题1: 说明:OMS 出现异常,无法访问(OB无法访问) OB数据库架构:1:1:1 原因:某一台OBserver因为内存问题,被服务器直接kill掉…...

HCIP--以太网交换安全(二)端口安全
端口安全 一、端口安全概述 1.1、端口安全概述:端口安全是一种网络设备防护措施,通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理: 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…...

在 Windows 11 安卓子系统中安装 APK 的操作指南
这个软件好像不可以在纯android系统中使用(不知道是缺了什么),其他对于android的虚拟机要不缺少必要功能组件,要不性能过于低下。本方法致力于在带有谷歌框架WSA中运行该APK 在 Windows 11 安卓子系统中安装 APK 的操作指南 本指…...

[C语言] 函数详解:库函数与自定义函数
文章目录 函数的概念库函数和自定义函数库函数使用库函数示例常用库函数及头文件 自定义函数自定义函数的基本结构示例:实现两个数的求和函数自定义函数的好处 函数的返回值有返回值的函数无返回值的函数 函数的声明与调用声明函数在另一个文件中调用函数示例&#…...
0x11 科迈 RAS系统 Cookie验证越权漏洞
参考: 科迈 RAS系统 Cookie验证越权漏洞 | PeiQi文库 (wgpsec.org)免责声明 欢迎访问我的博客。以下内容仅供教育和信息用途: 合法性:我不支持或鼓励非法活动。请确保遵守法律法规。信息准确性:尽管我尽力提供准确的信息,但不保证其完全准确或适用。使用前请自行验证。风…...

MoonBit 双周报 Vol.57:AI助手功能增强、表达式优先级调整、JS 交互优化、标准库与实验库API多项更新!
2024-10-08 IDE更新 AI Codelens支持 /generate 和 /fix 命令 /generate 命令能够提供一个通用的用以生成代码的聊天界面。 /fix 命令能够读取当前函数的错误信息给出修复建议。 MoonBit更新 调整中缀表达式和if、match、loop、while、for、try表达式的优先级, 后者这些控制…...
element ui input textarea控制显示高度
样式代码 .testPage { position: absolute; left: 0; top: 0; right: 0; bottom: 0; display: flex; height: 100%; /* 控制输入框高度 */ .el-textarea { height: 90%; ::v-deep .el-textarea__inner { height: 90%; } } }...
Chromium 中chrome.downloads扩展接口c++
一、前端chrome.downloads 使用 chrome.downloads API 以编程方式启动、监控、操作和搜索下载内容。 权限 downloads 您必须在扩展程序清单中声明 "downloads" 权限,才能使用此 API。 {"name": "My extension",..."permiss…...
微信小程序常见问题
一、编译报错 [ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json 解决办法: 微信开发者工具中打开设置->安全设置->打开服务端口用HBuilder X打开小程序文件夹,点击“运行到小程序模拟器”,生成配置文件,…...

进程的理解
进程的理解 目录: 什么是进程主要特征主要组成部分进程状态进程优先级 1.什么是进程 概念: 在操作系统中,**进程(Process)**是一个正在执行的程序实例。可以将进程理解为一个动态的实体,它不仅包括静态…...
LeetCode494:目标和
题目链接:494. 目标和 - 力扣(LeetCode) 代码如下 class Solution { public:int findTargetSumWays(vector<int>& nums, int target) {int sum 0;for(int i 0; i < nums.size(); i){sum nums[i];}if(abs(target) > sum)…...
vue3中自定义校验函数密码不生效问题
vue3中自定义校验函数密码不生效问题 由于在自定义的校验规则中只校验了有数据的情况,以至于在没输入时,校验不生效 (1)用户不输入校验不生效 const validateSurePassword (rule, value, callback) > {if (value ! ) {if (…...

RabbitMQ(死信队列)
一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列,也提到过一些应用场景! 今天呢,这篇文章,主要就是实战一个业务场景的小Demo流程,哈哈,那就是延迟关闭订单。 二、开始啦!letgo! 首…...

HTTP代理的优点和局限性
在这个信息爆炸的时代,网络已成为我们获取知识、交流思想、开展商务的重要平台。但随之而来的隐私泄露、网络安全威胁、以及无处不在的网络监控,却让我们的每一次在线活动都充满了风险。 在这样的背景下,HTTP代理技术应运而生,它不…...
大厂面试真题-如果通过JVM自带的工具排查和解决线上CPU100%的问题
通过JVM自带的工具去定位和解决线上CPU 100%的问题,可以遵循以下步骤: 一、使用top和jps定位Java进程 使用top命令: 在Linux服务器上执行top命令,查看所有进程的CPU使用情况。找到CPU使用率最高的进程,并记录其PID&a…...

kubernetes中微服务部署
微服务 问:用控制器来完成集群的工作负载,那么应用如何暴漏出去? 答:需要通过微服务暴漏出去后才能被访问 Service 是一组提供相同服务的Pod对外开放的接口借助Service,应用可以实现服务发现和负载均衡Service 默认只…...
基于 Java 的天气预报系统设计与实现
随着互联网的飞速发展,天气预报系统变得越来越重要。它可以帮助用户了解未来几天的天气情况,便于出行、活动安排。本文将介绍如何使用 Java 构建一个简单的天气预报系统,涉及系统架构设计、核心功能开发以及完整的代码实现。 1. 系统架构设计…...
思迅商云8前台打开提示上传日志信息失败
请按照以下步骤核实处理: 1、重启sql服务后测试。 2、请先备份前台安装目录,之后删除安装目录下的log文件和localdate下的log文件,之后重新打开软件,若依旧不行则说明前台文件有损坏,需要重新安装客户端,…...
webstorm的缩进设置(过度缩进解释)
在编写前端代码时 缩进规范一般被认为是2个空格 而非默认的4个空格 当我们通过webstorm去编写前端代码时 我们可以通过setting->Code Style->html/css/js指定的界面中去设置tab/indent/continuation indent 具体的话 我们将html/css/js操作界面中的tab/indent设置为2个空…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...