大数据笔记--Linux(第四篇)

目录

一、linux的网络知识

1、NAT和桥接

i、NAT

ii、桥接

2、修改主机名

3、远程拷贝

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

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

4、远程登录

5、ssh免密登录

i、证书使用场景:

ii、证书的生成:

iii、证书注册:

iv、步骤:

v、过程

二、Linux的自带下载工具

三、进程

1、概念

2、进程示意图

3、进程的查看

i、静态查询:

ii、动态查询

4、进程的管理

i、单进程的管理

ii、多进程的管理

四、系统资源监控

1、内存监控

2、网络监控

3、侦测系统资源变化

五、Linux的防火墙

六、任务管理

1、概念

2、管理

七、VIM

1、什么是vim

 2、常用快捷键


 

一、linux的网络知识

1、NAT和桥接

i、NAT

优点:

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

缺点:

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

理解:

ii、桥接

优点:

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

缺点:

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

 

理解:

这就可以相互访问,但是会占用真实ip,如果电脑多了,在同一个局域网中就会不够用。

2、修改主机名

方式一:临时修改

hostname demo02

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

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

3、远程拷贝

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

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

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

-r

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

案例:

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

scp yang.txt root@192.168.186.129:/home

 

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

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

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

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

案例:

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

scp root@192.168.186.129:/home/yang.txt     /root

4、远程登录

        语法:ssh  {UserName}@Host_IP

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

案例:

        ssh root@192.168.186.129 

 

默认登陆的是root用户,我们还可以指定其他的用户,但是也需要其用户的密码。

        如果想退出当前登录

        exit

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

        ssh [-p port] {UserName}@Host_IP 

注意:

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

5、ssh免密登录

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

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

公钥

使用公钥对内容进行加密

天王盖地虎

私钥

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

宝塔镇河妖

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

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

i、证书使用场景:

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

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

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

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

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

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

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

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

ii、证书的生成:

ssh-keygen

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

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

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

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

id_rsa

私钥

执行证书生成命令才会有

id_rsa.pub

公钥

执行证书生成命令才会有

known_hosts

曾经访问过的服务器信息

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

authorized_keys

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

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

iii、证书注册:

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

        ssh-copy-id {UserName}@Host_IP

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

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

iv、步骤:

生成公钥与私钥,每台电脑都要生成

 

 将第一台公钥注册给第二台

 

 将第二台公钥注册给第一台

 保存到authorized_keys文件里

 

v、过程

二、Linux的自带下载工具

wget

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

        wget [参数] [URL地址]

        –支持断点下载功能

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

        –支持代理服务器

使用wget下载单个文件

wget http://www.baidu.com 

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

wget -o baidu.new http://www.baidu.com

 

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

 wget --limit-rate=300k http://www.baidu.com

使用wget -b后台下载

wget -b http://www.baidu.com

使用wget -i下载多个文件

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

urlfile.txt内容为

http://www.baidu.com

CSDN博客 - 专业IT技术发表平台

三、进程

1、概念

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

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

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

临时进程

执行完命令,自动结束

持久进程

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

2、进程示意图

用户执行程序

程序加载到内存中中

        给程序一个临时的pid

        查看执行的权限,如果用户没有执行权限,那么拒绝操作,如果有,开始加载程序执行的相关资料

        确认临时的PID。

3、进程的查看

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

i、静态查询:

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

        举例:

        pstree -up

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

ii、动态查询

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

        选项:

-d

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

-b :

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

-n Number:

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

-p :

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

        案例:

                每秒刷新一次top

        top -d 1

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

        top -d 2 -n 2

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

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

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

? :

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

P :

以CPU的使用资源排序显示

M :

以Memory的使用资源排序显示

N :

以PID来排序

T :

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

q :

离开top软件的按键

4、进程的管理

i、单进程的管理

        kill:结束某个进程

        语法:kill  信号量 PID

        信号量:

-15:

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

-9 :

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

-2 :

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

-1 :

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

ii、多进程的管理

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

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

        信号量:

-15:

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

-9 :

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

-2 :

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

-1 :

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

        案例:

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

         systemctl start httpd 启动一下httpd     

         pstree -up 查看进程 

         killall -9 httpd 杀死全部的httpd进程

        结束所有java的进程

        killall -9 java

四、系统资源监控

1、内存监控

        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);

2、网络监控

-a

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

-t

列出tcp网络包的信息

-u

列出udp网络包的信息

-n

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

-l

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

-p

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

案例:

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

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

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

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

监听udp一般监听不出来

各项含义:

Proto

协议名

Recv-Q

接收消息缓冲区 

Send-Q

发送消息缓冲区

Local Address

本地地址和端口号              

Foreign Address

远程地址和端口号

State

状态。连接、监听

PID/Program name

进程ID和程序名

3、侦测系统资源变化

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

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

六、任务管理

1、概念

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

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

2、管理

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

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

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

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

        cp file1 file2 &

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

查看后台任务:

jobs

选项:

-r

仅查看后台运行的任务

-s

仅查看后台暂停的任务

-l

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

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

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

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

+

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

案例:

 fg 2   #  调取2号任务

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

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

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

bg 2    #  修改2号任务的后台状态

终止job

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

七、VIM

1、什么是vim

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

        vim有三种模式:一般模式、编辑模式、命令模式

        三种模式的转换图:

 2、常用快捷键

一般模式:

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

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

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

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

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

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

nG移到第n行

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

n[Enter]光标下移n行

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

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

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

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

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

Ctrl+r恢复一个操作。

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

编辑模式:

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

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

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

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

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

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

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

命令模式:

:?/三个符号都可以进入命令模式

:w [filename] 另存为filename

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

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

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

: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为数字)

:%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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小先生

知识是无价的,白嫖也可以的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值