Linux 03网络、桥接、远程拷贝、免密登录、进程、监控、防火墙

目录​​​​​​​

网络相关设备

OSI七层和TCP/IP四层的关系

交换机:

路由器:

网络地址相关

配置网络的时候需要配置哪些信息:

网络传输过程:

NAT和桥接的优缺点

桥接: 

NAT:

Linux其他网络知识

修改主机名

远程拷贝:

登录远程服务器:

SSH免密登录

证书使用场景:

证书的生成:

证书注册:

Linux的自带下载工具

wget

进程

概念:

程序被加载为进程的示意图:

如何查看进程:

静态查询:

动态查询:

进程的管理:

系统资源监控(自带)

free:内存监控(可能监控不精准)

uname:查阅系统与核心相关信息

netstat:网络监控

vmstat:侦测系统资源变化     

Linux防火墙:

任务管理

概念:

管理:

用来查看后台任务:

如果将后台任务调至前台:

如何将后台任务修改为运行状态:

终止job

VIM

什么是VIM:

为什么要学习VIM,vi不够?

vim的三种模式:

一般模式(默认模式)的快捷键:

编辑模式:

命令模式:


网络相关设备

OSI七层网络模型

TCP/IP四层

概念模型  

对应网络协议

应用层(Application

HTTPTFTP, FTP, NFS, WAIS

表示层(Presentation

应用层

Telnet, Rlogin, SNMP, Gopher

会话层(Session

SMTP, DNS

传输层(Transport

传输层

TCP, UDP

网络层(Network

网络层

IP, ICMP, ARP, RARP, AKP, UUCP

数据链路层(Data Link

数据链路层

FDDI, Ethernet, Arpanet, PDN, SLIP, PPP

物理层(Physical

IEEE 802.1A, IEEE 802.2IEEE 802.11

OSI七层和TCP/IP四层的关系

  1. OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。
  2. OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。
  3. OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

交换机:

由来,早期的时候并没有这个设备,当时使用HUB设备进行数据的发送,但是HUB发送数据的特性广播,这样的方式,数据不安全,增加网路带宽的消耗。

交换的工作原理,通电之后,在自己的内部建立一张设备Mac地址表。这张表中记录了设备的Mac地址或其他的信息。

交换机可以组建局域网(内网)。

路由器:

(实现网络代理的功能,在公共网络上,上网的节点是路由器,并不是电脑。)

将局域网中的数据转发至公共网络(外网)。

早期上网的方式是,通过电话线插入电脑上,进行拨号上网。此方式的缺点:1、电话一直占线。2、有可能电话进来,掉线。

通信公司发现这样的缺点之后,出现了一个新的设备,这个设备的功能可以将电话线路一分为二。分别实现电话、上网的功能。调制解调器(猫)。

随着社会的发展,发现这种方式又不能满足日常的上网需求。一个猫只有一个接口,无法满足多台设备上网的需求的。

将多台设备接入交换,交换机的其中一个接口连接路由器。

连接顺序:猫上出的网线接入路由器的WAN口,路由器的LAN口接入交换机。

无线设备。大约在2008年,家用无线路由器开始普及。

无线路由器是将交换机和有线路由器和在一起产品。

网络地址相关

配置网络的时候需要配置哪些信息:

IP地址

PC在网络中的通信地址。

子网掩码

子网掩码有且只有这一个功能,用于划分网络,将一个IP地址中的网络位和主机位进行划分。是一个32位的地址。

网关

网络的关口,用于数据转发,通常理解为路由器的地址,大部分硬件厂家的出厂默认地址是,192.168.0.1 | 192.168.1.1

DNS

用于解析域名的作用,Domain Name System 域名解析系统。

IP地址分析

IP地址=网络位+主机位

相同的网络,网络位肯定相同,主机位不一样

不同的网络,网络位肯定不同,主机位可能一样

比如:电话号码

     网络   主机

北京:010 - 88889999

上海:021 - 12345678

      021 - 88889999

在网络中,一般来说.0这个IP被用来当作网段的标识。255这个IP被用来当作广播地址使用,正常使用的IP范围中,其中一个IP地址要被拿来当作网关(路由器)使用。

一个网络中有多少个IP地址,取决于子网掩码。

比如:家用网络中,一般都是

192.168.1.2-254        主机IP地址

255.255.255.0          子网掩码

192.168.1.1            网关

其中,192.168.1.2-254为主机IP地址。255.255.255.0子网掩码(用于划分网络,子网掩码可以计算IP地址的数量。)。192.168.1.1作为网关使用。192.168.1.0用来表示网段。

案例:

公司建立机房,决定投资建设10000台服务器的机房,那么设计网络时,掩码应该如何设计,网关应该如何设计。

16位掩码有效IP地址65534个。完全可以满足10000台服务器的需求。

网关建议大家紧贴广播地址。当前这个网络中,网关地址是192.168.255.254。

网络传输过程:

DNS

静态:

优点

可以使我们PC/服务器有一个更快的解析速度。维护方式是手动配置服务器上hosts文件。

缺点

hosts一般都是为本机系统所有,维护一台服务器还好说。如果是上千台集群,那么维护的工作很困难

动态:

优点

只需要给服务器指明DNS服务器地址即可,无需手动配置hosts文件

缺点

有一定响应时间,(延迟)。若DNS服务器宕机,那么我们就立即失去访问域名的能力。

NAT和桥接的优缺点

桥接: 

优点:

同一个局域网中的任意一台物理机想要访问虚拟机时,只要拥有账户和密码,就可以直接进行通信。

缺点:

如果宿主主机没有连接网络,那么虚拟机也就不存在与该真实网络环境中,换句话,虚拟机使用桥接模式的时候,它的网络依赖于宿主的网络环境。会占用真实的ip

NAT

优点:

可以无视物理机(宿主主机)网络环境。即便是物理机没有网络,也不影响本机和虚拟机进行通信,也不影响本机上的其他虚拟机之间互相通信。因为虚拟机真正通信网卡是VMNet8提供(网络环境)

缺点:

其他物理机想要访问NAT模式下的虚拟机时,比较麻烦。需要做端口的转发

Linux其他网络知识

修改主机名

方式一:临时修改

hostname demo02

方式二:永久修改(重启服务器生效)

编辑/etc/hostname文件进行修改

远程拷贝:

从本机拷贝数据到远程的服务器上

要求:必须知道对方的账户和密码,且具备相应的权限。

语法:scp [-r] [path]/fie | dir  {UserName}@Host_IP:/[path]

-r

该选项用于传输文件夹的时候使用。

案例:

将本机的文件拷贝到远程服务器上

# bash

scp /root/install.log root@192.168.89.128:/home

注意, 如果是第一次访问该服务器,那么会询问,是否要继续连接。每次访问都需要输入远程服务器的密码。

从远程服务器上拷贝数据到本机:

要求:必须知道对方的账户和密码,且具备相应的权限。

语法:scp {UserName}@Host_IP:/[path]/file  /[path]

案例:

将远程服务器中/home目录下的install.log拷贝到本地的root目录下

# bash

scp root@192.168.89.128:/home/install.log          /root

登录远程服务器:

语法:ssh  {UserName}@Host_IP

回车之后,如果首次访问,会提示是否继续连接。接下来要求输入远程服务器的密码。

案例:

# bash

ssh root@192.168.89.128

如果想退出当前登录

# bash

exit

Linux系统下,ssh服务的默认端口是22。如果在访问时没有指明端口,默认按照22端口访问,如果远程服务器,提供的端口不是22,那么就需要在访问的时候指定远程服务器的端口:

# bash

ssh [-p port] {UserName}@Host_IP

如果想要通过主机名来进行远程登录或者远程拷贝。需要配置/etc/hosts文件,将虚拟机ip和主机名进行一一映射

SSH免密登录

Linux免密登录使用的RSA算法。

RSA本身是一种非对称加密算法,会生成公钥和私钥。

公钥

使用公钥对内容进行加密

天王盖地虎

私钥

持有私钥的PC才能正常访问公钥加密的内容

宝塔镇河妖

只要持有私钥就能访问公钥加密的内容,这种事情本身就是存在风险的。一旦私钥丢失,那么服务器上的数据就存在被窃取的风险。

但是Linux生成公钥和私钥的时候支持对私钥证书文件添加密码。

证书使用场景:

场景一:只是单纯的使用证书来登录服务器。

使用证书的登录方式可以避免密码遗忘、泄漏的问题。

使用证书登录服务器的方式也是服务器加固(服务器安全相关问题)的方式。

服务器可以设置不允许使用密码进行远程登录。只允许证书的方式登录。

证书本身支持加密,就算证书丢失,再不知道证书密码的情况,证书属于无效文件。

场景二:集群中使用证书进行免密登录。

因为但凡设计到集群的时候,一般都不会是小数目的服务器数量。众多的服务器之间进行互相访问,频繁的输入密码的事情将会成为开发工程师噩梦。

所以,使用证书管理集群的时候,可以免除集群中的服务器互相访问时工程师手工输入密码的问题。

证书的生成:

# bash

ssh-keygen

第一次提示:你的证书文件存放位置

第二次提示:对私钥加密,输入密码。如果不需要输入密码,直接回车。

第三次提示:私钥证书的密码确认操作。

证书文件会存放在当前账户的家目录下的隐藏目录".ssh"目录下,在该目录下会有以下4个文件:

id_rsa

私钥

执行证书生成命令才会有

id_rsa.pub

公钥

执行证书生成命令才会有

known_hosts

曾经访问过的服务器信息

每次ssh、scp、ssh-copy-id到远程服务器时就会保存记录到此文件中,以后再此访问该服务器时就不会再提示那一句"你确定要继续访问吗 yes/NO?"

authorized_keys

记录来访服务器的公钥文件内容

该文件会记录访问本机的远程服务器的公钥证书文件内容,只有对应的私钥才能进行验证。

证书注册:

将本机的公钥证书文件注册到远程服务器上,此后就可以使用私钥证书进行登录。

# bash

ssh-copy-id {UserName}@Host_IP

执行此命令,会要求输入远程服务器的对应账户的密码。

这一步就是向远程服务器注册本机的id_rsa.pub文件(公钥)内容。此后只有本机上与公钥文件共同生成的私钥才能够进行免密登录。

  

Linux的自带下载工具

wget

用于从网络上下载资源,没有指定目录,下载资源默认存储到当前目录。

wget [参数] [URL地址]

–支持断点下载功能

–同时支持FTP和HTTP下载方式

–支持代理服务器

使用wget下载单个文件

wget 达内教育 - IT培训/网安/剪辑/UI设计/运营培训机构

使用wget -O下载并以不同的文件名保存

wget -O NewName.new  达内教育 - IT培训/网安/剪辑/UI设计/运营培训机构

使用wget --limit-rate限速下载(单位,byte/秒)

wget --limit-rate=300k  http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.34.tar.bz2

使用wget -b后台下载

wget -b http://mirrors.hust.edu.cn/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz

wget  http://mirrors.hust.edu.cn/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz

使用wget -i下载多个文件

wget -i urlfile.txt      # urifile文件名称仅仅为了见名知意。

urlfile.txt内容为

达内教育 - IT培训/网安/剪辑/UI设计/运营培训机构

http://big.tedu.cn/index.html

进程

概念:

进程通俗来说,运行中的程序,

在linux下,知道程序要运行,首先就是将磁盘中相应的可执行文件加载到内存中,那么我们怎么知道他在内存中哪呢?这个时候就需要我们通过一个叫做进程标识符的东西找到它。类似于我们自己的身份证

进程分为临时进程和持久进程

临时进程

执行完命令,自动结束

持久进程

程序运行后,需要手动结束

程序被加载为进程的示意图:

1、用户执行程序。

2、程序加载到内存中。

  1. 给程序一个临时的pid。
  2. 查看执行的权限,如果用户没有执行权限,那么拒绝操作,如果有,开始加载程序执行的相关资料
  3. 确认临时的PID。

如何查看进程:

在Linux系统中,不像windows那样方便,可以通过快捷键调出图形化的任务管理器来管理进程。

静态查询:

ps:

将某个时间点的程序运作情况截取下来

常用组合选项 -aux

a

关联的所有 process,通常与x一起使用,列出完整信息。

x

后台进程

u

有效使用者的相关联的进程

ajxf

可以让ps的结果以树状的格式显示出来。

举例:当我们新开一个通道编辑一个文件的时候,我们通过ps -aux可以查看到

查询特定进程用

ps -aux | grep  sshd

查询sshd服务

ps查询结果各项解释:

USER

用户

PID

进程ID

%CPU

cpu占用率

%MEM

内存使用率

VSS

虚拟内存使用量

RSS

物理内存使用量

TTY

tty1-tty6 是本机上面的登入者程序。

pts/0 等等的,则表示为由网络连接进主机的程序。

如果显示?则表示与终端机无关。

STAT

进程的状态

START

进程启动的时间

TIME

累计消耗CPU的时间

COMMAND

表示哪个命令/程序运行的该进程

状态标识:

R

正在运行,或在队列中的进程

S

处于休眠状态

l

多进程

Z

僵尸进程

T

停止或者被追踪

<

高优先级

N

低优先级

s

包含子进程

+

位于后台的进程组

僵尸进程:

由于该进程已经执行完毕,但是父进程没有终止或其他原因导致该进程并没有真正的结束,所形成的进程称之为僵尸进程。

此进程对服务器的危害在于它会持续的消耗服务器资源,消耗量会越来越大。最终导致其他的进程无资源可用,服务器崩溃。

pstree

选项:

A

各程序之间的连接以ASCII字符来连接

U

各程序之间的连接以UTF-8的字符来连接

u

列出每个process的所属账号名称

p

同时列出每个程序的进程的ID

举例:

#bash

pstree -up

注:使用哪个账户运行此命令,那么与其相关的进程则不会显示用户名

动态查询:

top

动态查询系统的进程状态。默认是3秒一更新。

选项:

-d

跟时间,可以修改top默认更新(刷新)的时间

-b :

以批次的方式执行 top ,还有更多的参数可以使用,通常会搭配数据流重定向来将批次的结果输出成为档案;

-n:

与 -b 搭配,意义是 需要进行几次 top 的输出结果;

-p :

指定某些个 PID 来进行观察监测而已;

案例:

每秒刷新一次top

# bash

top -d 1

每2秒刷新一次top,以批次输出2次。

#bash

top -d 2 -n 2

每秒刷新一次top,以批次输出5次。

# bash

top -d 1 -b -n 5  >> top.log    # >>表示以追加的方式输出,>表示以覆盖的方式输出

交互式按键:(并不常用)

? :

显示在 top 当中可以输入的按键指令

P :

以CPU的使用资源排序显示

M :

以Memory的使用资源排序显示

N :

以PID来排序

T :

由该Process使用的CPU时间累积 (TIME+) 排序

q :

离开top软件的按键

进程的管理:

单进程的管理:

kill:结束某个进程

语法:kill  信号量 PID

信号量:

-15:

以正常的程序方式终止一个进程!!!

-9 :

立刻强制终止一个进程!!!(!!不能强制结束系统级别的进程)

-2 :

代表由键盘输入 [ctrl] + c 同样的动作;

-1 :

对于sshd这样的守护进程,重新读取一次参数的配置文件(类似 reload),如果进程为非守护进程,默认为终止进程; !!

多进程的管理:

killall:结束基于某个程序运行进程。

语法:killall 信号量 程序名/命令名。

信号量:

-15:

以正常的程序方式终止一个进程!!!

-9 :

立刻强制终止一个进程!!!(!!不能强制结束系统级别的进程)

-2 :

代表由键盘输入 [ctrl] + c 同样的动作;

-1 :

对于sshd这样的守护进程,重新读取一次参数的配置文件(类似 reload),如果进程为非守护进程,默认为终止进程; !!

案例:

结束所有httpd的进程(如果没有可以先安装一下yum install -y httpd)

# bash

killall -9 httpd

结束所有java的进程

# bash

killall -9 java

系统资源监控(自带)

free:内存监控(可能监控不精准)

选项:

-b

bytes

-k

kb

-m

mb

-g

gb

-t

统计总量

free -m       free -mt

在真实的公司中有第三方,甚至公司自己开发的监控工具。不属于我们负责

uname:查阅系统与核心相关信息

选项:

-a

所有系统相关的信息,包括以下的数据都会被列出来;

-s

系统内核名称

-r

内核版本  

-m

本系统的硬件名称,例如 i686或x86_64 等;

-p

CPU 的类型,与 -m 类似,是显示的是CPU的类型;

-i

硬件的平台(ix86);

netstat:网络监控

-a

将目前系统上所有的已经连接、监听、Socket数据都列出来

-t

列出tcp网络包的信息

-u

列出udp网络包的信息

-n

以端口(port number)方式来显示(不以程序的服务名称)

-l

列出目前正在监听(listen)的服务;

-p

列出该网络服务的进程id(PID)、程序名

案例:

列出当前系统中正在监听的TCP服务。

# bash          netstat -lt

列出当前系统中正在监听的TCP服务,并且显示进程ID。

# bash          netstat -ltp

列出当前系统中正在监听的TCP服务,并且显示进程ID、端口号。

# bash          netstat -lntp

列出当前系统中已连接的TCP服务,并显示进程ID、端口号。

# bash          netstat -tnp

监听udp一般监听不出来

各项含义:

Proto

协议名

Recv-Q

接收消息缓冲区

Send-Q

发送消息缓冲区

Local Address

本地地址和端口号             

Foreign Address

远程地址和端口号

State

状态。连接、监听

PID/Program name

进程ID和程序名

vmstat:侦测系统资源变化     

统计目前主机CPU状态,每秒一次,共计四次

[root@tedu ~]# vmstat 1 4

  • procs(进程字段 )

r :

等待运行的进程数量; cup处理不过来

b:

不可被唤醒的进程数量

     这两个项目越多,代表系统越忙碌 (因为系统太忙,所以很多进程就无法被执行或一直在等待而无法被唤醒)

  • memory (内存字段)

swpd:

虚拟内存被使用的容量;

free:

未被使用的内存容量;

buff/cache:

用于缓冲的内存;

  • swap(交换分区字段)  (重点记忆下si和so)

si:

每秒从交换分区写到内存的数据量大小,由磁盘->内存;

so:

每秒写入交换分区的内存数据量大小,由内存->磁盘。  

     如果si/so的数值太大,表示内存内的数据常常得在磁盘与主存储器之间传来传去,系统效能会很差 

  • io(磁盘读写字段)

bi:

从块设备读入数据的总量(读磁盘)(每秒kb)

bo:

从块设备写入数据的总量(写磁盘)(每秒kb)

     如果这部份的值越高,代表系统的I/O非常忙碌

  • system(系统字段 )

in:

每秒被中断的进程次数; 发生在cup争抢的过程中

cs:

每秒钟进行的事件切换次数。发生在cup争抢的过程中

    这两个数值越大,代表系统与接口设备的通信非常频繁

  • CPU (cpu字段)

us:

(user)非内核态的(用户进程) CPU 使用情况;

sy:

(system)内核态所使用(系统进程)的 CPU 情况;

id:

(idle)闲置的CPU情况;

wa:

(wait)等待I/O所耗费的CPU;

st:

被虚拟机(virtual machine)所盗用的CPU(2.6.11 以后才支持)

Linux防火墙:

它具备一定的防护功能,比如说端口的开放和禁止,也可做数据的转发(类似路由功能),策略及其他功能。

临时处理防火墙:如果系统重启,那么防火墙将恢复到之前的状态。

开启

systemctl start firewalld

关闭

systemctl stop firewalld

重启

systemctl restart firewalld

查看

systemctl status firewalld

永久处理防火墙:(需重启系统后才能生效)

开启:

systemctl enable firewalld

关闭:

systemctl disable firewalld

任务管理

概念:

前台任务:可以控制与执行命令的bash环境称为前台。

后台任务:在操作系统中自行运行,你无法使用[ctrl]+c终止称为后台。

管理:

将前台任务放置后台暂停:

Ctrl + z就可以将前台的任务放置后台

如何运行任务时,使其在后台运行:

在运行命令之前加上"&"

例如:

cp file1 file2 &

不是所有的任务都能够在后台运行的,比如需要与用户进行交互的程序或命令就不允许在后台运行, 比如vi文本编辑器

用来查看后台任务:

jobs

选项:

-r

仅查看后台运行的任务

-s

仅查看后台暂停的任务

-l

查看后台的任务,并显示其PID

如果将后台任务调至前台:

fg命令+jobnumber来把后台任务调至前台。(无论在后台是暂停还是运行)

fg命令不加jobnumber也是可以调后台的任务,但是默认就会调取后台带有+号的那个任务。最后放置后台的任务就会带有+号。

+

表示最近一次放置后台的任务

案例:

调取2号任务:

# bash

fg 2

如何将后台任务修改为运行状态:

bg命令 + jobnumber 可以将后台任务的暂停状态修改为运行状态。(交互式的应用无法修改为运行状态)

bg命令不加jobnumber也是可以调后台的任务,但是默认就会调取后台带有+号的那个任务。(最后放置后台的任务就会带有+号。)

案例:

修改2号任务的后台状态:

# bash

bg 2

失败案例!!

修改4号任务在后台的工作状态。

# bash

bg

终止job

jobs -l查询出ID,之后通过kill  -9  PID 结束

VIM

什么是VIM:

是一个类似vi的文本编辑器,不过在vi的基础上增加了很多新特性,vim被公认为类vi编辑器中最好用的一个。

为什么要学习VIM,vi不够?

vim在vi的基础之上增加了很多的小功能。可以有效的帮助程序员快速的排查问题。

很多系统都内建vi编辑器,其他的文本编辑器不一定有,很多软件都会主动调用vi的接口。

vim的三种模式:

一般模式、编辑模式、命令模式

三种模式的转换图:

一般模式(默认模式)的快捷键:

h或←光标左移一个字符。如果是20h,表示左移20个字符。

j或→光标下移一个字符   同上

k或↑光标上移一个字符   同上

l或↓光标右移一个字符   同上

[Ctrl]+[f]屏幕向下移动一页  Page Down!!

[Ctrl]+[b]屏幕向上移动一页  Page Up !!

0或[Home]移动到此行最前面字符处!!

$或[End]移到光标所在行的行尾!!

H 光标移到当前屏幕最上方行的第一个字符!!

M光标移到当前屏幕中间行的第一个字符!!

L光标移动到当前屏幕最下方行第一个字符!!

G移到此文件最后一行!!!

nG移到第n行

gg相当于1G,即移到第一行!!!

n[Enter]光标下移n行

/word向下查找单词“word”(!!!)

?word向上查找单词“word”(!!!)

n表示重复前一个查找操作

N与n相反(反向查找)

yy复制光标所在行(!!)

nyy复制光标所在向下n行(n为数字)

y1G复制光标所在行到第一行所有数据

yG复制光标所在行到最后一行所有数据

y$复制光标所在处到同行最后一个字符

y0复制光标所在处到同行第一个字符

p将已复制的数据粘贴到光标所在下一行

P将已复制的数据粘贴到光标所在上一行

u复原前一个操作(类似于windows中的ctrl+z)!!!

Ctrl+r恢复一个操作。

x向后删除一个字符

nx向后删除n个字符(n为数字)

X向前删除一个字符

dd删除光标所在行(!!!)

ndd删除光标所在行以下n行(n为数字,包含当前行在内)

d1G删除光标所在行到第一行所有数据(包括所在的行)

dG删除光标所在行到最后一行(!!)

d$或d end删除光标所在处到同行最后一个字符(!!)

d0或d home删除光标所在处到同行第一个字符。(!!)

编辑模式:

进入编辑模式:

i从光标所在处插入(!!!)

I从所在行第一个非空白字符处插入(!!)

a从光标所在下一个字符处插入

A从光标所在行最后一个字符处插入(!!)

o在光标所在处下一行插入新的一行(!!)

O在光标所在处上一行插入新的一行(!!)

r替换光标所在处字符一次

R一直替换光标所在处文字直到按下Esc(!!!)

命令模式:

如何进入命令模式:

: ? /

三个符号任意都可以进入命令模式

:w [filename] 另存为filename

:r [filename] 读取filename指定文件中的内容到光标所在的行。

:n1,n2 w [filename] 将n1到n2行另存为filename

:! command 临时切换到命令行模式下执行command命令。 

    例如 “:!find / -name Helllo.java”即可在vim当中执行命令。

:wq  保存后离开

:q  不保存离开(未改可以离开,如果修改了需要q!强制离开)

:q!  不保存离开

:set nu 显示行号         (number)

:set nonu 取消显示行号        (noNumber)

:s/word1/word2/g 在当前行将word1替换成word2(!!)

:%s/word1/word2/g 在当前文件将word1替换成word2(!!)

:n1,n2s/word1/word2/g在n1到n2行查找word1替换成word2 (n1、n2为数字)

:10,$ s/word1/word2/g从第一行到最后一行查找word1替换成word2

:%s/word1/word2/gc 同上,在替换前确认是否替换。(!!!)只能单行确认,需要逐个确认。

替换为 b (y/n/a/q/l/^E/^Y)?

y表示yes,n表示no,a表示all(限光标当前到最后一行),q表示quit,l表示替换后移动光标到行首,^E(Ctrl+E)表示向下翻,^y(Ctrl+Y)表示向上翻。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值