一、Linux 操作系统概述

1.1 操作系统的核心价值

        操作系统的本质是 "使计算机更好用"。它作为用户与硬件之间的中间层,负责内存管理、进程调度、文件系统管理和设备驱动管理等核心功能,让用户无需直接操作硬件即可完成复杂任务。在服务器领域,Linux 凭借其稳定性、安全性和开源特性,已成为全球最主流的操作系统之一。

1.2 Linux 的发展历程

1.2.1 UNIX 的起源

        Linux 的故事始于 UNIX。1968 年,通用电器、贝尔实验室和麻省理工学院合作开发了 Multics 系统,为后续操作系统奠定了多任务、多用户的设计基础。1969-1970 年,贝尔实验室的 Ken Thompson 和 Dennis Ritchie 在 Multics 基础上开发了 UNIX 系统,其高效性和可移植性使其迅速在学术界传播。

        1972 年,UNIX 开始商业发行,加州大学伯克利分校在此基础上开发了 BSD 版本,与 AT&T 的 System V 形成两大分支。1991 年,UNIX 系统实验室推出 System V Release 4,整合了多个版本的特性,成为重要的商业标准。

1.2.2 Linux 的诞生

        1991 年 10 月 5 日,赫尔辛基大学研究生 Linus Torvalds 在 Usenet 新闻组宣布了 Linux 操作系统的诞生。这款受 Minix 启发的系统最初仅作为个人项目,却意外引发全球开发者协作热潮。1994 年,Linux 1.0 版本正式发布,标志着其进入实用阶段。

        与 UNIX 不同,Linux 采用 GNU GPL 开源协议,允许用户自由使用、修改和分发源代码,这种开源模式极大加速了其发展。如今,Linux 已从最初的个人项目成长为支撑全球互联网基础设施的核心系统。

1.3 Linux 的应用现状

  • 服务器领域:占据全球 75% 的服务器市场份额,在政府、金融、电信等关键领域广泛应用
  • 桌面领域:国内有中标麒麟、深度 Linux 等发行版,国际上 Ubuntu 凭借易用性积累了大量用户,但在软硬件兼容性上仍与 Windows 存在差距
  • 移动嵌入式领域:Android 系统基于 Linux 内核开发,占据全球 84.6% 的智能手机市场;路由器、智能电视等设备也大量采用定制化 Linux
  • 云计算 / 大数据领域:86% 的企业使用 Linux 构建云计算和大数据平台,逐步取代 UNIX 成为主流

1.4 主流发行版本

  • Debian:以稳定性著称,适合服务器场景,适合高级用户和系统管理员
  • Ubuntu:Debian 的衍生版,易用性强,广泛应用于桌面、服务器和云计算领域
  • 红帽企业级 Linux(RHEL):首个商业 Linux 发行版,通过 RHCSA/RHCE 认证体系培养了大量系统管理员
  • CentOS:基于 RHEL 源代码重构的免费版本,与 RHEL 兼容性极高,适合预算有限的企业
  • Fedora:红帽的测试平台,包含最新技术,适合开发者尝鲜
  • Kali Linux:专注于渗透测试的发行版,预装大量安全工具,是网络安全从业者的首选

二、Linux 基础操作指令

2.1 远程登录工具 XShell

        在服务器管理中,图形界面因资源消耗大、效率低而极少使用,远程终端成为主要操作方式。XShell 是常用的远程终端工具,其免费版本(home/school)可满足个人学习需求(也可以使用虚拟机,但是不推荐新手使用虚拟机)。

登录步骤

  1. 查看 Linux 主机 IP:ifconfig(可在各大平台购买云服务器)
  2. 建立连接:ssh [IP地址]
  3. 输入用户名和密码完成登录

2.2 文件与目录操作

2.2.1 目录查看(ls)

ls命令用于列出目录内容,选项:

  • -a:显示所有文件(包括以.开头的隐藏文件)
  • -l:显示详细信息(权限、所有者、大小、修改时间等)
  • -d:将目录本身作为文件显示
  • -i:显示 inode 编号
  • -t:按修改时间排序
  • -r:反向排序
  • -R:递归显示子目录内容

示例

# 显示当前目录所有文件的详细信息
ls -al# 显示/var目录的inode信息
ls -id /var# 按大小排序显示/tmp目录内容
ls -lS /tmp

这里常用选项有 -l -a记住这两个就行

2.2.2 路径查看(pwd)

        在这里介绍几个标识符 '.' 代表当前工作路径 '..'代表上一级工作路径'/'代表根目录

pwd命令用于显示当前工作目录的绝对路径:

2.2.3 目录切换(cd)

cd命令用于切换工作目录,Linux 的路径分为:

  • 绝对路径:从根目录/开始的完整路径(如/home/whb/test
  • 相对路径:相对于当前目录的路径(如../temp表示上级目录的 temp 文件夹)

常用操作

# 切换到/tmp目录
cd /tmp# 返回上级目录
cd ..# 切换到用户家目录
cd ~# 切换到上一次所在目录
cd -
2.2.4 文件创建(touch)

touch命令用于创建空文件或修改文件时间戳:

  • -a:仅修改访问时间
  • -m:仅修改修改时间

示例

# 创建新文件
touch newfile.txt# 修改文件访问时间
touch -a oldfile.txt# 查看文件时间信息
stat newfile.txt

文件的时间戳包含三种:

  • Access:最后访问时间
  • Modify:内容最后修改时间
  • Change:元数据(权限、所有者等)最后修改时间

2.2.5 目录创建(mkdir)

mkdir命令用于创建目录,关键选项-p可递归创建多级目录:

# 创建单级目录
mkdir docs# 创建多级目录
mkdir -p project/src/main/java# 查看创建结果 tree命令可能会没有安装 安装指令为:(sudo) yum/apt install -y tree (root账户不需要sudo)
tree project
2.2.6 目录删除(rmdir)

rmdir用于删除空目录,-p选项可删除空的父目录(指令不常用,推荐使用rm):

# 删除空目录
rmdir empty_dir# 递归删除空目录链
rmdir -p a/b/c

注意:若目录非空,rmdir 会提示错误,需使用rm -r命令

2.2.7 文件 / 目录删除(rm)

rm是删除文件和目录的核心命令,常用选项:

  • -f:强制删除,不提示
  • -i:删除前询问确认
  • -r:递归删除目录及内容

示例

# 删除文件(会提示)
rm file.txt# 强制删除目录及所有内容
rm -rf old_project# 删除前询问的递归删除
rm -ri data/

警告:rm -rf /是极其危险的命令,会删除系统所有文件,绝对禁止使用

2.2.8 文件复制(cp)

cp用于复制文件或目录,核心选项:

  • -i:覆盖前询问
  • -r:递归复制目录
  • -f:强制覆盖

示例

# 复制文件
cp document.txt backup/# 递归复制目录
cp -r src/ dest/# 覆盖前询问
cp -i new.txt old.txt# 复制所有txt文件到archive目录
cp *.txt archive/
2.2.9 文件移动 / 重命名(mv)

mv可实现文件移动或重命名,常用选项:

  • -i:覆盖前询问
  • -f:强制覆盖

示例

# 重命名文件
mv oldname.txt newname.txt# 移动文件到目录
mv report.pdf docs/# 移动多个文件到归档目录
mv *.log logs/# 覆盖前询问
mv -i temp.txt data/

2.3 文件内容查看

2.3.1 文本查看(cat)

cat用于查看文件内容,适合小文件:

  • -n:显示所有行号
  • -b:仅显示非空行号
  • -s:压缩连续空行为一行

示例

# 查看文件内容
cat README.md# 显示行号
cat -n script.sh# 压缩空行
cat -s notes.txt
2.3.2 分页查看(more/less)
  • more:基本分页工具,仅支持向前滚动

    • -n:指定每页显示行数
    • q:退出查看
  • less:增强版分页工具,支持前后滚动和搜索

    • -N:显示行号
    • /关键词:向下搜索
    • ?关键词:向上搜索
    • n:重复上一次搜索
    • q:退出

示例

# 分页查看长文件
more -20 large_file.log# 带行号查看并允许搜索
less -N access.log
2.3.3 头尾查看(head/tail)
  • head:显示文件开头内容(默认 10 行)
  • tail:显示文件结尾内容(默认 10 行),-f选项可实时监控文件更新

示例

# 显示前5行
head -5 config.ini# 显示最后3行
tail -3 results.txt# 实时监控日志文件
tail -f /var/log/syslog

高级用法:显示文件的 180-200 行

head -200 file.txt | tail -20

2.4 系统信息查询

2.4.1 帮助手册(man)

man命令用于查看命令手册,手册分为 9 个章节:

  1. 普通命令
  2. 系统调用(如 open、write)
  3. 库函数(如 printf)
  4. 特殊文件(/dev 下的设备文件)
  5. 文件格式(如 passwd 文件结构)
  6. 游戏程序
  7. 系统变量和附件
  8. 系统管理命令
  9. 内核相关

示例

# 查看ls命令手册
man ls# 查看printf库函数(第三章)
man 3 printf# 查看系统调用fork(第二章)
man 2 fork
2.4.2 命令定位(which/whereis)
  • which:查找命令的可执行文件路径
  • whereis:查找命令的二进制文件、源代码和手册页

示例

# 查找ls命令位置
which ls# 查找gcc的相关文件
whereis gcc
2.4.3 时间管理(date/cal)

date命令用于显示和设置系统时间:

# 显示当前时间
date# 按指定格式显示(年/月/日-时:分:秒)
date +%Y/%m/%d-%H:%M:%S# 显示时间戳(从1970-01-01开始的秒数)
date +%s# 时间戳转换为可读时间
date -d @1673432636

cal(calendar)命令用于查看日历:

# 显示当前月日历
cal# 显示2024年全年日历
cal 2024# 显示包含上月、本月、下月的日历
cal -3# 显示当天是当年的第几天
cal -j
2.4.4 系统信息(uname)

uname用于查看系统内核信息:

# 显示内核版本
uname -r# 显示所有系统信息
uname -a# 查看操作系统版本(部分发行版支持)
lsb_release -a

2.5 搜索与文本处理

2.5.1 文件搜索(find)

find在目录树中搜索文件,常用选项:

  • -name:按文件名搜索
  • -type:按文件类型搜索(f:普通文件,d:目录,l:链接)
  • -size:按文件大小搜索
  • -mtime:按修改时间搜索

示例

# 在当前目录搜索test.c文件
find . -name "test.c"# 在/home下搜索所有目录
find /home -type d# 搜索大于100MB的文件
find / -size +100M# 搜索近7天修改过的文件
find /var/log -mtime -7
2.5.2 文本搜索(grep)

grep用于在文件中搜索字符串,支持正则表达式:

  • -i:忽略大小写
  • -n:显示行号
  • -v:反向匹配(显示不包含关键词的行)
  • -r:递归搜索目录

示例

# 在文件中搜索关键词
grep "error" app.log# 忽略大小写搜索
grep -i "warning" system.log# 显示行号并反向匹配
grep -vn "debug" debug.log# 递归搜索目录中的关键词
grep -r "config" /etc/

2.6 压缩与打包

2.6.1 zip/unzip(知道)

zipunzip用于处理 ZIP 格式压缩文件:

# 压缩目录
zip -r docs.zip documents/# 解压到指定目录
unzip docs.zip -d /tmp/
2.6.2 tar(重要)

tar是 Linux 最常用的打包工具,支持多种压缩算法:

  • -c:创建打包文件
  • -x:解包
  • -t:查看包内文件
  • -z:使用 gzip 压缩 / 解压
  • -j:使用 bzip2 压缩 / 解压
  • -v:显示过程
  • -f:指定文件名
  • -C:指定解压目录

示例

# 打包目录(不压缩)
tar -cvf data.tar data/# 用gzip压缩
tar -zcvf logs.tar.gz /var/log/# 用bzip2压缩
tar -jcvf docs.tar.bz2 documents/# 查看压缩包内容
tar -ztvf logs.tar.gz# 解压到指定目录
tar -zxvf logs.tar.gz -C /tmp/# 仅解压包中的特定文件
tar -zxvf docs.tar.bz2 README.md

三、Linux 权限管理系统

3.1 权限的核心概念

        Linux 是多用户操作系统,权限系统确保不同用户对资源的访问受到合理控制。权限管理基于三个维度:

  • 访问者分类

    • u(User):文件所有者
    • g(Group):所有者所在组的用户
    • o(Others):其他用户
    • a(All):所有用户
  • 文件类型

    • d:目录
    • -:普通文件
    • l:软链接(快捷方式)
    • b:块设备文件(如硬盘)
    • c:字符设备文件(如终端)
    • p:管道文件
    • s:套接口文件

3.2 基本权限表示

Linux 为每种访问者分配三种基本权限:

权限字符表示数字表示文件含义目录含义
r4可读取文件内容可列出目录内容
w2可修改文件内容可创建 / 删除目录内文件
执行x1可执行文件可进入目录
无权限-0无对应权限无对应权限

        权限组合采用三位数表示(类似八进制如755),第一位表示所有者权限,第二位表示组权限,第三位表示其他用户权限。例如:

  • rwxr-xr-x(755):所有者拥有全部权限,组和其他用户有读和执行权限
  • rw-r--r--(644):所有者有读写权限,组和其他用户仅有读权限

3.3 权限修改命令

3.3.1 chmod:修改文件权限

chmod用于修改文件或目录的权限,支持两种修改方式:

符号法chmod [u/g/o/a][+/-/=][r/w/x] 文件名

# 给所有者增加执行权限
chmod u+x script.sh# 移除其他用户的写权限
chmod o-w data.txt# 给所有用户设置读写权限
chmod a=rw config.ini# 递归修改目录权限
chmod -R g+rx docs/

数字法chmod 三位数字 文件名

# 设置权限为rw-r--r--
chmod 644 article.txt# 设置目录权限为rwxr-x---
chmod 750 project/# 递归设置目录及内容权限
chmod -R 775 shared/
3.3.2 chown:修改所有者

chown用于修改文件的所有者(仅 root 或文件所有者可执行):

# 改变文件所有者
chown alice report.txt# 同时改变所有者和所属组
chown bob:devs data.csv# 递归修改目录所有者
chown -R www:www /var/www/
3.3.3 chgrp:修改所属组

chgrp用于修改文件的所属组:

# 改变文件所属组
chgrp devs code.c# 递归修改目录所属组
chgrp -R admins docs/

3.4 权限掩码(umask)

umask 用于设置新建文件和目录的默认权限,其值为 "要去掉的权限"。计算方式为:

  • 新建文件默认权限:0666 & ~umask(文件默认无执行权限)
  • 新建目录默认权限:0777 & ~umask

示例

# 查看当前umask
umask# 设置umask(root默认0022,普通用户默认0002)
umask 002# 验证:新建文件权限为664(666-002)
touch test.txt
ls -l test.txt  # -rw-rw-r--

3.5 特殊权限:粘滞位

        在默认权限下,只要用户对目录有写权限,就可以删除目录中的任何文件,无论该文件的所有者是谁。为解决此问题,Linux 引入粘滞位(Sticky Bit):

  • 目录设置粘滞位后(权限末尾显示t),仅以下用户可删除文件:
    1. 超级管理员(root)
    2. 目录所有者
    3. 文件所有者

操作示例

# 给目录添加粘滞位
chmod +t /tmp# 查看权限(显示drwxrwxrwt)
ls -ld /tmp# 移除粘滞位
chmod -t /tmp

系统临时目录/tmp默认设置粘滞位,确保普通用户不能删除他人文件。

3.6 sudo 权限管理(需要学习vim工具,后续会讲)

sudo 允许普通用户临时执行 root 权限命令,配置步骤:

  1. 修改 sudo 配置文件(需 root 权限):
chmod 740 /etc/sudoers
vi /etc/sudoers
  1. 添加权限配置(格式:用户名 主机=(执行用户) 命令):
# 允许alice执行所有命令
alice ALL=(ALL) ALL# 允许bob仅执行useradd和userdel命令
bob ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel
  1. 普通用户使用 sudo 执行命令:
# 以root权限创建用户
sudo -u root useradd newuser

四、Linux 常用进阶操作

4.1 管道与重定向

  • 重定向:改变命令输出方向

    • >:覆盖写入文件
    • >>:追加写入文件
    • <:从文件读取输入
  • 管道:将一个命令的输出作为另一个命令的输入(|

示例

# 将命令输出写入文件
ls -l > filelist.txt# 追加输出到文件
echo "new line" >> notes.txt# 统计文件行数
cat large_file.txt | wc -l# 搜索进程并显示详细信息
ps aux | grep "nginx"

4.2 系统进程管理(top)

top用于实时监控系统进程和资源占用:

  • -d:设置刷新间隔(秒)
  • -n:设置刷新次数

操作快捷键

  • q:退出
  • P:按 CPU 使用率排序
  • M:按内存使用率排序
  • k:终止指定进程
  • h:显示帮助

示例

# 每2秒刷新一次,共刷新5次
top -d 2 -n 5

4.3 别名设置(alias)

alias用于创建命令别名,简化复杂操作:

# 设置别名
alias ll='ls -alF'
alias rm='rm -i'  # 删除前自动询问# 查看别名
alias# 取消别名
unalias ll

永久生效需将别名添加到~/.bashrc~/.bash_profile文件。

4.4 文件传输(rz/sz)

通过 XShell 在 Windows 和 Linux 间传输文件:

# 安装工具
sudo yum install -y lrzsz# 上传文件(从Windows到Linux)
rz  # 执行后选择本地文件# 下载文件(从Linux到Windows)
sz filename.txt

五、权限管理实践案例

5.1 网站目录权限配置

为确保 Web 服务器安全,合理配置目录权限:

# 创建网站根目录
mkdir -p /var/www/example.com# 设置所有者为www-data(Web服务用户)
chown -R www-data:www-data /var/www/example.com# 目录权限:所有者读写执行,组读执行,其他无权限
find /var/www/example.com -type d -exec chmod 750 {} \;# 文件权限:所有者读写,组读,其他无权限
find /var/www/example.com -type f -exec chmod 640 {} \;

5.2 多用户协作目录

创建团队共享目录,确保成员可读写但不能删除他人文件:

# 创建共享目录
mkdir /team/share# 设置所属组为dev
chgrp -R dev /team/share# 允许组内用户读写,添加粘滞位
chmod -R 775 /team/share
chmod +t /team/share

5.3 日志文件权限控制

确保日志文件可被服务写入,同时仅管理员可查看:

# 创建日志目录
mkdir /var/log/app# 设置所有者为应用用户,所属组为adm
chown -R appuser:adm /var/log/app# 目录权限:所有者全权限,组读执行,其他无
chmod 750 /var/log/app# 日志文件权限:所有者读写,组读,其他无
chmod 640 /var/log/app/*.log

六、总结与扩展学习

        Linux 指令和权限管理是系统运维的基础,掌握这些知识不仅能提高工作效率,更能构建安全可靠的系统环境。学习建议:

  1. 刻意练习:通过实际操作记忆指令,避免死记硬背
  2. 查看手册:善用man命令查询参数细节
  3. 理解原理:不仅要知道 "怎么做",更要理解 "为什么"
  4. 安全意识:操作权限和删除命令时务必谨慎,养成备份习惯

        进阶学习方向:Shell 脚本编程、Linux 内核原理、容器化技术(Docker)等,这些都需要扎实的 Linux 基础作为支撑。

        Linux 的开源生态和丰富工具链为技术人员提供了无限可能,持续探索和实践,才能真正发挥其强大能力。

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

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

相关文章

深度学习-167-MCP技术之工具函数的设计及注册到MCP服务器的两种方式

文章目录 1 MCP协议概述 1.1 MCP的原理 1.2 两种主要的通信模式 2 工具函数的设计与实现 2.1 tools.py(工具函数) 2.2 工具函数的设计原则 2.3 工具函数的测试 3 MCP服务器的构建与配置 3.1 安装mcp库 3.2 main.py(MCP服务器) 3.2.1 方式一(add_tool方法) 3.2.2 方式二(@mcp.to…

哈希:两数之和

问题描述&#xff1a;在一个整数数组中&#xff0c;找到两数之和为target的两个值&#xff0c;返回找到的两个值的下标。 nums[3,3] target6 返回&#xff1a;[0,1] 说明&#xff1a;返回结果&#xff0c;索引无顺序要求&#xff1b;有唯一的答案&#xff1b;不能使用两次相…

PHP反序列化的CTF题目环境和做题复现第5集_POP链构造4

1 题目 下载yii2.0.37版本,https://github.com/yiisoft/yii2/releases/tag/2.0.37 放在phpstudy的www目录下或ubuntu的/var/www/html的目录下。 3 EXP <?php namespace PHPUnit\Framework\MockObject{class MockTrait {private $classCode = "system(whoami);php…

广东省省考备考(第八十一天8.19)——资料分析、数量(强化训练)

资料分析 错题解析解析解析解析解析今日题目正确率&#xff1a;67% 数量&#xff1a;数学运算解析解析解析标记题解析今日题目正确率&#xff1a;80%

决策树剪枝及数据处理

一、核心决策树算法&#xff08;3 类主流算法&#xff09;1. ID3 算法&#xff1a;用 “信息增益” 选属性ID3 是决策树的 “开山鼻祖” 之一&#xff0c;它的核心逻辑是 “选能让数据最‘纯’的属性”—— 这里的 “纯” 用 “信息增益” 衡量。简单说&#xff0c;“信息增益”…

Ansible 角色管理

环境准备# 创建一个叫web的文件夹并进入&#xff08;相当于新建一个工作目录&#xff09;[lykcontroller ~]$ mkdir web && cd web​# 创建Ansible的配置文件ansible.cfg[lykcontroller web]$ cat > ansible.cfg <<EOF[defaults]remote_user lykinventory .…

Java面试准备指南!

现在已经是8月中旬了&#xff0c;秋招马上就要开始了&#xff0c;不知道大家准备好了吗&#xff1f;现阶段找工作真的是千军万马过独木桥&#xff0c;没有真本事&#xff0c;真的会被淘汰掉&#xff0c;现实就是如此的残酷&#xff01; 为了能够帮助到大家在秋招Java面试中脱颖…

Encoder-Decoder Model编码器-解码器模型

Encoder-Decoder编码器-解码器是一种深度学习模型&#xff0c;应用于图像处理、语音识别、自然语言处理等领域。主要由编码器和解码器两部分组成&#xff0c;这种结构能够处理序列到序列的任务。编码器-解码器模型具备独特的双阶段处理&#xff0c;先对输入信息进行编码&#x…

Python函数总结

目录 一、普通函数 1.1 函数的定义与调用 1.2 函数的说明文档 1.3 函数的参数 1.4 函数的返回值 二、函数的作用域和关键字 2.1 局部作用域 2.2 全局作用域 2.4 global关键字和nonlocal关键字的使用 三、函数的递归与嵌套 3.1 嵌套函数 3.2递归函数 四、函数名的应…

sqlite-gui:一款开源免费、功能强大的SQLite开发工具

sqlite-gui 是一个轻量级的 SQLite 编辑器&#xff0c;基于 C/mingw64/WinAPI 开发&#xff0c;支持 Windows 平台。 sqlite-gui 是一个免费开源的项目&#xff0c;代码托管在 GitHub&#xff1a; https://github.com/little-brother/sqlite-gui 功能特性 支持 SQL 语法高亮…

Ethan独立开发新品速递 | 2025-08-19

每日精选Product Hunt上最值得关注的独立产品&#xff0c;发现全球创新灵感&#xff0c;助力你的产品成长。 下面挑选出对独立开发者最有参考价值的 10 个项目&#xff0c;侧重开发工具、AI 工具、SaaS 和创业支持类产品&#xff0c;去除娱乐、小众垂直和大公司产品。每条保留原…

从 Hive 数仓出发,全面剖析 StarRocks、MySQL、HBase 的使用场景与区别

以 Hive 数仓为底座,深入理解 StarRocks、MySQL 和 HBase 的区别与使用场景 一、前言 在现代大数据架构中,Hive 通常作为离线数仓的核心底座,负责批量数据的接入、清洗、计算与存储。然而,为了满足 实时计算、低延迟查询、业务交互型操作和高并发存储 等不同需求,我们往…

低延迟、跨平台与可控性:直播SDK的模块化价值解析

引言 音视频直播已经从单纯的娱乐应用&#xff0c;成长为产业级的实时交互基础设施。无论是安防监控的秒级告警联动、工业巡检的远程可视化操作&#xff0c;还是智慧教育中的多终端互动课堂、远程医疗里的超低延迟手术协作&#xff0c;都离不开一条低延迟、高稳定性、跨平台可…

JVM参数优化

JVM 参数优化是提升 Java 应用性能、减少 GC 停顿、避免 OOM&#xff08;内存溢出&#xff09;等问题的核心手段。优化的核心目标是平衡内存使用、GC 效率与应用响应速度&#xff0c;需结合应用类型&#xff08;如 Web 应用、批处理应用&#xff09;、业务场景&#xff08;如高…

pytest高级用法之插件开发

背景 pytest&#xff0c;python全功能测试框架&#xff08;用某句名言&#xff0c;甩unittest几条街&#xff09;&#xff0c;钩子函数、pytest插件、pytest装饰器都能扩展pytest。 提及pytest高级用法&#xff0c;不得不说pytest插件&#xff0c;例如assert断言失败继续断言…

cesium中实时获取鼠标精确坐标和高度

/*** 获取鼠标位置的三维坐标(包含高度信息)* @param {Cesium.Cartesian2} position 鼠标位置* @returns {Cesium.Cartesian3|null} 三维坐标*/ function getMousePosition(position) {if (!position) return null;

Netty 集成 protobuf

什么是 Protobuf Protobuf(Protocol Buffers)是 Google 开发的一种高效、语言中立、平台中立的序列化协议,用于在不同系统或语言之间传输结构化数据。开发者通过 .proto 文件定义消息结构,再使用生成的类进行序列化(转为紧凑的二进制数据)和反序列化(还原为对象),相比…

程序调用 AI 大模型 -- Java

程序调用 AI 大模型 – Java 1、SDK 接入 安装阿里云百炼SDK_大模型服务平台百炼(Model Studio)-阿里云帮助中心 <dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><!-- 请将 the-latest-version 替…

VMware 虚拟机完全使用教程:从基础到高级应用

VMware 虚拟机完全使用教程&#xff1a;从基础到高级应用 一、引言 在当今数字化时代&#xff0c;计算机技术的飞速发展使得硬件性能不断提升&#xff0c;但同时也带来了资源浪费和管理复杂等问题。虚拟机技术应运而生&#xff0c;它能够在一台物理计算机上模拟出多台独立的计…

函数对象 vs 函数指针 vs lambda:该用哪个才高效?

博主介绍&#xff1a;程序喵大人 35 - 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章&#xff0c;首发gzh&#xff0c;见文末&#x1f447;&#x…