决战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
  • 注意:
    1. 归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小
    2. 压缩会用到压缩算法,文件总体会变小。
  • 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版本,尽情享受输入命令按下回车的感受吧!

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

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

相关文章

C语言 sizeof 的介绍,以及sizeof计算数组名、 数组首地址、数组的元素之间的区别

一、sizeof 介绍 sizeof 是 C 语言中的一个运算符,用于计算数据类型或变量在内存中占用的字节数。用于计算数据类型或变量所占的内存大小,以字节为单位。它可以在编译时计算其操作数的大小,并返回一个 size_t 类型的值。它可以帮助了解不同类…

WebGL 小白入门学习

1. WebGL是什么? WebGL(Web Graphics Library)是一种JavaScript API,它允许你在不需要安装任何额外插件的情况下,直接在浏览器中渲染高性能的2D和3D图形。WebGL利用了用户的图形处理单元(GPU)来…

统信桌面专业版【手动分区安装UOS系统】介绍

统信桌面专业版【手动分区安装UOS系统】介绍 全文导读功能概述准备环境安装步骤注意事项 💐The Begin💐点点关注,收藏不迷路💐 全文导读 本文旨在详细介绍在安装UOS系统时采用手动分区的方法。虽然全盘安装通常是推荐的安装方式&…

实战篇:(四)Vue2 + Three.js 创建可交互的360度全景视图,可控制旋转、缩放完整代码

Vue2 Three.js 创建可交互的360度全景视图,可控制旋转、缩放 引言 在现代网页开发中,三维图形技术已经成为提升用户体验的重要工具。本文将展示如何使用 Three.js 创建一个简单的可交互360度全景视图。通过这一项目,你将能够学习到基本的场…

hadoop集群搭建-安装虚拟机

2.1 安装虚拟机 在本地搭建集群就需要这么几个事 装虚拟机 安装环境 配置集群 启动 这篇博客主要就是讲的装虚拟机这一个环节的 装虚拟机就是和组装一台现实中的电脑一样,首先来说就是要有硬件,就是组装硬件,然后就是装系统&#xff…

Kind部署的K8s证书过期后的解决方案

证书通常有效期为1年,一年后服务将不可用解决方案就是更新证书 1. 找到 Kind 集群的控制平面容器名称,容器名称不一定是这个 docker ps --filter "namekind-control-plane"2. 进入 Kind 控制平面的容器: docker exec -it kind-control-plane…

javascript object

用const去define一个constant 用let (如果要reassign的话) 一个变量。

Redis-缓存一致性

缓存双写一致性 更新策略探讨 面试题 缓存设计要求 缓存分类: 只读缓存:(脚本批量写入,canal 等)读写缓存 同步直写:vip数据等即时数据异步缓写:允许延时(仓库,物流&a…

解锁C++继承的奥秘:从基础到精妙实践(下)

文章目录 前言🥐五、多继承,菱形继承和菱形虚拟继承🧀5.1 多继承🧀5.2 菱形继承🧀5.3 虚拟继承(解决菱形继承问题)5.3.1 虚拟继承的语法:5.3.2 虚拟继承示例: &#x1f9…

springboot 整合 快手 移动应用 授权 发布视频 小黄车

前言: 因快手文档混乱,官方社区技术交流仍有很多未解之谜,下面3种文档的定义先区分。 代码中的JSON相关工具均用hutool工具包 1.快手 移动双端 原生SDK 文档https://mp.kuaishou.com/platformDocs/develop/mobile-app/ios.html 2.快手 Api 开…

Elasticsearch设置 X-Pack认证,设置账号和密码

前言 以下Elasticsearch版本:7.9.3 ES自带的X-Pack密码验证: X-Pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,所以我们想要开启账号密码验证…

网优学习干货:王者荣耀游戏用户体验洞察及质差识别(1)

一、课题背景 二、课题目的 针对热点游戏(王者荣耀)进行业务质量评估,并通过对端到端定界分析,从无线、核心网、互联网维度识别影响用户体验关键因素,为游戏用户的体验优化提供依据。 三、课题实施进度 王者荣耀卡顿特…

linux------缓冲区与C库的原理

前言 一、缓冲区 缓冲区的作用是提高效率,因为将数据写入到设备,是需要调用系统接口的,如果每次写入缓冲区的数据就调用一次系统调用,涉及到系统调用这时操作系统就会介入,用户态转为内核态,这个过程需要时…

linux 搭建sentinel

1.下载 linux执行下面的命令下载包 wget https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar2.启动 nohup java -Dserver.port9090 -Dcsp.sentinel.dashboard.serverlocalhost:9090 -Dproject.namesentinel-dashboard -jar sentin…

k8s中控制器的使用

一、replicaset控制器 ReplicaSet 是下一代的 Replication Controller,官方推荐使用ReplicaSet ReplicaSet和Replication Controller的唯一区别是选择器的支持,ReplicaSet支持新的基于集合的选择器需求 ReplicaSet 确保任何时间都有指定数量的 Pod 副…

Metasploit渗透测试之攻击终端设备和绕过安全软件

概述 在之前,重点讨论了针对服务器端的利用。但在当下,最成功的攻击都是针对终端的;原因是,随着大部分安全预算和关注都转向面向互联网的服务器和服务,越来越难找到可利用的服务,或者至少是那些还没有被破…

数据库设计与开发—初识SQLite与DbGate

一、SQLite与DbGate简介 (一)SQLite[1][3] SQLite 是一个部署最广泛、用 C 语言编写的数据库引擎,属于嵌入式数据库,其作为库被软件开发人员嵌入到应用程序中。 SQLite 的设计允许在不安装数据库管理系统或不需要数据库管理员的情…

一篇文章快速认识YOLO11 | 关键改进点 | 安装使用 | 模型训练和推理

前言 本文分享YOLO11的关键改进点、性能对比、安装使用、模型训练和推理等内容。 YOLO11 是 Ultralytics 最新的实时目标检测器,凭借更高的精度、速度和效率重新定义了可能性。 除了传统的目标检测外,YOLO11 还支持目标跟踪、实例分割、姿态估计、OBB…

深入理解 C/C++ 指针

深入理解 C 指针:指针、解引用与指针变量的详细解析 前言 在 C 编程语言中,指针 是一个非常强大且重要的概念。对于初学者来说,指针往往会让人感到困惑不解。本文将通过形象的比喻,帮助大家深入理解指针、解引用与指针变量的概念…

【算法】哈希表:49.字母异位词分组

目录 1、题目链接 2、题目介绍 3、解法 初始化设定--图解 步骤图解 4、代码 1、题目链接 49. 字母异位词分组 - 力扣(LeetCode) 2、题目介绍 3、解法 字母异位词的本质是字符相同但排列不同。因此,我们可以对字符串进行排序&#xf…