第二章Linux操作语法1
文章目录
- vi和vim
- 常用的三种模式
- vi和vim快捷键
- Linux开机,重启
- 用户管理
- 用户信息查询管理
- who和whoami
- 用户组信息查询管理
- 用户和组的相关文件
- 实用指令集合
- 运行级别
- 帮助指令
- man
- help
- 文件管理类
- pwd命令
- ls命令
- cd命令
- mkdir命令
- rmdir命令
- rm命令
- touch命令
- cp指令
- mv指令
- 文件查看类
- cat命令
- less命令
- more命令
- head 指令
- tail命令
- 文件输入输出类
- echo 指令
- >指令
- >>指令
- <指令
- 软硬链接
- ln 指令
- 硬链接
- history 指令
- 时间日期类
- date 指令—显示时间
- date 指令—设置日期
- cal 指令
- 管道
- 搜索查找类
- find指令
- locate 指令
- which 指令
- grep指令
- 压缩解压类
- gzip/gunzip 指令
- zip/unzip 指令
- tar 指令
vi和vim
常用的三种模式
- 一般模式,在这个模式可以使用上下左右按键进行移动光标,也可以使用删除字符或者删除整行进行处理档案内容,也可以通过复制粘贴来处理文件数据
- 以vim打开一个文档就直接进入到一般模式
- 按esc是从编辑模式回到一般模式
- 按下 i o a r 等任何一个字母就能进入编辑模式,一般来说按i
- 命令行模式 在这个模式可以提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等动作
- 输入esc 然后输入:
vi和vim快捷键
- vim 文件xxx(包括文件类型)
- 没有文件则创建
- 有该文件就进入修改
命令行模式输入
- :wq(保存退出)
- :q(退出)
- :q!(强制退出,不保存)
- 查找关键字 / + 所需的字段 n键用来切换
- :set nu 显示行号 :set nonu 关闭显示行号
一般模式下输入
-
拷贝当前行 yy 然后按p表示粘贴当前行
- 拷贝当前行向下五行 5yyp
-
删除当前行 dd
- 删除当前行向下五行 5dd
-
快速到达文档的最后一行和第一行 G gg
-
撤销操作 一般模式下 按 u
-
光标跳转到 指定行数 输入行号 + shift +g
Linux开机,重启
-
shutdown -h now 立刻进行关机
-
shutdown -h 1 “hello,1分钟后会关机了”
-
shutdown -r now 现在重新启动计算机
-
halt 关机,作用和上面的shotdown -h now 一样
-
reboot 现在重启
-
sync 内存同步到磁盘
不论重启还是关闭系统,首先要运行sync指令,同步内存至磁盘
目前的shutdown/reboot/halt命令均已经在关机前进行了sync 建议还是先运行sync命令
用户管理
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后通过这个账号的身份
所在首先进入Linux我们要知道的就是我是谁
用户信息查询管理
who和whoami
- who表示当前登录系统的所有用户
- whoami 我们是以哪个用户登录上了的
用户创建
- useradd xx 创建一个用户名为xx的用户
- 在我们的/home 目录下会创建一个与用户名相同的目录,称作这个用户的家目录
- 也可以通过useradd -d [指定目录] [用户名] ,给该新创建的用户指定家目录的名称
用户的登录和退出
- su 用户名 为切换用户
- 一般root的权限太大,我们一般登录普通用户,需要用到root的权限,才使用su 来切换用户
- 权限高的用户切换到权限低的不需要输入密码,反之需要
- logout在图形级界面运行级别是无效的 在运行级别3下有效
- 关于运行级别在后面会介绍
- 比如我们的先登录的lsc,然后通过su进行切换到root,我们再输入logout,就会退到我们的lsc
- 返回到原来的用户 exit/logout
指定/修改用户密码
- passwd 用户名
- 如果不写用户名,则是给当前登录的用户修改密码
删除用户
- userdel 用户名
- 删除用户也是一件大事,所以肯定是需要root权限(对应的命令的程序是在/user/sbin下),也肯定不能出现自己删自己的情况
- userdel -r 用户名 操作慎重 这样删除会把对应用户家目录所有内容删除 不加-r是不会删除家目录
查询用户信息
- id 用户名
用户组信息查询管理
用户组类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
新增组
- groupadd 组名
删除组
- groupdel 组名
添加用户时指定组
- useradd -g 用户组 用户名
- 我们在添加一个用户的时候,如果没有对应的组,那么会自动生成一个与用户名称相同的组,并加入
修改用户的组
- usermod -g 用户组 用户名
用户和组的相关文件
/etc/passwd 文件
用户的配置文件
- 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
/etc/shadow 文件
口令配置文件
- 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间标志
/etc/group 文件
组配置文件
- 组名:口令:组标志号:组内用户列表
实用指令集合
运行级别
基本介绍
- 0:关机
- 1:单用户【找回丢失密码】
- 2:多用户状态没有网络服务
- 3:多用户状态有网络服务
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
切换运行级别的指令
- init 运行级别
常用运行级别为3和5,也可以指定默认运行级别
在centos7之前,/etc/inittab文件中指定
简化为
- multi-user.target:analogous to runlevel 3
- graphical.target:analagous to runlevel 5
查看当前运行级别
- systemctl get-default
修改当前运行级别
- systemctl set-default TARGET.target
帮助指令
man
man 命令或配置文件
- Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
- 比如man ls 就是查看ls的帮助信息
help
help 命令
- 获取shell内置命令的帮助信息
- 所谓 Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。
- 例如,用于进入或者切换目录的 cd 命令,虽然我们一直在使用它,但如果不加以注意很难意识到它与普通命令的性质是不一样的:该命令并不是某个外部文件,只要在 Shell 中你就一定可以运行这个命令
- 可以使用 type 来确定一个命令是否是内建命令
- 比如help cd
文件管理类
因为我们的Linux大多时候都是命令行,所以我们必须知道我在哪?我的周围有什么
pwd命令
- 查看当前工作目录的完整路径(绝对路径)
- 命令格式:pwd [选项]
- 常用参数:一般情况下不带任何参数
- 如果目录是链接时:pwd -P显示出实际路径,而非使用连接(link)路径
ls命令
命令格式:ls [选项] [目录名]
-
列出目标目录中所有的子目录和文件
- 如果ls指定目录,那么默认就会显示指定目录下的文件和目录,也就是知道我的周围有什么的功能
-
通过ls命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)、查看目录信息等等
常用参数:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- linux中隐藏文件是以.开头的
- -l 列出文件的详细信息。
- h h表示文件大小用k,m之类表示
- 选项可以组合使用,没有顺序的要求
- 可以写成 ls -la,等价于 ls -l -a
cd命令
- 作用:切换当前目录至指定目录
- 命令格式:cd [目录名]
- 路径可以是绝对路径也可以是相对路径
- …表示父目录,.表示当前目录
- cd… 回到当前目录的上一级目录
- cd ~ 表示回到当前登录用户的家目录
- 未切换目录时显示的是波浪号(~):表示当前位于主目录中(为用户目录,不是根目录)
- 比如root的家目录是/root
- lsc的家目录是/home/lsc
mkdir命令
- mkdir [选项] 目录名
- 功能就是创建一个目录,不是普通文件
常见选项
- -p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;
- 因为mkdir默认是只创建一个目录
rmdir命令
- rmdir [选项] 要删除的目录
- 这个命令默认要删除的目录必须是空目录,如果目录下有内容是无法删除的
rm命令
- 作用:删除一个或多个
文件或目录 - 命令格式:rm [选项] 文件1 文件2…
常见选项:
- -f 即使文件属性为只读(即写保护),亦直接删除,也就是强制删除不提醒
- -i 删除前逐一询问确认(交互式)
- -r 删除目录及其下所有文件
- 如果没有使用-r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状
注意
rm是一个危险的命令,使用的时候要特别当心,否则整个系统就会毁在这个命令。比如在/(根目录)下执行rm -rf *
- 所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑
touch命令
- 功能:
- 1如果一个文件不存在,创建一个新文件(普通文件),文件内容是空的
- 2如果一个文件存在,修改这个文件的last modified(上一次的修改时间/最后修改时间)
- 语法:touch [选项] 文件
cp指令
- cp指令将文件拷贝到指定目录
- 基本语法:cp [选项] source dest
- \cp 表示强制覆盖不提示
常用选项
- -r递归复制整个文件夹
- 我们把一个目录下的内容拷贝过去,肯定就需要-r
mv指令
- mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命 令,经常用来备份文件或者目录。
- 两种用法
- 重命名:mv oldNameFile newNameFile(两个文件在同一个目录)
- 移动:mv 文件 新目录(且这个目录是存在的)移动一个文件或目录时,指令最后一个参数肯定是一个路径
常用选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
文件查看类
cat命令
-
cat主要有三大功能
- 一次显示整个文件:cat filename
- 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件
- 是输出重定向
- cat oldname > newName 就可以实现我们的cp的功能
- 将几个文件合并为一个文件:cat file1 file2 > file
-
命令格式:cat [选项] [文件]…
常见命令参数:
- -n:对输出的所有行编号,由1开始对所有输出的行数编号
- -b:对非空输出行编号
- -s 不输出多行空行
cat命令是一次性显示整个文件内容(不能编辑),一般用于查看不会实时变更的文件内容,而tail命令一般用于查看会实时变更的文件内容,如日志文件等
less命令
- 功能:分屏查看文件内容,功能与more类似,但比more更加强大,支持各种显示终端。less指令在显示文件内容时,
并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于大型文件具有更高的效率。- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
- less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
- 但若使用了 less 时,就可以使用
[pageup][pagedown]等按键的功能来往前往后翻页翻看文件,更容易用来查看一个文件的内容! - 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
- /字符串 向下查询字符串的功能 n向下查找 N向上查找
- q 离开less这个程序
- 基本语法 less 要查看的文件
more命令
- 语法:more
[选项][文件] - 功能:more命令,功能类似 cat
注意:
-
在使用more的过程中,只能使用回车键进行向下查看,
-
同时也可以使用/内容来搜索并查看相关的内容。
head 指令
- 功能: head 用来显示档案的开头至标准输出中,默认情况下head 指令显示文件的前10 行内容
- 语法: head [选项] 文件名
选项:
- -n<行数> 表示显示多少行
tail命令
- 功能:tail 命令从指定点开始将文件写到标准输出,默认情况下tail 指令显示文件的前10 行内容。
- 语法: tail [选项] 文件名
常见选项:
- -f 循环读取
- -f选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容.
- 我们使用tail -f 这个命令的程序会一直执行,ctrl+c退出
- -n<行数> 显示行数
文件输入输出类
echo 指令
- echo 输出内容到控制台
- 基本语法:echo [选项] [输出内容]
应用实例
- 使用echo 指令输出环境变量, 比如输出 $PATH $HOSTNAME, echo $HOSTNAME 输出本机名称
- 使用echo 指令输出hello,world!
>指令
-
输出重定向
-
功能:本来应该写入到显示器的内容,修改进程的标准输出
- 会清空原始文件的内容,进行重新写入。
- 如果文件不存在,就会自动创建文件并写入
-
语法:> 文件
某些场景
- ls -l >文件 将当前所在目录下的详细文件信息写入到指定文件中,以覆盖的模式
- ls -al >>文件
- cat 文件1 > 文件2
- echo “内容”>> 文件(追加)
>>指令
- 追加输出重定向
- 语法:>> 文件
- 功能:将本来应该写入到显示器的内容,把它追加到文件的后面
- 不会清空原始文件中的内容,会在原来文件内容的末尾进行追加
- 如果文件不存在,就会自动创建
<指令
- 语法:< 文件
- 功能:把本来应该从键盘文件中读取数据的方式,修改进程的标准输入
软硬链接
ln 指令
-
link:软链接也称为符号链接,类似于windows 里的快捷方式,主要存放了链接其他文件的路径
- 因为在实际开发的时候,可能某些文件在多处使用,我们不可能在每个地方都拷一遍,利用这种软链接来实现文件的共享
-
基本语法:ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
实例
- 在/home目录下创建一个软连接 myroot,链接到/root目录
- ln -s /root/ /home/myroot
- 删除对应的软链接 rm myroot

- Linux的软链接类似与我们的Windows的快捷模式
- 比如我们cd /home/myroot 使用pwd查看当前目录,仍然看见的是我们的软链接所在的目录
硬链接
在硬链接创建的过程中,并不是数据被复制粘贴,而是系统构造了一个新的指针来访问原本数据。所以无论操作哪个都是在源数据上操作,自然会映射到另一个文件上去;新文件和旧文件删了哪个都不会影响到数据本身,这是因为仍有指针指向这段数据,只有全删了才会导致原本的数据段地址被判断为废弃而被释放。
在linux中,新的硬连接和旧的硬连接在不同的目录位置指向同一个node,他们之间不存在说哪个和哪个是副本关系,当新的硬连接生成,就不存在谁是“源文件”了,指向同一个node的硬链接之间不存在直接的交互关系。
操作系统知识
基于索引结点的共享方式——硬链接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tyfY19j2-1678113302294)(C:\Users\lsc07\Desktop\学习资料\19typora笔记\13Linux\第二章Linux操作语法1.assets\b8d8928c961319dc29a340ae8d6ab145.png)]
- 我们的索引结点:因为查找文件只需要文件名,因此把文件名之外的其他信息放到索引结点中,这样目录项就只需要包含文件名和索引结点指针,可以让我们的相同大小的目录表装入更多的目录项
- 让我们的让不同的目录项指向同一个文件的索引结点,实现文件的共享
- 当我们的count==0的时候,才会由系统负责删除文件
history 指令
- 查看已经执行过历史命令,也可以执行历史指令
- 基本语法history
应用实例
案例1: 显示所有的历史命令
- history
案例2: 显示最近使用过的10 个指令。
- history 10
案例3:执行历史编号为5 的指令
- !5
时间日期类
date 指令—显示时间
基本语法
- date (功能描述:显示当前时间)
- date +%Y (功能描述:显示当前年份)
- date +%m(功能描述:显示当前月份)
- date +%d (功能描述:显示当前是哪一天)
- date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
应用实例
案例1: 显示当前时间信息
- date
案例2: 显示当前时间年月日
- date “+%Y-%m-%d”
案例3: 显示当前时间年月日时分秒
- date “+%Y-%m-%d %H:%M:%S”
date 指令—设置日期
- 基本语法 : date -s 字符串时间
cal 指令
-
功能:查看日历指令cal
-
基本语法:cal [选项] (功能描述:不加选项,显示本月日历)
应用实例
- 案例1: 显示当前日历cal
- 案例2: 显示2020 年日历: cal 2020
管道
进程之间通信的方式
- 1信号量
- 2管道
- 3信号
- 4共享内存
- 5文件
- 6网络

- Linux中使用|来表示使用管道
实例
获得hello.txt的78910四行内容
- head -10 hello.txt | tail -4
搜索查找类
find指令
- find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- 基本语法:find [搜索范围] [选项]
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间(这里是指30G字节以上的文件系统)
选项说明
- -name<文件名> 按照指定文件名查找模式查找文件
- -user<用户名> 查找指定用户名所有文件
- -size<文件大小> 按照指定的文件大小查找文件
应用实例
-
案例1: 按文件名:根据名称查找/home 目录下的hello.txt 文件
- find /home -name hello.txt
- 也可以支持模糊查询
-
案例2:按拥有者:查找/opt 目录下,用户名称为nobody 的文件
- find /opt -user nobody
-
案例3:查找整个linux 系统下大于200M 的文件(+n 大于-n 小于n 等于, 单位有k,M,G)
- find / -size +200M
locate 指令
- locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。
- 为了保证查询结果的准确度,管理员必须定期更新locate 时刻
- 基本语法:locate 文件名
特别说明
- 由于locate 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb 指令创建locate 数据库。
which 指令
- 可以查看某个指令在哪个目录下,比如ls 指令在哪个目录
- which ls 查看ls在哪个目录
grep指令
- grep表示过滤查找 在文件中搜索字符串,将找到的行打印出来。一般都是与管道符"|"配合使用,表示将前一个命令的处理结果输出传递给后面的命令处理
- 基础语法 grep [选项] 查找内容 源文件
常用选项
- -n 显示匹配行及行号
- -i 忽视字母大小写
- -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
应用实例
案例1: 请在hello.txt 文件中,查找"yes" 所在行,并且显示行号
- 写法1: cat /home/hello.txt | grep “yes”
- 写法2: grep -n “yes” /home/hello.txt
压缩解压类
gzip/gunzip 指令
- gzip 用于压缩文件, gunzip 用于解压的
- 基本语法
- gzip 文件(功能描述:压缩文件,只能将文件压缩为*.gz 文件)
- gunzip 文件.gz (功能描述:解压缩文件命令)
应用实例
案例1: gzip 压缩, 将/home 下的hello.txt 文件进行压缩
- gzip /home/hello.txt
案例2: gunzip 压缩, 将/home 下的hello.txt.gz 文件进行解压缩
- gunzip /home/hello.txt
zip/unzip 指令
-
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
-
基本语法
-
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
-
unzip [选项] XXX.zip (功能描述:解压缩文件)
-
zip 常用选项
- -r:递归压缩,即压缩目录
unzip 的常用选项
- -d<目录> :指定解压后文件的存放目录
实例
将/home下的所有文件进行压缩成myhome.zip
- zip -r myhome.zip /home/
将myhome.zip解压到/opt/tmp目录下
- unzip -d /opt/tmp myhome.zip
tar 指令
-
tar 指令是打包指令,最后打包后的文件是
.tar.gz 的文件。 -
基本语法: tar [选项] XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式 .tar.gz)
选项说明
- -c或–create 建立新的备份文件 也就是产生.tar文件
- -C<目的目录> 切换到指定的目录。
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z通过gzip指令处理备份文件
- -x 解包.tar文件
应用实例
案例1: 压缩多个文件,将/home/pig.txt 和/home/cat.txt 压缩成pc.tar.gz
- tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
案例2: 将/home 的文件夹压缩成myhome.tar.gz
- tar -zcvf myhome.tar.gz /home/
案例3: 将pc.tar.gz 解压到当前目录
- tar -zxvf pc.tar.gz
案例4: 将myhome.tar.gz 解压到/opt/tmp2 目录下
- tar -zxvf myhome.tar.gz -C /opt/tmp2
相关文章:
第二章Linux操作语法1
文章目录vi和vim常用的三种模式vi和vim快捷键Linux开机,重启用户管理用户信息查询管理who和whoami用户组信息查询管理用户和组的相关文件实用指令集合运行级别帮助指令manhelp文件管理类pwd命令ls命令cd命令mkdir命令rmdir命令rm命令touch命令cp指令mv指令文件查看类…...
linux内核调度问题分析
目录 一、调度场景分析 不支持内核抢占的内核 支持内核抢占 二、如何让新进程执行 三、调度的本质 一、调度场景分析 假如内核只有3个线程,线程0创建线程1和线程2.当系统时钟到来时,时钟中断处理函数会检查是否有进程需要调度。当有进程需要调度时…...
C语言-基础了解-25-C强制类型转换
C强制类型转换 一、强制类型转换 强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为…...
【Python】如何安装 Allure 工具进行自动化测试
Allure 是一种流行的工具,用于以人类可读的格式生成测试报告,从而更容易理解和分析测试结果。在这篇博客中,我们将探索如何在 Windows 机器上安装 Allure 及其依赖项。 1 Prerequisites 先决条件 在田辛老师开始之前,请确保您的…...
nginx七大核心应用场景详解 解决生产中的实际问题 二次开发扩展
nginx七大核心应用场景详解 & 解决生产中的实际问题1、nginx的安装与简单配置1.1、环境准备1.2、nginx基本操作指令:1.3、安装成系统服务1.4、conf 配置文件说明2、虚拟主机2.1、nginx多主机配置2.2、二级域名与短网址解析3、基于反向代理的负载均衡3.1、跳转到…...
Java 整合 Redis
文章目录Java 整合 Redis一、Jedis二、Spring-Data-RedisJava 整合 Redis Redis 在项目中我们主要用来做缓存,就像我们用 MySQL 做持久层数据一样。Redis 的客户端有两种实现方式: 一是直接调用 Jedis 来实现,类似于 Java 使用 JDBC 操作数…...
Django实践-03模型-02基于admin管理表
文章目录Django实践-03模型利用Django后台管理模型1. 将admin应用所需的表迁移到数据库中。2. 创建访问admin应用的超级用户账号,3. 运行项目4.注册模型类5.对模型进行CRUD操作。6.实现学科页和老师页效果1. 修改polls/views.py文件。2.修改templates/polls/subject…...
如何安装python
windows安装 下载安装包 登录python官网 https://www.python.org/ 点击downloads 置顶下载的是最新的python版本 如果想下载指定版本往下翻找 安装程序 点击即可下载,然后打开下载的exe程序 勾选添加pythonexec到path,也就是添加到环境变量 使用a…...
java String类 万字详解(通俗易懂)
目录 一、前言 二、介绍和溯源 三、String类常用构造器 1.String() 2.String(byte[] bytes) 3.String(char[] value) 4.String(char[] value, int offset, int count) 5.String(String original) Δ演示 : 四、不同方式创建String类对象的区别 1.直接赋值的方式 2.常规new…...
Hive拉链表
概述 拉链表:维护历史状态以及最新状态数据的表 作用场景 1. 数据量比较大。 2. 表中的部分字段会被更新,比如用户的地址,银行利率,订单的状态等。 3. 需要查看某一个时间点或者时间段的历史快照信息,比如,…...
day1 开发我的第一个MyBatis程序
文章目录开发我的第一个MyBatis程序1. resources目录:2. 开发步骤3. 从 XML 中构建 SqlSessionFactoryMyBatisIntroductionTest4. mybatis中有两个主要的配置文件:5. 关于第一个程序的小细节mybatis-config.xml6. 关于mybatis的事务管理机制。࿰…...
【CDP】更改solr 存储路径导致ranger-audit 大量报错问题解决
前言 我们生产上公司是使用的CDP集群,一次管理员通知,Solr 组件的数据存放路径磁盘空间不够。 我们的solr 组件时为 Ranger 服务提供日志审计功能, 在我们更改了磁盘路径,并重启了Solr 组件,然后发现相关组件&#…...
JavaScript基础一、简介
零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…...
Qt音视频开发20-vlc内核动态保存录像文件(不需要重新编译源码)
一、前言 在vlc默认提供的保存文件方式中,通过打开的时候传入指定的参数来保存文件,直到关闭播放生成文件,这种方式简单暴力,但是不适用大部分的场景,大部分时候需要的是提供开始录制和停止录制的功能,也就…...
【深度学习】BERT变体—RoBERTa
RoBERTa是的BERT的常用变体,出自Facebook的RoBERTa: A Robustly Optimized BERT Pretraining Approach。来自Facebook的作者根据BERT训练不足的缺点提出了更有效的预训练方法,并发布了具有更强鲁棒性的BERT:RoBERTa。 RoBERTa通过以下四个方面…...
java面试准备1
JVM、JRE和JDK的关系 JVM:Java Virtual Machine是java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此java可以实现跨平台使用。 JRE:Java Runtion Envirement包括Java虚拟机和Java程序所需要的核心类库等。 J…...
buffer它到底做了个啥,源码级分析linux内核的文件系统的缓冲区
最近一直在学习linux内核源码,总结一下 https://github.com/xiaozhang8tuo/linux-kernel-0.11 自己整理过的带注释的源码。 为什么要有buffer 高速缓冲区是文件系统访问块设备中数据的必经要道(PS:如果所有程序结果都不落盘,只是int a, a直接在主存…...
【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马
【蓝桥杯刷题】—— 盗版Huybery系列之手抓饼赛马😎😎😎 目录 💡前言🌞: 💛盗版Huybery系列之手抓饼赛马题目💛 💪 解题思路的分享💪 😊题…...
【微信小程序-原生开发】实用教程16 - 查看详情(含页面跳转的传参方法--简单传参 vs 复杂传参)
需在实现列表的基础上开发 【微信小程序-原生开发】实用教程15 - 列表的排序、搜索(含云数据库常用查询条件的使用方法,t-search 组件的使用)_朝阳39的博客-CSDN博客 https://sunshinehu.blog.csdn.net/article/details/129356909 效果预览 …...
论文精读:Ansor: Generating High-Performance Tensor Programs for Deep Learning
文章目录1. Abstract2. Introduction3. Background4. Design Overview5. Program Sampling5.1 Sketch Generation5.2 Random Annotation6. Performance Fine-tuning6.1 Evolutionary Search6.2 Learned Cost Model7. Task Scheduler7.1 Problem Formulation7.2 Optimizing with…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
