Linux VI 基本操作

一、vi的操作模式
vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。
                          
在输入模式下,按Esc键切换到指令模式下。

在指令模式下,按输入指令(i、a、o等)进入输入模式。


二、进入vi
$ vi  filename
直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename
以只读方式打开文件filename


三、指令模式
3.1 进入输入模式
a     在当前游标之后输入
A     在当前行之末输入
i     在当前游标之前输入
I     在当前行之首输入
o     在当前行之下新增一行,并在新增行输入
O     在当前行之上新增一行,并在新增行输入
输入结束后,按Esc键退出输入模式。

3.2 游标移动
h  向左移动一个字元
l  向右移动一个字元
j  向下移动一个字元
k  向上移动一个字元
b  左移一个单词,至词首
w  右移一个单词,至词尾
0  移到当前行行首
$  移到当前行行尾
+  移至下一行的行首
-  移至上一行的行首
H  移至视窗的第一行
M  移至视窗的中间一行
L  移至视窗的最后一行
gg  移至该文件首部
G  移至该文件的最后一行
nG  移至该文档的第n行
n+  下移n行
n-  上移n行

3.3 视窗移动
ctrl + f 视窗下卷一页
crtl + b 视窗上卷一页
ctrl + d 视窗下卷半页
ctrl + u 视窗上卷半页
ctrl + e 视窗下卷一行
ctrl + y 视窗上卷一行

3.4 删除操作
x  删除游标所在字元
X  删除游标前一字元
dw  从游标当前位置开始向后删除一个单词
db  从游标当前位置开始向前删除一个单词
d0  从行首删除至当前游标位置
d$  从游标当前位置删除至行尾
dd  删除游标所在行
D 同 d$

3.5 修改操作
s  修改游标所在字元,修改完成后按Esc键结束
S  修改整行内容,修改完成后按Esc键结束
r  替换当前游标所在字元
R  进入替换状态,直至按Esc键结束
cw  修改一个单词(从游标位置至词尾)
cb  修改一个单词(从词首至游标位置)
cc  修改整行内容,完成后按Esc键结束,同S
c0  修改行首至游标位置的内容
c$  修改游标位置至行尾的内容
~  游标所在字元大小写切换

3.6 指令重复
在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:
nx  删除n个字元
ndd  删除n行
ns  修改n个字元

3.7 取消前一动作(Undo)
u  撤消上一指令的结果

3.8 查找字符串
/字符串  从当前游标向后查找该字符串
?字符串  从当前游标向前查找该字符串
n  从当前游标向后查找下一个字符串
N  从当前游标向前查找下一个字符串

3.9 查看编辑状况
+ g  显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改


复制操作
  yy命令复制当前整行的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
  y$复制光标所在位置到行尾内容到缓存区
  y^复制光标所在位置到行首内容到缓存区
  #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词

  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。


四、保存与退出
:w  保存,但不退出
:wq  保存并退出
:x  同:wq
:q  退出,如果当前文件没有保存,禁止退出
:q!  不保存退出
:w file1  将内容保存至文件file1中,注意:此时编辑的仍为原文件
:w! file1  将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行


五、环境设置
:set  显示已设置的环境状况
:set all  显示所有的环境设置选项
:set nu  显示行号
:set nonu  不显示行号
:set ts = n  设置Tab键的长度为n


六、执行指令
以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。
:10,20d  删除第10行至第20行的内容
:10d  删除第10行的内容
:%d  删除全部内容
:10,20co30  将第10行至第20行的内容复制到第30行之后
:10,20mo30  将第10行至第20行的内容移动到第30行之后
:1,$s/old/new  将第1行至最后一行中的old替换成new
:1,$s/^/new  将第1行至最后一行的内容前面插入new
:10  将游标移至第10行
 

七、重复指令
. 重复上一条指令


八、切换到shell状态
:sh  切换到shell状态,exit返回
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值