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

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

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

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

相关文章

PyTorch 2.2 中文官方教程(四)

torch.nn 到底是什么&#xff1f; 原文&#xff1a;pytorch.org/tutorials/beginner/nn_tutorial.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 注意 点击这里下载完整示例代码 作者&#xff1a; Jeremy Howard&#xff0c;fast.ai。感谢 Rachel Thomas 和 Fr…

Vue.js设计与实现(霍春阳)

Vue.js设计与实现 (霍春阳) 电子版获取链接&#xff1a;Vue.js设计与实现(霍春阳) 编辑推荐 适读人群 &#xff1a;1.对Vue.js 2/3具有上手经验&#xff0c;且希望进一步理解Vue.js框架设计原理的开发人员&#xff1b; 2.没有使用过Vue.js&#xff0c;但对Vue.js框架设计感兴趣…

深度学习系列56:使用whisper进行语音转文字

1. openai-whisper 这应该是最快的使用方式了。安装pip install -U openai-whisper&#xff0c;接着安装ffmpeg&#xff0c;随后就可以使用了。模型清单如下&#xff1a; 第一种方式&#xff0c;使用命令行&#xff1a; whisper japanese.wav --language Japanese --model…

算法随想录第五十二天打卡|300.最长递增子序列 , 674. 最长连续递增序列 , 718. 最长重复子数组

300.最长递增子序列 今天开始正式子序列系列&#xff0c;本题是比较简单的&#xff0c;感受感受一下子序列题目的思路。 视频讲解&#xff1a;动态规划之子序列问题&#xff0c;元素不连续&#xff01;| LeetCode&#xff1a;300.最长递增子序列_哔哩哔哩_bilibili 代码随想录…

SpringBoot3整合Mybatis-Plus,自定义动态数据源starter

文章目录 前言正文一、项目总览二、核心代码展示2.1 自定义AbstractRoutingDataSource2.2 动态数据源DynamicDataSource2.3 动态数据源自动配置2.4 动态数据源上下文DynamicDataSourceContextHolder2.5 动态数据源修改注解定义2.6 修改切面DynamicDataSourceAspect2.7 动态数据…

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有…

GEE数据集——全球保护价值的地区数据集

具有全球保护价值的地区 自然地图项目提供了一系列全球价值保护图层。这些地图是通过共同优化生物多样性和碳和/或水等国家保护目标绘制的。它们以连续的比例描述了对扩大保护工作具有最大潜在价值的土地面积。前言 – 人工智能教程 注释 此处的 "保护 "不应被理解为…

【Flink入门修炼】1-3 Flink WordCount 入门实现

本篇文章将带大家运行 Flink 最简单的程序 WordCount。先实践后理论&#xff0c;对其基本输入输出、编程代码有初步了解&#xff0c;后续篇章再对 Flink 的各种概念和架构进行介绍。 下面将从创建项目开始&#xff0c;介绍如何创建出一个 Flink 项目&#xff1b;然后从 DataStr…

春运也要“信号升格”:中兴通讯助运营商打造高铁精品网

一年一度的春运&#xff0c;承载了游子的思乡情。据官方预计&#xff0c;今年春运跨区域人员流动量将达到90亿人次&#xff0c;创下历史新高&#xff0c;铁路、公路、水路、民航等营业性客运量全面回升&#xff0c;其中铁路预计发送旅客4.8亿人次&#xff0c;日均1200万人次&am…

使用yolo训练自己的模型

YOLO&#xff08;You Only Look Once&#xff09;是一种用于目标检测的深度学习模型&#xff0c;旨在实时检测图像或视频中的多个对象。与传统的目标检测方法不同&#xff0c;YOLO一次性处理整个图像&#xff0c;而不是通过滑动窗口或区域提议进行多次检测。这种方法使得YOLO在…

使用虚拟主机部署多站点

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

基于hadoop+spark的大规模日志的一种处理方案

概述: CDN服务平台上有为客户提供访问日志下载的功能,主要是为了满足在给CDN客户提供服务的过程中,要对所有的记录访问日志,按照客户定制的格式化需求以小时为粒度(或者其他任意时间粒度)进行排序、压缩、打包,供客户进行下载,以便进行后续的核对和分析的诉求。而且CDN…

C++实现鼠标点击和获取鼠标位置(编译环境visual studio 2022)

1环境说明 2获取鼠标位置的接口 void GetMouseCurPoint() {POINT mypoint;for (int i 0; i < 100; i){GetCursorPos(&mypoint);//获取鼠标当前所在位置printf("% ld, % ld \n", mypoint.x, mypoint.y);Sleep(1000);} } 3操作鼠标左键和右键的接口 void Mo…

BVH动画绑骨蒙皮并在Unity上展示

文章目录 Blender绑定骨骼Blender蒙皮Blender中导入bvh文件将FBX导入Unity Blender绑定骨骼 先左上角红框进入model模式&#xff0c;选中要绑定的模型&#xff0c;然后进入Edit模式把骨骼和关节对齐。 &#xff08;选中骨骼&#xff0c;G移动&#xff0c;R旋转&#xff09; 为…

跟着pink老师前端入门教程-day21+22

5.4 常见flex布局思路 5.5 背景线性渐变 语法&#xff1a; background: linear-gradient( 起始方向 , 颜色 1, 颜色 2, ...); background: -webkit-linear-gradient(left, red , blue); background: -webkit-linear-gradient(left top, red , blue); 背景渐变必须添加浏览…

asp.net core 依赖注入 实例化对象实例

在面向对象编程中&#xff0c;推荐使用面向接口编程&#xff0c;这样我们的代码就依赖于服务接口&#xff0c;而不是依赖于实现类&#xff0c;可以实现代码解耦。 名称解释&#xff1a; 我们把负责提供对象的注册和 获取功能的框架叫作“容器”&#xff0c; 注册到容器中的对象…

【RT-DETR进阶实战】利用RT-DETR进行视频划定区域目标统计计数

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 Hello,各位读者,最近会给大家发一些进阶实战的讲解,如何利用RT-DETR现有的一些功能进行一些实战, 让我们不仅会改进RT-DETR,也能够利用RT-DETR去做一些简单的小工作,后面我也会将这些功能利用PyQt或者是…

政安晨:示例演绎Python的函数与获取帮助的方法

调用函数和定义我们自己的函数&#xff0c;并使用Python内置的文档&#xff0c;是成为一位Pythoner的开始。 通过我的上篇文章&#xff0c;相信您已经看过并使用了print和abs等函数。但是Python还有许多其他函数&#xff0c;并且定义自己的函数是Python编程的重要部分。 在本…

由亚马逊云科技 Graviton4 驱动的全新内存优化型实例 Amazon EC2 实例(R8g),现已开放预览

下一代 Amazon Elastic Compute CloudAmazon EC2) 实例的预览版现已公开 提供。全新的 R8g 实例 搭载新式 Graviton4 处理器&#xff0c;其性价比远超任何现有的内存优化实例。对于要求较高的内存密集型工作负载&#xff0c;R8g 实例是不二之选&#xff1a;大数据分析、高性能数…

Linux操作系统基础(一):操作系统概述

文章目录 操作系统概述 一、计算机分类 二、计算机组成 三、操作系统概述 四、操作系统分类 操作系统概述 一、计算机分类 计算机一般分为个人计算机&#xff08;笔记、台式机&#xff09;与 企业级服务器&#xff08;1U、2U、机柜、塔式、刀片&#xff09;两种形式。 二…