1. 计算机硬件软件体系
1.1. 冯·诺依曼体系结构1.2. 计算机硬件组成1.3. 硬盘的分类1.4. 顺序读写与随机读写1.5. 网络连接概念1.6. 网络连接模式1.7. 软件分类1.8. Linux分支1.9. Linux下载 2. 虚拟化安装与配置
2.1. 虚拟化技术2.2. 创建虚拟主机2.3. 安装操作系统2.4. 配置常见参数
2.4.1. 配置网络参数2.4.2. 配置防火墙参数2.4.3. 安装软件限制2.4.4. 关机 2.5. 虚拟机常见操作2.6. 修改克隆机配置2.7. 连接Linux服务器 ==3. Linux的命令==
3.1. 命令学习法3.2. 常用的命令3.3.特殊字符 4. Linux的文件系统
4.1. 万事万物皆文件4.2. Linux文件目录4.3. Linux文件操作
① cd② ll③ mkdir④ rmdir⑤ cp⑥ mv⑦ rm⑧ touch⑨ stat⑩ ln 4.4. 读取文件信息
① cat② tac③ more④ less⑤ head⑥ tail⑦ fing 4.5. VI和VIM编辑器
4.5.1. 打开文件4.5.2. 三种模式及其切换4.5.3. 一般指令模式4.5.4. 编辑模式4.5.5. 末行模式4.5.6. VIM编辑器 4.6. 计算机间的数据传输
4.6.1. Windows——Linux4.6.2. Linux——Linux 4.7. 文件大小4.8. 文件压缩
4.8.1. tar4.8.2. zip和unzip 5.Linux的网络信息
5.1. 主机名称5.2. DNS解析5.3. 网络相关命令5.4. 防火墙5.5. 加密算法
5.5.1. 不可逆加密算法5.5.2. 对称加密算法5.5.3. 非对称加密算法 5.6. 主机间的相互免密钥5.7. 主机名与Host校验 6. 日期与时间
6.1. 时间命令6.2. 日期自动同步 7. 用户-组-权限
7.1. 用户7.2. 组7.3. 权限 8. 管道与重定向
8.1. 管道8.2. 重定向 9. Linux的系统进程
9.1. 进程信息9.2. 后台进程9.3. 杀死进程 10. Linux的软件安装
10.1. 环境变量10.2. 软件安装10.3. RPM安装10.4. 压缩包解压安装10.5. yum安装
10.5.1. yum的作用10.5.2. yum命令10.5.3. 更换yum源10.6. 安装MySQL数据库 11. Linux的三剑客
11.1. 普通剑客11.2. 剑客1号:grep11.3. 剑客2号:sed11.4. 剑客3号:awk
1. 计算机硬件软件体系 1.1. 冯·诺依曼体系结构存储器运算器控制器输入设备输出设备 1.2. 计算机硬件组成 1.3. 硬盘的分类
机械硬盘HDD
机械硬盘采用磁性碟片来存储数据用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化凸起的地方代表数字1,凹的地方代表数字0硬盘可以以二进制来存储表示文字、图片等信息。硬盘可以根据转速来判断硬盘的好坏,7200转/分,100-200M/s 固态硬盘SSD
固态硬盘通过闪存颗粒(固态电子存储芯片阵列)来存储数据
SLC ,每个存储单元仅能够存储1bit数据,速度快、寿命长、价格昂贵MLC,每个存储单元仅能够存储2bit数据,速度较快、寿命较长、价格较贵TLC ,每个存储单元仅能够存储3bit数据,速度一般、寿命一般、价格一般 读写速度的区别
固态硬盘的读取速度普遍可以达到400M/s,写入速度也可以达到130M/s以上其读写速度是普通机械硬盘的3-5倍 1.4. 顺序读写与随机读写
机械硬盘一般随机读写,速度一般,但是用于顺序读写的话速度非常快 1.5. 网络连接概念
IP地址IPADDR
IP地址是一种逻辑地址,用来标识网络中一个个主机
IP地址=网络地址+主机地址IP地址是一个32bit的数字串
子网掩码NETMASK
子网掩码用来判断任意两台计算机的IP地址是否在同一个子网中的根据
默认网关GATEWAY
网关的作用就是实现两个网络之间进行通讯与控制
域名服务器DNS
DNS用来解析域名
C:WindowsSystem32driversetchosts
去掉“只读”属性,在hosts文件中输入IP地址和对应的域名,电脑就会自动将域名解析到设置的IP地址
将百度域名解析到知乎的IP地址:(域名劫持) 180.153.100.156 www.baidu.com 这时候ping www.baidu.com,就会解析到知乎的IP地址,但是现在的浏览器一般会进行判断1.6. 网络连接模式
host-only(仅主机模式)bridge(桥接模式)
VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。当前主机IP为192.168.8.100,虚拟机192.168.8.XXX
学习期间为了防止IP冲突,所以不选择这种模式 NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的虚拟系统也就无法和本局域网中的其他真实主机进行通讯 1.7. 软件分类
应用软件
应用软件要基于对应的系统软件不同的操作系统要安装不同的软件
系统软件
就是为了和硬件打交道屏蔽应用软件与硬件的差异
系统软件的分类
操作系统
Windows
用户量全球最大收费、不开源,民用比较多各种软件比较齐全 GNU/Linux
GNU是一个开源软件组织,认为世界上所有的软件(包括应用和系统软件)都应该开源免费拖瓦兹·林纳斯——Linux内核 Mac OS
只限定与某些苹果的品牌机iOS自成一家 1.8. Linux分支
ReaHat
CentOS
完全开源免费不要使用最新版的CentOS,可能有bug,不够稳定(版本年份用双不用单,单一般都是测试版)主要用于服务器版本 Debian
Ubuntu
视窗界面良好的Linux系统一些主流的软件都支持Ubuntu系统 1.9. Linux下载
官网
CentOS 7 2018年10月
CentOS-7_2018年10月-iso镜像
DVD版:家用版,正常安装使用,工作后可以使用Everything版:包含所有组件NetInsatll版:通过网络安装Minimal版:包含具有功能系统所需的最少软件包,学习可以使用,这里我们选择这个版本就好了 2. 虚拟化安装与配置 2.1. 虚拟化技术
可以更好的利用计算机闲置的资源我们可以在计算机中虚拟出多台虚拟机帮助我们执行程序或者业务虚拟机的各种组成理论上和真实主机是一样的如果要使用这种技术只需要安装对应的软件即可
VirualBoxVirtualMachine 2.2. 创建虚拟主机 2.3. 安装操作系统
CentOS7分区的简单配置
/boot:256Mswap:一般分配内存的两倍,2G/:不用输入数值,默认剩下全部分配 2.4. 配置常见参数 2.4.1. 配置网络参数
vi /etc/sysconfig/network-scripts/ifcfg-ens33重启网卡重新加载配置文件
ip addr(本机IP:192.168.222.100)systemctl restart network.serviceping www.baidu.comctrl+c终止执行命令 2.4.2. 配置防火墙参数
保护本机的端口不被别人访问如果端口需要被别人访问到,需要添加端口的防火墙例外关闭防火墙
本次开机状态下防火墙关闭
systemctl stop firewalld(本次服务内关闭防火墙) 服务器重启后防火墙禁用
systemctl disable firewalld(今后都禁用防火墙服务) 查看防火墙开启/关闭状态
systemctl status firewalld 2.4.3. 安装软件限制
操作系统对未知软件的安装有可能拒绝或者警告,我们需要禁用这个功能vi /etc/selinux/config
SELINUX=disabled 2.4.4. 关机
poweroffshutdown -h now重启reboot 2.5. 虚拟机常见操作
关机后再拍摄快照克隆
链接克隆完整克隆
复制这个文件,其他虚拟机打开其中的.vmx文件即可使用 2.6. 修改克隆机配置
改网络配置(同上)改主机名
hostname 主机名vi /etc/hostname 2.7. 连接Linux服务器
putty downloadXshell:连接虚拟机——ssh IP地址Xftp 3. Linux的命令 3.1. 命令学习法
Linux命令与参数之间必须用空格隔开Linux命令是区分大小写的如果输入了错误的命令
command not found原因
命令敲错了命令未安装 type查看命令的类型
cd is a shell builtinping is /bin/pingll is aliased to `ls -l --color=auto’for is a shell keyword 命令的帮助文档
help
内置命令的帮助文档eg:help cd man
外部命令的帮助文档因为当前系统为Minima版,very basic没有man包需要手动安装man
yum install man man-pages -y 将来工作中如果遇到生疏的命令,直接百度
如果不是为了装X,完全没有必要查看命令手册eg:man ping 3.2. 常用的命令
whereis:查询命令文件的位置file:查看文件类型who:查看当前在线的用户
useradd libaipasswd libai whoami:我是谁pwd:我在哪uname -a:查看内核信息echo类似于sout syso:打印语句clear:清屏history:查看敲过的历史命令
history -c:清除敲过的历史命令 3.3.特殊字符
点
如果文件的开始是.说明当前文件是一个隐藏文件·指向当前目录..指向当前目录的上级目录
$
说明这是一个变量
$PATH Linux的环境变量
*星号
通配符
当前用户的家目录每个用户的家目录是不同的root用户家目录在系统根目录下其他用户的家目录:/home/用户名
空格
Linux的命令与参数用空格隔开
/
整个Linux的文件根目录
命令的参数
如果是单词,一般加--如果是字母或者缩写,一般加- 4. Linux的文件系统
一级目录:/ 二级目录:/etc,/boot,/sbin,/usr,/opt 三级目录:一般在三级目录才开始创建自己的目录 ...
如果磁盘空间不够用,可以挂载文件mount
Windows文件系统中,盘符的缺点是:在不同计算机中运行相同程序,可能出现路径错误。
4.1. 万事万物皆文件
文件系统:
操作系统如何管理文件,内部定义了一些规则或者定义
所以在Linux中所有的东西都是以文件的方式进行操作的
在Linux中,文件的访问与Windows不同,Windows通过盘符进行访问
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 2T mount /dev/disk3 /usr/upload/photo disk3 4T4.2. Linux文件目录
二级目录查看命令:ll /
/bin:存放可执行文件,包括命令、脚本等 /boot:引导分区 /dev:设备信息 /etc:配置文件 /home:家目录 /lib:类库 /lib64:64位类库 /media:多媒体 /mnt:硬盘挂载默认位置 /opt:软件安装位置 /proc:进程信息 /root:root用户家目录 /run:系统运行时的一些系统变/常量 /sbin:管理可执行的一些权限和命令,超级的 /srv:该目录存放一些服务启动之后需要提取的数据 /sys:系统的内核信息 /tmp:存放临时文件,关机后可能清理 /usr:用户贡献的区域 /var:存放临时文件,关机后不会清理4.3. Linux文件操作 ① cd
改变文件路径 ② ll
相当于ls -l --color=auto,ls显示出指定目录下所有的文件文件的类型
-:文件d:目录,即文件夹l:软链接,即快捷方式 ③ mkdir
创建文件目录
mkdir -p a/b/c/d/e/f会自动创建文件父目录
mkdir -p a{b,c,d}
④ rmdirmkdir -p a1/{b1,c1,d1}
只能删除空目录 ⑤ cp
copy
拷贝文件或者文件目录
cp 源==文件== 目标目录
cp abcd /optcp /opt/adcd
拷贝==目录/文件夹==
cp -r 源目录 目标目录拷贝文件夹下所有的内容 ⑥ mv
move
剪切/移动文件或者目录
mv a1 /opt
改文件名
mv 源文件名 新文件名 ⑦ rm
remove
删除文件
rm a.log:会跳出是否删除确认rm -f a.log:强制删除不需要确认
删除目录
rm -r aaa:删除目录必须加-r,会跳出确认提示rm -rf aaa:强制删除目录,不需要确认 ⑧ touch
如没有这个文件,则创建文件
touch a 如有这个文件,则将文件的三个时间修改为相同的时间 ⑨ stat
查看文件的状态Inode当前文件在文件系统的唯一标识,类似于ID时间
access:访问时间modify:修改文件内容时间change:修改文件元数据信息时间
文件大小、文件所有者、文件权限对于文件的描述信息 ⑩ ln
link链接=快捷方式
创建文件的链接
软链接/符号链接
软链接和原始文件不是同一个文件,可以通过Inode来判断
硬链接
硬链接和原始文件使用文件系统中的同一个文件,可以通过Inode来判断
如果你害怕一个文件被别人误删除,你可以使用硬链接保护这个文件
4.4. 读取文件信息 ① cat原理:
stat一个文件,其link=1,链接数为1,即指向Inode的只有一个文件,当删除文件时,链接数变为0,Inode对应的文件也会删除。
当为一个文件创建一个硬链接时,链接数变为2,即指向Inode的有两个文件,当删除原始文件时,链接数变为1,Inode对应的文件不会被删除,通过硬链接还可以访问之前的文件
而为文件创建软链接时,其并不是直接指向源文件指向的Inode,而是指向另一个Inode,通过这个Inode指向源文件,再通过源文件去指向其Inode。所以如果删除源文件,通过软链接就无法找到源文件的Inode,也就无法查看其内容了。
将整个文档加载到内存中,并进行一次性正序显示
除非后面使用管道,传递数据
② tac将整个文档加载到内存中,并进行一次性按行逆序显示 ③ more
分页查看
回车:下一行空格:下一页b:back,往回退q:退出 ④ less
相当于more,功能略为丰富 ⑤ head
从文章开始读取N行
默认如果超过10行读取10行,否则读取现在行数
head -10 profile:查看profile的前十行
⑥ tail
从文章末尾读取N行
tail -10 profile:查看profile的后十行
head -10 profile | tail -1:查看第十行
利用管道只读取第N行管道的作用就相当于把前面的结果以参数的方式传递给后面的命令
读取新增数据
ping www.baidu.com >>baidu
tail -F baidu
如果F:
会监听指定名字的文件(一般使用F)如果文件被删除后,重新创建就会重新监听新文件的数据变化,监听不受影响
tail -f baidu
如果f:
会监听指定Inode的文件数据变化但是当文件被删除后,即使重新创建,Inode也会发生变化,于是监听失败 ⑦ fing
查找指定的文件find 路径 -name 文件名
find /etc -name a*a 4.5. VI和VIM编辑器
记事本vinotpad就是vim 4.5.1. 打开文件
正常打开
vi profile 打开文件,并将光标置于第8行
vi +8 profile 打开最后一行
vi + profile 打开指定搜索单词的位置
vi +/字符 profile按n查找下一个,按N查找上一个
vi +/if profile 4.5.2. 三种模式及其切换
一般指令模式
打开编辑器默认进入一般指令模式一般指令模式中,每一个按键都有其他的功能
dd删除一行p粘贴 编辑模式
按esc回到一般指令模式进入编辑模式:
按a 追加数据按i 在当前位置插入数据按o 在当前行后面开启一个新的输入行(下一行)按A 行尾按I 行首按O 上一行 每一个按键按下什么,就像文本中数据输入什么 末行(命令行)模式
输入英文状态下的冒号进入命令行模式我们可以直接在VI中输入特定的命令
set nu:显示行号(set nonu不显示行号)wq:保存并退出 按下ESC回到一般指令模式 4.5.3. 一般指令模式
G:最后一行gg:跳转到第一行数字gg:跳转到第数字行w:跳转到下一个单词数字w:跳转到下数字个单词dw:删除一个单词3dw:删除三个单词u:回退到前面的操作,相当于ctrl+z.:回退u执行的操作,相当于ctrl+yyw:复制一个单词3yw:复制三个单词yy:复制一行3yy:复制三行p:粘贴剪贴板的内容2p:粘贴两遍剪贴板的内容x:剪切一个字符3x:剪切三个字符r:替换,然后输入一个字符替换3r:替换,然后输入一个字符替换三个字符hjkl:上下左右键ZZ:按住shift不放,按两下z,即保存并退出ctrl+s:锁屏ctrl+q:解锁 4.5.4. 编辑模式
按啥就是啥 4.5.5. 末行模式
w:保存q:退出
默认:修改文件内容如果没有保存无法退出q!:不保存强制退出如果上次异常退出会保留同名隐藏文件,每次启动会给与提示
如果确定当前文件没有问题,请删除隐藏文件 wq:保存并退出set nu:设置行号set nonu:设置无行号/字符:在文件内容中查找字符,搜索指定的字符串
/libai:搜索字符串libain:查找下一个N:查找上一个 s/p1/p2
在当前行用p2替换第一个p1
s/libai/liqingzhao:将当前行的第一个yibai替换为liqingzhao g 替换当前行所有,否则只替换当前行第一个
s/abc/lucky/g:将当前行所有的abd替换为lucky 替换全文
g/libai/s//liqizhao/gg/p1/s//p2/g:将全文所有的p1替换为p2 查找指定行?
3,8s/abc/lucky/g 4.5.6. VIM编辑器
Minimal版需要安装一下VIM编辑器
yum install vim -y vim用法与vi类似如果不正确退出编辑器,Linux会自动保存文件的副本(文件还没修改时的副本),是一个隐藏文件
第一种选择:使用原来的文件第二种选择:recover,替换如何不让它跳出选择的提示信息呢?
rm -rf .profile.swp(.文件名.swp) 4.6. 计算机间的数据传输 4.6.1. Windows——Linux
lrzsz
需要手动安装
yum install lrzsz -y rz上床
将文件从Windows上传到Linux直接输入rz,弹出文件选择窗口,选择文件后即可上传 sz下载
将文件从Linux下载到Windows输入sz 文件名 xftp
较为通用的文件传输方式在XShell中点击新建文件传输,可以直接打开XFTP进行文件传输[外链图片转存中…(img-VPdNALXB-1644324625541)]选择两边的路径,将要传输的文件右击选择“传输”即可 4.6.2. Linux——Linux
scp 源数据地址(source) 目标数据地址(target)把自己的文件传给别人:
[外链图片转存中…(img-QBoJQuyF-1644324625541)] 从别人那边把文件拿过来:
[外链图片转存中…(img-iLbH0svs-1644324625542)] 传输文件夹只要加上-r即可
scp -r base root@192.168.222.200:/root[外链图片转存中…(img-2udlR77s-1644324625542)] 4.7. 文件大小
分区信息
df -h 查看指定文件大小
du -h --max-depth=1 anaconda-ks.cfg 查看指定文件目录大小
du -h --max-depth=1 /root swap
一个特殊分区,以硬盘代替内存,称为交换区当内存使用满的时候,可以将一部分数据写出到swap分区 4.8. 文件压缩 4.8.1. tar
主要针对的文件是 .tar.gz解压缩
tar -zx(解压)v(过程)f(文件) xxx.tar.gztar -zxvf profile.tar.gz 压缩
tar -zc(压缩)f(文件) xxx.tar.gz(压缩后的名字) xxx(源文件)tar -zcf test.tar.gz testtar -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域名劫持
Windows–>C:WindowsSystem32driversetchosts123.56.138.186www.baidu.com123.56.138.186www.taobao.com
修改主机域名
vi /etc/hosts,将IP地址以及对应的名称输入即可将来我们需要把所有的虚拟机都配置hosts文件,例如可以使用ping 名称来代替ping IP地址192.168.31.101 bd1601192.168.31.102 bd1602 5.3. 网络相关命令
ifconfig
查看当前网卡的配置信息这个命令属于net-tools中的一个命令,但是CentOS7中Minimal版并没有集成这个包所以使用的时候需要自己手动安装
yum install net-tools -y 如果没有ifconfig,可以使用ip addr临时代替 netstat
查看当前网络的状态信息一个机器默认有65535个端口[0,65535]这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问一个端口只能被一个程序所监听,端口已经被占用netstat -anp,查看开启的端口netstat -r,查看核心路由表 == route ping
查看与目标地址是否能够连通 telnet
查看与目标IP的指定端口是否能够连通yum install telnet -ytelnet 192.168.222.200 22 curl
restul风格,我们所有的资源在网络中都有唯一的定位那么我们可以通过这个唯一定位标识指定的资源curl -X GET http://www.baidu.com 5.4. 防火墙
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
在CentOS7+中,使用firewalld代替以前的 iptables;
#查看防火墙状态 systemctl status firewalld.service #临时停止firewall systemctl stop firewalld.service #开启换成start #禁止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 --permanent5.5. 加密算法 5.5.1. 不可逆加密算法
可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据应用场景
Hash算法常用在不可还原的密码存储、信息完整性校验文档、音视频文件、软件安装包等用MD5新老摘要对比是否一样(接收到的文件是否被修改)用户名或者密码加密后数据库存储(数据库大多数不会存储关键信息的名明文,就像很多登录功能的忘记密码不能找回,只能重置) 5.5.2. 对称加密算法
Symmetric Key Encryption代表性算法有:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES特点
加密和解密使用相同的密钥 优点
生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短 缺点
对方共同的密钥,有一方密钥被窃取,双方都影响如果为每个客户都生成不同的密钥,则密钥数量巨大,密钥管理有压力 应用场景
登录信息用户名和密码加密、传输加密、指令加密 案例
原文:今晚八点操场见密钥:love算法:AES加密文:U2FsdGVkX1/NEBU6Z0HjlGL+BhCAabZD0ApyQU1MHAwXJIYPq4xkNDkV9by++ikr 5.5.3. 非对称加密算法
Asymmetric Key Encryption非对称加密算法需要一对密钥(两个密钥):
公开密钥(publickey)和私有密钥(privatekey)(简称公钥、私钥)公开密钥与私有密钥生成时是一对的用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密 代表性算法有:RSA、ECC、Diffie-Hellman、EI Gamal、DSA(数字签名用)优点:
安全高(几乎很难破解) 缺点
加解密相对速度慢、密钥长、计算量大、效率低 应用场景
HTTPS(SSL)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键的登录信息验证。 5.6. 主机间的相互免密钥
可以通过ssh命令免密钥连接到其他的主机相互免密钥
生成密钥
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa[外链图片转存中…(img-GLkoGAe4-1644324625543)] 如果你想免密钥登录谁,只需要把自己的公钥传递给对方主机即可
这个密钥要放在 ~/.ssh/authorized_keysssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.222.200[外链图片转存中…(img-aTuObFdi-1644324625543)] 这时候再输入ssh命令就可以直接登录对方主机了
[外链图片转存中…(img-gZOLb2NW-1644324625543)] 原理: 5.7. 主机名与Host校验
如果是第一次建立连接,需要输入yes
在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
[外链图片转存中…(img-U8uHGCvR-1644324625544)] 如果以前收录到known_hosts中,直接输入密码即可
不需要输入yes的解决方法:
修改/etc/ssh/ssh_config 文件的配置,以后则不会再出现此问题在原本的最后一行之后另起一行添加:
StrictHostKeyChecking no UserKnownHostsFile /dev/null6. 日期与时间 6.1. 时间命令
date
查看当前系统时间 cal查看日历
cal 2022 修改时间
date -s 11:11:11date -s 2019-11-11date -s ‘2019-11-11 11:11:11’ 6.2. 日期自动同步
自动同步时间
yum install ntp -yntpdate cn.ntp.org.cn
本地搭建NTP服务
内网中使用一台主机作为时间同步的服务器,其他主机使用这台服务器进行时间同步即可
开启本地NTP服务
service ntpd start客户端同步时间
ntpdate 192.168.222.100 7. 用户-组-权限 7.1. 用户
新增用户
useradd luckyboy会创建同名的组和家目录
家目录~:/home下同用户名的目录,eg——/home/luckyboy 设置密码
passwd luckyboy输入密码 删除用户
userdel -r luckyboy级联删除家目录和组 修改用户信息
usermod -l luckyss luckyls 修改用户名
家目录和组名称是不会被修改的 usermod -L luckyss 锁定用户名usermod -U luckyss 解锁用户名 常用文件
cat /etc/shadow
用户名和密码 cat /etc/passwd
用户名,编号,组编号,家目录,命令,目录6.5系统0-499 普通 500+7.6系统0-999 普通 1000+ 切换用户
su luckyboy 7.2. 组
创建组
groupadd lucky 删除组
groupdel lucky 修改组名字
groupmod -n school lucky 查看用户对应的组
groupsgroups schoolboy
当我们创建用户的时候,会默认创建一个同名的主组 修改用户的组
usermod -g lucky schoolboy(主组)usermod -G lucky schoolls(附属组) 7.3. 权限
查看文件的权限
三组权限,每组3个字母
r:读取权限 readw:写入权限 writex:执行权限 execute-:没有权限 root:所属用户(属主)root:所属的组(属组) 权限的UGO模型
三组权限(user用户, group组, other其他)属主的权限:属组的权限:其他的权限所以说:将来修改文件的权限,可以从 rwx 和UGO两个方面进行修改 修改文件的权限
修改文件所属 change owner
chown n1 /var/lucky1chown n1:m1 /var/lucky2修改文件夹时,让子目录迭代修改
chown -R n1:m1 school chgrp m2 lucky3
当用户的组被修改之后,需要重新登录才能获取新组的权限 修改文件的rwx change
chmod o+w lucky4 #o其他用户+加上w写入权限chmod ug+rw lucky4 #ug所属用户和所属组+加上rw读取和写入权限chmod ugo-rw lucky4 #ugo所属用户、所属组和其他用户+减去rw读取和写入权限(权限 rwx 分别对应数字 4 2 1。5=4+0+1 r-x)
chmod 664 lucky4 ——>(rw-rw-r–)
[外链图片转存中…(img-fIsaKkHO-1644324625544)]
8. 管道与重定向 8.1. 管道将前面命令的结果作为参数传递给后面的命令eg:head -10 profile | tail -1 #查看第十行grep
强大的文本搜索工具cat profile | grep ifls / | grep ^t 8.2. 重定向
改变数据输出的位置、方向0 in 1 out 2 err
ls / 1> luckyls / > lucky #1为正确输出,可以省略不写ls abcd 2>lucky #2为错误输出,比如错误的路径,不可省略 >:替换;>>:追加
ls / 1>> luckyls / 1> lucky 结合使用
ls /etc /abc > lucky 2>&1ls /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 CMDUID:所属用户编号PID:当前进程编号PPID:当前进程编号的父进程编号
查找某一进程
eg: ping www.baidu.com >> baidu ps -ef | grep baidu
ps -aux 查看进程的所有信息
包括CPU使用率:%CPU%包括内存使用率:%MEM%
ps -aux --sort-pcpu 排序
top
当前服务器内存使用率情况
Linux中所有进程都被实际化成文件
cd /proc
9.2. 后台进程只需要在命令的后面添加一个 & 符号
ping www.baidu.com >> baidu & jobs -l
可以查看当前的后台进程但是只有当前用户界面可以获取到 nohup 可以防止后台进程被挂起
nohup ping www.baidu.com >> baidu 2>&1 & 9.3. 杀死进程
关闭一个进程:kill -9 进程编号 10. Linux的软件安装 10.1. 环境变量
当我们执行一个命令的时候,默认从当前路径开始查找如果当前路径找不到对应的命令文件,从环境变量$PATH查找
echo $PATH:打印当前的系统变量 $PATH的配置文件在 /etc/profileWindows路径与路径之间用 ; (分号)连接Linux路径与路径之间用 : (冒号)连接Linux每次修改完成之后,需要重新加载文件 source /etc/profile系统环境变量文件:cd /etc/profile用户环境变量文件:ll -a ——> /root/.bash_profile 10.2. 软件安装
解压就可以使用使用安装包安装(Windows—exe,Linux—rpm)
自己下载安装包使用统一的软件帮助我们安装 通过源码安装 10.3. RPM安装
RedHat Package Manager,它属于红帽的一种包管理方式
Debin的可执行文件后缀名 deb
通过RPM命令安装软件
rpm -ivh xxx.rpm
可以查询软件
rpm -qa:查询所有安装的软件查询jdk的安装:rpm -qa | grep jdk
卸载
rpm -e 文件名
例如卸载jdk:首先查找jdk安装后对应的文件名:rpm -qa | grep jdk ——> jdk-17-17.0.2-ga.x86_64然后就可卸载了:rpm -e jdk-17-17.0.2-ga.x86_64
需要手动配置 Java 的环境变量
find / -name java ''' /etc/alternatives/java /etc/pki/ca-trust/extracted/java /etc/pki/java /var/lib/alternatives/java /usr/bin/java /usr/java /usr/java/jdk-17.0.2/bin/java ''' cd /usr/java ll ''' total 0 lrwxrwxrwx 1 root root 16 Feb 8 11:14 default -> /usr/java/latest drwxr-xr-x 10 root root 149 Feb 8 11:14 jdk-17.0.2 lrwxrwxrwx 1 root root 20 Feb 8 11:14 latest -> /usr/java/jdk-17.0.2 ''' cd jdk-17.0.2 #ll后发现有bin、conf等目录,说明jdk就是安装在这里了 vim /etc/profile export JAVA_HOME=/usr/java/jdk-17.0.2 export PATH=$JAVA_HOME/bin:$PATH #最后重新加载配置文件即可: source /etc/profile10.4. 压缩包解压安装
解压文件
tar -zxvf apache-tomcat-8.5.75.tar.gz
cd /opt/apache-tomcat-8.5.75/ cd ./bin/ ./startup.sh #开启tomcat ps -ef | grep tomcat #查看tomcat进程信息 ''' root 13607 1 14 13:23 pts/0 00:00:03 /usr/java/jdk-17.0.2/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.5.75/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/apache-tomcat-8.5.75/bin/bootstrap.jar:/opt/apache-tomcat-8.5.75/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-8.5.75 -Dcatalina.home=/opt/apache-tomcat-8.5.75 -Djava.io.tmpdir=/opt/apache-tomcat-8.5.75/temp org.apache.catalina.startup.Bootstrap start root 13662 7051 0 13:24 pts/0 00:00:00 grep --color=auto tomcat ''' ./shutdown.sh ##关闭tomcat
[外链图片转存中…(img-n4I2Pfrx-1644324625545)]
修改网页显示的页面内容:vim /opt/apache-tomcat-8.5.75/webapps/ROOT/index.jsp
10.5. yum安装 10.5.1. yum的作用可以帮我们管理RPM包可以帮我们安装软件如果软件有其他依赖,会帮我们安装依赖后再安装软件类似于Maven 10.5.2. yum命令
search 查询命令或者软件
yum search ifconfig ''' Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.dgut.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com ========= Matched: ifconfig ========== net-tools.x86_64 : Basic networking tools ''' yum install net-tools -y ifconfig
info
查看包的信息eg:yum info net-tools
list / list jdk
查询安装的rpm包,或者只查询某一周yum list:查询所有安装的jdk包yum list | grep jdk 10.5.3. 更换yum源
Linux的yum进行软件安装时,默认从本机IP地址就近寻找服务器进行下载,缺点是有的服务器不够稳定,因此以下将yum源直接长期更换为阿里云,以后下载资源就统一从阿里云进行下载。
①首先安装 wget
yum install wget -y
②将系统原始配置文件失效
mv /etc/yum.repos.d/CentOS-base.repo /etc/yum.repos.d/CentOS-base.repo.backup原始配置文件:
[root@CentOS7201810 etc]# cd /etc/yum.repos.d/
[root@CentOS7201810 yum.repos.d]# ll
total 32
-rw-r–r--. 1 root root 1664 Nov 23 2018 CentOS-base.repo
-rw-r–r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r–r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r–r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r–r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r–r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r–r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo
③使用 wget 获取阿里 yum 源配置文件
wget -O /etc/yum.repos.d/CentOS-base.repo http://mirrors.aliyun.com/repo/Centos-6.repowget -O /etc/yum.repos.d/CentOS-base.repo http://mirrors.aliyun.com/repo/Centos-7.repo这里一定要主要前面的CentOS中OS大写,后面的Centos中os是小写的!!!
④清空以前 yum 源的缓存
yum clean all
⑤获取阿里云的缓存
yum makecache如果获取阿里云缓存中有出现失败的情况,则重复 ④⑤ 步骤即可 10.6. 安装MySQL数据库
MySQL的下载地址
https://downloads.mysql.com/archives/community/
MySQL安装
安装部分截图[外链图片转存中…(img-FGuAQwBY-1644324625546)]更改密码部分截图[外链图片转存中…(img-dEe4NKEQ-1644324625546)]
#---------安装MySQL依赖【perl net-tools】 yum install perl net-tools -y #---------卸载mariadb rpm -qa | grep mariadb '''根据上一条语句查找到的文件进行卸载''' rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 #---------安装MySQL tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm #---------启动MySQL systemctl start mysqld '''systemctl status mysqld 查看MySQL的运行状态''' #---------查找密码并登录MySQL cat /var/log/mysqld.log | grep password mysql -u root -p #---------修改MySQL密码(8.0版本输入命令) set global validate_password.policy=low; set global validate_password.length=6; #更改加密方式 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #更新用户密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; #刷新权限 FLUSH PRIVILEGES; ''' #---------修改MySQL密码(5.7版本输入命令) set global validate_password_policy=low; set global validate_password_length=6; alter user root@localhost identified by '123456'; ''' #---------修改MySQL链接地址(因为这里MySQL只能默认本地登录,修改为其他主机也能登录) use mysql; update user set host='%' where user = 'root'; #'%'待变任意一个路径 commit; exit; systemctl restart mysqld #---------使用Nacicat链接MySQL
[外链图片转存中…(img-S9T2J2LM-1644324625547)]
关闭MySQL服务:systemctl stop mysqld 11. Linux的三剑客 11.1. 普通剑客
cut
用指定的规则来切分文本cut -d’:’ -f1,2,3 passwd | grep school sort
sort lucky
对文本中的行进行排序 sort -t’ ’ -k2 lucky
对每一行的数据进行切分,按照第二列进行排序 sort -t’ ’ -k2 -r lucky
逆序 sort -t’ ’ -k2 -n lucky
按照数值大小进行排序,如果有字母,字母在前 wc
统计单词的数量wc lucky4 15 79 lucky
-l line-w word-c char 11.2. 剑客1号:grep
可以对文本进行搜索同时搜索多个文件
从文档中查询指定的数据grep adm passwdgrep school passwd lucky 显示匹配的行号
grep -n school passwd 显示不匹配的忽略大小写
grep -nvi school passwd --color=auto 使用正则表达式匹配
grep -E “[1-9]+” passwd --color=auto 11.3. 剑客2号:sed
sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器sed软件从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行……一次一行的设计使得sed软件性能很高vi命令打开文件是一次性将文件加载到内存了解即可
https://www.cnblogs.com/chensiqiqi/p/6382080.html 行的选择模式
10 第十行m,n -->第m行到第n行 [m,n]m,+n -->第一行到第四行 [m,m+n]m~n -->从m行开始,依次累加nm,$ -->从m开始到最后一行/school/ -->匹配到school的行/u1/,/u4/ -->从匹配u1到匹配u4 增
sed ‘2a luckyisgood’ passwdsed ‘2i luckyisgood’ passwd
打印到控制台 sed -i ‘2a luckyisgood’ passwd
直接修改到文件 删
sed ‘3,10d’ passwd 改
整行替换
sed ‘3,20c hahaha’ passwdsed ‘3-1c hehehe’ passwd 字符替换
sed ‘1,5s/root/lucky/g’ passwdsed ‘1,5s#/#-#g’ passwd 11.4. 剑客3号:awk
它不是一个剑客,它是一门语言
了解即可
https://www.cnblogs.com/chensiqiqi/p/6481647.html
模式与动作
- awk -F ":" 'NR>=2&&NR<=6' /etc/passwd
- awk -F ":" '{print NR,$1}' /etc/passwd
- awk -F ":" 'NR>=2&&NR<=6 {print NR,$1}' /etc/passwd
- awk -F ":" 'NR==1{print NR,$1}NR==2{print NR,$NF}' /etc/passwd



