DAY5Linux基础
内容提要:Vim编程器(进阶)(※※※※※)、网络相关指令、进程相关指令、磁盘相关指令、挂载与卸载、Linux共享环境搭建
Vim编程(进阶)
Vim常用指令
光标移动
-
行间移动
gg键
:命令模式下,移动光标到第一行G键
:命令模式下,移动光标到最后一行:n
:末行模式下,移动第n行,写法举例::6
:移动到第六行
-
列间移动
$键
:移动光标到当前的行尾(最后一列),一般可以使用dhift+$
(命令模式下)0键
:移动光标到当前的行首(第一列)(命令模式下)
-
方向键:上下键实现行间移动,左右键实现列间移动
删除
- 列删除
x键
:删除当前光标所处右边一个字符(命令模式下)nx/X键
:删除当前光标所处以及后面共n个字符,如:6x
:删除从当前光标处共六个字符(命令模式下)X键
:删除当前光标所处左边一个字符(命令模式下)D键
:删除当前光标至行尾(最后一列)(命令模式下)
- 行删除
dd键
:删除当前光标所在行(命令模式下)ndd键
:删除当前光标所在处至后面共n行,如:6dd
:从光标所在处开始连续删除6行(命令模式下)dG键
:删除当前光标所在。(命令模式下):n,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
行数据然后站到dn
行,如3,14 copy 2
,从第3行开始拷贝至第14 行,粘贴复制(末行模式下)
粘贴(类似于Windows上的Ctrl+V)
p键
:如果拷贝到是整行,粘贴在当前行下。如果拷贝的是字符粘贴在当前光标之后(配套yy
,nny
,复制列
)(命令模式下)P键
:如果拷贝到是整行,粘贴在当前行下。如果拷贝的是字符粘贴在当前光标之前(配套yy
,nny
,复制列
)(命令模式下)
撤销(类似于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
:将全文每一行第一个匹配项old_string替换成new_string(末行模式下)
测试数据:
第一行:int main(int arge)
第二行:int main(int params)
需求:将int替换成void
指令::%s /int/viod
回车
第一行:void main(int arge)
第二行:void main(int params)
:%s /old_string/new_string/g
:将全文所有匹配项old_string替换成new_string(末行模式下)
测试数据:
第一行:int main(int arge)
第二行:int main(int params)
需求:将int替换成void
指令::%s /int/viod/g
回车
第一行:void main(void arge)
第二行:void main(void params)
Vim其他指令(不分需要自己设置快捷键)
:set nu
:设置行号(末行模式下)
:set nonu
:取消设置行好(末行模式下)
ctrl+G
:显示文件名,当前的行号,文件的总行数和文件位置的百分比(末行模式下)
注意:删除、拷贝、粘贴、撤销、字符查找、字符替换常用指令需要重点记忆
虚拟机网络模式
1.桥接模式
直接连接物理网络,也就是和Windows共享一个网段,并且能够于Windows一样可以连接到互联网
可以理解为Windows和Linux分别连接路由器
好处:网络稍微会快一点
坏处:占用路由器的IP,如果路由器的载荷过大,网络会掉线
2.NAT模式
用于共享主机的IP地址,是由虚拟网卡分配网段和IP,并且能够于Windows一样可以连接到互联网
可以理解为Windows和Linux连接路由器,Linux由虚拟网卡分配
好处:不占用路由器IP
坏处:网络会稍微慢一点
3.仅主机模式
和Windows的网段不一样,不能连接网络
好处:数据安全
坏处:不能访问互联网
网络相关指令
指令
ping
执行者:所有用户
说明:测试网络是否通畅
语法:
ping [选项] 目标的IP或目标网址
选项:
-c n
:显示n次应答后停止
范例:
ping 192.168.12.64 --测试IP是否可以联通
ping www.baidu.com --测试网络是否可以联通
ping -c 5 192.168.12.64 --测试IP是否可以联通,显示5次应答后停止
注意:这个指令同样适用于Windows,但是不需要设置应答次数,因为Windows默认应答4次。Linux如果没有设置应答次数,ctrl+C退出。
ifconfig
执行者:所有用户(查询)|ROOT用户(设置)
说明:查看临时配置网络接口(所谓的临时设置,就是电脑一关机,所有配置失效)
语法:
ifconfig [网络接口名] [设置选项]
范例:
ifconfig --查看本机所有网络接口信息(包含IP)
ifconfig es33 --查看指定的网络接口信息(ens33是网络接口途径)
sudo ifconfig ens33 192.168.12.64 --将ens33对应的网络IP临时设置为192.168.12.88
注意:Windows系统可以使用ipcofig
指令查看网络接口信息。
netstat
执行者:所有用户
说明:查看网络的状态信息
语法:
netstat [选项]
选项:
-l
:只显示监听状态的套接字
-t
:显示tcp协议的套接字
-a
:显示所有套接字
-u
:显示udp协议的套接字
-n
:显示数字形式的IP
范例:
netstat -tuln
进程相关指令
相当于Windows的任务管理器
指令
ps
执行者:所有用户
说明:查看系统运行的进程
语法:
ps [选项]
选项:
-a
:显示所有终端中的进程
-x
:显示所有未连接终端的进程
-u
:显示进程所有者的信息
范例
ps -aux --BSD语法格式
ps -ef --标准语法格式
top
执行者:所有用户
说明:查看实时的系统状态信息,包括进程的数据PID、进程属主、优先级、CPU等
语法:
top
kill
执行者:所有用户
说明:根据进程的PID终止进程
语法:
kill [选项] PID
选项:
-9
:强制终止进程运行
范例:
kill -9 69487 --终止进程PID为69487进程
killall
执行者:所有用户
说明:根据进程名终止当前运行的进程
语法:
killall [选项] PID
选项:
-9
:强制终止进程运行
范例:
killall -9 demo01 --终止进程PID为69487进程
磁盘相关指令
指令
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/sda1 -- 检索文件系统
df -h /mnt -- 检索挂载点
挂载相关指令
什么是卸载与挂载
Linux中根目录以外的文件想要被访问,就需要将其关联Linux系统中的某个目录来实现。我们将这 种关联操作称之为挂载“挂载”,这个目录就是“挂载点”,Linux专门提供了一个用于挂载外部设备的 目录,叫做 /mnt
。解除次关联关系的过程称之为“卸载”。
文件挂载指令
fdisk
执行者:ROOT用户
说明:查看所有磁盘列表,包括Linux自身+外部存储设备(查询所有可挂载的文件系统,对应的文件系统会在/dev下产生一个对应的设备文件)
语法:
[sudo] fdisk -l
演示:
注意:以上的/dev/sda1就是我们后续挂载需要的设备名每一个名字对应一个存储空间。在Linux中,对硬件的操作,说白了,就是其设备的读写。
mount(挂载)
语法:
mount [选项] 文件系统 挂载点
ntfs 手动挂载
说明:挂载一个文件系统(硬件外设对应的文件。一般在/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共享环境搭建
NFS网络文件系统
说明:这个主要是应用于Linux系统与Linux系统之间的通信。
服务端
步骤:
- 在被共享的系统中安装nfs服务
sudo apt-get install nfs-kernel-server
2.nfs服务端的配置
sudo apt-get update
sudo apt-get upgrade
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
客户端
-
nfs客户端环境搭建
sudo apt-get install nfs-common
2.nfs客户端查看服务端的共享目录(非必须),服务端IP
sudo showmount -e 服务端IP
范例:
sudo showmount -e 192.168.11.7
- 将共享目录挂载到本地目录
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 apt-get install samba
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.