Linux(上篇)

计算机硬件软体系

顺序执行程序

计算机硬件由运算器,控制器,存储器,输入设备,输出设备五大部分组成

计算机硬件组成

输入设备

用来将人们熟悉的信息形式转换为机器能够识别的信息形式。

输出设备

将机器运算的结果装换为人们熟悉的信息形式

存储器

存放数据和程序

RAM随机存储内存

速度快,容量小。掉电易失

逻辑IO

ROM

只读内存硬盘

容量大,速度相对较慢

长久保存

物理IO

CPU(中央处理器)

控制器

控制和指挥程序和数据的输入运行,以及处理运算结果。

运算器

算数运算和逻辑运算,并将中间结果暂存到运算器中。

硬盘的分类

存储介质不同

机械硬盘hdd

机械硬盘采用磁性碟片来存储数据

用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化,凸起的地方代表数字1.凹的地方代表数字0

硬盘可以以二进制来存储表示的文字,图片等信息。

硬盘可以根据转速来判断硬盘的好坏。7200转、分 100-200M/s

真空的拆了就坏了。磁盘怕摔。

p2p下载毁硬盘

固态硬盘ssd

闪存颗粒,(固态电子存储芯片阵列)来存储数据

读写速度的区别

固态硬盘的读取速度普遍可以达到400m/s,写入速度也可以达到130m/s以上

其读写速度是普通机械硬盘的3-5倍

机械硬盘的数据读写

主流的硬盘半机械半电子硬盘(机械硬盘)

硬盘的转速(转速越快读取越快)

寻道时间(4kb分配扇区)

数据传输时间

顺序读写与随机读写

随机慢与顺序

kafuka用的是顺序读取。

网络连接概念

ip地址IPADDR

ip地址是一种逻辑地址,用来标识网络中的一个个主机。

ip地址=网络地址+主机地址

ip地址是一个4*8bit(1字节)(位0-255)(0.1.255一般不要用 )由0/1组成的数字串(ip4协议)

子网掩码NETMASK

网掩码只有一个功能,就是将ip地址划分为网络地址和主机地址两部分

子网掩码用来判断任意两台计算机的IP是否在同一个子网中的根据。

A192.168.7.111 B192.168.8.222

255.255.0.0

默认网关GATEWAY

连接两个不同的网络设备都可以叫网关设备,网关的作用就是实现两个网络之间进行通讯与控制。

网关地址就是网关设备的ip地址,

域名服务器DNS

IP ADDR

网络地址+主机地址192.168.206.8

NETMASK

子网掩码一一分割

255.255.255.0

进行与运算

都为1,结果就是1

255 1111 1111

1100 0000 0000

1100 0000 ------》192

DNS是域名服务器,用来解析域名的,域名和ip之间的解析。

如果没有这东西登录某个网站是就必须输入该网站的ip地址,有了DNS就可以直接输入网址。

()

域名可以借助阿里云

域名注册,可以委托阿里云购买aliyun.com

查看全部产品,热门产品,域名购买

gov.cn中国政府

org有名的组织

net

bbbb王思聪的域名

C:/windows/system32/divers/etc/hosts

如果不许改放桌面改

一些软件的破解原理就是环网破解

还不让改,把只读选项改掉

域名劫持:此网站发回了异常的错误凭据,这可能是有攻击者在试图冒充。尚未进行任何数据交换就停止了连接。因为此网站使用了HSTS

114.114.114.114公网dns的ip

网络连接模式

host-onboy(主机模式))

1.在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-onboy模式。

2.在host-onboy模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的系统是被隔离开的。

3在host-onboy模式下,虚拟系统的TCP/IP配置信息都是由VMnet1(host-onboy)虚拟网络的DHCP服务器来动态分配的

bridged(桥接模式)

1.VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内的任何一台机器。

2.适用虚拟模式的桥接系统和宿主机器的关系。就像连接在同一个Hub上的两台电脑。

3.当前主机IP为192.168.8.100 虚拟机192.168.8.XXX

学习期间为了防止ip冲突,所以不选择这种模式。

NAT(网络地址转换模式)

1.使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能。通过宿主机器所在的网络来访问公网。

2NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的

虚拟系统也就无法和本局域网中的其他真实主机进行通讯。

主流的系统软件:window。Mac。linux(GUN),(因为unix要钱)。

GUN他觉得所有的软件都应该开源,没有内核。托瓦兹 林纳斯贡献出了linux

两大分支

redhat红帽(CentOS)(服务器)(产品免费服务收费)开源,整这个

debian蝶变(Ubuntu)(界面方便)(免费)

linux。org

版本用双不用单,双是稳定版,单是测试版。

nsc一般就是大学的镜像服务器

torrent种子下载,就是迅雷什么的

DVD正常安装

everything所有组件版

minimal精简版

live

netinstall网络下载,迅雷一样的东西,百度云盘。边下变安装。

虚拟化技术

1,可以更好的利用计算机闲置的资源,

2.我们可以在计算机中虚拟出多台虚拟机帮助我们执行程序或者业务

3.虚拟机的各种组成理论上和真实的主机是一样的。

4.如果要使用这样的技术只需要安装对应的软件即可。

virtua;box

virtualMachine

安装软件

选择将虚拟磁盘拆分成多个文件就是用多少分配多少。

网络模式选桥接会有ip地址冲突的风险。

安装系统的时候不要选中文,避免出现bug的可能性

swap分配内存的两倍

下面将进行命令的练习

配置网络:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

这是一个固定位置。

按tab可以补全命令

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

ONBOOT=yes

IPADDR=192.168.188.100

NETMASK=255.255.255.0

GATEWAY=192.168.188.2

DNS1=114.114.114.114

:wq保存退出

ip addr

重启网络配置

systemctl restart network.service

ctrl+s锁定

ctrl+q解锁

配置防火墙

实验时要把防火墙全面打开

有临时的和永久的

本次开机状态下防火墙关闭

systemctl stop firewalld

服务器重启后防火墙禁用

systemctl disable firewalld

安装软件的限制

三个级别,

vi /etc/sysconfig/selinux

添加SELINUX=disabled

解除安装限制

关机命令

shutdown -h now

拍摄快照记录当前状态

克隆可以直接搞出多个环境

链接克隆:只保存不同的配置。

如果被克隆的奔溃就奔溃

完全克隆,

就是一模一样

克隆的是一模一样所以还是要改一下配置

systemctl restart network.service

etc/就是配置文件

拷贝别人的虚拟机

用打开虚拟机

找文件夹里的vmx文件

彻底删除一个虚拟机

管理-》磁盘删除

虚拟机是小黑窗口

怎么办

putty可以远程连接虚拟机

小,只能远程发送命令

我们推荐使用xshell

5版本号。6版本不好使限制开四个窗口

xftp把win上的文件传到linux

命令学习法

Linux命令与参数之间必须用空格隔开

Linux命令是区分大小写的

如果输入了错误的命令

-bash:abcd:command not found

命令敲错了

命令未安装

type命令的类型

cd is a shell builtin

ping is /bin/ping

ll is aliased to 'ls -l --color=auto'

for is a shell keyword

命令的帮助文档

help

内置命令的帮助文档

man

外部命令的帮助文档

因为当前系统为minimal的,very basic 没有man包

需要手动安装man

yum install man man-pages -y

将来工作中如果遇到生疏的命令,直接百度。

ifconfig-net的基础包

ip addr

yum search ifconfig-安装一下

用type命令可以找到文件

help--是帮助命令

man ping

也就是说内置命令用help

外部的用man

也可以通过菜鸟教程来查看。

还可以查看linux手册

将来工作中如果遇到生疏的命令,直接百度

如果不是为了装C,完全没必要查命令手册

常用的命令

whereis查询命令文件的位置

file查看文件的类型

who查看当前在线的用户

whoami我是谁(经典记住)

pwd我在那(经典记住)

uname -a 查看内核信息

echo类似于sout syso ,打印语句

clear清屏

history历史

特殊字符

如果文件的开始是. 说明当前文件是一个隐藏文件

。 指向当前目录

。。 指向当前目录的上级目录

$

说明这是一个变量,

$PATH Linux的环境变量

*星号

通配符

~

当前用户的家目录

每个用户的家目录是不同的

root用户家目录在系统根目录下

其他用户的加目录在/home/用户名为家目录

空格

Linux的命令参数用空格隔开

/

整个Linux的文件根目录

命令的参数

如果是单词 一般加--

如果是字母或者缩写 一般加-

修改Xshell字体颜色

PS1='['e[36;40m\][

echo "

source ~/.bashrc

useradd libai

passwd libai

123456

123456

右下角还有全部回话,敲一个就是敲所有

history -c 清空命令的历史上下键就不好用了

Linux的文件系统

4.1万事万物皆文件

1.文件系统

操作系统如何管理文件,内部定义了一些规则或者定义

所以在Linux中,文件的访问不和Window的一样。window依靠的是通过盘符进行访问。

Linux维护者一个树状结构的文件模型。

只有一个根节点,他的名字叫做/

一个节点上可以有多个子节点。

查找文件的方式

相对路径(慧慧的旁边是小明)

以当前路径为基准点,查找其他资源。

vi ../etc/sysconfig/network

绝对路径(哪个教室的哪个座位)

以当前路径为基准点,查找其他资源

vi /etc/sysconfig/network-scripts/ifcfg-ens33

日常使用中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径

可以随意的挂载磁盘

mount /dev/disk1 /usr/download

disk1 1T

mount /dev/disk2 /usr/upload

disk2 100T

mount /dev/disk3 /usr/upload/phptp

disl3 1P

ps -ef 进程的命令

类似于任务管理器的那个进程

cd /proc/ 文件所在的位置

echo $$ --查看当前进程编号

cd 进程编号。可以看到进程的变量

不要更改系统的二级目录,因为都是默认的

每个名字都有每个名字的含义

要做到见名之意

目录:

bin --可执行文件(命令,脚本)

bin是Binart的缩写,这个目录存放这最经常使用的命令

boot --引导分区

这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

dev --设备信息(类似于win的设备管理器)

dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

etc --配置文件(类似于win的system32)

这个目录是用来存放所有的系统管理所需要的配置文件和子目录

home --家目录普通用户的家目录(类似于win的用户)

用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

lib --类库

这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

lib64

/lost+found ---这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

media --多媒体的一些东西

linux系统会自动识别一些设备,例如U盘,光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

mnt --硬盘挂载的时候一般挂载到这个里面(优盘)

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

opt --默认把软件安装到opt里面

这是给主机额外安装软件所摆放的目录,比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的。

proc --进程信息

这个目录是一个虚拟的目录,他是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上面而是在内存里。我们也可以直接修改里面的某些文件。比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器。

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

root --root用户的家目录

该目录为系统管理员,也称作超级权限者的用户主目录

run --运行时的一些系统常量

sbin --管理员可执行的一些权限和命令

这里存放的是系统管理员使用的系统管理程序。

selinux:

这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂。这个目录就是存放selinux相关的文件的。

srv --该目录存放一些服务启动之后需要提取的数据。

sys --该目录存放一些服务启动之后需要提取的数据

这是linux2.6内核的一个很大变化,该目录下安装了2.6内核中出现的一个文件系统sysfs。

sysfs文件系统集成了下面3种文件系统的信息,针对进程信息的proc文件系统,针对设备的devfs文件系统以及针对伪终端的devpts文件系统,该文件系统时内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

tmp --这个目录是用来存放临时文件的,就是系统重启之后可能会被清理掉

usr --这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下。类似windows下的program files目录。(好多用户共享的区域)(于类似c盘的windows文件夹)

/usr/bin --- 系统用户使用的应用程序

/use/sbin - - -- 超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src ----内核源代码默认的放置目录。

/var -----像tmp,但是重启系统之后不会被清理(日志)

/run --- 是一个临时文件系统,存储同启动以来的信息。当系统重启时,这个目录下的文件应该被删除或者清除,如果你的系统上有 /var/run 目录。应该让他指向run。

Linux的文件操作

cd

改变当前工作目录。

ls ll

显示出指定目录下所有的文件

文件的类型。

-普通文件

d文件夹

l软连接

-rw-r --r-- 1 root root 3384 Nov 11 23:51 install.log.syslog

mkdir

创建文件目录

mkdir -p a/b/c/d/e/f 会自动创建文件父目录。

mkdir -p lucky/{1234}ls 一次可以创建多个子目录。

rmdir

删除空文件夹。

rmdir: failed to remove 'a1': Directory not empty

rmdir : failed to remove 'baidu' : Not a directory

可以安全的删除文件目录。

rm -rf 删除整个文件夹及其子文件,文件夹。

rm -f强制删除

rm -r

rm -rf /

rm -rf /*

cp

拷贝文件或者文件目录。

cp源文件 目标目录

cp abcd /opt

cp /opt/abcd ./

拷贝文件夹。

touch 创建文件

查看文件的状态

Inode当前文件在文件系统的唯一标识,类似于ID

时间,access访问时间

modify修改文件内容时间。

change修改文件元数据信息时间

文件大小,文件所有者,文件权限

对于文件的描述信息

ln

创建文件的链接

软(符号)连接

ln -s lucky01 sl

软连接和原始文件不是同一个文件

lucky1 131085

sl 131074

rm -rf lucky1

硬链接

ln lucky02 hl

硬链接和原始文件使用文件系统中的同一个文件。

如果你害怕一个文件被别人误删,你可以使用硬链接保护这个文件。

软硬链接在链接文件的时候,推荐使用文件的绝对路径,否则有可能会出现问题。

tac与cat

tac倒着查看

cat正着查看全部

more 命令,分页查看

空格一页,b返回,回车一行,h是提示信息

less命令与more差不多,命令多点。

head 10 展示十行

tail -3 命令,文件后三行

head -8 XXX | tail -1 命令只显示第八行

tail还可以监控文件的变化

tail -f 删除文件后在等待

tail -F 删除文件显示不可访问,在创建又可以了

如果f:

他会监听指定inode的文件数据变化,但是当文件被删除后。

即使创新创建,inode也会发生变化,监听不受影响。

如果F

它会监听指定名字的文件,如果文件被删除后,重新创建。

他会重新监听新文件的数据变化,监听不受影响。f监控的是InodeF监控的是名字

find

查找指定文件

find要查找的范围 -name名字

find /etc -name XXX

find / -name XXX 全局查找文件

find /etc -name XXX 在局部查找

find /etc -name a*a 查找a开头,a结尾的文件

vi编辑器

linux自带的vi编辑器,相当于win的记事本

但是更强大

这个命令用了一本书来写

他强大就强大在他把任何一个键都做成了快捷键。

Esc命令模式

~转换大小写

·跳转到标注

!外部过滤器

@运行宏

#prevident

$行末

%括号匹配

^''软行首"

&重复

* nextident

(句首)下一句首

0"硬行首"

记事本相当于vi

nodepad相当于vim

打开文件

正常打开 vi profile

打开文件并将光标置于第八行 vi+8 profile

打开最后一行 vi + profile

按n查找下一个,按N查找上一个

打开指定搜索单词的位置。vi+/if profile

三种模式

编辑模式:编辑模式中,每一个按键都有其他的功能,。

输入模式:每一个按键按下什么,就像文本中输入什么。

末行(命令行)模式,我们可以直接在vi中输入特定的命令。

dd删除一行

p复制到下一行

100 p

直接粘贴100行

:set nu 赋予行号

按一下i变成insert,插入

o下一行

a追加

I行首

O上一行

A行尾

跳到15行 15gg

shift G 到最后一行

3dd 删除三行

按w 下一个词

dw 删除一个词

3dw 光标位置的三个词删除

y复制

p粘贴

2p两行

4p八行

10p40行

yw复制一个单词

2yw

u 回退

。 u返回的返回

hkjl左下上右

r 替换

x剪切一个字符

ctrl+s锁屏 ctrl+q解锁

ZZ保存并退出

:w阶段保存

:q 退出

:q!不保存退出,如果上次异常退出会保留同名隐藏文件,每次启动会给与提示。

如果确定当前文件没有问题,请删除隐藏文件。

:wq保存并退出

:set nonu 取消行号

:set nu 加上行号

:/libai 找到libai

next 下一个libai

/pattern

搜索指定的字符串

/usr n向下查找 N向上查找

s/p1/p2/g

查找指定行

2,8s/abc/lucky/g

替换全文

:g/abc/s//lucky/g

:s/libai/lqz 换一个

:s/libai/wlun/g 全换掉

:g/libai/s/lqz/g 全局替换

vim编辑器

yum install vim -y 从云上安装vim

卡bug直接退出xshell

会有隐藏文件。回车就是原来的

rm -rf .profile.swp删除隐藏文件,要不然一直出来询问

计算机间的数据传输

window--Linux

lrzsz

需要手动安装

yum install lrzsz -y

rz

将文件从window上传到Linux

sz文件

将文件从Linux传输到Window

xftp

较为通用的文件传输方式。

Linux--Linux

scp元数据地址(source)目标数据地址(target)

scp apache-tomcat-7.0.61.tar.gz root@192.168.31.44:/opt

scp root@192.168.31.44:/opt/apache-tomcat-7.0.61.tar.gz ./

scp -r apache-tomcat-7.0.61 root@192.168.31.44:/opt

文件大小

分区信息

df -h

指定文件目录大小

du -h --max-depth=1 apache-tomcat-7.0.61

swap

一个特殊分区,以硬盘代替内存。

当内存使用满的时候,可以将一部分数据写出到swap分区。

文件压缩

tar

主要针对的文件是 lucky.tar.gz

解压缩

tar -zx(解压)v(过程)f(文件) lucky.tar.gz

压缩

tar -zx(解压)f(文件) tomcat.tar.gz(压缩后的名字)apache-tomcat-7.0.61(源文件)

tar -zxf tomcat.tar.gz -C /opt/

-C指定解压缩的文件目录。

zip和unzip

安装

yum install zip unzip -y

压缩

zip -r tomcat.zip apache-tomcat-7.0.61(压缩后的名字)(要压缩的文件)

解压缩

unzip tomcat.zip

Linux的网络信息

5.1主机名称

临时修改

hostname school

长久修改

vi /etc/hostname

重启

reboot

DNS解析

域名解析服务

可以将域名转换为IP地址

DNS域名劫持

window->C:Windows\System32\dirvers\etc\hosts

123.56.138.186 www.baidu.com

123.56.138.186 www.taobao.com

修改主机域名

vi /etc/hosts

将来我们需要把所有的虚拟机都配置hosts文件

192.168.31.101 bd1601

192.168.31.102 bd1602

网络相关的命令

ifconfig

查看当前网卡的配置信息

这个命令属于net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包

所以7的时候需要自己手动安装

如果没有ifconfig,可以使用ip addr临时代替。

yum search ifconfig

yum install net-tools -y

netstat

查看当前网络的信息。

一个机器默认有65536个端口号[0,65535]

这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问。

一个端口只能被一个程序所监听,端口已经被占用。

netstat -anp

22号端口,ssh连接的默认端口。

netstat -r 核心路由表 ==route

ping

查看与目标IP地址是否能够连通。

telnet

查看与目标IP的指定端口是否能够连通

yum install telnet -y

telnet 192.168.31.44 22

curl

restful我们所有的资源在网络中都有唯一的定位。

那么我们可以通过这个唯一定位标识指定的资源

http://localhost:8080/lucky/user.actino/666

curl -X GET http://www.baidu.com

就是网站的源代码

防火墙

防火墙技术是通过有机结合各类用于安全管理与删选的软件和硬件设备,帮助计算机网络与其内,外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全的一种技术。

在Centos7中 使用firewalld代替之前的iptables;

查看防火墙状态

systemctl status firewalld.service

临时停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

firewall-cmd --state #查看防火墙状态,是否是running

firewall-cmd --reload #重新载入配置,比如添加规则之后,需要执行此命令

firewall-cmd --get-zones #列出支持的zone

firewall-cmd --get-services #列出支持的服务,在列表中的服务是放行的。

firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或no

firewall-cmd --add-service=ftp #临时开放ftp服务

firewall-cmd --add-service=ftp --permanent #永久开放ftp服务

firewall-cmd --remove-service=ftp --permanent #永久移除ftp服务

firewall-cmd --add-port=80/tcp --permanent #永久添加80端口

开启一个端口的正确操作

#添加

firewall-cmd --zone=public --add-port=80/tcp --permanent

#重新载入

firewall-cmd -reload

#查看

firewall-cmd --zone=public --query-port=80/tcp

#删除

firewall-cmd --zone=public --remove-port=80/tcp --permanent

netstat -anp 查看使用中的端口

加密算法

1.不可逆加密算法

可以通过数据加密计算后的结果,但是通过结果无法计算出加密数据

应用场景:

Hash算法常用在不可还原的密码存储,信息完整性校验

文档,音视频文件,软件安装包等用新老摘要对比是否一样。(接收到的文件是否被修改)

用户名或者密码加密后数据库存储(数据库大多数不会存储关键信息的明文,就像很多登录功能的忘记密码不能找回,只能重置)

7+8=15 15= ? +?

案例

123456

2isd89f8dfus9auf90ag0ua9sudga0

md5(md5(123456))-------md5(654321)

算md5值可以验证文件传输的完整性

还有在线的md5,hash加密

暴力破解

输入三次就延时才可输入

2.对称加密算法

地下党同志传输消息,加密之后再反编译。

Symmetric Key Encryption

代表性算法叫做 DES , 3DES , Blowfish , IDEA ,RC4 , RC5 , RC6 , 和AES

特点

加密和解密使用相同的秘钥

优点

生成秘钥的算法公开。计算量小,加密速度快,加密效率高,秘钥较短

缺点

双方共同的秘钥,有一方秘钥被窃取,双方都影响。

如果为每个客户都生成不同的秘钥,则秘钥数量巨大,秘钥管理有压力

应用场景

登录信息用户名和密码加密,传输加密,指令加密。

案例:

3.非对称加密算法

Asymmetric Key Enctyption

非对称加密算法需要一对秘钥(两个秘钥)

1,公开密钥(publickey)和私有秘钥(privatekey)(简称公钥,私钥)

2.公开秘钥与私有秘钥生成时是一对

3.用公钥加密只能是对应的私钥解密,同理,用私钥加密只能用对应的公钥解密。

代表性算法叫做RSA , ECC , Diffie-Hellman , EI Gamal , DSA(数字签名用)

优点:

安全高(几乎很难破解)

缺点:

加解密相对速度慢,秘钥长,计算量大,效率低(毫秒级别)

应用场景:

HTTPS(ssl)证书里制作。CRS请求证书。金融通信加密,蓝牙等硬件信息加密配对传输,关键的登录信息验证。

http://tool.chacuo.net/cry/ptrsaprikey

一般认为不好算的那个是私钥,好算的哪个是公钥

一般计算机破解要用1000多年,但是量子计算机只要三分钟

学习能力和年龄学历没有关系

主机间的相互免秘钥

可以通过ssh命令免密钥连接到其他主机

如果是第一次建立连接,需要输入yes

1,在~/.ssh/known_hosts文件记录了以前访问地址(ip hostname)的信息

2,在访问地址时候如果没有收录到known_hosts文件中,就需要输入yes

3,如果以前收录到known_hosts中,直接输入密码即可。

需要输入密码

公钥 /root/.ssh/authorized_keys

(/root/.ssh/id_rsa.pub)

生成秘钥

1.ssh-keygen -t rsa -P " -f ~/.ssh/id_rsa

2.ssh-copy-id -i ~/ssh/id_rsa.pub root@192.168.188.101

3.cat ~/.ssh/id_rsa.pub 查看公钥的信息

4.ssh 192.168.188.101

5.exit

![image-20200713180557828](Linux.assets/image-20200713180557828.png)

如果你想免密钥登录谁,只需要把自己的公钥传递给对方主机即可

这个秘钥要放在 ~/.ssh/id_rsa.pub root@192.168.58.201

![image-2020618092539154](Linux.assets/image-20200618092539154.png)

相互免秘钥工作流程

主机名与Host效验

ssh node01

会出现确认信息,有时候会中断,那么真么去掉这些干扰,我们只需要去找一个文件

![image-20200825200544112](Linux.assets/image-20200825200544112.png)

错误原因:

Cannot determine realm for numeric host

解决方案1--本次

ssh -v -o GSSAPIAuthentication=no root@192.168.189.201 (本次不需要确认连接)

解决方案2--所有

修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题。

最后面添加:

StrictHostKeyChecking no(不需要进行严格的主机名检查)

UserKnownHostsFile /dev/null(未知的主机信息写到这里)

关闭安检每次会有警告

如果删除vi known_hosts文件里的信息,就回去了

被连接的主机为了防止公钥过期,会生成一个uuid,发回去验证,然后再发回来。如果一致说明没过期。

日期与时间

时间的命令

date

查看当前系统时间

cal查看日历

cal 2020

修改时间

date -s 11:11:11

date -s 2019-11-11

date -s '2019-11-11 11:11:11'

日期自动同步

自动同步时间

yum install ntp -y

ntpdate cn.ntp.org.cn(时间同步服务器)比如120.25.108.11

本地搭建NTP服务

开启本地NTP服务器

service ntpd start

#vi /etc/ntp.conf

权限控制:

restrict default kod nomodify notrap nopeer noquery 拒绝IPV4用户

restrict -6 default kod nomodify notrap nopeer noquery 拒绝IPV6用户

restrict 210.72.145.44 授权国家授时中心服务器访问本地NTP

restrict 133.100.11.8 授权133.100.11.8访问本地NTP

restrict 127.0.0.1

restrict -6 ::1

restrict 192.168.188.2 mask 255.255.255.0 nomodify 本地网段授权访问

源服务器

server cn.ntp.org.cn prefer 指定上级更新时间服务器,优先使用这个地址。

差异分析

driftfile /var/lib/ntp/drift

keys /etc/ntp/keys

客户端同步时间

ntpdate 192.168.188.100

命令执行时间统计

#!/bin/bash

start=$(date +%s)

nmap man.linuxde.net &> /dev/null

end=$(date +%s)

difference=$((end-start))

echo $difference seconds.

用户-组-权限

用户

新增用户

useradd luckyboy

会创建同名的组和家目录

设置密码

passwd luckboy

删除用户

userdel -r luckboy

级联删除家目录和组

修改用户信息

usermod -l luckyss luckyls 修改用户名

家目录和组名称是不会被修改的。

usermod -L luckyss 锁定用户名

usermod-U luckyss 解锁用户名

常用文件

cat /etc/shadow

用户名和密码

cat /etc/passwd

用户名,编号,组编号,家目录,命令集,目录

6.5系统0-499 普通 500+

切换账户

su luckyboy

创建组

groupadd lucky

删除组

groupdel lucky

修改组名字

groupmod -n school lucky

查看用户对应的组

groups

groups schoolboy

当我们创建用户的时候,会默认创建一个同名的主组

修改用户的组

usermod -g lucky schoolboy(主组)

usermod-G lucky schoolls(附属组)

权限

r读

w写

x执行

文件所有者

r读

w写

x执行

文件所属组用户

r读

w写

x执行

其他用户

查看文件的权限

drw-r-xr-x 9 n1 m1 4096 Nov 13 00:30 apache-tomcat-7.0.61

三组权限,每组三个字母

r读取权限

w写入权限

x执行权限

-没有权限

root:所属的用户(属主)

root:所属的组(属组)

权限的UGO模型

三组权限

属主的权限:属组的权限:其他的权限

所以说:将来修改文件的权限可以从rwx和ugo两个方面进行修改。

修改文件的权限

修改文件所属、

chown n1(用户) /var/lucky1

chown n1:m1 /var/lucky2

修改文件夹时,让子目录迭代修改

chown -R n1:m1 school

chgrp m2 lucky3

当用户的组被修改之后,需要重新登录才能获取新租的权限

修改文件的rwx

chmod o+w lucky4

chmod ug+rw lucky4

chmod ugo-rw lucky4

(权限RWX分别对应数字 4 2 1 5 = 4+ 0 + 1 r-x)

chmod 664 lucky4 ->(rw-rw-r--)

管道与重定向

管道

将前面命令的结果作为参数传递给后面的命令

grep

强大的文本搜索工具

cat profile | grep if

ls / | grep^t

重定向

改变数据输出的位置,方向

0 in1 out 2 err

ls/ 1> lucky 标准输出

ls/ > lucky 标准输出

ls abcd 2 > lucky 错误输出

替换 >> 追加

ls / 1>> lucky

ls / 1> lucky

结合使用

ls /etc/abc > lucky 2 > &1

ls /etc/abc >> lucky 2>&1

信息黑洞(无穷无尽的空间,但是取不出来,就不用清理信息)

比如按软件的时候不想看它的过程

ls /etc/abc >> /dev/null 2>&1

Linux的系统进程

进程信息

ps -ef

UID PID PPID C STIME TTY TIME CMD

UID 所属的用户

PID 当前进程编号

PPID 当前进程编号的父进程编号

进程带d的一般都是服务器

0进程是系统的引导分区

%CPU CPU使用率

%MEM 内存的使用率

ps -ef | grep redis

ps -aux

所有信息

ps -aux --sort -pcpu

top

当前服务器内存使用率

后台进程

只需要在命令的后面添加一个&符号

ping www.baidu.com>>baidu&

jobs -l

可以查看当前的后台进程

但是只有当前用户界面可以获取到

nohup可以防止后台进程被挂起

nohup ping www.baidu.com >> 2>&1 &

杀死进程

kill -9 17599

相关推荐
Rain_Rong6 分钟前
linux检测硬盘
linux·运维·服务器
我曾经是个程序员32 分钟前
鸿蒙学习记录之http网络请求
服务器·学习·http
李昊哲小课44 分钟前
deepin 安装 zookeeper
大数据·运维·zookeeper·debian·hbase
真真-真真1 小时前
WebXR
linux·运维·服务器
轩辰~1 小时前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
wanhengidc2 小时前
短视频运营行业该如何选择服务器?
运维·服务器
雨中rain2 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG2 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss3 小时前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish3 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt