计算机硬件软体系
顺序执行程序
计算机硬件由运算器,控制器,存储器,输入设备,输出设备五大部分组成
计算机硬件组成
输入设备
用来将人们熟悉的信息形式转换为机器能够识别的信息形式。
输出设备
将机器运算的结果装换为人们熟悉的信息形式
存储器
存放数据和程序
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