【Linux系统】第二节—基础指令(2)

hello ~ 好久不见

自己想要的快乐要自己好好争取!

云边有个稻草人-个人主页

Linux—本篇文章所属专栏—欢迎订阅—持续更新中

目录

本节课核心指令+知识点总结

本节基本指令详解

07.man 指令

08.cp 指令

09.mv 指令

10.cat 指令

11.more 指令

12.less 指令

13.head 指令

14.tail 指令

15.date 指令

16.cal 指令

17.find 指令

18.which 指令

19.whereis 指令

20.grep 指令

21.alias 指令

22.zip/unzip 指令

23.tar 指令

24.bc 指令

25.uname ‒r 指令

重要的几个热键(高频需要按的按键) [Tab], [ctrl]-c, [ctrl]-d

关机

以下命令作为扩展


正文开始——

 本节课核心指令+知识点总结


本节基本指令详解

07.man 指令

Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助。

语法:man 选项  命令

常用选项

  • -k 根据关键字搜索联机帮助
  • num只在第num章节查找
  • -a 将所有章节的都显示出来,比如man printf 它缺省从第⼀章开始搜索,找到就停止,⽤ a 选项,当按下 q 退出,他会继续往后⾯搜索,直到所有章节都搜索完毕 ;当 man 2 printf 时,默认从第二章开始搜索

解释一下

man手册分为9章(不同系统可能会有差别) 

  • 1是普通的命令
  • 2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头⽂件)
  • 3是库函数,如printf,fread特殊⽂件,也就是/dev下的各种设备⽂件
  • 4略
  • 5是指⽂件的格式,⽐如passwd,就会说明这个⽂件中各个字段的含义
  • 6是给游戏留的,由各个游戏⾃⼰定义
  • 7是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
  • 8是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
  • 9略

(1)在进入手册之后,输入/return value,会自动显示出文档里面的value;

(2)翻阅手册用上下键;

(3)man 查指令,查系统调用的接口、查C语言对应的接口(不在这查C++,python对应的接口)


08.cp 指令

语法:cp 选项 源⽂件或⽬录 ⽬标⽂件或⽬录 

功能:复制文件或者目录

说明

  • cp指令⽤于复制⽂件或⽬录
  • 如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定 的所有⽂件或⽬录复制到此⽬录中

常用选项

  • -f 或--force强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在
  • -i 或--interactive 覆盖文件之前先询问用户
  • -r 递归处理,将指定⽬录下的⽂件与子目录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理

回看一下,现在我们已经学会新建文件,新建目录,删除文件,删除目录,拷贝文件,拷贝目录,接下来我们学习剪切


09.mv 指令

mv命令是move的缩写,可以⽤来移动⽂件或者将⽂件改名(move(rename)files,经常⽤来备份⽂件 或者⽬录。

语法:mv  选项 源⽂件或⽬录 ⽬标⽂件或⽬录

功能:剪切

功能

  1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其 移⾄⼀个新的⽬录中。
  2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬ 录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
  3. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源 ⽂件均移⾄⽬标⽬录中。

常用选项

  • -f:force强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖。
  • -i:若⽬标⽂件(destination)已经存在时,就会询问是否覆盖! 

10.cat 指令

语法:cat  选项  文件

功能:查看目标文件的内容

常用选项

  • -n 对输出的所有行编号
  • -b 对非空输出行进行编号
  • -s 不输出多行空行(压缩空行)


11.more 指令

语法:more 选项 文件

功能:类似cat,不支持上翻,了解即可,下面学习它的平替less,比more好用

常用选项

  • -n 指定输出行数
  • q 退出more 

12.less 指令

  • less ⼯具也是对⽂件或其它输出进⾏分⻚显⽰的⼯具,应该说是linux正统查看⽂件内容的⼯具,功能极其强⼤;
  • less 的⽤法⽐起 more 更加的有弹性,在 more 的时候,我们并没有办法向前⾯翻, 只能往后⾯看;
  • 但若使⽤了 less 时,就可以使⽤ [pageup] [pagedown] 等按键的功能来往前往后翻看⽂件,更容易⽤来查看⼀个⽂件的内;
  • 除此之外,在 less ⾥头可以拥有更多的搜索功能,不⽌可以向下搜,也可以向上搜。

语法:less  选项 文件

功能: less与more类似,但使⽤less可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。 
选项
  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • / 字符串:向下搜索“字符串”的功能
  • ? 字符串:向上搜索“字符串”的功能
  • n:重复前⼀个搜索(与 / 或 ? 有关)
  • N:反向重复前⼀个搜索(与 / 或 ? 有关)
  • q:quit

13.head 指令

head 与 tail 就像它的名字⼀样的浅显易懂,它是⽤来显示开头或结尾某个数量的⽂字区块,head ⽤来显⽰档案的开头⾄标准输出中,⽽ tail 想当然尔就是看档案的结尾。

语法:head 选项 文件

功能:head ⽤来显⽰档案的开头⾄标准输出中,默认head命令打印其相应⽂件的开头10⾏。 

选项:-n 显示文件的前n行内容。


14.tail 指令

tail 命令从指定点开始将⽂件写到标准输出.使⽤tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename 会把 filename ⾥最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

语法:tail 选项 文件

功能:⽤于显示指定⽂件末尾内容,不指定⽂件时,作为输⼊信息进⾏处理。常⽤查看⽇志⽂件。

选项:

  • -f 循环读取
  • -n<⾏数> 显示行数
举例:
# 基本功能演⽰
[whb@bite-alicloud test]$ tail temp.txt
hello 1991
hello 1992
hello 1993
hello 1994
hello 1995
hello 1996
hello 1997
hello 1998
hello 1999
hello 2000
[whb@bite-alicloud test]$ tail -3 temp.txt
hello 1998
hello 1999
hello 2000

模拟日志查看功能

# 综合问题
# 如何显⽰⽂件的[180,200]⾏的内容
[whb@bite-alicloud test]$ head -200 temp.txt | tail -20
hello 180
hello 181
hello 182
hello 183
hello 184
hello 185
hello 186
hello 187
hello 188
hello 189
hello 190
hello 191
hello 192
hello 193
hello 194
hello 195
hello 196
hello 197
hello 198
hello 199

15.date 指令

指定格式:date +%Y-%m-%d_%H:%M:%S

1.在显示方面,使用者可以设定欲显示的格式,格式设定为⼀个加号后接数个标记,其中常用的标记列表如下
  • %H : ⼩时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于 %H:%M:%S
  • %d : ⽇ (01..31)
  • %m : ⽉份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d
2.在设定时间方面
  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对⽇期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间
3.时间戳
  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502
  • Unix时间戳(英⽂为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1⽉1⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

4.举例(空格的话要变成转义字符来显示)

# 显⽰常规时间
[whb@bite-alicloud test]$ date
Wed Jan 11 18:22:50 CST 2023
[whb@bite-alicloud test]$ date +%Y/%m/%d
2023/01/11
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S
2023/01/11-18:23:20
# 显⽰时间戳
[whb@bite-alicloud test]$ date +%s
1673432636
# 时间戳转成可视时间
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @0
1970/01/01-08:00:00
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @100000
1970/01/02-11:46:40
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @1000000000
2001/09/09-09:46:40

16.cal 指令

cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”。

格式:cal 参数 年份

功能: ⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份和年份
常用选项:
  • -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
  • -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
  • -y 显⽰当前年份的⽇历

17.find 指令

  • Linux下find命令在⽬录结构中搜索⽂件,并执⾏指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强⼤。由于find具有强⼤的功能,所以它的选
  • 项也很多,其中⼤部分选项都值得我们花时间来了解⼀下。
  • 即使系统中含有⽹络⽂件系统( NFS),find命令在该⽂件系统中同样有效,只你具有相应的权限。
  • 在运⾏⼀个⾮常消耗资源的find命令时,很多⼈都倾向于把它放在后台执⾏,因为遍历⼀个⼤的
  • ⽂件系统可能会花费很⻓的时间(这⾥是指30G字节以上的⽂件系统)。

语法:find pathname -options

功能:⽤于在⽂件树中查找⽂件,并作出相应的处理(可能访问磁盘)

常用选项:

  • -name 按照⽂件名查找⽂件
  • 其他选项需要在查,这个命令其实⽐较复杂
# 在指定路径下搜索执⾏名称的⽂件
[whb@bite-alicloud test]$ find ~ -name test.c
/home/whb/test_code/old_code/test.c
/home/whb/test_code/test.c
...

18.which 指令

功能:搜索系统指定的命令

举例:

[whb@bite-alicloud test]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
[whb@bite-alicloud test]$ which pwd
/usr/bin/pwd

19.whereis 指令

功能: ⽤于找到程序的源、⼆进制⽂件或⼿册
whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

20.grep 指令

语法: grep [ 选项 ] 搜寻字符串文件
功能: 在⽂件中搜索字符串,将找到的行打印出来
常⽤选项:
  • -i :忽略⼤⼩写的不同,所以⼤⼩写视为相同
  • -n :顺便输出⾏号
  • -v :反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那一行

21.alias 指令

功能: 设置命令的别名
[whb@bite-alicloud test]$ alias hello='ls -a -l -n'
[whb@bite-alicloud test]$ which hello
alias hello='ls -a -l -n'
/usr/bin/ls
[whb@bite-alicloud test]$ hello
total 36
drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 .
drwx------ 22 1003 1003 4096 Jan 11 17:57 ..
-rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt

22.zip/unzip 指令

语法:zip  压缩⽂件.zip  ⽬录或⽂件

功能:将⽬录或⽂件压缩成zip格式

常用选项:

-r:递归处理,将指定⽬录下的所有⽂件和⼦⽬录⼀并处理
关于 rzsz
这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输⽂件. 安装完毕之后可以通过拖拽的⽅式将⽂件上传过去。
sudo yum/apt install -y lrzlz

23.tar 指令

tar [-cxtzjvf] ⽂件与⽬录 ...
  • -c :建⽴⼀个压缩⽂件的参数指令(create 的意思);
  • -x :解开⼀个压缩⽂件的参数指令!
  • -t :查看 tarfile ⾥⾯的⽂件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要⽤ gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要⽤ bzip2 压缩?
  • -v :压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!
  • -f :使⽤档名,请留意,在 f 之后要⽴即接档名喔!不要再加参数!
  • -C : 解压到指定⽬录

24.bc 指令

bc命令可以很方便的进行浮点运算

ctrl+c,停止指令运行,退出


25.uname ‒r 指令

语法: uname [选项]
功能: uname⽤来获取电脑和操作系统的相关信息。
补充说明: uname可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。
常用选项:
  • -a或‒all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

重要的几个热键(高频需要按的按键) [Tab], [ctrl]-c, [ctrl]-d

  • [Tab]按键---具有『命令补全』和『档案补⻬』的功能
  • [Ctrl]-c按键---让当前的程序『停掉』
  • [Ctrl]-d按键---通常代表着:『键盘输⼊结束(End Of File, EOF 戒 End OfInput)』的意思;另外,它也可以⽤来取代exit
  • 上下键,可以翻阅历史命令
  • ctrl+r,历史命令的搜索
  • history,搜索历史命令

关机

语法: shutdown [选项]
常见选项:
  • -h:将系统的服务停掉后,立即关机,(我们买的云服务器永远不关机)
  • -r:在将系统的服务停掉之后就重新启动(超级用户下,reboot重启)
  • -t sec:-t 后⾯加秒数,亦即『过几秒后关机』的意思

以下命令作为扩展

  • 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
  • ⽂件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
  • 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
  • ⽹络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; 
  • 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
  • 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

接下来就需要我们多练习这些指令,而不是去死记硬背,菜就多练嘛

完——


最近_王小帅

至此结束——

我是云边有个稻草人

期待与你的下一次相遇!

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

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

相关文章

为了结合后端而学习前端的学习日志——【黑洞光标特效】

前端设计专栏 今天给大家带来一个超酷的前端特效——黑洞光标&#xff01;让你的鼠标变成一个会吞噬光粒子的迷你黑洞&#xff0c;点击时还会喷射出绿色能量粒子&#xff01;&#x1f320; &#x1f680; 效果预览 想象一下&#xff1a;你的鼠标变成一个旋转的黑洞&#xff0…

[硬件电路-11]:模拟电路常见元器件 - 什么是阻抗、什么是输入阻抗、什么是输出阻抗?阻抗、输入阻抗与输出阻抗的全面解析

1. 阻抗&#xff08;Impedance&#xff09; 定义&#xff1a;阻抗是电路或元件对交流信号&#xff08;AC&#xff09;流动的阻碍能力&#xff0c;用符号Z表示&#xff0c;单位为欧姆&#xff08;Ω&#xff09;。它综合了电阻&#xff08;R&#xff09;、电感&#xff08;L&am…

机器学习和深度学习的对比

深度 数据经过深层网络后&#xff0c;语义信息表征能力强&#xff0c;对几何细节信息表征能力弱。 数据依赖性 深度学习算法需要大量的数据来训练&#xff0c;而传统的机器学习使用制定的规则。所以&#xff0c;当数据量少时&#xff0c;深度学习的性能差于机器学习&#xf…

Kubernetes 安装 minikube

安装 minikube 在 Ubuntu 上安装 minikube minikube 是一个工具&#xff0c;它可以在本地快速运行一个单节点的 Kubernetes 集群。它主要用于&#xff1a;本地学习 Kubernetes、测试和开发 Kubernetes 应用程序、快速尝试 Kubernetes 的功能。 系统配置最低要求如下 CPU&#…

【学习笔记】深度学习:典型应用

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接&#xf…

ComputeShader绘制全屏纯色纹理

参考 Getting Started With Compute Shaders In Unity 环境 Win10 Unity20194.40 全屏纯色纹理示例 使用ComputerShader逐个像素设置颜色 ComputeShader脚本 设置纹理颜色 #pragma kernel CSMainRWTexture2D<float4> Result;//纹理 half4 solidColor;//颜色[numth…

数学实验(Matlab语言环境和线性代数实验)

一、Matlab语言环境和线性代数实验 1.Matlab语言环境 Matlab简介 Matlab&#xff1a;Matrix Laboratry 矩阵实验室 Matlab 提供了强大的科学计算、灵活的程序设计流程、高质量的图形可视化与界面设计等功能&#xff0c;被广泛应用于科学计算、控制系统、信息处理等领域的分…

Android面试总结之GC算法篇

一、GC 机制核心原理与算法 面试题 1&#xff1a;Android 中为什么采用分代回收&#xff1f;分代策略如何优化 GC 效率&#xff1f; 标准答案&#xff1a; 分代回收基于对象生命周期的差异&#xff0c;将堆分为年轻代&#xff08;Young Gen&#xff09;和老年代&#xff08;Ol…

仿腾讯会议——注册登录UI

1、加载素材 2、新添加资源类 3、加载图片 4、添加左侧图片 在左侧添加一个标签 选择图片 选择图片 勾选保证图片不变形 5、修改组件名称 6、设置密码输入框 5、切换 6、编辑提示框 7、定义提交和清空的槽函数 8、设置页面标题和最先显示页面 9、清空登录信息函数实现 10、清空…

Kotlin 常见问题

以下从基础、中级、高级三个难度等级为你提供 Kotlin 面试题及参考答案&#xff1a; 基础难度 1. Kotlin 中 val 和 var 的区别是什么&#xff1f; 答案要点&#xff1a;val 用于声明不可变变量&#xff0c;类似于 Java 中的 final 变量&#xff0c;一旦赋值后就不能再重新赋…

高频数据冲击数据库的技术解析与应对方案

目录 前言一、问题现象与影响分析1.1 典型场景表现1.2 核心问题分类 二、失效根源深度剖析2.1 架构设计缺陷2.2 缓存策略缺陷 三、解决方案与最佳实践3.1 缓存架构设计3.1.1 分层缓存架构3.1.2 热点数据识别 3.2 缓存策略优化3.2.1 动态过期时间算法3.2.2 缓存更新策略对比 3.3…

[Spring] Sentinel详解

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

清除浮动的重要性及解决办法

由于父级盒子很多情况下&#xff0c;不方便给高度&#xff0c;但是子盒子浮动又不占有位置&#xff0c;最后父级盒子高度为0时&#xff0c;就会影响下面的标准流盒子。 一、为什么要清除浮动 父元素高度塌陷&#xff1a; 如果父元素内部的所有子元素都浮动了&#xff0c;并且没…

域名与官网的迷思:数字身份认证的全球困境与实践解方-优雅草卓伊凡

域名与官网的迷思&#xff1a;数字身份认证的全球困境与实践解方-优雅草卓伊凡 一、官网概念的法律与技术界定 1.1 官网的实质定义 当卓伊凡被问及”公司域名就是官网吗”这一问题时&#xff0c;他首先指出&#xff1a;”这相当于问’印着某公司logo的建筑就是该公司总部吗’…

kotlin flatMap 变换函数的特点和使用场景

Kotlin 中的 flatMap 是一个非常常用的函数&#xff0c;尤其在处理集合&#xff08;如 List、Set 等&#xff09;时。它结合了 map 和 flatten 的功能&#xff0c;常用于将多个集合扁平化为一个单一的集合。 一、flatMap 函数的特点 转换 扁平化&#xff1a; 对集合中的每个元…

java学习之数据结构:二、链表

本节介绍链表 目录 1.什么是链表 1.1链表定义 1.2链表分类 2.链表实现 2.1创建链表 1&#xff09;手动创建 2&#xff09;创建链表类进行管理链表的相关操作 2.2添加元素 1&#xff09;头插法 2&#xff09;尾插法 3&#xff09;任意位置插入 2.3删除 2.4查找 1&…

【计算机网络-应用层】解析HTTP会话保持:Cookie与Session的原理与实践

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;实现HTTP服务器 下篇文章&#xff1a;传输层协议-UDP 文章摘要&…

[ Qt ] | 第一个Qt程序

1. 创建Qt项目 我们打开Qt Create工具&#xff0c;左上角“文件”&#xff0c;新建文件。 --- --- --- --- 这个是我们的APP“走出国门”的时候&#xff0c;要关注的&#xff0c;这里就不说了。 后面这两个直接默认&#xff0c;下一步就行~~。 2. 项目默认内容 下面就是Qt C…

影刀RPA中新增自己的自定义指令

入门到实战明细 1. 影刀RPA自定义指令概述 1.1 定义与作用 影刀RPA的自定义指令是一种强大的功能&#xff0c;旨在提高流程复用率&#xff0c;让用户能够个性化定制指令&#xff0c;实现流程在不同应用之间的相互调用。通过自定义指令&#xff0c;用户可以将常用的、具有独立…

LangChain:重构大语言模型应用开发的范式革命

2022年10月22日,Harrison Chase在GitHub上提交了名为LangChain的开源项目的第一个代码版本。这个看似普通的代码提交,却悄然开启了一场重塑大语言模型(LLM)应用开发范式的技术革命。彼时,距离ChatGPT引爆全球人工智能浪潮尚有一月之遥,但LangChain的诞生已经预示了LLM技术…