Vim 编辑器进阶操作
光标移动
行间移动
gg键
:移动光标到第一行(命令模式下)G键
:移动光标到最后一行(命令模式下):n
:移动到第n行,写法举例::6
:移动到第6行(末行模式下)
列间移动
$键
:移动光标到当前行的行尾(最后一列),有些电脑需要使用Shift+$
(命令模式下)0键
:移动光标到当前行的行首(第一列)(命令模式下)- 方向键:上下键实现行间移动,左右键实现列间移动。
删除操作
列删除
x键
:删除当前光标所在处一个字符(命令模式下)nx键
:删除当前光标所在处以及后面共n个字符,如:6x
:删除从当前光标处共6个字符(命令模式下)X键
:删除当前光标处左边一个字符(命令模式下)nX键
:删除当前光标处左边共n个字符,如6X
:删除当前光标处左边共6个字符(命令模式下)D键
:删除当前光标至行尾(最后一列)(命令模式下)
行删除(重点)
- 当前光标所在行。(命令模式下)
ndd键
:删除当前光标所在处至后面共n行,如:6dd
:从光标处开始连续删除6行(命令模式下)dG键
:删除当前光标所在处至文件末尾(命令模式下):n1,n2d
:删除n1~n2行,如:1,12d
:表示删除1~12行
(末行模式下)
高效编辑技巧
多行缩进
>>
:当前行向右缩进一级- <<`:当前行向左缩进一级
n>>
:从当前行开始的连续 n 行向右缩进(如5>>
)
复制粘贴
复制列字符
: 多按几次ESC
,然后按v键
,进入可视方式,移动方向键
选中文本,然后按y键
,就完成了拷贝。需要结合p键
进行粘贴。(命令模式下)yy
:复制当前整行 (命令模式下),需要结合p键
进行粘贴。- nyy
:复制从当前行开始的连续 n 行(如
4yy`) (命令模式下) - p`:在光标下一行粘贴内容 (命令模式下)
P
:在光标上一行粘贴内容 (命令模式下):n1,n2 copy dn
:复制n1~n2
行数据然后粘贴到dn
行,如:3,14 copy 2
,从第3行开始拷贝至第14行,粘贴到第2行的下一行。(末行模式下)
撤销与重做
u
:撤销最近一次操作 (命令模式下)U
:撤销当前行中的所有操作 (命令模式下)Ctrl + r
:重做被撤销的操作 (命令模式下)
搜索替换
/keyword
:向下搜索关键词(末行模式输入) 举例:/int
:要查询的字符串是int。(末行模式 + 命令模式)?keyword
:向上搜索关键词 举例:?int
:要查询的字符串是int。(末行模式 + 命令模式):%s /old/new
:将全文每一行第一个匹配项old_string替换成new_string(末行模式下)
测试数据:
第1行:int main(int args)
第2行:int func(int params)
替换结果
第1行:int main(int args)
第2行:int func(int params)
:%s /int/void/g
: 将全文所有匹配项old_string替换成new_string(末行模式下)
测试数据:
第1行:int main(int args)
第2行:int func(int params)
替换结果
第1行:void main(void args)
第2行:void func(void params)
分屏操作
:vsp
:垂直分屏打开新文件:sp
:水平分屏打开新文件Ctrl + w + 方向键
:切换分屏窗口
VIM其他指令
:set nu
:设置行号(末行模式下):set nonu
:取消设置行号(末行模式下)Ctrl+G
:显示文件名,当前的行号,文件的总行数和文件位置的百分比(末行模式下)
虚拟机网络模式
桥接模式直接连接到物理网络,与主机共享同一网段,能够访问互联网,性能接近物理机,但会占用额外的IP地址,可能因IP冲突导致连接不稳定。
NAT模式通过虚拟网络适配器共享主机的IP地址,虚拟机使用独立的内网网段,无需额外占用外部IP,适合多虚拟机场景,但网络性能略低于桥接模式。
仅主机模式创建独立的虚拟网络,仅允许虚拟机与主机间通信,无法访问外部网络,适用于需要隔离网络的环境,如安全测试或内部开发。
常用网络指令
-
ping -c 5 192.168.31.205
发送5次ICMP请求测试目标主机连通性,-c
参数控制请求次数,适用于快速检测网络延迟或丢包。 -
sudo ifconfig ens33 192.168.31.205
临时配置网络接口IP地址,需Root权限,重启后失效。ens33
为网卡名称,替换为目标设备名。 -
netstat -tuln
显示所有TCP/UDP监听端口及对应服务,-t
和-u
筛选协议类型,-n
禁用域名解析加快输出速度。
####进程管理指令
-
-
ps -aux
列出所有用户进程的详细信息,包括CPU/内存占用、启动命令等,BSD格式输出更易读。 -
top
动态监控系统资源使用情况,按CPU或内存排序进程,支持交互命令如k
终止进程。 -
kill -9 20665
强制终止指定PID的进程,-9
发送SIGKILL信号,适用于无响应的进程。 -
killall -9 yueqian
通过进程名称批量终止所有匹配进程,避免手动查找PID。
磁盘空间分析
-
du -h ~
(重点)
显示用户主目录下各文件/文件夹的磁盘占用,-h
自动转换为KB/MB/GB单位。 -
df -h
查看所有挂载分区的总空间、已用空间及剩余比例,-h
优化可读性,快速定位存储瓶颈。
挂载与卸载操作
-
sudo mount /dev/sda1 /mnt/udisk
将设备sda1
挂载到/mnt/udisk
目录,需确保挂载点已存在且有足够权限。 -
sudo umount -f /dev/sda1
强制卸载设备,-f
参数用于处理文件系统忙或无法正常卸载的情况。
NFS共享配置
-服务端:
通过/etc/exports
定义共享目录及权限,例如:
/home/st/share *(rw,sync,no_root_squash)
*
允许所有IP访问,rw
开启读写,sync
同步写入确保数据一致性。
客户端:
使用showmount -e 192.168.1.100
查看服务端共享列表,通过mount
挂载到本地目录如/mnt/remote
。
Samba共享配置
服务端:
编辑/etc/samba/smb.conf
添加共享段:
[share]
path = /home/shared
browseable = yes
writable = yes
guest ok = yes
设置目录权限为chmod 777 /home/shared
并重启服务生效。
Windows客户端通过\\LinuxIP
访问共享,需确保防火墙允许Samba端口(139/445)。
FTP服务部署
修改/etc/vsftpd.conf
关键参数:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
限制用户只能访问其主目录(chroot),启用本地用户登录及文件上传权限。
客户端连接时使用Linux用户凭据,工具如FileZilla需选择SFTP或FTP协议(端口21)。