当前位置: 首页 > news >正文

Linux(三)--文件系统

Linux命令简介

[root@localhost ~]#

表示 Linux 系统的命令提示符。

        []:这是提示符的分隔符号,没有特殊含义。

        root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。

        @:分隔符号,没有特殊含义。

        localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。

        ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。

        #:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $。

Linux 命令的基本格式:

[root@localhost ~]# 命令 [选项] [参数]

        命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也能执行。

1) 选项的作用

        ls 命令之后不加选项和参数也能执行,不过只能执行最基本的功能,即显示当前目录下的文件名。

2) 参数的作用

        参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作;命令一般都需要加入参数,用于指定命令操作的对象是谁。如果可以省略参数,则一般都有默认参数;

备注:命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象。


文件权限管理

介绍

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。因此Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。

Linux 系统中,用户等级权限的划分是非常清楚的,root 用户拥有最高权限,可以修改任何文件的权限,而普通用户只能修改自己文件的权限(所有者是自己的文件)

Linux 系统中,文件或目录的权限信息,可以使用 ls 命令查看。如:

每个文件的属性由左边第一部分的10个字符来确定(如下图)。

位数

说明

第 0 位

确定文件类型

(d, - , l , c , b)

l 是链接,相当于 windows 的快捷方式;

指向同一索引节点的那些目录条目,文件后面以"->"指向所连接的文件。

d 是目录,包括文件名,子目录名及其指针.它是Linux储存文件名的唯一地方。

- 普通文件,如文本文件,C语言源代码,shell脚本,二进制的可执行文件等。

可用cat,less,more,vi,emacs来查看内容,用mv来改名。

c 是字符设备文件,表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

b 是块设备,表示为装置文件里面的可供储存的接口设备(例如:硬盘)

第 1-3 位

确定所有者(该文件的所有者)拥有该文件的权限

User

以三个为一组,且均为『rwx』 的三个参数的组合;

[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

第 4-6 位

确定所属组(同用户组的)拥有该文件的权限

Group

第 7-9 位

确定其他用户拥有该文件的权限

Other

实际案例说明:

ls -l 中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

10 个字符确定不同用户能对文件干什么

第一个字符代表文件类型: - l d c b

其余字符每 3 个一组(rwx) 读(r) 写(w) 执行(x)

第一组 rwx : 文件拥有者的权限是读、写和执行

第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行

第三组 r-- :  不与文件拥有者同组的其他用户的权限是读不能写和执行

1

文件:硬连接数或 目录:子目录数

root

用户

root

1213

文件大小(字节),如果是文件夹,显示 4096 字节

Feb 2 09:39

最后修改日期

abc

文件名


默认权限

Linux 是注重安全性的操作系统,而安全的基础在于对权限的设定,不仅所有已存在的文件和目录要设定必要的访问权限,创建新的文件和目录时,也要设定必要的初始权限。

在 Linux 系统中,文件和目录的最大默认权限是不一样的,对文件来讲,其可拥有的最大默认权限是 666,即 rw-rw-rw-。也就是说,使用文件的任何用户都没有执行(x)权限。原因很简单,执行权限是文件的最高权限,赋予时绝对要慎重,因此绝不能在新建文件的时候就默认赋予,只能通过用户手工赋予。对目录来讲,其可拥有的最大默认权限是 777,即 rwxrwxrwx。

介绍

Windows 系统中,新建的文件和目录时通过继承上级目录的权限获得的初始权限,而 Linux 不同,它是通过使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的,可以通过 umask命令查看umask 默认权限的值。

[root@localhost ~]# umask

0022

#root用户默认是0022,普通用户默认是 0002。

文件和目录的真正初始权限,可通过以下的计算得到:

文件(或目录)的初始权限 = 文件(或目录)的最大默认权限 - umask权限;

说明:

  1. umask 默认权限确实由 4 个八进制数组成,但第 1 个数代表的是文件所具有的特殊权限(SetUID、SetGID、Sticky BIT);后 3 位数字 "022" 可将其转变为字母形式为 ----w--w-。
  2. 虽然 umask 默认权限是用来设定文件或目录的初始权限,但并不是直接将 umask 默认权限作为文件或目录的初始权限,还要对其进行 "再加工"。
  3. 在计算文件或目录的初始权限时,不能直接使用最大默认权限和 umask 权限的数字形式做减法。最大默认权限中和 umask 权限公共的部分,通过减法运算会被遮盖掉,最终剩下的“最大默认权限”,才是最终赋予文件或目录的初始权限。

实例1:新建文件

[root@localhost ~]# umask

0022

#默认umask的值是0022

[root@localhost ~]# touch file  <--新建file空文件

[root@localhost ~]# ll -d file

-rw-r--r--. 1 root root 0 Apr 18 02:36 file

实例2:新建目录

[root@localhost ~]# umask

0022

[root@localhost ~]# mkdir catalog  <--新建catalog目录

[root@localhost ~]# ll -d catalog

drwxr-xr-x. 2 root root 4096 Apr 18 02:36 catalog

实例3:

[root@localhost ~]# umask

0033

[root@localhost ~]# mkdir catalog  <--新建catalog目录

[root@localhost ~]# ll -d catalog

drw-r--r--. 2 root root 4096 Apr 18 02:36 catalog

默认权限的修改

umask 权限值可以通过如下命令直接修改:

[root@localhost ~]# umask 002

[root@localhost ~]# umask

0002

[root@localhost ~]# umask 033

[root@localhost ~]# umask

0033

不过,这种方式修改的 umask 只是临时有效,一旦重启或重新登陆系统,就会失效。如果想让修改永久生效,则需要修改对应的环境变量配置文件 /etc/profile。

在profile文件中,普通用户的 umask 由 if 语句的第一段定义,而超级用户 root 的 umask 值由 else 语句定义即可。 修改此文件,则 umask 值就会永久生效。


文件权限_常用命令

chgrp 命令

作用:用于修改文件(或目录)的所属组。

基本格式:[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)

说明:

  •         -R(注意是大写)选项长作用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息。
  •         使用此命令需要注意的一点是,要被改变的群组名必须是真实存在的,否则命令无法正确执行,会提示 "invaild group name"。

应用实例:

当以 root 身份登录 Linux 系统时,主目录中会存在一个名为 install.log 的文件,我们可以使用如下方法修改此文件的所属组:

[root@localhost ~]# groupadd group1

#新建用于测试的群组 group1

[root@localhost ~]# chgrp group1 install.log

#修改install.log文件的所属组为group1

[root@localhost ~]# ll install.log

-rw-r--r--. 1 root group1 78495 Nov 17 05:54 install.log

#修改生效

[root@localhost ~]# chgrp testgroup install.log

chgrp: invaild group name 'testgroup'

可以看到,在具有 group1 群组的前提下,我们成功修改了 install.log 文件的所属组,但我们再次试图将所属组修改为 testgroup 时,命令执行失败,就是因为系统的 /etc/group 文件中,没有 testgroup 群组。


chmod 指令

作用:可以修改文件或者目录的权限。

语法一:

语法二:chmod [-R] 权限值 文件名

说明:

  1. u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

案例演示

案例1:设定 .bashrc 文件的权限为 rwxr-xr-x,则可执行如下命令:

[root@localhost ~]# chmod u=rwx,go=rx .bashrc

[root@localhost ~]# ls -al .bashrc

-rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc

案例2:

[root@www ~]# ls -al .bashrc

-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc

[root@www ~]# chmod  a+w  .bashrc

[root@www ~]# ls -al .bashrc

-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

案例3:将 /home/abc.txt 文件的权限修改成 rwxr-xr-x,

使用给数字的方式实现:

chmod 755 /home/abc.txt


chown命令

作用:主要用于修改文件(或目录)的所有者,也可以修改文件(或目录)的所属组。

语法一: chown [-R] 所有者 文件或目录

语法二:chown [-R] 所有者:所属组 文件或目录【但修改所属组通常使用 chgrp 命令,因此并不推荐大家使用 chown 命令】

说明:

  1. -R 如果是目录 则使其下所有子文件或目录递归生效;
  2. 在 chown 命令中,所有者和所属组中间也可以使用点(.),但会产生一个问题,如果用户在设定账号时加入了小数点(例如 zhangsan.temp),就会造成系统误判。因此,建议大家使用冒号连接所有者和所属组;
  3. 使用 chown 命令修改文件或目录的所有者(或所属者)时,要保证使用者用户(或用户组)存在,否则该命令无法正确执行,会提示 "invalid user" 或者 "invaild group"。

案例演示

请将 /home/abc.txt 文件的所有者修改成 tom

chown tom /home/abc.txt

请将 /home/test 目录下所有的文件和目录的所有者都修改成 tom

chown -R tom /home/test

ls指令

作用:查看文件的所有者。

语法:ls –ahl

说明:

  1. 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
  2. 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)

应用实例

使用 fox 来创建一个文件,看看该文件属于哪个组?

-rw-r--r--. 1 fox monster 0 11 月 5 12:50 ok.txt

groupadd指令

作用:创建一个组

语法:groupadd 组名

应用实例

创建一个组,monster

groupadd monster

创建一个用户 fox ,并放入到 monster 组中

useradd -g monster fox

groupdel指令

作用:删除组

语法:groupdel 组名

注意: 用户组里面有用户,必须先把用户删除了,才能删除组。

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组。

改变用户所在组

usermod –g 新组名 用户名

usermod –d 目录名 用户名 改变该用户登陆的初始目录。

特别说明:用户需要有进入到新目录的权限。

应用实例

将 zwj 这个用户从原来所在组,修改到 wudang 组

usermod -g wudang zwj


文件与目录的管理

Linux 的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。

绝对路径:

        路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

相对路径:

        路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。


目录_常用命令

ls 命令

作用:显示目录文件

语法:ls  选项[-ald]  [文件或目录]

说明:

  1. -a    显示所有文件,包括隐藏文件
  2. -l     详细信息显示
  3. -d    查看目录属性
  4.  -h 人性化查看
  5.  -i 查询结点

cd 命令

语法:cd [目录]

作用:切换目录

实例:

  1.  $ cd  /tmp/Japan/boduo     切换到指定目录
  2.  $ cd  ..        回到上一级目录

pwd命令

语法:pwd [-P]

作用:显示当前目录

说明:

  1. -P :显示出实际的工作目录,而非使用链接 (link) 路径。

实例:$ pwd

  /tmp/Japan


mkdir 命令

作用:创建新目录

语法:mkdir [-mp] 目录名称  [目录名]

说明:

  1. -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  2. -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

实例1:请到/tmp底下尝试创建数个新目录看看:

[root@www ~]# cd /tmp

[root@www tmp]# mkdir test    <==创建一名为 test 的新目录

[root@www tmp]# mkdir -p test1/test2/test3/test4    <==创建多级目录

实例2:创建权限为 rwx--x--x 的目录。

[root@www tmp]# mkdir -m 711 test2

[root@www tmp]# ls -l

drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test

drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1

drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

上面的权限部分,如果没有加上 -m 来强制配置属性,系统会使用默认属性。

如果我们使用 -m ,如上例我们给予 -m 711 来给予新的目录 drwx--x--x 的权限。


rmdir 命令

作用: 删除空目录

语法:rmdir [-p] 目录名称

说明:

  1. -p :从该目录起,一次删除多级空目录
  2. 仅能删除空目录

实例1:

[root@www tmp]# rmdir test


cp 命令

作用:复制文件或目录

语法:cp  -rp  [原文件或目录] [目标目录]

说明:

  1. -a:相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)
  2. -d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
  3. -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  4. -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  5. -l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;
  6. -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  7. -r:递归持续复制,用于目录的复制行为;(常用)
  8. -s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;
  9. -u:若 destination 比 source 旧才升级 destination !
  10.  复制多个文件,只需要在中间接连写上地址即可

实例:

$ cp  -r /tmp/Japan/cangjing  /root

将目录/tmp/Japan/cangjing复制到目录/root下

$ cp  -rp /tmp/Japan/boduo /tmp/Japan/longze /root

将/tmp/Japan目录下的boduo和longze目录复制到/root下,保持目录属性


rm命令

作用:删除文件

语法:rm  [-rif]   [文件或目录]

说明:

  1. -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  2. -i :互动模式,在删除前会询问使用者是否动作
  3. -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

实例:$ rm  /tmp/yum.log

删除文件/tmp/yum.log

$ rm -rf  /tmp/Japan/longze

删除目录/tmp/Japan/longze


mv命令

语法:

[root@www ~]# mv [-fiu] source destination

[root@www ~]# mv [options] source1 source2 source3 .... directory

作用:

  1. -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  2. -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  3. -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

实例1:复制一文件,创建一目录,将文件移动到目录中

[root@www ~]# cd /tmp

[root@www tmp]# cp ~/.bashrc bashrc

[root@www tmp]# mkdir mvtest

[root@www tmp]# mv bashrc mvtest

将某个文件移动到某个目录去,就是这样做!

实例2:将刚刚的目录名称更名为 mvtest2

[root@www tmp]# mv mvtest mvtest2


文件处理_常用命令

cat

作用:由第一行开始显示文件内容

语法:cat [参数] [文件名]

说明:

  1. -A :相当于-vET 的整合选项,可列出一些特殊字符而不是空白而已;
  2. -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  3. -E :将结尾的断行字节 $ 显示出来;
  4. -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  5. -T :将 [tab] 按键以 ^I 显示出来;
  6. -v :列出一些看不出来的特殊字符

实例:

$ cat  /etc/issue

$ cat  -n /etc/services


tac

作用:从最后一行开始显示,可以看出 tac 是 cat 的倒着写!


nl

作用:显示的时候,顺道输出行号!


more

作用:分页显示文件内容

语法:more  [文件名]

说明:在 more 这个程序的运行过程中,你有几个按键可以按的:

  1. 空白键 (space):代表向下翻一页;
  2. Enter         :代表向下翻『一行』;
  3. /字串         :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  4. :f            :立刻显示出档名以及目前显示的行数;
  5. q             :代表立刻离开 more ,不再显示该文件内容。
  6. b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

实例:   $ more  /etc/services


less

作用:与 more 类似,分页显示文件内容(可向上翻页);

语法:less  [文件名]

说明:less运行时可以输入的命令有:

  1. 空白键    :向下翻动一页;
  2. [pagedown]:向下翻动一页;
  3. [pageup]  :向上翻动一页;
  4. /字串     :向下搜寻『字串』的功能;
  5. ?字串     :向上搜寻『字串』的功能;
  6. n         :重复前一个搜寻 (与 / 或 ? 有关!)
  7. N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  8. q         :离开 less 这个程序

实例:$  less  /etc/services


head

作用:显示文件前面几行

语法:head  [文件名]

说明:

  1. -n 指定行数 【默认显示10行】

实例:   $ head -n 20 /etc/services


tail

作用:显示文件后面几行

语法:tail  [nf] [文件名]

说明:

  1. -n 指定行数【默认显示10行】
  2. -f  动态显示文件末尾内容

实例:   $ tail -n 18 /etc/services

查询实时日志时可用此命令

相关文章:

Linux(三)--文件系统

Linux命令简介 [rootlocalhost ~]# 表示 Linux 系统的命令提示符。 []&#xff1a;这是提示符的分隔符号&#xff0c;没有特殊含义。 root&#xff1a;显示的是当前的登录用户&#xff0c;笔者现在使用的是 root 用户登录。 &#xff1a;分隔符号&#xff0c;没有特殊含义。 l…...

DC-8靶机渗透详细流程

信息收集&#xff1a; 1.存活扫描&#xff1a; arp-scan -I eth0 -l └─# arp-scan -I eth0 -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:dd:ee:6a, IPv4: 192.168.10.129 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.10…...

SolidWorks学习笔记——入门知识2

目录 建出第一个模型 1、建立草图 2、选取中心线 3、草图绘制 4、拉伸 特征的显示与隐藏 改变特征名称 5、外观 6、渲染 建出第一个模型 1、建立草图 图1 建立草图 按需要选择基准面。 2、选取中心线 图2 选取中心线 3、草图绘制 以对称图形举例&#xff0c;先画出…...

Elasticsearch:通过 ingest pipeline 对大型文档进行分块

在我之前的文章 “Elasticsearch&#xff1a;使用 LangChain 文档拆分器进行文档分块” 中&#xff0c;我详述了如何通过 LangChain 对大的文档进行分块。那个分块的动作是通过 LangChain 在 Python 中进行实现的。对于使用版权的开发者来说&#xff0c;我们实际上是可以通过 i…...

数据库管理-第148期 最强Oracle监控EMCC深入使用-05(20240208)

数据库管理148期 2024-02-08 数据库管理-第148期 最强Oracle监控EMCC深入使用-05&#xff08;20240208&#xff09;1 性能主页2 ADDM Spotlight3 实时ADDM4 数据库的其他5 主机总结 数据库管理-第148期 最强Oracle监控EMCC深入使用-05&#xff08;20240208&#xff09; 作者&am…...

Bug2- Hive元数据启动报错:主机被阻止因连接错误次数过多

错误代码&#xff1a; 在启动Hive元数据时&#xff0c;遇到了以下错误信息&#xff1a; Caused by: java.sql.SQLException: null, message from server: "Host 192.168.252.101 is blocked because of many connection errors, unblock with mysqladmin flush-hosts&qu…...

HarmonyOS 鸿蒙应用开发(十、第三方开源js库移植适配指南)

在前端和nodejs的世界里&#xff0c;有很多开源的js库&#xff0c;通过npm(NodeJS包管理和分发工具)可以安装使用众多的开源软件包。但是由于OpenHarmony开发框架中的API不完全兼容V8运行时的Build-In API&#xff0c;因此三方js库大都需要适配下才能用。 移植前准备 建议在适…...

Docker- chapter 1

note 1: docker 利用 volume 进行 presist data。 eg : compose.yaml&#xff1a; volumes:database: //# named db by self list golbal volumes&#xff1a; docker volume ls # the volumes on the disk inpect someone volume&#xff1a; docker volume inspect m…...

解决IntellIJ Idea内存不足

突然有一天我在IDEA打开两个项目时&#xff0c;发生了报错&#xff0c;说我内存不足&#xff0c;我这电脑内存16G怎么会内存不足。下面是我的解决方案。 IntelliJ IDEA 报告内存不足的原因通常与以下几个因素有关&#xff1a; 项目规模较大&#xff1a;如果您正在开发的项目非…...

【网络技术】【Kali Linux】Nmap嗅探(二)多设备扫描

上期实验博文&#xff1a;&#xff08;一&#xff09;简单扫描 一、实验环境 本次实验进行Nmap多设备扫描&#xff0c;实验使用 Kali Linux 虚拟机&#xff08;扫描端&#xff09;、Ubuntu 22.04虚拟机&#xff08;被扫描端1&#xff09;、Ubuntu 18.04虚拟机&#xff08;被扫…...

简化版SpringMVC

简化版SpringMVC web.xml xml version"1.0" encoding"UTF-8"?> <web-app version"2.5" xmlns"http://java.sun.com/xml/ns/javaee" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation&quo…...

Java密码校验(正则表达式):密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等于8个字符。

1. 需求 对用户密码的强度进行校验&#xff0c;要求用户密码达到一定的强度&#xff0c;符合安全性要求。 1.1. 基础版需求 密码必须由字母和数字组成&#xff08;同时包括数字和数字&#xff09;&#xff1b;密码长度大于等于8个字符。 1.2. 进阶版需求 密码由这四种元素…...

【AMI】2400 环境安装步骤

2400 环境安装步骤 ----------Ubuntu14.4 MDS4.0 加载代码需要勾上Update Installing SPX related packages sudo apt install gcc-multilib mtd-utils:i386 subversion patch patchutils bison sudo apt install libc6-dev libxml-dom-perl zlib1g zlib1g-dev libcurl4-ope…...

AI:124-基于深度学习的人体遮挡物体重建技术

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…...

23种设计模式之单例模式

目录 什么是单例模式 单例模式的优点 创建单例模式的三大要点 单例模式的实现方式 饿汉模式 懒汉模式 使用场景 什么是单例模式 单例模式是一种创建型设计模式&#xff0c;它的核心思想是保证一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。 什…...

leetCode 30天

题太难了&#xff0c;就来一个N皇后吧 51. N 皇后 class Solution { private:vector<vector<string>> res;void backtracking(int n, int row, vector<string>& chessboard){if (row n){res.push_back(chessboard);return;}for (int col 0; col<n;…...

vue3+vite+ts 配置commit强制码提交规范配置 commitlint

配置 git 提交时的 commit 信息&#xff0c;统一提交 git 提交规范 安装命令: npm install -g commitizen npm i cz-customizable npm i commitlint/config-conventional commitlint/cli -D 文件配置 根路径创建文件 commitlint.config.js module.exports {// 继承的规…...

PlateUML绘制UML图教程

UML&#xff08;Unified Modeling Language&#xff09;是一种通用的建模语言&#xff0c;广泛用于软件开发中对系统进行可视化建模。PlantUML是一款强大的工具&#xff0c;通过简单的文本描述&#xff0c;能够生成UML图&#xff0c;包括类图、时序图、用例图等。PlantUML是一款…...

自然语言处理(NLP)——使用Rasa创建聊天机器人

1 基本概念 1.1 自然语言处理的分类 IR-BOT&#xff1a;检索型问答系统 Task-bot&#xff1a;任务型对话系统 Chitchat-bot:闲聊系统 1.2 任务型对话Task-Bot:task-oriented bot 这张图展示了一个语音对话系统&#xff08;或聊天机器人&#xff09;的基本组成部分和它们之间的…...

使用虚拟主机部署多站点

网站目录权限的管理和虚拟主机的配置。 目录权限控制...

Openresty+Lua+Redis实现高性能缓存

一、背景 当我们的程序需要提供较高的并发访问时&#xff0c;往往需要在程序中引入缓存技术&#xff0c;通常都是使用Redis作为缓存&#xff0c;但是要再更进一步提升性能的话&#xff0c;就需要尽可能的减少请求的链路长度&#xff0c;比如可以将访问Redis缓存从Tomcat服务器…...

基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)

核心代码 <template></template> <script> export default {created() {//监听长按快捷键addEventListener("keydown", this.keydown);addEventListener("keyup", this.keyup);},destroyed(d) {//移除长按快捷键removeEventListener(&…...

【C#】.net core 6.0 设置根目录下某个文件夹可访问,访问创建的图片等资源

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…...

报错ValueError: Unknown CUDA arch (8.6) or GPU not supported

文章目录 问题描述解决方案参考文献 问题描述 报错 ValueError: Unknown CUDA arch (8.6) or GPU not supported 本人显卡为 RTX 3060&#xff0c;CUDA 为 10.2&#xff0c;PyTorch 为 1.5 解决方案 修改 C:\Users\Administrator\Envs\test\Lib\site-packages\torch\utils\c…...

Golang 并发 Cond条件变量

Golang 并发 Cond条件变量 背景 编写代码过程中&#xff0c; 通常有主协程和多个子协程进行协作的过程&#xff0c;比如通过 WaitGroup 可以实现当所有子协程完成之后&#xff0c; 主协程再继续执行。 如上的场景是主协程等待子协程达到某个状态再继续运行。 但是反过来怎么…...

linux 下 chrome 无法在设置里面配置代理的解决方法

文章目录 [toc]解决方法查找 chrome 命令路径查看 chrome 启动文件方式一方法二 在 linux 环境下&#xff0c;使用 chrome 没办法像 firefox 一样在设置里面配置代理&#xff0c;打开 chrome 的设置会有下面的内容显示 When running Google Chrome under a supported desktop e…...

C#上位机与三菱PLC的通信03--MC协议之A-1E报文解析

1、MC协议帧 MC协议可以在串口通信&#xff0c;也可以在以太网通信&#xff0c;有A-1E和Qna-3E两种模式&#xff0c;这两种都是三菱PLC通信协议中比较常用的两种&#xff0c;一般我们使用比较多的是以太网通信&#xff0c;对于FX5U系列/Q系列/Qna系列/L系列的PLC&#xff0c;…...

nodeJS 的 npm 设置国内高速镜像之淘宝镜像的方法

1、我们知道 nodeJS 是老外搞出来的&#xff0c;服务器放在了国外&#xff0c;国内的小朋友访问起来会比较慢&#xff0c;阿里巴巴的淘宝给出了有力支持&#xff0c;现在我们就将 nodeJS 的镜像地址切换为国内的淘宝镜像。 2、查看当前的镜像地址&#xff1a; npm get registr…...

Nginx方向代理和负载均衡配置

1. Nginx介绍 2.Nginx常用命令 cd /usr/local/nginx/sbin/ ./nginx 启动 ./nginx -s stop 停止 ./nginx -s quit 安全退出 ./nginx -s reload 重新加载配置文件 如果我们修改了配置文件&#xff0c;就需要重新加载。 ps aux|grep nginx 查看nginx进程3.nginx配置文件 …...

贪心算法篇

“靠漫步&#xff0c;将生趣填饱~” 贪心算法简介&#xff1f; 贪心算法&#xff08;Greedy Algorithm&#xff09;&#xff0c;也称为贪婪算法&#xff0c;是一种在解决问题时采取贪心策略的方法。其基本原理是很简单的&#xff1a; “在每个决策点上都选择当下看似最好的选项…...

springboot/ssm大学生就业服务平台就业招聘宣传管理系统Java系统

springboot(ssm大学生就业服务平台 就业招聘宣传管理系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql…...

上下固定中间自适应布局

实现上下固定中间自适应布局 1.通过position&#xff1a;absolute实现 定义如下结构 <body> <div class"container"> <div class"top"></div> <div class"center"></div> <div class"bottom&…...

3分钟部署完成Docker Registry及可视化管理工具Docker-UI

安装docker-registry 由于镜像文件会非常占用空间&#xff0c;因此需要选择一个磁盘充裕的位置来存放镜像数据。 这里设置为&#xff1a;-v /data/registry:/var/lib/registry&#xff0c;其中/data/registry是宿主机存放数据的位置。 docker run -d -p 5000:5000 --restart…...

【npm】修改npm全局安装包的位置路径

问题 全局安装的默认安装路径为&#xff1a;C:\Users\admin\AppData\Roaming\npm&#xff0c;缓存路径为&#xff1a;C:\Users\admin\AppData\Roaming\npm_cache&#xff08;其中admin为自己的用户名&#xff09;。 由于默认的安装路径在C盘&#xff0c;太浪费C盘内存啦&#…...

数据库切片大对决:ShardingSphere与Mycat技术解析

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 数据库切片大对决&#xff1a;ShardingSphere与Mycat技术解析 前言ShardingSphere与Mycat简介工作原理对比功能特性对比 前言 在数据库的舞台上&#xff0c;有两位颇受欢迎的明星&#xff0c;它们分别…...

macbook电脑如何永久删除app软件?

在使用MacBook的过程中&#xff0c;我们经常会下载各种App来满足日常的工作和娱乐需求。然而&#xff0c;随着时间的积累&#xff0c;这些App不仅占据了宝贵的硬盘空间&#xff0c;还可能拖慢电脑的运行速度。那么&#xff0c;如何有效地管理和删除这些不再需要的App呢&#xf…...

安卓——计算器应用(Java)

步骤 1: 设置Android Studio项目 创建一个新的Android项目&#xff0c;选择Java作为编程语言。 步骤 2: 设计用户界面 打开activity_main.xml文件&#xff0c;在res/layout目录下&#xff0c;设计你的计算器用户界面。这个例子使用了LinearLayout来排列两个EditText输入框和…...

【笔记】Helm-5 Chart模板指南-8 命名模板

命名模板 此时需要越过模板&#xff0c;开始创建其他内容了。该部分我们会看到如何在一个文件中定义 命名模板&#xff0c;并在其他地方使用。命名模板&#xff08;有时称作一个部分或一个子模板&#xff09;仅仅是在文件内部定义的模板&#xff0c;并使用了一个名字。有两种创…...

Github 2024-02-08 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-08统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Ruby项目1HTML项目1Python项目1Scala项目1PLpgSQL项目1Rust项目1NASL项目1C项目1TypeScript项目1非开发语言项目…...

c语言贪食蛇游戏

演示视频 目录 一.概述 二.游戏开始前 修改控制台程序标题和大小 Win32 API GetStdHandle函数 GetConsoleCursorInfo函数和SetConsoleCursorInfo函数 SetConsoleCursorPosition函数 游戏开篇界面处理 创建地图 蛇身节点以及食物节点初始化 蛇身的初始化 整体蛇节点…...

国际物流数字化运输方式选择指南 | 箱讯科技

国际物流涉及多种运输方式&#xff0c;每种方式都有其独特的优势和适用场景。选择合适的运输方式对于确保货物安全、及时到达目的地并控制成本至关重要。以下是对六种主要国际运输方式的简要介绍和选择建议&#xff1a; 国际快递&#xff1a;适用于小件、高价值或急需的货物。…...

FPS游戏框架漫谈第二十天

今天我们聊的话题是&#xff1a; 《吃鸡中武器护甲逻辑》 当我们接到一个需求就是给我们游戏中的特定的模式指定的武器支持加护甲的功能 那么这个流程是什么样的呢&#xff1f; 第一步一般这个新增护甲的配置属性肯定是加载武器的Config json文件里面的呢&#xff0c;并且是支持…...

ChatGPT高效提问—prompt常见用法(续篇四)

ChatGPT高效提问—prompt常见用法&#xff08;续篇四&#xff09; 1.1 知识生成 ​ 知识生成是指使用自然语言处理技术&#xff0c;通过ChatGPT等AI模型生成与特定主题相关的知识、文本或回答。在知识生成过程中&#xff0c;模型接收prompt输入的问题、指令或上下文信息&…...

【蓝桥杯单片机记录】IO基础与LED控制

目录 一、IO基础 1.1 IAP15F2K61S2芯片原理图 1.2不同工作模式 二、新建工程的一些补充 2.1 keil中没有IAP15F2K61S2的头文件 解决&#xff1a;在isp软件中找到如下​编辑 2.2keil中的芯片选择 2.3推荐字体 三、sbit关键字 四、LED控制 4.1原理图 4.2不能直接通过IO…...

java 回答问题

1. How do you create a variable with the numeric value 5? int x 5; 2. The value of a string variable can be surrounded by single quotes. False 3. Which method can be used to return a string in upper case letters? toUpperCase()...

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归&#xff1a; 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量&#xff1a; 影响目标变量的因素&#xff1a; X 1 , X 2 . . . X_1, X_2... X1​,X2​... &#xff0c;连续值或离散值。 目标变量&#xff1a; …...

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历&#xff0c;丝我即可 前言 初次接触FPGA是在2022年3月左右&#xff0c;正处在研二下学期&#xff0c;面临着暑假找工作&#xff0c;周围的同学大多选择了互联网&#xff0c;出于对互联网的裁员形势下&#xff0c;我选择了FPGA&#xff0c;对于硬件基础知识我几乎是…...

阿里云游戏服务器多少钱一个月?

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…...

Win32 SDK Gui编程系列之--ListView自绘OwnerDraw(续)

通过所有者绘制的列表视图(2) 所有者绘制列表视图的基础已在前一页中说明。本页将展示如何在所有者绘制列表视图中显示数据库表数据。 1、访问日志 正如在另一个页面中所述,本网站的访问日志目前是通过SQLite3数据库管理的。 以下是上述程序执行的结果。为…...

Android 应用添加系统签名权限的几种方式实现介绍

Android 应用添加系统签名权限的几种方式实现介绍 文章目录 Android 应用添加系统签名权限的几种方式实现介绍一、前言二、Android 应用添加系统签名权限的几种方式介绍1、在Android Studio添加系统签名文件2、源码编译apk添加系统签名Android.mkAndroid.bp 3、源码编译app代码…...