Linux
1. 计算机硬件软件系统
1.1. 冯诺依曼体系结构
-
计算机处理的所有数据和指令都用二进制数表示
-
顺序执行程序
-
计算机硬件由五部分组成:计算机、控制器、存储器、输入设备和输出设备
-
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传
1.2.由计算机硬件组成
- 输入设备
- 输入设备用于将熟悉的信息形式转换为机器能够识别的信息形式
- 键盘、鼠标等是常见的
- 输出设备
- 输出设备可以将机器的计算结果转换为熟悉的信息形式
- 打印机输出、显示器输出等
- 存储器
- 存储器用于存储数据和程序
- RAM(random access memory)即随机存储 内存:
- 速度快,容量小
- 掉电易失
- 逻辑IO
- ROM(Read-Onboy Memory)即只读内存 硬盘:
- 容量大,速度相对较慢
- 长久保存
- 物理IO
- CPU(中央处理器)
- 控制器
- 控制器主要用于控制和指挥程序和数据的输入操作,并处理操作结果
- 运算器
- 运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
- [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传
- 控制器
1.3. 硬盘的分类
-
根据存储介质的不同,硬盘可分为以下两种类型
-
机械硬盘(Hard Disk Driver, HDD)
- 机械硬盘使用磁盘存储数据
- 用显微镜放大盘子,会看到盘子表面不均匀,凸起的地方被磁化,凹的地方不是 被磁化
- 凸起代表数字1(磁化为1),凹面代表数字0。
- 硬盘可以二进制存储表示文本、图片和其他信息。
- 硬盘可以根据转速来判断硬盘的质量 7200转/分 100-200M/s
-
固态硬盘(Solid State Disk, SSD)
- 固态硬盘通过闪存颗粒(固态电子存储芯片阵列)存储数据
-
-
读写速度的差异
- 固态硬盘的读取速度一般可达400M/s,也可以达到130M/s以上
- 读写速度是普通机械硬盘的3-5倍。
-
读写机械硬盘数据
- 主流硬盘半机械半电子硬盘(机械硬盘)
- 硬盘转速(读取速度越快)
- 寻道时间
- 数据传输时间
- 主流硬盘半机械半电子硬盘(机械硬盘)
1.4. 顺序读写和随机读写
1.5. 网络连接概念
- IP地址IPADDR
- IP地址是用来在网络中识别主机的逻辑地址
- IP地址=网络地址 主机地址
- IP地址是一个 4 * 8bit(1字节)由 0/1 数字串的组成(IP4协议)
- IP地址是用来在网络中识别主机的逻辑地址
- 子网掩码NETMASK
- 子网掩码只有一个功能,那就是IP地址分为网络地址和主机地址两部分。
- 子网掩码用于判断任何两台计算机IP地址是否在同一子网中
- A 192.168.7.111 B 192.168.8.222
- 255.255.0.0
- 默认网关GATEWAY
- 连接两个不同网络的设备可称为网关设备;网关的作用是实现两个网络之间的通信和控制。
- 网关地址是网关设备IP地址
- 域名服务器DNS
- DNS域名服务器用于分析域名(域名和IP之间的分析)。
- 如果没有这个东西,登录网站时必须输入网站IP地址,有了DNS可直接输入网站。
- C:\Windows\System32\drivers\etc\hosts
1.6. 网络连接模式
- host-onboy(主机模式)
- 在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-onboy模式。
- 在host-onboy所有虚拟系统都可以在模式中相互通信,但虚拟系统与真实网络是隔离的。
- 在host-onboy虚拟系统的模式TCP/IP信息的配置是由的VMnet1(host-onboy)虚拟网络的 DHCP服务器来动态分配的
- bridged(桥接模式)
- VMWare虚拟操作系统就像局域网中的独立主机,可以访问网络中的任何机器 器。
- 虚拟系统与宿主机之间的关系就像连接到同一个模式Hub两台电脑。
- 当前主机IP 为 192.168.8.100 虚拟机 192.168.8.xxx
- 防止学习IP冲突,所以不要选择这种模式
- NAT(网络地址转换模式)
- 使用NAT模式是让虚拟系统借助NAT通过宿主机所在的网络访问公网(网络地址转换)功能。
- NAT虚拟系统的模式TCP/IP信息的配置是由的VMnet8(NAT)虚拟网络的DHCP提供服务器
- 虚拟系统无法与本局域网中的其他真实主机通信
1.7. 软件分类
- 应用软件
- 实现某些业务功能
- 应用软件应基于相应的系统软件
- 不同的操作系统应安装不同的软件
- 系统软件
- 只是为了处理硬件
- 屏蔽应用软件和硬件的区别
- 分类系统软件
- Window
- 世界上用户最多
- 收费,不开源,民用更多
- 各种软件都比较齐全
- Mac
- 仅限于苹果的一些品牌机器
- ios–自成一家
- GNU/Linux
- GNU是一个开源软件组织,世界上所有的软件都应该开源免费
- GNU Is Not Unix
- GCC
- 托瓦兹 林纳斯 Linus – Linux(Linux is not unix)
- Logo是企鹅
1.8. Linux分支
-
RedHat(收费)
- CentOS
- 完全开源免费
- 不要使用最新版的CentOS
- 主要用于服务器版本
- CentOS
-
Debain(免费)
- Ubuntu
- 视窗界面良好的Linux系统
- 一些主流的软件都支持Ubuntu系统
- Ubuntu
1.9. Linux下载
- 官网
- https://linux.org
- 下载页面
- https://linux.org/pages/download/
- CentOS7.6下载地址
- http://vault.centos.org/7.6.1810/
- 镜像的分类
- everything
- This image contains the complete set of packages for CentOS Linux 7. It can be used for installing or populating a local mirror.
- minimal
- The aim of this image is to install a very basic CentOS 6.5 system with the minimum of packages needed to have a functional system.
- netinstall
- This is the network install and rescue image.
- everything
- 操作系统的位数
- 优先选择64位,将来安装软件有更好兼容性
2. 虚拟机安装与配置
2.1. 虚拟化技术
- 可以更好的利用计算机闲置的资源
- 我们可以在计算机中虚拟出多台虚拟机帮助我们执行程序或者业务
- 虚拟机的各种组成理论上和真实主机是一样的
- 如果要使用这种技术只需要安装对应的软件即可
- Virtualbox
- VirtualMachine
- 安装软件
2.2. 创建虚拟主机
2.3. 安装操作系统
VMware 安装 Centos7 超详细过程:https://www.runoob.com/w3cnote/vmware-install-centos7.html
2.4. 配置常见参数
2.4.1. 网络
-
查看自己虚拟网卡地址
- 编辑–>虚拟机网络编辑器–>vmnet8
-
修改网络配置信息
-
vi编辑器简单使用
- 操作文档
- 光标位置
dd
删除一行i
将文档变成可修改模式esc
退出编辑:wq
保存并退出
-
修改网络信息
-
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
--修改 ONBOOT=yes BOOTPROTO=static //静态网络IP dhcp 动态获取网络IP --添加 IPADDR=192.168.164.100 NETMASK=255.255.255.0 GATEWAY=192.168.58.2 DNS1=114.114.114.114 删除------ UUID
-
-
-
重启网卡重新加载配置文件
-
ip addr
-
systemctl restart network.service
-
ping www.baidu.com
-
ctrl+c 终止命令的执行
2.4.2. 防火墙
- 保护本机的端口不被别人访问
- 如果端口需要被别人访问到,需要添加端口的防火墙例外
- 关闭防火墙
- 本次开机状态下防火墙关闭
- systemctl stop firewalld (本次服务内关闭防火墙)
- 服务器重启后防火墙禁用
- systemctl disable firewalld(禁用防火墙服务)
- 本次开机状态下防火墙关闭
2.4.3. 软件安装限制
- 操作系统对未知软件的安装有可能拒绝或者警告,我们需要禁用这个功能
- vi /etc/selinux/config
- SELINUX=disabled
2.4.4. 关机
- 关机
- halt
- 直接拔掉电源
- poweroff
- 直接关闭机器,但是有可能当前虚拟机其他人在使用
- shutdown -h now
- 马上关闭计算机 ,但是可以给其他用户发送消息
- reboot
- 重启虚拟机
- halt
2.5. 快照与克隆
-
拍摄快照---->相当于存档
- 记录当前虚拟机的状态
- 拍摄快照的时候一定要关机
- 点击当前虚拟机---->快照---->快照管理器
-
转到
- 回到某一个历史快照的节点
-
克隆
-
复制某一个历史快照节点
-
克隆的方式
- 链接克隆
- 当前节点文件夹只存储差异性数据
- 相同数据存放在原始节点上
- 优点:节省硬盘空间 缺点:耦合性大
- 完整克隆
- 就是基于原始节点完全拷贝到新节点的文件夹中
- 优点:耦合性抵
- 缺点:硬盘空间使用大---->推荐使用完整克隆
- 链接克隆
-
2.6. 修改克隆机配置
2.6.1. 网络信息
-
修改网络信息
-
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改ip IPADDR=192.168.164.101
-
systemctl restart network.service
-
参考2.4.1的修改网络信息
2.6.2. 主机名
-
vi /etc/hostname
- 修改完成后需要重启生效
-
hostname bd16
- 本次启动中有效,重启虚拟机还是使用原来的名字
2.7. 连接Linux服务器
- Xshell
- 负责向虚拟机输入命令
- XFtp
- 如则向虚拟机传输文件
3. Linux的命令
3.1. 命令学习法
- 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
- 将来工作中如果遇到生疏的命令,直接百度
- 如果不是为了装C,完全没必要查看命令手册
- help
3.2. 常用的命令
- whereis 查询命令文件的位置
- file 查看文件的类型
- who 查看当前在线的用户
- whoami 我是谁
- pwd 我在那
- uname -a 查看内核信息
- echo 类似于 sout ,打印语句
- clear 清屏
- history 历史
3.3. 特殊字符
-
.
点:- 如果文件的开始是.说明当前文件是一个隐藏文件
.
指向当前目录..
指向当前目录的上级目录
-
$
- 说明这是一个变量
- $PATH Linux的环境变量
- 说明这是一个变量
-
*
- 通配符
-
~
- 当前用户的家目录
- 每个用户的家目录是不同的
- root用户家目录在系统根目录下
- 其他用户的家目录在/home/用户名为家目录
-
空格
- Linux的命令与参数用空格隔开
-
/
- 整个Linux的文件根目录
-
命令的参数
- 如果是单词 一般加
--
- 如果是字母或者缩写 一般加
-
- 如果是单词 一般加
-
修改Xshell字体颜色
-
PS1='\[\e[36;40m\][\u@\h \W]\[\e[0m\]\\$ ' echo "PS1='\[\e[36;40m\][\u@\h \W]\[\e[0m\]\\$ '" >> ~/.bashrc source ~/.bashrc
-
4. Linux的文件系统
4.1. 万事万物皆文件
-
文件系统:
- 操作系统如何管理文件,内部定义了一些规则或者定义
-
所以在Linux中所有的东西都是以文件的方式进行操作
-
在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/photo disk3 1P
-
4.2. Linux二级文件目录
-
/bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev : dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 /media: linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件, 比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all /root: 该目录为系统管理员,也称作超级权限者的用户主目录。 /sbin: s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但 是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 /srv: 该目录存放一些服务启动之后需要提取的数据。 /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件 系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 /tmp: 这个目录是用来存放一些临时文件的。 /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 /usr/bin: 系统用户使用的应用程序。 /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。 /usr/src: 内核源代码默认的放置目录。 /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 /run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
4.3. 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
- 可以安全的删除文件目录
- 删除空文件夹
- cp
- 拷贝文件或者文件目录
- cp 源文件 目标目录
- cp abcd /opt
- cp /opt/abcd ./
- 拷贝文件夹
- cp -r lucky /opt
- 拷贝文件夹下所有的内容
- cp: omitting directory ‘/root/a1’
- mv
- 移动文件或者文件夹
- mv a1 /opt
- mv abc /opt
- 修改文件名称
- mv a abcd
- 移动文件或者文件夹
- rm
- 删除文件
- rm install.log
- rm -f install.log
- 删除文件夹
- rm -r abcd
- rm -rf /* 谨慎使用,从删库到跑路(将根目录删除)
- 删除文件
- touch
- 如果没有就创建一个文件
- 如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
- stat
- 查看文件的状态
- Inode 当前文件在文件系统的唯一标识,类似于ID
- 时间
- access 访问时间
- modify 修改文件内容时间
- change 修改文件元数据信息时间
- 文件大小 ,文件所有者 ,文件权限
- 对于文件的描述信息
- ln
- 创建文件的链接
- 软(符号)连接
- ln -s lucky01 sl
- 软连接和原始文件不是同一个文件
- lucky1 131085
- sl 131074
- rm -rf lucky1
- 硬链接
- ln lucky02 hl
- 硬链接和原始文件使用文件系统中的同一个文件
- 如果你害怕一个文件被别人误删,你可以使用硬链接保护这个文件
- 软硬链接在链接文件的时候,推荐使用文件的绝对路径,否则有可能会出现问题
4.4. 读取文件信息
- cat
- 将整个文档加载到内存中,并进行一次性显示
- 除非后面使用管道,传递数据
- tac
- 将整个文档加载到内存中,并进行一次性按行逆序显示
- more less
- 分页查看文档内容
- 快捷键
- 回车 下一行
- 空格 下一页
- b 回退
- q 退出
- head
- 从文章开始读取N行
- 默认如果超过10行读取10行,否则读取现在行数
- head -5 profile
- tail
- 从文章末尾读取N行
- head -3 profile | tail -1
- 利用管道只读取第N行
- 管道的作用就相当于把前面的结果以参数的方式传递给后面的命令
- 读取新增数据
- ping www.baidu.com >>baidu
- tail -F baidu
- 如果f:
- 它会监听指定inode的文件数据变化,但是当文件被删除后
- 即使创新创建,inode也会发生变化,于是监听失败
- 如果F
- 他会监听指定名字的文件,如果文件被删除后,重新创建
- 他会重新监听新文件的数据变化,监听不受影响
- find
- 查找指定的文件
- find 要查找的范围 -name 名字
- find /etc -name profile
4.5. VI和VIM编辑器
4.5.1. 打开文件
- 正常打开
- vi profile
- 打开文件,并将光标置于第8行
- vi +8 profile
- 打开最后一行
- vi + profile
- 按n查找下一个,按N查找上一个
- 打开指定搜索单词的位置
- vi +/if profile
4.5.2. 三种模式
- 编辑模式
- 编辑模式中,每一个按键都有其他的功能
- 输入模式
- 每一个按键按下什么,就像文本中数据输入什么
- 末行(命令行)模式
- 我们可以直接在VI中输入特定的命令
4.5.3. 三种模式切换
- 编辑模式–>输入模式
i
在当前位置插入数据a
追加数据o
在当前行后面开启一个新的输入行I
行首A
行尾O
上一行
- 输入模式–>编辑模式
- 按下
ESC
- 按下
- 编辑模式–>末行模式
:
- 末行模式–>编辑模式
- 按下
ESC
- 按下
4.5.4. 编辑模式
G
最后一行gg
跳转到第一行- 数字
gg
跳转到第数字行 w
下个单词- 数字w
dw
删除一个单词3dw
删除三个单词dd
删除一行3dd
删除三行u
回退到前面的操作.
回退u执行的操作yw
复制一个单词3yw
复制三个单词yy
复制一行3yy
复制三行p
粘贴6p
粘贴6次x
剪切3x
剪切三个字符r
替换,然后输入一个字符替换3r
替换三个hjkl
方向键ZZ
保存并退出ctrl+s
锁屏ctrl+q
解锁
4.5.5. 输入模式
- 没得讲。按啥是啥
4.5.6. 末行模式
set nu
设置行号set nonu
取消行号w
保存q
退出wq
保存并退出q!
强制退出,但是不保存- 如果上次异常退出会保留同名隐藏文件,每次启动会给与提示
- 如果确定当前文件没问题,请删除隐藏文件
- /pattern
- 搜索指定的字符串
- /usr n向下查找 N逆向查找
- s/p1/p2/g
- 替换字符串
- g 替换当前行所有 否则只替换当前行第一个
- s/abc/lucky/g 查找指定行
- 3,8s/abc/lucky/g
- 替换全文
- g/abc/s//lucky/g
注:vim安装指令: yum intstall vim -y
4.6. 计算机间的数据传输
4.6.1. Window–Linux
- lrzsz
- 需要手动安装
- yum install lrzsz -y
- rz
- 将文件从window上传到Linux
- sz
- 文件 将文件从Linux传输到Window
- xftp
- 较为通用的文件传输方式
- 需要手动安装
4.6.2. 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
4.7. 文件大小
- 分区信息
- df -h
- 指定文件目录大小
- du -h --max-depth=1 apache-tomcat-7.0.61
- swap
- 一个特殊分区,以硬盘代替内存
- 当内存使用满的时候,可以将一部分数据写出到swap分区
###4.8. 文件压缩
4.8.1. tar
- 主要针对的文件是 lucky.tar.gz
- 解压缩
- tar -zx(解压)v(过程)f(文件) lucky.tar.gz
- 压缩
- tar -zc(压缩)f(文件) tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件)
- tar -zxf tomcat.tar.gz -C /opt/
- -C 指定解压缩的文件目录
4.8.2. zip和unzip
-
安装
- yum install zip unzip -y
-
压缩
- zip -r tomcat.zip apache-tomcat-7.0.61
-
解压缩
- unzip tomcat.zip
5.Linux的网络信息
5.1. 主机名称
- 临时修改
- hostname school
- 长久修改
- vi /etc/hostname
5.2. DNS解析
- 域名解析服务
- 可以将域名转换为IP地址
- DNS域名劫持
- window --> C:\Windows\System32\drivers\etc\hosts
- 123.56.138.186 www.baidu.com
- 123.56.138.186 www.taodao.com
- 修改主机域名
- vi /etc/hosts
- 将来我们需要把所有的虚拟机都配置hosts文件
- 192.168.31.101 bd1601
- 192.168.31.102 bd1602
5.3. 网络相关命令
-
yum install net-tools -y
-
ifconfig
- 查看当前网卡的配置信息
- 这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包
- 所以7的时候需要自己手动安装
- 如果没有ifconfig ,可以使用ip addr 临时代替
-
netstat
- 查看当前网络的状态信息
- 一个机器默认有65536个端口号[0,65535]
- 这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问
- 一个端口只能被一个程序所监听, 端口已经被占用
- netstat -anp
- netstat -r 核心路由表 == route
-
ping
- 查看与目标IP地址是否能够连通
-
telnet
- 查看与目标IP的指定端口是否能够连通
- yum install telnet -y
- telnet 192.168.31.44 22
-
curl
- restful 我们所有的资源在网络上中都有唯一的定位
- 那么我们可以通过这个唯一定位标识指定的资源
- http://localhost:8080/lucky/user.action/666
- curl -X GET http://www.baidu.com
5.4. 防火墙
- 防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、 外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
- 在centOS7+中 使用firewalld代替以前的 iptables ;
#查看防火墙状态 systemctl status firewalld.service #临时停止firewall systemctl stop firewalld.service #开启firewall systemctl start 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
5.5. 加密算法
5.5.1. 不可逆加密算法
- 可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据
- 应用场景
- Hash算法常用在不可还原的密码存储、信息完整性校验。
- 文档、音视频文件、软件安装包等用新老摘要对比是否一样(接收到的文件是否被修改)
- 用户名或者密码加密后数据库存储(数据库大多数不会存储关键信息的明文,就像很多登录功 能的忘记密码不能找回,只能重置)
- 案例
- 123456
- e10adc3949ba59abbe56e057f20f883e
- md5(md5(123456))----->md5(654321)
5.5.2. 对称加密算法
- Symmetric Key Encryption
- 代表性算法叫做 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
- 特点
- 加密和解密使用相同的秘钥
- 优点
- 生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短
- 缺点
- 双方共同的密钥,有一方密钥被窃取,双方都影响
- 如果为每个客户都生成不同密钥,则密钥数量巨大,密钥管理有压力
- 应用场景
- 登录信息用户名和密码加密、传输加密、指令加密
- 案例:
- 原文:今晚八点学校小树林见
- 密钥: love
- 7gjM6FhIc89ACoel+jJ3VM26XGAdSlaHTj5NYg4VkKA=
5.5.3. 非对称加密算法
-
Asymmetric Key Encryption
-
非对称加密算法需要一对密钥(两个密钥):
- 公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
- 公开密钥与私有密钥生成时是一对
- 用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密。
-
代表性算法叫做 RSA、ECC、Diffie-Hellman、El Gamal、DSA(数字签名用)
-
优点:
- 安全高(几乎很难破解)
-
缺点
- 加解密相对速度慢、密钥长、计算量大、效率低
-
应用场景
- HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键 的登录信息验证。
-
http://tool.chacuo.net/cryptrsaprikey
-
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjlHREYDiL9p5bAPBsMCy+UIaH e4MAm7djkuHYW3aGQLgG9Rc1CSRaFeNXBw+llDsnIgBPgoUI4S8N2m87n25zJ5jH 7pEyWoZsAeTgpqJ6fzfciRpGHsawZ+AxVs0PeIvBMVIIZfpP4tIK5WVau7mVt0gy /bU+PtX35wVymIKy7QIDAQAB -----END PUBLIC KEY-----
-
-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOOUdERgOIv2nlsA 8GwwLL5Qhod7gwCbt2OS4dhbdoZAuAb1FzUJJFoV41cHD6WUOyciAE+ChQjhLw3a bzufbnMnmMfukTJahmwB5OCmonp/N9yJGkYexrBn4DFWzQ94i8ExUghl+k/i0grl ZVq7uZW3SDL9tT4+1ffnBXKYgrLtAgMBAAECgYBOkrvNu7bqQ/yKiPl5MOzRzHWW I0OomxqnC1hkXbe/RGsFI+ueSQi+/Z2fN3XkghgmO6wFx5ds6GpZixgqarIz8z/Z AixGVx7BgUgAzIZ4OOsm7uLpPs7WEVLWn1I4/59HxnzWX85ShBsfJc4tFb566Bc2 /5SaBurNXlOURFFs9QJBAPUL/qCWZ5JljXEtlLqaumEY54WT6+dJpL0j2bsmvktk CkMpzqCKy8ymiFPa5FyZDRsZfLQBoHWv7SVKD0wOFMcCQQDtwJcAsOrxWApQ19tr 9wrrv0QB0XPkJjOL85x/I+6Q6CMd2YQs8ze2ex+J45VWtADQYi2VixgmtI9pNmW7 eJ6rAkAe2s/I8KdB67+PjKm5hVoKd9RPIX0GtmMj3avAwPQdEg+ovU7jMBbRQfbQ eDNg5XSdAOyOzdWie/BkTZr3fJ5pAkEAr9OVGOK97ZxRjboyGRNMfVXdOwRV4YorJ 5j9URkZ5gNrcVY/uixuX4TEvAte3MrbOP03MLmL+imlQAdxD4h/zHwJBANY0vxVf 8tzwPdXcNWK8ZCqmWLR8sDTrzRdwNejBraYb00yEngGy1uALsDNevXtzrRkh8dzV QI5y+RliuFYWd14= -----END PRIVATE KEY-----
-
IpaC8/W8s3UL9wDuz8pRUA3bG3jE0Ch0MqCiVd3LXHBXSDRVckvD20cUEnBkiG0N85NfY6rv M0iyb4fNkic4BhmLQg6AsV4L8LEIptSwPJwlVqJprqh7MHN+R9y/PekSmpZYAxitTaFFfgJP DhGYl45TmWLj2vhGoOQy/INK9boy=
-
今晚八点学校小树林见
-
5.6. 主机间的相互免秘钥
-
可以通过ssh命令免秘钥连接到其他的主机
-
如果是第一次建立连接,需要输入yes
- 在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
- 在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
- 如果以前收录到known_hosts中,直接输入密码即可
-
需要输入密码
-
生成秘钥
- ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
-
查看公钥
- cat ~/.ssh/id_rsa.pub
-
如果你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可
-
这个秘钥要放在 ~/.ssh/authorized_keys
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.164.101
-
查看公钥
- cat ~/.ssh/authorized_keys
-
-
相互面秘钥工作流程
5.7. 主机名与Host校验
- 错误原因:
- Cannot determine realm for numeric host
- 解决方案1–本次
- ssh -v -o GSSAPIAuthentication=no root@192.168.189.201
- 解决方案2–所有
- 修改vi /etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
- 最后面添加:
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
6. 日期与时间
6.1. 时间命令
- 查看时区
- ll /etc/localtime
- /etc/localtime -> …/usr/share/zoneinfo/America/Los_Angeles
- ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- ll /etc/localtime
- date
- 查看当前系统时间
- cal 查看日历
- cal 2020
- 修改时间
- date -s 11:11:11
- date -s 2019-11-11
- date -s ‘2019-11-11 11:11:11’
6.2. 日期自动同步
-
自动同步时间
- yum install ntp -y
- ntpdate cn.ntp.org.cn
-
本地搭建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
7.用户-组-权限
7.1. 用户
- 新增用户
- useradd luckyboy
- 会创建同名的组和家目录
- 设置密码
- passwd luckyboy
- 删除用户
- userdel -r luckyboy
- 级联删除家目录和组
- 修改用户信息
- usermod -l luckyss luckyls 修改用户名
- 家目录和组名称是不会被修改的
- usermod -L luckyss 锁定用户名
- usermod -U luckyss 解锁用户名
- usermod -l luckyss luckyls 修改用户名
- 常用文件
- cat /etc/shadow
- 用户名和密码
- cat /etc/passwd
- 用户名,编号,组编号,家目录,命令,目录
- 6.5系统0-499 普通 500+
- 7.6系统0-999 普通 1000+
- cat /etc/shadow
- 切换账户
- su luckyboy
7.2. 组
- 创建组
- groupadd lucky
- 删除组
- groupdel lucky
- 修改组名字
- groupmod -n school lucky
- 查看用户对应的组
- groups
- groups schoolboy
- 当我们创建用户的时候,会默认创建一个同名的主组
- 修改用户的组
- usermod -g lucky schoolboy (主组)
- usermod -G lucky schoolls (附属组)
7.3. 权限
-
查看文件的权限
- drw-r-xr-x 9 n1 m1 4096 Nov 13 00:30 apache-tomcat-7.0.61
- 三组权限,每组3个字母
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–)
- 修改文件所属
7.4. 权限赋予
- 我们可以将管理用的权限分配给普通用户
- 文件位置在 vim /etc/sudoers
- 但是修改这个文件需要使用命令
- visudo
- 修改 Line 99
- n1 ALL=(root) /sbin/useradd
- n1 ALL=(root) /sbin/*
- 如何使用
- su n1 sudo
- chkconfig iptables off
8. 管道与重定向
8.1. 管道
- 将前面命令的结果作为参数传递给后面的命令
- grep
- 强大的文本搜索工具
- cat profile | grep if
- ls / | grep ^t
8.2. 重定向
- 改变数据输出的位置,方向
- 0 in 1 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
9. Linux的系统进程
9.1. 进程信息
- ps -ef
- UID PID PPID C STIME TTY TIME CMD
- UID 所属用户
- PID 当前进程编号
- PPID 当前进程编号的父进程编号
- ps -ef | grep redis
- ps -aux
- 所有信息
- ps -aux --sort -pcpu
- top
- 当前服务器内存使用率
9.2. 后台进程
- Window