vim编译器(进阶版)
vim常用指令
光标移动(了解)
-
行间移动
-
gg
:移动光标到第一行(命令模式下) -
G键
:移动光标到最后一行(命令模式下) -
:n
:移动到第n行,写法举例::6
:移动到第6行(末行模式下)
-
-
列间移动
-
$键
:移动光标到当前行的行尾(最后一列),有些电脑需要使用Shift+$
(命令模式下) -
0键
:移动光标到当前行的行首(第一行)(命令模式下)
-
-
方向键:上下键实施行间移动,左右键实现列间移动
删除
-
列删除
-
x键
:删除当前光标所在处一个字符(命令模式下) -
nx键
:删除当前光标所在处以及后面共n个字符,如6x
:删除从当前光标处共6个字符(命令模式下) -
X键
:删除当前光标处左边一个字符(命令模式下) -
nX键
:删除当前光标处左边共n个字符,如6X
:删除当前光标处左边共6个字符(命令模式下) -
D键
:删除当前光标至行尾(最后一行)(命令模式下)
-
-
行删除(重点)
-
dd键
:删除当前光标所在行。(命令模式下) -
ndd键
:删除当前光标所在处至后面共n行,如:6dd
:从光标处开始连续删除6行(命令模式下) -
dG键
:删除当前光标所在处至文件末尾(命令模式下) -
:n1,n2d
:删除n1~n2行,如:1,12d
:表示删除 1~12行(末行模式下)
-
拷贝(重点,类似于windows的Ctrl + C)
-
复制列(字符)
-
多按几次
ESC
,然后按v键
,进入可视方式,移动方向键
选中文本,然后按y键
,就完成了拷贝。需要结合p键
进行粘贴。(命令模式下)
-
-
复制行
-
yy键
:复制当前行(单行复制)(命令模式下),需要结合p键
进行粘贴。 -
nyy键
:复制当前行至后续连续n行(多行复制),如5yy
,从当前行开始连续复制5行。需要结合p键
进行粘贴(命令模式下) -
n1,n2 copy dn
:复制n1~n2
行数据然后粘贴到dm
行,如:3,14 copy 2
,从第3行开始拷贝到第14行,粘贴到第2行的下一行。(末行模式下)
-
粘贴(重点,类似于windows的Ctrl + V)
-
p键
:如果拷贝的是整行,粘贴在当前行下。如果拷贝的是字符粘贴在当前光标之后(配套yy
,nyy
,复制列
)(命令模式下) -
P键
:如果拷贝的是整行,粘贴在当前行上。如果拷贝的是字符粘贴在当前光标之前(配套yy
,nyy
,复制列
)(命令模式下)
撤销(重点,类似于windows的Ctrl + Z)
-
u键
:撤销上一步操作,相当于Ctrl + Z。(命令模式下) -
U键
:撤销当前行中所有操作。(命令模式下) -
Ctrl + R
:重做撤销的操作,可以理解为对撤销进行还原。类似于Windows中的Ctrl + Y
(命令模式下)
字符查找(重点,类似于Windows上的Ctrl + F)
-
/string
:从光标所在处向后查找"string"字符串,输入完毕,需要按下回车键
;按n
可往下继续查找,按N
可往上查找,举例:/int
:要查询的字符串是int。(末行模式 + 命令模式) -
?string
:从光标所在处向后查找"string"字符串,输入完毕,需要按下回车键
;按n
可往下继续查找,按N
可往上查找,举例:?int
:要查询的字符串是int。(末行模式 + 命令模式) -
:set ic
:查找时忽略大小写,查询之前设置,(默认忽略大小写),举例:f/F
,匹配到f+F
(末行模式下) -
:set noic
:查找时区分大小写,查询之前设置,(默认忽略大小写),举例:f/F
,匹配到f/F
(末行模式下)
字符替换(重点,类似于Windows上的Ctrl +F)
-
:%s /old_string/new_string
:将全文每一行第一个匹配项oud_string替换成new_string(末行模式下)
测试数据:
第一行:int main(int args)
第二行:int func(int params)
需求:将int替换成void
指令::%s /int/void
回车
替换结果:
第一行:void main(int args)
第二行:void func(int params)
-
:%s /old_string/new_string/g
:将全文所有匹配项oud_string替换成new_string(末行模式下)
测试数据:
第一行:int main(int args)
第二行:int func(int params)
需求:将int替换成void
指令::%s /int/void/g
回车
替换结果:
第一行:void main(int args)
第二行:void func(int params)
vim其他指令
:set nu
:设置行号(末行模式下)
:set nonu
:取消设置行号(末行模式下)
Ctrl +G
:显示文件名,当前的行号,文件的总行数和文件位置的百分比(末行模式下)
虚拟机网络模式(了解)
-
桥接模式
直接连接物理网络,也就是和Windows共享一个网段,并且能够与Windows一样可以连接到互联网
可以理解为Windows和Linux分别连接路由器
好处:网络稍微会快点
坏处:占用路由器的IP,如果路由器的载荷过大,网络会掉线
-
NAT模式
可以共享主机的IP地址,是由虚拟网卡分配网段和IP,并且能够和Windows一样可以连接到互联网
可以理解为Windows连接路由器,Linux由虚拟网卡分配
好处:不占用路由器IP
坏处:网络会稍微慢一点
-
仅主机模式
和Windows的网段不一样,不能连接网络
好处:数据安全
坏处:不能访问互联网
网络相关指令
指令
ping(重点)
执行者:所有用户
说明:测试网络是否通常
语法:
ping [选项] 目标IP/目标网址
选项:
-c n
:显示n次应答后停止
范例:
ping 192.168.31.205 #测试IP是否可以联通
ping www.baidu.com #测试网址是否可以联通
ping -c 5 192.168.31.205 #测试IP是否可以联通,显示5次应答后停止
注意:这个指令同样适用于Windows,但是不需要设置应答次数,因为Windows默认应答4次。
ifconfig(重点)
执行者:所有用户(查询)| ROOT用户(设置)
说明:查看或临时配置网络接口(所谓的临时设置,就是电脑一关机,所有的配置失效)
语法:
ifconfig [网络接口名] [设置选项]
举例:
ifconfig #查看本机所有网络接口信息(包含IP)
ifconfig ens33 #查看指定的网络接口信息(ens33是网络接口名,不是一成不变的)
sudo ifconfig ens33 192.168.31.205 #将ens33对应的网络IP临时设置为192.168.31.205,将该指令写入/etc/profile中,就变成永久设置了。
注意:Windows系统可以使用ipconfig
指令查看网络接口信息。
netstat
执行者:所有用户
说明:查看网络的状态信息
语法:
netstat [选项]
选项:
-l
:只显示监听状态的套接字
-t
:学生TCP协议的套接字
-a
:显示所有套接字
-u
:显示udp协议的套接字
-n
:显示数字形式的IP
举例:
netstat -tuln
进程相关指令
指令
ps
执行者:所有用户
说明:查看系统运行的进程
语法:
ps [选项]
选项:
-a
:显示所有终端的进程
-x
:显示所有未连接终端的进程
-u
:显示进程所有者的信息
举例:
ps -aux #BSD语法格式
ps -ef #标准语法格式
top
执行者:所有用户
说明:查看实时的系统的状态信息,包括进程的数据PID、进程属主、优先级、CPU、内存等可以使用这些显示支出资源使用量。
语法:
top
kill(重点)
执行者:所有用户
说明:根据进程的PID终止当前运行的进程
语法:
kill [选项] PID
选项:
-9
:强制终止进程运行
举例:
kill -9 20665 #终止进程PID为20665的进程
killall(重点)
执行者:所有用户
说明:根据进程名终止当前运行的进程
语法:
killall [选项] PID
选项:
-9
:强制终止进程运行
举例:
killall -9 yueqian #终止进程名为yueqian的进程
磁盘相关指令
指令
du
执行者:所有用户
说明:显示某个文件或者目录的磁盘空间大小
语法:
du [选项] [文件/目录]
选项:
-b
:以Byte为单位显示大小,1Byte=8Bit
-k
:以KB为单位显示大小,1KB=1024Bytes
-m
:以MB为单位显示大小,1MB=1024KB
-h
:以人们较容易阅读的GB,MB,KB等格式显示,最常用的选项
-s
:显示总计(用于显示目录大小)
举例:
du -h ~
df(重点)
执行者:所有用户
说明:显示磁盘分区上磁盘空间的使用详情
语法:
df [选项] [文件系统/挂载点/目录]
选项:
-a
:以Byte为单位显示完整的磁盘使用情况
-h
:以人们较容易阅读的GB,MB,KB等格式显示,最常用的选项
举例:
df -h #检索目录
df -h /dev/sdal #检索文件系统
df -h /mnt #检索挂载点
文件挂载指令【Linux应用开发阶段使用】
fdisk
执行者:root用户
说明:查看所有磁盘列表,包括Linux自身 + 外部存储设备(查询所有可挂载的文件系统,对应的文件系统会在/dev下产生一个对应的设备文件)
语法:
[sudo] fdisk -l
演示:
注意:以上的/dev/sda1就是我们后续挂载需要的设备名,每一个名字对应一个存储空间。
在Linux中,对应硬件的操作,说白了,就是对其设备文件的读写。
mount
语法:
mount [选项] 文件系统 挂载点
说明:挂载一个文件系统(硬件外设对应的文件。一般在/dev目录下)
执行者:ROOT用户
选项:
-t
:文件系统的类型,指定要挂载的设备上的文件系统的类型
-r
:只读挂载
-w
:只写挂载
注意:如果不给定选项,挂载后可读可写,一般不添加选项
范例:
sudo mount /dev/sda1 /mnt/udisk
解释:挂载/dev/sda1对应的外部存储设备到/mnt/udisk目录,此时访问udisk目录,就相当于访问外部存储设备,比如U盘
说明:
我们每一个外设在接入Linux系统的时候,Linux系统会为每一个外部设备准备一个映射文件,这个映射文件就存放在/dev目录。如果我们想要访问这个外设(存储外设),我们就需要访问/dev下对应的映射文件(设备文件),或这个根据文件系统将外设挂载到我们指定的挂载点,这样我们就可以正常访问这个外设。
umount
语法:
umount [选项] 文件系统/挂载点
说明:卸载文件系统
执行者:ROOT用户
选项:
-t
;文件系统的类型,指定要挂载的设备上的文件系统的类型
-f
:强制卸载
范例:
sudo -f umount /dev/sda1
我们在Linux应用开发阶段开始,使用GEC6818平台测试
Linux共享环境搭建【扩展】
如果Linux源不能用,就需要替换成国内的源:
清华源配置:sudo apt update报错,显示明文签署文件不可用,结果为‘NOSPLIT’_明文签署文件不可用,结果为‘nosplit’(您的网络需要认证吗?)-CSDN博客
NFS网络文件系统
说明:这个主要是应用于Linux系统与Linux系统之间的通信。
服务端
步骤:
-
在被共享的系统中安装nfs服务
sudo apt-get install nfs-kernel-server
注意:如果系统提示无法定位软件包,就需要更新软件源
sudo apt-get update
sudo apt-get upgrade
2. nfs服务端的配置
sudo vim /etc/exports
3.在exports文件末尾添加如下内容
/home/st/share *(rw,sync,no_root_squash)
说明:
/home/st/share
:要被共享的目录
*
:指定哪些用户可以访问
① *
:表示所有可以ping通该主机的用户
② 192.168.11.*
:表示指定网段中的用户可以访问
③ 192.168.11.13
:表示指定IP的用户可以访问
(rw,sync,no_root_squash)
:表示访问权限(其它选项:man 5 exports查看),可以1个,可以多个
① ro
:只读
② rw
:读写
③ sync
:同步
④ no_root_squash
:不降低root用户的权限
4.重启nfs服务
sudo service nfs-kernel_server restart
或者
sudo /etc/init.d/nfs-kernel-server restart
客户端
1.nfs客户端环境搭建
sudo apt-get install nfs-common
2.nfs客户端查看服务端的共享目录(非必须),服务端IP
sudo showmount -e 服务端IP
范例:
sudo showmount -e 192.168.11.7
3.将共享目录挂载到本地目录
sudo mkdir /mnt/remote --创建本地目录
sudo mount 主机IP:服务端共享文件目录 /mnt/remote --将共享目录挂载到本地目录
范例:
sudo mount 192.168.11.7:/home/st/share /mnt/remote
cd /mnt/remote
Samba服务器搭建
说明:这个主要是应用于Linux系统与windows系统之间的通信。
服务器端环境搭建
安装samba服务
sudo vim /etc/samba/smb.conf
在文件中可添加如下的内容:
[shared]
path=/home/st/share
writeable=yes
public=yes
browseable=yes
available=yes
其中:
[shared]:是windows系统所能看到的共享文件夹名称;
path: Linux 系统共享的文件目录
注意:
同时修改共享目录权限为: sudo chmod 777 共享目录
重新加载samba配置文件
sudo service smbd reload
重新启动samba服务
sudo service smbd restart
至此Linux系统中samba服务就搭建完成了。
windows系统中就可以在 “运行” 中采用\\192.168.11.7
来访问到Linux共享文件,注意该IP是 Linux 系统的IP.
ftp服务搭建
说明:实现两个系统之间的文件访问。
服务器端环境搭建
安装ftp服务
sudo apt-get install vsftpd
ftp服务器端配置
sudo vim /etc/vsftpd.conf
在文件中可开启如下的设置:
local_enable=YES
write_enable=YES
这两个设置缺省是注释掉的,也就是前面有#号。取消掉#就可以了。
重新启动ftp服务
sudo service vsftpd restart
这样在Linux系统中ftp服务就搭建完成了。 在windows系统中可以使用任意一款FTP客户端软件来连接Linux, 比如下图的FlashFXP.