bash shell 基础命令

news2025/4/22 22:30:45

章节目录:

    • 一、浏览文件系统
      • 1.1 Linux 文件系统
      • 1.2 遍历目录
    • 二、列出文件和目录
    • 三、处理文件
      • 3.1 创建文件
      • 3.2 复制文件
      • 3.3 命令行补全
      • 3.4 链接文件
      • 3.5 文件重命名
      • 3.6 删除文件
    • 四、管理目录
      • 4.1 创建目录
      • 4.2 删除目录
    • 五、查看文件内容
      • 5.1 查看文件类型
      • 5.2 查看整个文件
      • 5.3 查看部分文件
    • 六、结束语

本章内容:

  • 浏览文件系统

  • 列出文件和目录

  • 管理文件和目录

  • 查看文件内容

一、浏览文件系统

当登录系统并获得 shell 命令提示符后,你通常位于自己的主目录中。一般情况下,除了主目录,你还想探索 Linux 系统中的其他领域。

1.1 Linux 文件系统

  • Windows 中,计算机上安装的物理驱动器的分区决定了文件路径,Windows 会为每个物理磁盘分区分配一个盘符,每个分区都有自己的目录结构,用于访问存储在其中的文件。

  • Linux 的路径中不使用驱动器盘符,Linux 会将文件存储在名为虚拟目录virtual director )的单个目录结构中,虚拟目录会将计算机中所有存储设备的文件路径都纳入单个目录。

  • Linux 虚拟目录结构只包含一个称为root )目录的基础目录。根目录下的目录和文件会按照其访问路径一一列出,这点跟 Windows 类似。

  • 示意图

/home/rich/Documents/test.log :表明文件 test.log 位于 Documents 目录,该目录位于 rich 目录,而 rich 目录则包含在 home 目录中。

在这里插入图片描述

  • 要注意的是,路径本身没有提供任何有关文件究竟存放在哪个物理磁盘中的信息

  • Linux 虚拟目录中是通过根驱动器来协调管理各个存储设备,根驱动器包含了虚拟目录的核心,其他目录都是从那里开始构建的。

  • Linux 会使用根驱动器上一些特别的目录作为挂载点mount point )。挂载点是虚拟目录中分配给额外存储设备的目录,即便它们位于其他物理驱动器中。

  • 示意图

在这里插入图片描述

  • 上图展示了计算机中的两块硬盘,一块硬盘( Disk 1 )与虚拟目录的根目录关联,其他硬盘可以挂载到虚拟目录结构中的任何地方。而另一块硬盘( Disk 2 )被挂载到了用户主目录所在的 /home 位置。(系统文件通常存储在根驱动器中,而用户文件则存储在其他驱动器中。)
  • 以下列出常见的 Linux 目录名
目录用途
/binBinaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令
/boot这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/devDevice(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etcEtcetera(等等)的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录
/home用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/libLibrary(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/mediaLinux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/optOptional (可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/procProcesses(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/sbinSuperuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序
/selinux这个目录是 Redhat / CentOS 所特有的目录,Selinux 是一个安全机制类似于 Windows 的防火墙,但是这套机制比较复杂,这个目录就是存放 Selinux 相关的文件的。
/srv该目录存放一些服务启动之后需要提取的数据
/sys该文件系统是内核设备树的一个直观反映,当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmpTemporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usrUnix Shared Resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin系统用户使用的应用程序
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
/usr/src内核源代码默认的放置目录。
/varVariable(变量)的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

1.2 遍历目录

在 Linux 文件系统中,可以使用目录切换 cd 命令来将 shell 会话切换到另一个目录。

  • 应用示例
# 1.绝对路径切换。
[root@VM-8-11-centos /]# cd /usr/bin/
[root@VM-8-11-centos bin]# pwd
/usr/bin

# 2.从任何一级快速跳回到主目录。
[root@VM-8-11-centos bin]# cd 
[root@VM-8-11-centos ~]# pwd
/root

# 3.相对路径切换:单点号表示当前目录。
[root@VM-8-11-centos ~]# cd .
[root@VM-8-11-centos ~]# pwd
/root

# 4.相对路径切换:双点号表示当前目录的父目录。
[root@VM-8-11-centos ~]# cd ..
[root@VM-8-11-centos /]# pwd
/

二、列出文件和目录

要知道系统中都有哪些文件,可以使用列表命令 ls

  • ls 常用命令选项
选项描述
-a显示隐藏文件。
-d只列出目录(不递归列出目录内的文件)。
-l显示长列表。
-F区分文件和目录。
-r倒序显示文件和目录。
-t将按照修改时间排序,最新的文件在最前面。
-lh以人类可读的方式显示当前目录中的文件和目录大小。
通配符? 表示任意单个字符;* 表示零个或多个字符;! 表示将不要的内容排除在外。
  • 应用示例
[root@VM-8-11-centos /]# ls
bin  boot  data  dev  etc  home  lib  lib64  lost+found  media  mnt  mydata  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

三、处理文件

3.1 创建文件

有时应用程序希望在执行写入操作之前日志文件就已经存在。对此,可以使用 touch 命令轻松创建空文件

  • 应用示例
[root@VM-8-11-centos tmp]# ll
total 0
# 创建`test.log`空文件。
[root@VM-8-11-centos tmp]# touch test.log
[root@VM-8-11-centos tmp]# ll
total 0
-rw-r--r-- 1 root root 0 May 12 22:01 test.log

3.2 复制文件

将文件和目录从文件系统的一个位置复制到另一个位置可谓是系统管理员的日常操作, cp 命令可以完成这项任务。

  • cp 常用命令选项
选项描述
-a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。
-d复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f覆盖已经存在的目标文件而不给出提示。
-i-f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l复制文件,只是生成链接文件。
  • 应用示例
# 1.查看目标目录和源目录。
[root@VM-8-11-centos home]# ls test01/
[root@VM-8-11-centos home]# ls test02/
2.log

# 2.复制文件至目标目录,并以新文件名进行命名。
[root@VM-8-11-centos home]# cp test02/2.log test01/1.log

# 3.复制结果。
[root@VM-8-11-centos home]# ls test01/
1.log
[root@VM-8-11-centos home]# ls test02/
2.log
[root@VM-8-11-centos home]# 

3.3 命令行补全

使用命令行的时候,很容易输错命令、目录名或是文件名。此时,命令行补全制表键)允许你在输入文件名或目录名的时候,按一下制表键可快速将内容补充完整。

  • 应用示例
[root@VM-8-11-centos tmp]# ll
total 0
# 1.创建一个名字很长的文件。
[root@VM-8-11-centos tmp]# touch really_test_test_test_long_file_name.log

# 2.此处输入`cp`命令后,在输入`r`,按下键盘上的`tab`键可以进行内容补全。
[root@VM-8-11-centos tmp]# cp really_test_test_test_long_file_name.log 

3.4 链接文件

系统中维护同一个文件或多个副本,可以使用单个物理副本加多个虚拟副本(链接)的方法代替创建多个物理副本。链接时目录中指向文件真实位置的占位符。Linux 中有两种类型的文件链接,分别是:符号链接硬链接

  • ln 常用命令选项
选项描述
-s软链接(符号链接)。
  • 符号链接(也称为软链接):是一个实实在在的文件,该文件指向内存放在虚拟目录结构中某个地方的另一个文件。
[root@VM-8-11-centos tmp]# ll
total 0
-rw-r--r-- 1 root root 0 May 13 08:00 test.log、
# 1.创建软链接。
[root@VM-8-11-centos tmp]# ln -s test.log softLink
[root@VM-8-11-centos tmp]# ll
total 0
lrwxrwxrwx 1 root root 8 May 13 08:01 softLink -> test.log
-rw-r--r-- 1 root root 0 May 13 08:00 test.log
  • 硬链接:创建的是一个独立的虚拟文件,其中包含了原始文件的信息以及位置。(要想创建硬链接,原始文件也必须事先存在。)
# 1.创建硬链接。
[root@VM-8-11-centos tmp]# ln test.log hardLink
[root@VM-8-11-centos tmp]# ll
total 0
-rw-r--r-- 2 root root 0 May 13 08:00 hardLink
lrwxrwxrwx 1 root root 8 May 13 08:01 softLink -> test.log
-rw-r--r-- 2 root root 0 May 13 08:00 test.log
  • 软链接与硬链接区别

    • 软链接路径的形式存在,类似于Windows操作系统中的快捷方式;硬链接文件副本的形式存在。但不占用实际空间。
    • 软链接可以跨文件系统硬链接只有在同一个文件系统中才能创建。
    • 软链接可以对一个不存在的文件名进行链接
    • 软链接可以对目录进行链接,而硬链接不可以

3.5 文件重命名

在 Linux 中,重命名文件称为移动moving )。mv 命令可以将文件和目录移动到另一个位置或是重新命名

  • mv 常用命令选项
选项描述
-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n不要覆盖任何已存在的文件或目录。
-u当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
  • 应用示例1
[root@VM-8-11-centos tmp]# ll
total 0
-rw-r--r-- 1 root root 0 May 13 08:18 aaa.log
# 1.修改文件名。
[root@VM-8-11-centos tmp]# mv aaa.log bbb.log
[root@VM-8-11-centos tmp]# ll
total 0
-rw-r--r-- 1 root root 0 May 13 08:18 bbb.log
  • 应用示例2
# 1.查看当前文件及所在的目录。
[root@VM-8-11-centos test]# ll
total 0
-rw-r--r-- 1 root root 0 May 13 08:18 bbb.log
[root@VM-8-11-centos test]# pwd
/home/test

# 2.移动文件至另一目录,并对目标目录进行查看。
[root@VM-8-11-centos test]# mv bbb.log ../tmp/
[root@VM-8-11-centos test]# ll ../tmp/
total 0
-rw-r--r-- 1 root root 0 May 13 08:18 bbb.log

# 3.查看当前目录,文件已被成功移动。
[root@VM-8-11-centos test]# ll
total 0
[root@VM-8-11-centos test]# pwd
/home/test

3.6 删除文件

在 Linux 中,删除(deleting)叫作移除(removing)。用于删除文件的命令是 rm

  • rm 常用命令选项
选项描述
-i删除前逐一询问确认。
-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r将目录及以下之档案亦逐一删除。
  • 注意:-i 选项会询问你是否真的要删除该文件。shell 没有回收站或者垃圾箱这样的东西,文件一旦被删除,就再也找不回来了!所以使用 rm 命令时,要养成总是加入 -i 选项的好习惯。

  • 应用示例

[root@VM-8-11-centos test]# ll
total 0
-rw-r--r-- 1 root root 0 May 13 08:32 temp.txt
# 1.询问删除该文件。
[root@VM-8-11-centos test]# rm -i temp.txt 
rm: remove regular empty file ‘temp.txt’? y
[root@VM-8-11-centos test]# ll
total 0

四、管理目录

4.1 创建目录

在 Linux 中创建目录很简单,使用 mkdir 命令即可。

  • mkdir 常用命令选项
选项描述
-p确保目录名称存在,不存在的就建一个。
  • 应用示例
# 1.创建目录`new`及其子目录。
[root@VM-8-11-centos home]# mkdir -p new/tmp/test01

4.2 删除目录

当创建好目录后,必须知道怎样删除目录。对此,可以使用 rmdir 或者 rm 命令对目录进行删除。

  • 默认情况下,rmdir 只删除空目录
  • 在整个非空目录中使用 rm 命令,-r 选项可以使 rm 进行递归删除,先删除其中的文件,然后再删除目录本身
  • 应用示例1
# 1.当前所在目录及文件。
[root@VM-8-11-centos test01]# pwd
/home/new/tmp/test01
[root@VM-8-11-centos test01]# ll
total 0
-rw-r--r-- 1 root root 0 May 13 08:50 1.txt

# 2.询问删除`test01`目录及该目录下的文件。
[root@VM-8-11-centos test01]# rm -ir /home/new/tmp/test01/
rm: descend into directory ‘/home/new/tmp/test01/’? y
rm: remove regular empty file ‘/home/new/tmp/test01/1.txt’? y
rm: remove directory ‘/home/new/tmp/test01/’? y

# 3.移动至`test01`的父目录进行查看,确认`test01`目录及其文件已被成功删除。
[root@VM-8-11-centos test01]# cd /home/new/tmp/
[root@VM-8-11-centos tmp]# pwd
/home/new/tmp
[root@VM-8-11-centos tmp]# ll
total 0
  • 当需要删除多个文件和子目录的时候,询问删除会显得非常琐碎,此时需要一口气删除目录树,可以使用 rm -rf 命令。该命令能不声不响,直接删除目录及其所有内容。当然,这也是一个非常危险的命令,所以务必谨慎使用
  • 应用示例2
# 1.强制删除`new`目录下的所有文件。
[root@VM-8-11-centos home]# rm -rf /home/new/*
[root@VM-8-11-centos home]# cd /home/new/
[root@VM-8-11-centos new]# ll
total 0
[root@VM-8-11-centos new]# 

五、查看文件内容

5.1 查看文件类型

file 命令是一个方便的小工具,能够探测文件的内部并判断文件类型

  • file 常用命令选项
选项描述
-b列出辨识结果时,不显示文件名称。
-c详细显示指令执行过程,便于排错或分析程序执行的情形。
-v显示版本信息。
-z尝试去解读压缩文件的内容。
  • 应用示例
[root@VM-8-11-centos logs]# file naming-server.log.2023-05-12.0
naming-server.log.2023-05-12.0: ASCII text, with CRLF, LF line terminators

5.2 查看整个文件

如果手里有一个很大的文本文件,想要查看里面内容的时候,Linux 有3个不同的命令( catmoreless )可以完成这个任务。

  • cat 命令是显示文本文件中所有数据的工具:
  • cat 常用命令选项
选项描述
-n由 1 开始对所有输出的行数编号
-b和 -n 相似,只不过对于空白行不编号。
  • 应用示例
# 1.查看整个文本文件的内容及对应行号。
[root@VM-8-11-centos tmp]# cat -n 1.log 
     1	hello world
     2	hello world
     3	hello world
     4	hello world
  • 对于大文件,cat 命令多少有些烦人。使用后,文件内容会在屏幕上一闪而过

  • more 命令会显示文本文件的内容,但会在每页数据之后暂停下来,它是一个分页工具,支持文本文件基本的移动。

  • more 常用操作命令

    • Enter 向下n行,需要定义,默认为1行。
    • Ctrl+F 向下滚动一屏。
    • 空格键 向下滚动一屏。
    • Ctrl+B 返回上一屏。
    • = 输出当前行的行号。
    • :f 输出文件名和当前行的行号。
    • V 调用vi编辑器。
    • ! 命令调用 Shell,并执行命令。
    • q 退出 more
  • less 命令为 more 命令的升级版本,它能够实现在文本文件中前后翻动,还有一些高级搜索功能,还可以完成整个文件的读取之前显示文件的内容。

  • less 命令操作和 more 命令基本一样,它还包括了更多的操作

    • -x <数字> 将"tab"键显示为规定的数字空格。
    • / 字符串:向下搜索"字符串"的功能。
    • ? 字符串:向上搜索"字符串"的功能。
    • n:重复前一个搜索(与 / 或 ? 有关)。
    • N:反向重复前一个搜索(与 / 或 ? 有关)。
    • b 向上翻一页。
    • d 向后翻半页。
    • h 显示帮助界面。
    • Q 退出 less 命令。
    • u 向前滚动半页。
    • y 向前滚动一行。
    • 空格键 滚动一页。
    • 回车键 滚动一行。
    • [pagedown]: 向下翻动一页。
    • [pageup]: 向上翻动一页。

5.3 查看部分文件

如果数据是在一个大型文件的开头,那就只能干等着 catmore 载入整个文件。如果数据是在文件末尾(比如日志文件),则需要翻过成千上万行才能看到最后那部分。好在 Linux 有 tailhead 命令可以解决这两个问题。

  • tail 命令会显示文件最后几行。默认情况下,它会显示文件的末尾10行
  • tail 常用命令选项
选项描述
-f实时循环读取。
-n<行数>显示文件的尾部 n 行内容。
  • 应用示例
[root@VM-8-11-centos tmp]# cat test.log 
line1 hello world
line2 hello world
line3 hello world
line4 hello world
line5 hello world
line6 hello world
line7 hello world
line8 hello world
line9 hello world
line10 hello world
line11 hello world
line12 hello world
line13 hello world
line14 hello world
line15 hello world
# 1.显示末尾10行。
[root@VM-8-11-centos tmp]# tail test.log 
line6 hello world
line7 hello world
line8 hello world
line9 hello world
line10 hello world
line11 hello world
line12 hello world
line13 hello world
line14 hello world
line15 hello world
  • head 命令会显示文件开头若干行。默认情况下,它会显示文件的前10行
  • head 常用命令选项
选项描述
-n<行数>显示的行数。
  • 应用示例
# 显示文本前3行。
[root@VM-8-11-centos tmp]# head -n 3 test.log 
line1 hello world
line2 hello world
line3 hello world
  • 文件开头部分通常不会改变,因此 head 命令没有 tail 命令那样 -f 的选项。

六、结束语


“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶

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

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

相关文章

【Linux】Linux编辑神器vim的使用

目录 一、Vim的基本概念 二、Vim的基本操作 1、进入vim 2、正常模式切换至插入模式 3、插入模式切换至正常模式 4、正常模式切换至底行模式 5、退出Vim编辑器 三、Vim正常模式命令集 1、移动光标 2、删除文字 3、复制 4、替换 5、撤销 四、Vim底行模式命令集 1、列出行号 2、光…

【Linux】进程信号捕捉

前言 在【Linux】进程信号及信号产生中&#xff0c;我们提到&#xff0c;进程接收到信号&#xff0c;并不是立刻处理&#xff0c;而是在合适的时候才执行相应的动作&#xff0c;那合适的时候是什么时候呢&#xff0c;进程捕捉信号的过程究竟是怎么样的呢&#xff1f;本篇博客就…

Python入门(七)if语句(二)

if语句&#xff08;二&#xff09; 1.if语句1.1 简单的if语句1.2 if-else语句1.3 if-elif-else结构1.4 使用多个elif代码块1.5 使用多个elif代码块 2.使用if语句处理列表2.1 检查特殊元素2.2 确定列表不是空的2.3 使用多个列表 作者&#xff1a;xiou 1.if语句 前面我们理解了…

React Native技术探究:开发高质量的跨平台移动应用的秘诀

作为一个跨平台移动应用开发框架&#xff0c;React Native在开发过程中能够有效提高开发效率、降低开发成本、缩短上线时间&#xff0c;因此备受开发者的欢迎。然而&#xff0c;如何使用React Native开发出高质量的跨平台移动应用呢&#xff1f;本文将探究这个问题&#xff0c;…

(一)PUN 2基本介绍

一、开始 (一)基本简介 1.简介 Photon Unity Networking (PUN) 是一个用于多人游戏的 Unity 包。灵活的配对让您的玩家进入可以通过网络同步对象的房间。 RPC、自定义属性或“低级别”光子事件只是其中的一些功能。快速且&#xff08;可选&#xff09;可靠的通信是通过专用的…

选卡攻略!一分钟教你选择一款好的流量卡!

很多流量卡看似便宜&#xff0c;但用起来套路不少&#xff0c;所以&#xff0c;挑选一款流量卡并不是只看资费&#xff0c;而且要了解它的各个方面&#xff0c;比如&#xff1a;优惠期、合约期等等&#xff0c;今面&#xff0c;小编就带大家一块了解如何选择一款好的流量卡。 …

默认的HuggingFace模型

介绍 在本文中&#xff0c;我将探讨表征学习中常见的一种做法——使用预训练神经网络的冻结状态作为学习特征提取器。 具体而言&#xff0c;我感兴趣的是研究使用这些提取的神经网络特征训练的简单模型的性能与使用迁移学习初始化的微调神经网络的性能的比较。预期受众主要是数…

一款功能强大的多合一聚合支付Discuz插件,可直接替换DiscuzX 3.5自带的支付接口

源码介绍&#xff1a; Discuz论坛多合一聚合支付接口插件&#xff0c;该插件直接替换了自带的支付接口功能&#xff0c; 增强了支付的扩展性&#xff0c;自带支持支付宝、微信、QQ钱包官方支付&#xff0c; 以及彩虹易支付、我爱支付、虎皮椒等支付通道&#xff0c;并且可以…

专家共话:存力一体成“东数西算”全场景利器

从2022年2月17日正式全面启动至今&#xff0c;“东数西算”工程已经度过了一周年。一年多的实践探索证明&#xff0c;激活数据要素&#xff0c;推动算力成为核心生产力&#xff0c;离不开“存力先行”。其中&#xff0c;东西部存力一体化&#xff0c;是支撑“东数西算”全场景应…

「读书感悟系列」友者生存:与人为善的进化力量(我会解释人类善良和暴力的进化原因)...

作者 | gongyouliu 编辑 | gongyouliu ‍ 最近花了不长的时间读完了这本『友者生存&#xff1a;与人为善的进化力量』&#xff0c;由于我对进化生物学非常感兴趣&#xff0c;又有4年的生物学学习背景&#xff0c;读起来还是非常容易的&#xff0c;这本书算是人类进化学的科普读…

tcp cubic 与随机丢包

前面提到过一个 AIMD 的修正方法&#xff0c;“二次机会 MD”&#xff1a;首次丢包只 MD 收缩一个相对较小的比例&#xff0c;再次丢包时再继续收缩&#xff0c;直到 beta * Wmax。 效果如下图&#xff1a; 大意是在检测到丢包时&#xff0c;先 MD 一个相对小的缩放比例&…

DS215KLDCG1AZZ03A如何编写温度比例的代码?

DS215KLDCG1AZZ03A如何编写温度比例的代码&#xff1f; 可编程逻辑控制&#xff0c;简称PLC&#xff0c;由美国机械工程师迪克莫利于1年1968月<>日首次设计。PLC最初是为了减少汽车行业员工的工作量而开发的&#xff0c;从那时起&#xff0c;它们已被用于所有其他恶劣环境…

常用linux多场景查找文件的方法及对比

波哥整理了在linux中根据文件名称查文件&#xff0c;根据文件内容查找文件&#xff0c;根据进程号查找文件的方法及命令详细解释。 一、find命令 find命令可以在指定目录下查找文件&#xff0c;其语法如下&#xff1a; find <目录> <选项> <匹配模式> 选项和…

vue-4:注册组件,组件传参,特殊属性ref $parent $root,透传,内置组件,自定义指令,mixins混入

注册组件&#xff0c;使用组件&#xff08;项目中都是写component中&#xff09; 为什么用组件&#xff1a;组件可以复用&#xff0c;每一个组件都是独立的&#xff0c;模板&#xff0c;数据&#xff0c;css样式互不影响 全局注册组件component&#xff1a;请勿滥用全局组件in…

一个打通基于XML管理Bean

目录 准备工作 添加依赖 引入配置文件 获取bean ①方式一&#xff1a;根据id获取 ②方式二&#xff1a;根据类型获取 ③方式三&#xff1a;根据id和类型 ④注意的地方 ⑤扩展知识 依赖注入之setter注入 ①创建学生类Student ②配置bean时为属性赋值 ③测试 依赖注…

Powerlink协议在嵌入式linux上的移植和主从站通信(电脑和linux板通信实验)

使用最新的openPOWERLINK 2.7.2源码&#xff0c;业余时间搞定了Powerlink协议在嵌入式linux上的移植和测试&#xff0c;并进行了下电脑和linux开发板之间的通信实验。添加了一个节点配置&#xff0c;跑通了源码中提供的主站和从站的两个demo。这里总结下移植过程分享给有需要的…

飞桨EasyDL月刊:4月功能全新升级,模型训练步骤缩短63%

亲爱的开发者&#xff1a; 近来以生成式 AI、多模态预训练大模型为代表的技术变革正席卷全球&#xff0c;与此相关的智能化工具和平台陆续发布。飞桨 EasyDL 和 BML 位于文心全景图的工具与平台层&#xff0c;提供大模型开发套件及多种建模方式&#xff0c;全面支持基于大模型能…

访客接入-唯一客服系统文档中心

网站可以通过多种方式接入客服系统&#xff0c;直接跳转链接&#xff0c;或者在页面右下角弹窗 访客链接 可以在自己的网站接入&#xff0c;访客独立链接&#xff0c;入口形式可以完全自己写&#xff0c;只是跳转链接。 例如下面的访客链接https://gofly.v1kf.com/chatIndex?k…

Angular开发之——安装Angular CLI并初始化项目(02)

一 概述 Angular CLI介绍及开发环境准备安装Angular CLI开发工具使用Angular CLI初始化Angular项目简单体验Angular 二 Angular CLI介绍及开发环境准备 2.1 Angular CLI介绍 目前&#xff0c;无论你使用什么前端框架&#xff0c;都必须要使用到各种NodeJS工具&#xff0c;An…

Leetcode 剑指 Offer II 026. 重排链表

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&a…