01Linux基础

news2024/10/6 5:59:17

附件:day26–linux入门.pdf

Linux是 基于Unix 的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。 (程序基本上在Linux上发布

Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机(苹果就是基于Linux, Android 最底层是Linux)、平板电脑、路由器等。

Linux基础

unix:

unix是一个 多用户,多任务 的操作系统 ,收费 的操作系统.(当时比Windows更小,更安全(win也收钱))

linux:

  • Linux根据 市场需求(谁用) 不同,两个方向:
    • 图形化界面版 :注重用户体验,类似window操作系统,但目前成熟度不够 ;
    • 服务器版 :没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似 于DOS,是我们架设服务器的最佳选择(性能高一点);
  • Linux根据 原生程度 ,又分为两种:
    • 内核版本 :是指在Linus领导下的内核小组开发维护的系统内核的版本号 ;(免费)
    • 发行版本 :是一些组织和公司根据自己发行版的不同而自定的 (类似盗版,不一定免费);
      (windows也有发行版了,但是不合法)
  • Linux 发行版本 不同,又可以分为n多种:

在这里插入图片描述

其中:

  • ubuntu:图形界面好一点(基本没用的);
  • centos :开源的免费的os( 服务器版用的多, 开源 :安全,常用)
  • redhat:
  • 中标麒麟:
  • 红旗Linux:收费(倒闭了)

安装Linux

安装虚拟机

  • 虚拟机: 就是一台电脑
    通过虚拟机软件可以在自己的电脑再安装几个电脑
  • 常见的虚拟机软件:
    • VmWare :(威睿公司)功能强大,收费产品
    • virtualBox : oracle公司( 免费的, 有的电脑不能用)
  • Linux 系统的应用:
    • 服务器系统:Web 应用服务器、数据库服务器、 接口服务器、 DNS 、 FTP 等等;
    • 嵌入式系统:路由器、防火墙、手机、 PDA 、 IP 分享器、交换器、家电用品的微电脑控制器等等,
    • 高性能运算、计算密集型应用:Linux 有强大的运算能力。
    • 桌面应用系统
    • 移动手持系统

linux的目录结构

在这里插入图片描述

  • bin :存放二进制可执行文件(mv,cp等命令文件);
  • sbin :存放二进制可执行文件,只有root才能访问;
  • etc :存放系统配置文件 ;( 在etc下有profile文件时配置环境变量
  • usr(可以放软件,一般放到local文件夹中) :用于存放共享的系统资源;( 存放共享的系统资源,一般都把软件/文件放到usr中
  • home :存放用户的根目录:
    • 每个用户的根目录的存放位置;,在home下创建每个用户的根目录
    • 例如:一个用户tom,在home就会存在tom目录;
  • sbin:超级用户,管理员管理程序
  • root :超级用户目录;(root的home)
  • dev :用于存放设备文件;
  • lib :存放跟文件系统中的程序运行所需要的动态连接共享库及内核模块(类似Windows的DLL文件,几乎所有的应用程序都需要用这些共享库);
  • mnt :系统管理员安装临时问价系统的安装点;系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
  • boot :存放用于系统引导时使用的各种文件;
  • tmp :用于存放各种临时文件;
  • var :用于存放运行时需要改变数据的文件;
  • opt: 一般放安装包
  • lost+found:一般是空的,系统非法关机之后,存放文件
  • boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  • 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件- – proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
  • srv:service缩写,该目录存放一些服务启动之后需要提取的数据。
  • sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统
  • media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • selinux:SELinux是一种安全子系统,它能控制程序只能访问特定文件(类似360)。

linux的命令

基础命令

登录:
  • login 后输入root,回车 123456(密码,不会显示)
    在这里插入图片描述

登录成功

在这里插入图片描述
,这里的~就代表root

查看帮助:
  • man 命令 : 进入命令 比如man cd
  • 空格: 翻页
  • 退出帮助目录: q
  • 清空屏幕Ctrl+l 或输入clear

目录操作命令

显示所在目录:

pwd :显示所在文件层次

切换目录:cd
  • cd 目录 :进入文件夹
  • cd 目录/目录 :进入 多层 文件夹
  • cd /目录 :进入根目录下的目录中
  • cd .. (或 cd ../) :上一级目录(有空格)
  • cd / :根目录
  • cd ./ :当前目录;
  • cd ~ :回家(回到home中用户目录(root用户会进入root))
    默认在root目录中,先 cd / 到根目录,再进其他目录
  • cd - :相当于返回键(返回上一个目录)
创建目录
  • mkdir 创建
  • mkdir 目录名 :创建一层
    mkdir /test/ss 在根目录/test目录下创建ss目录(/test目录必须之前存在)
  • mkdir -p a/b/c :创建多层目录 a/b/c (用-p)
删除目录

rmdir 删除

  • rmdir 目录名 :只能删除 一个空目录(只能删除一级 ,必须是空的
  • rm 目录: 只能删除 一个空目录
  • rm -r 目录 :删除目录(同时删除子文件,每删除一个文件都要询问)
  • rm -rf 目录 : 删除目录(** 强制删除 **,不询问)

示例:删除/usr下的newTest,进入/usr下使用rm -r newTest
在这里插入图片描述

示例:删除/test下的newTest而不需要询问强制删除,在/test下使用rm -rf newTest

在这里插入图片描述

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包

展示目录下文件列表 (以后使用 ll 即可)
  • ls:展示的能看见的 文件(和目录)的名称
  • ls -a: 展示 所有 的文件的名称
    文件前面有 “.” 代表的是 隐藏 文件
  • ls -l: 显示文件的 详细信息
    简写的方式 : **ll**(效果与ls -l一致)

在这里插入图片描述

  • 开头类型: -代表文件,d代表目录(文件夹)
  • 9位 :权限
  • 4002等数字:文件大小
  • 最后:文件名称
  • ll -h : 友好的显示
    在这里插入图片描述

大小显示为k;

浏览文件(查看具体内容)
  • cat:显示文件的所有内容
    cat 文件名 (按tab自动补全文件名)
    缺点: 内容太长时,只显示最后的内容
  • more: 分页显示
    空格: 下一页
    回车 :下一行
    q:退出查看
    缺点: 翻页后不能看前方内容
  • less: 分页显示
    可以通过PgUp PgDn 翻页查看
    按q退出
  • **tail**
    查看一个文件的后面的内容
    • tail -显示后面n行 文件名
    • tail -f 文件名 : 动态的查看
      例如:
tail -f catalina.xxx.log
  • Ctrl+c: 退出查看;
查找目录
  • find 目录 参数
    示例:查找/root下的与test相关的目录(文件) find /root -name '*test*'
    *代表模糊查找
修改目录的名称

mv 目录名称 新目录名称

示例:

test目录下有一个oldTest目录,改名为newTest
mv oldTest newTest

注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作

移动目录的位置—剪切

mv 目录名称 目录的新位置

示例:

在test下将newTest目录剪切到 /usr下面,
mv newTest /usr
拷贝目录

cp -r 目录名称 目录拷贝的目标位置 -----r代表递归拷贝 (子文件同时拷贝)

示例:

将/usr下的newTest拷贝到根目录下的test中,
cp -r /usr/newTest /test

注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等, 拷贝文件和压缩包时不 用写-r递归

文件的操作

创建 一个文件
  • touch 文件名:创建一个空白的文件

示例:

在 test目录下创建一个空文件
touch aaa.txt
复制 文件
  • cp 源文件 目录/新文件名

例如:

cp 1.txt 2.txt   #在同一个文件夹下,复制,名字 2.txt
cp 1.txt 1/1.txt    # 复制到下一级文件夹1中, 名字1 .txt
移动 文件(重命名)mv
  • mv 文件 目录/新文件名
  • mv 文件名 新文件名
删除 文件 rm
  • rm 文件名 : 带询问删除 文件
  • rm -f 文件名: 不带询问删除 ----直接删除;
  • **rm -r 目录 **: 带询问的递归删除:删除 文件夹
  • ** rm -rf 目录**: 不带询问的递归删除(谨慎使用)
  • ** rm -rf** * : 删除所有目录;
  • **rm -rf /_ _ : 自杀(不要用);
查看文件内容 :
  • cat 文件: 只能显示 最后一屏 内容
    -more 文件 : 可以显示 百分比回车可以向下一行,** 空格**可以向下一页,q可以退出查看
    在这里插入图片描述

  • less 文件: 查看/etc/sudo.conf文件,可以使用 键盘上的PgUp和PgDn向上和向下翻页 , q结束查看

  • tail -数字n 文件: 查看文件后n行, Ctrl+C结束

tail -10 sudo.conf   # 查看/etc/sudo.conf文件的 后10行 ,
tail -f catalina-2016-11-11.log #监控文件的变化    动态变化

注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化

修改文件的内容vim,vi

vim 文件

示例:编辑/test下的aaa.txt文件,使用vim aaa.txt

点击键盘 i/a/o(一般用i) 进入编辑模式,可以 编辑文件

  • i:插入模式 :在后方插入
  • 退出编辑 模式:按下 Esc ,退回命令模式;
  • ** 保存** ::wq保存并退出;
  • 退出,不保存 : :q!
打包/解压(文件/目录)tar
  • tar 参数 文件名(打包之后显示文件名) 要打包|解压的文件目录

常用的组合

  • - cvf :打包一个文件或者目录(不压缩)
  • - zcvf: 打包并压缩一个文件或者目录 压缩的格式:gzip,或 .tar.gz
  • - xvf: 解压或者打开一个tar文件: tar -xvf xxx.tar.gz
  • -c:创建一个新tar文件
  • -v:显示运行过程的信息
  • -f:指定文件名
  • -z:调用gzip压缩命令进行压缩
  • -t:查看压缩文件的内容
  • -x:解开tar文件

例如:

  • 打包:
tar -cvf test1.tar ./*   #将当前目录下的 所有文件 打包成 test 1.tar:
tar -zcvf test2.tar.gz ./*   #将当前目录下的所有文件打包并压缩成test2.tar.gz:
  • 解压:
tar -xvf test1.tar  # 将test1.tar解压到当前目录
tar -xvf test1.tar -C b  # 将test1.tar解压到b目录

其他的常用命令

搜索: grep :查找文件内部字符串;

查找符合条件的字符串(★),显示这一行内容,类似ctrl+f

  • grep 字符串 文件 :从文件中搜索字符串
  • grep 字符串 文件 -- color :从文件中搜索字符串,并高亮显示
  • grep 字符串 文件 -- color --B2 : 高亮显示本行和上两行
  • grep 字符串 文件 -- color --A2 :高亮显示本行和下两行

示例 :

grep lang anaconda-ks.cfg  在文件中 查找 lang
grep lang anaconda-ks.cfg -- color 高亮 显示(两道-)
grep lang anaconda-ks.cfg --color -- A2   高亮 显示3行(本行和下两行)
grep lang anaconda-ks.cfg --color --B2 (三行,本行和前两行)

在这里插入图片描述

pwd : 显示 当前的工作目录
wget:下载 资料

wget 资源路径

wget http://nginx.org/download/nginx-1.9.12.tar.gz

&& 命令执行控制:
  • 命令之间使用&& 连接,实现逻辑与的功能。
  • 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
  • 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。

示例:

mkdir test && cd test   创建目录test,进入目录test;
查看进程:ps -ef
  • ps -ef: 查看 当前系统中运行的进程
  • ps –ef | grep ssh:查找某一进程
杀死进程 kill
  • kill pid:杀掉某一进程
  • kill -9 进程pid:杀死进程,强制杀死进程
清屏 clean或 ctrl+l
网络管理
  • ifconfig :查看所有的网络设置,查看IP地址;
  • ifconfig 网卡名称 down : 禁用网卡
  • ifconfig 网卡名称 up : 启用网卡

在这里插入图片描述

  • ping :和window中一样,查看网络是够通畅;

会一直连接着,要 通过 ctrl+c 取消

  • netstat 查看网络 端口 。 netstat -an
  • netstat -an | grep 3306 查询3306端口占用情况

在这里插入图片描述

网卡配置:

查看网卡配置:cat /etc/sysconfig/network-scripts/ifcfg-etho
在这里插入图片描述

若是网卡不能用,可以手动配置------将红色部分写入这个文件中

管道 |

作用是 将一个命令的输出用作另一个命令的输入;
运行命令1,结果用命令2使用

例如:
ifconfig | grep 192.168 在ifconfig的结果里查找 192.168字符串

常用:

  • ps -ef | grep java 查找和java相关的 进程
  • ps -ef | grep 3306 查找和3306相关的信息

其中:ps -ef 查找现在进程

系统管理命令

命令描述
date显示当前系统时间
date -s “2014-01-01 10:10:10”设置系统时间
命令描述
df显示 磁盘 信息
df –h友好显示大小在这里插入图片描述
命令描述
free显示 内存 状态
free –m以mb单位显示内存在这里插入图片描述
命令描述
top显示管理执行中的程序,类似任务管理器;动态改变;
命令描述
du显示目录或文件的大小
du –h显示当前目录的大小
命令描述
who显示目前登入系统的用户信息
命令描述
hostname查看当前主机名 (我定义的jsy)
修改主机名(1)vi /etc/sysconfig/network
(2)修改其中的HOSTNAME就行;(需要重启起作用)
命令描述
uname显示系统信息。(显示 Linux )
uname -a显示本机详细信息。 依次为:内核名称(类别),主机名,内核版本号,内核版本,内核编译日期,硬件名,处理器类型,硬件平台类型,操作系统名称在这里插入图片描述

vi和vim编辑器

  • 编辑普通文件
  • 在Linux下一般使用vi编辑器来编辑文件。 vi既可以查看文件也可以编辑文件。
  • vim是vi的升级版,** 关键字高亮** ;

vi概述:

  1. 三种模式命令行、插入、底行模式
  2. 进入文件:vi 文件名
  3. 模式切换
  • 切换到 命令行 模式:按 Esc 键;
  • 切换到 插入(b编辑) 模式:按 i 、o、a 键;
    • i:在当前位置前插入
    • I:在当前 行 首插入
    • a:在当前位置后插入
    • A:在当前 行 尾插入
    • o:在当前 行 之后插入一行
    • O:在当前 行 之前插入一行
  • 切换到 底行 模式:按:(冒号)
  1. 退出
  • 退出esc:q
  • 保存并退出esc:wq
  • 不保存退出esc:q!
  1. 删除dd – 快速删除一行;
  2. 替换R – 替换;

重定向输出>>>

重定向: 改变输出方式;把本来显示到控制台的内容,写入到文档中,查看文档可见;

  • > 重定向输出, 覆盖 原有内容;
  • >>重定向输出, **追加 **功能;

示例:

cat /etc/passwd > a.txt  将输出定向到a.txt中
cat /etc/passwd >> a.txt  输出并且追加
ifconfig > ifconfig.txt     ifconfig  查询的内容保存到 ifconfig.txt中,覆盖原有内容,用 cat  ifconfig.txt 可以看到内容;

若是需要管理权限的输出

sudo sh -c 'echo "hello world" > /opt/1.log'

Linux的用户和组

用户管理:

添加
  • 用户:
    • useradd 用户名:默认会在 home 目录下给一个用户创建一个目录
    • useradd 用户名 -d /home/目录: 创建一个用户然后在指定该用户的 家 目录(要在home下)
  • 密码:
    passwd 用户名 : 回车输入密码(要确认密码)
    在这里插入图片描述
删除
  • userdel 用户名 :只是删除用户 但是不删除家home目录
  • userdel -r 用户名 :删除用户连带家目录一起删除
切换用户:
  • 方法1:ssh -l 用户名 -p 22 主机(IP)

例如: ssh -l tom -p 22 192.168.17.131 再也yes,输入密码;

  • 方法2:su - 用户名(不需要输密码)
  • 退出 ,返回到root用户: exit

组管理

当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组;

添加,创建组
  • groupadd 组名
  • useradd 用户名 -g 组名:创建用户指定组
删除
  • groupdel 组名:若组下有用户,删除不了

id:查询当前用户的组信息;

查看一个用户的UID和GID

  • id
  • id 用户名
  • id [选项]… [用户名]

在这里插入图片描述

su 切换用户

用法:su [选项]… [-] [用户 [参数]… ]
示例:

su - u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
su 切换到root用户

文件

账户文件
  • /etc/passwd 用户文件
  • /etc/shadow 密码文件
  • /etc/group 组信息文件
用户文件

root:x:0:0:root:/root:/bin/bash

  • 账号名称: 在系统中是唯一的
  • 用户密码: 此字段存放加密口令
  • 用户标识码(User ID): 系统内部用它来标示用户
  • 组标识码(Group ID): 系统内部用它来标识用户属性
  • 用户相关信息: 例如用户全名等
  • 用户目录: 用户登录系统后所进入的目录
  • 用户环境: 用户工作的环境
密码文件

shadow文件中每条记录用冒号间隔的9个字段组成.

  • 用户名:用户登录到系统时使用的名字,而且是惟一的
  • 口令: 存放加密的口令
  • 最后一次修改时间: 标识从某一时刻起到用户最后一次修改时间
  • 最大时间间隔: 口令保持有效的最大天数,即多少天后必须修改口令
  • 最小时间间隔: 再次修改口令之间的最小天数
  • 警告时间:从系统开始警告到口令正式失效的天数
  • 不活动时间: 口令过期少天后,该账号被禁用
  • 失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
  • 标志:未使用
组 文件

root:x:0:

  • 组名:用户所属组
  • 组口令:一般不用
  • GID:组ID
  • 用户列表:属于该组的所有用户

Linux的权限命令

权限是 Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限

示例:在随意某个目录下 ls -lll
在这里插入图片描述

第一列的内容的信息解释如下: 文件的权限:

在这里插入图片描述

Linux三种文件类型

  • d :代表目录
  • - :代表文件
  • l :代表链接(可以认为是window中的快捷方式)

后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的用户的权限,其他用户的权限

  • r: 代表权限是可读,r也可以用数字4表示
  • w: 代表权限是可写,w也可以用数字2表示
  • x: 代表权限是可执行,x也可以用数字1表示
    | 主user | 主user | 主user | group | group | group | 其他用户 | 其他用户 | 其他用户 |
    | — | — | — | — | — | — | — | — | — |
    | r | w | x | r | w | x | r | w | x |
    | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |

在这里插入图片描述

文件类型标识

通过ll展示

  • 普通文件(-
  • 目录(d
  • 符号链接(l
  • * 进入etc可以查看,相当于快捷方式
  • 字符设备文件(c)
  • 块设备文件(s)
  • 套接字(s)
  • 命名管道(p)

文件权限管理, 修改权限

chmod 变更文件或目录的权限。(2种方法)
  • chmod 755 a.txt
  • chmod u=rwx,g=rx,o=rx a.txt

注意:
chmod 000 a.txt (虽然没有任何权限,但是root依然能读写执行)
chmod 777 a.txt 所有权限

chmod -R 755 *  ## 为这个文件夹中的所有文件和子文件设置权限
chown 变更文件或目录改文件所属用户和组

A用户创建的文件,其他用户无法修改权限,通过这个修改文件所属用户和组来使其他用户可以修改(要在创建文件的用户或root用户中修改);

  1. chown 用户:组 文件(变更一个文件) 变更当前的目录或文件的所属用户和组
    将root用户创建的文件的用户、组改为Jerry,Jerry用户就可以修改权限了;
chown jsy:jsy 3.txt
## 查看权限  : -rw-r--r--. 1 jsy jsy 时间 3.txt
  1. chown -R 用户:组名 目录名 :变更目录及其中的 所有的 子目录及文件的所属用户和组

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++14算法】make_unique

文章目录 前言一、make_unique函数1.1 什么是make_unique?1.2 如何使用make_unique?1.3 make_unique的函数原型如下:1.4 示例代码示例1: 创建一个动态分配的整数对象示例2: 创建一个动态分配的自定义类型对象示例3: 创建一个动态分配的数组对象示例4: 创建一个动态…

STM32 CubeMX PWM三种模式(互补,死区互补,普通)(HAL库)

STM32 CubeMX PWM两种模式(HAL库) STM32 CubeMX STM32 CubeMX PWM两种模式(HAL库)一、互补对称输出STM32 CubeMX设置代码部分 二、带死区互补模式STM32 CubeMX设置代码 三、普通模式STM32 CubeMX设置代码部分 总结 一、互补对称输…

2023.10.12

#include <iostream>using namespace std; //定义动物类 class Animal { private:string name; public:Animal(){}Animal(string name):name(name){}~Animal(){}//定义虚函数virtual void perform()0;//表演的节目void show(){cout << "Please enjoy the spec…

平衡二叉树(AVL) 的认识与实现

文章目录 1 基本1.1 概念1.2 特点1.3 构建1.4 调整1.4.1 RR1.4.1.1 示例1.4.1.2 多棵树不平衡 1.4.2 LL1.4.2.1 示例 1.4.3 LR1.4.3.1 示例 1.4.4 RL1.4.4.1 示例 1.5 实现1.5.1 示例1.5.2 完善 1 基本 1.1 概念 平衡二叉树是一棵合理的二叉排序树 解释 对于这么一个序列 如…

2023 | github无法访问或速度慢的问题解决方案

github无法访问或速度慢的问题解决方案 前言: 最近经常遇到github无法访问, 或者访问特别慢的问题, 在搜索了一圈解决方案后, 有些不再有效了, 但是其中有几个还特别好用, 总结一下. 首选方案 直接在github.com的域名上加一个fast > githubfast.com, 访问的是与github完全相…

03-RocketMQ高级原理

目录汇总&#xff1a;RocketMQ从入门到精通汇总 上一篇&#xff1a;02-RocketMQ开发模型 前面的部分我们都是为了快速的体验RocketMQ的搭建和使用。这一部分&#xff0c;我们慢下来&#xff0c;总结并学习下RocketMQ底层的一些概念以及原理&#xff0c;为后面的深入学习做准备。…

使用宝塔面板在Linux上搭建网站,并通过内网穿透实现公网访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板&#xff0c;它支持Linux/Windows系统&#xff0c;我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…

4种实现JS深拷贝的方法

浅拷贝与深拷贝 浅拷贝是创建一个新对象&#xff0c;这个对象有着原始对象属性值的拷贝。如果属性是基本类型&#xff0c;拷贝的就是基本类型的值&#xff0c;如果属性是引用类型&#xff0c;拷贝的是内存地址 。 如果不进行深拷贝&#xff0c;其中一个对象改变了对象的值&am…

使用VS2019测试cJson库

1.代码 //cJson_Test.cpp // cJson_Test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream>#include <stdio.h> #include "cJSON.h"int main(void) {cJSON* cjson_test NULL;cJSON* cjson_address NULL;cJ…

深入理解强化学习——序列决策(Sequential Decision Making)

分类目录&#xff1a;《深入理解联邦学习》总目录 在本文中我们将介绍序列决策&#xff08;Sequential Decision Making&#xff09;过程中的各个过程。 智能体与环境 强化学习研究的问题是智能体与环境交互的问题&#xff0c;下图左边的智能体一直在与下图右边的环境进行交互…

springboot农机电招平台springboot37

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

【Debian】报错:su: Authentication failure

项目场景&#xff1a; 今天我重新刷了一个debian系统。 系统版本&#xff1a; # 查看系统版本 lsb_release -a 我的系统版本&#xff1a; No LSB modules are available. Distributor ID&#xff1a;Debian Description: Debian GNU/Linux 12 &#xff08;bookworm&#xff…

使用LLM在KG上进行复杂的逻辑推理10.12

使用LLM在KG上进行复杂的逻辑推理 摘要介绍相关工作 摘要 在知识图谱上进行推理是一项具有挑战性的任务&#xff0c;这需要深度理解实体之间复杂的关系和它们关系的逻辑。而当前的方法通常依赖于学习 几何形状 以将实体嵌入到向量空间中进行逻辑查询操作&#xff0c;但在复杂查…

ChatGLM:向量化构建本地知识库原理

一、概念 1.向量&#xff1a;是有大小和方向的量&#xff0c;可以使用带箭头的线段表示&#xff0c;箭头指向即为向量的方向&#xff0c;线段的长度表示向量的大小。 2.向量化&#xff1a;将语言模型的数据转化为向量。这通常通过嵌入模型&#xff08;embedding models&#…

【算法-动态规划】0-1 背包问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

解锁 OpenAI 密钥的新利器:OpenAI Key 有效性查询工具,支持GPT4

在寻找新的创意或解决问题时&#xff0c;OpenAI 的 GPT 模型是一个强大的工具。但是&#xff0c;一旦您拥有了自己的 OpenAI 密钥&#xff0c;您可能会遇到一个常见的问题 - 如何验证您的密钥是否有效&#xff1f;这个问题可能令人困扰&#xff0c;但不必再担心了。现在&#x…

多功能按键中断

key1 开关实现led1亮灭,key2开关实现蜂鸣器开关,key3开关实现风扇开关 main.c #include "uart.h" #include "key_it.h" #include "led.h" int main() {char c;char *s;uart4_init();//串口初始化all_led_init();key_it_config();fengshan_init…

Day 05 python学习笔记

循环 应用&#xff1a;循环轮播图 最基础、最核心 循环&#xff1a;周而复始&#xff0c;谓之循环 (为了代码尽量不要重复) while循环 while的格式 索引定义 while 表达式&#xff08;只要结果为布尔值即可&#xff09;&#xff1a; 循环体 通过条件的不断变化&#xff0c;从…

1315. 网格 - 卡特兰数

1315. 网格 - AcWing题库 只要是触及上面这条红线的&#xff0c;就以第一次触及的点为起点沿红线反转&#xff0c;终点的位置与红线对称的位置可以看作触及红线的路线的终点。 yx1 横坐标容易得出时m - 1&#xff0c;&#xff08;m n&#xff09; - (m - 1)得出纵坐标n 1 …

JVM面试题:(四)四种引用方式强弱软虚

四种引用方式&#xff1a; 强引用 强引用是平常中使用最多的引用&#xff0c;强引用在程序内存不足&#xff08;OOM&#xff09;的时候也不会被回收&#xff0c;使用 方式&#xff1a; String str new String(“str”); System.out.println(str); 软引用 软引用在程序内存不…