Linux学习笔记
1、计算机硬件体系
1.1冯诺依体系
由运算器、控制器、存储器、输入设备和输出设备五部门组成。
顺序执行程序
计算机处理数据和指令一律用二进制表示
1.2硬件组成
存储器
随机存储内存RAM,内存,逻辑IO
只读内存ROM,硬盘,物理IO
1.3硬盘分类
硬盘是随机读取的,不是顺序读取,否则会浪费效率
机械硬盘(HHD):
硬盘的转速限制着读写速度,7200转/min≈100-200M/s
硬盘盘面是凹凸不平的,凸起是被磁化代表1,凹陷是没有被磁化代表0,以二进制存储数据信息
PtoP协议损坏硬盘
机械硬盘盘面由 划线的磁道、磁道分割的扇区,扇区组成的扇面,扇面组成的簇
存储实际大小大于占用空间的原因
磁盘存储数据是按照扇区进行分化的,而扇区的大小是固定的。举例假设一个扇区可以存4kb数据,但是实际存储数据有9.27kb,那么磁盘会划分三个扇区给该数据,这就导致第三个扇区的数据没有存满该扇区,但是仍然占据该扇区,所以导致实际数据大小小于占用空间
固态硬盘(SSD):
闪存颗粒(固态电子存储颗粒)
顺序读取效率:内存>机械硬盘>固态硬盘
随机读取效率:固态>机械>内存
2、网络
子网掩码分离主机地址和网络地址(与IP做与运算)
IP=网络地址+主机地址
192.168.123.100=1100 0000. 1010 1000.0111 1011.0110 0100
255.255.255.0 =1111 1111.1111 1111.1111 1111.0000 0000
与运算后结果1100 0000.1010 1000.0111 1011.0000 0000 = 192.168.123.0(网络地址)
**网关:**负责总体网络数据发送关口发送数据到上级网络,负责转发消息,没有网关,消息收发送无效
域名:windows 存储位置C:\Windows\System32\drivers\etc\hosts
我们可通过修改这个文件来让域名跑向其他网址,也就是域名劫持
当前百度ip为110.242.68.3,知乎ip为113.1.0.71,
修改host,这样访问www.zhihu.com就会变成访问百度,ping检测
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSwfs459-1643371839044)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220122134443020.png)]
2.1连接模式
主机模式(host-onboy)
某些特殊网络环境调试要求真实环境和虚拟环境隔离开,可以采用此模式。
此模式下所有虚拟主机可以相互通信,但是与实际环境是分隔开的
此模式下虚拟环境的TCP/IP配置信息是由虚拟机虚拟网络dhcp动态分配
桥接模式(bridged)
虚拟机的操作系统是局域网内独立主机,可以访问内网任何机器
桥接模式下虚拟机和真实环境宿主主机是模拟为一条网线上的,也就是模拟真实主机
网络地址转换模式(NAT)
nat模式就是虚拟系统借助nat功能,通过宿主机器的网络访问公网
nat下虚拟机TCP/IP配置信息是由虚拟网络的dchp分配
此状态下虚拟系统不能与本局域网内的其它真实主机通讯
3、版本
redhat(Centos)可执行文件后缀rpm
debian(ubuntu)可执行文件后缀名db
4、Linux_centos7.6虚拟机安装
注意hre-v和虚拟机不能同时运行,需要使用vm15.5.6以上版本才能支持虚拟机和hre-v
虚拟机无法使用。删除虚拟机镜像文件里的lck文件
4.1首先配置网络
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#进入网卡信息配置页面
信息配置如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4O7GsQd5-1643371839046)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220122215206111.png)]
删除uuid款,将onboot=yes,网关gateway为虚拟网络编辑器NAT模式下的nat设置指定的网关,BOOTPROTO=static设置为静态网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-97zocFCu-1643371839046)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220122215426774.png)]
设置完成后重启网卡服务
systemctl restart network.service
4.2其次配置防火墙
端口需要被访问就需要关闭防火墙
systemctl stop firewalld #本次开机关闭防火墙
systemctl disable firewalld #服务器重启后防火墙禁用
4.3安装软件的限制
vi /etc/sysconfig/selinux #进入文件修改
设置SELINUX=disabled
4.4虚拟机远程连接
putty远程连接
xshell7连接
5、Linux基本命令
5.1帮助文档命令
help
man
命令后面是单词用–,简写的用-
5.2常用命令
whereis ping #寻找命令位置,在哪
#ping:/usr/bin/ping /usr/share/man/man8/ping.8.gz
file /usr/bin/cd #查看文件的类型
#/usr/bin/cd: POSIX shell scripts,ASCII text executable
who#查看当前登录信息
#root tty1 2022-01-23 11:24
#root pts/0 2022-01-23 11:25(192.168.188.1)
whoami#查看当前登录用户
#root
pwd#查看当前所在文件位置
#/root
uname -a#查看内核信息
#Linux Centos7.6 3.10.0-957.el7.x86_64 #1 SMP THu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 GNU/Linux
echo hello #打印语句
hello
clear#清屏
reboot #重启
5.3特殊字符
.#当前目录
..#上一级目录
$ #说明这是一个变量,shell命令
hello=Prince
echo $name
#Prince
*#通配符
ll -a /etc/*a #替换任意字符
#命令后面是单词用--,简写的用-
6、Linux系统
6.1文件系统
linux的一切都是文件构成包括线程。Linux访问文件不参考windows盘符方式访问文件。
linux文件系统是树状结构模型,只有一个根节点/,根节点下支持多个子节点,同理子节点。
linux支持磁盘空间挂载扩容,防止空间溢出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hg4HqeQp-1643371839046)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220123153620129.png)]
假设一共/下只有64gb空间,/usr下也需要存储2t东西,这时我们需要新安装一个2t磁盘,若是windows就需要重新进行磁盘分配才能使用,而linux可以通过在upload下重新挂载那个2t的硬盘,这样2t空间就不会占用/下的64g空间而是占用挂载的2t空间
mount /dev/disk1 /usr/download #download文件挂载disk1磁盘的1t空间
disk1 1T
mount /dev/disk2 /usr/upload
disk2 2t
mount /dev/disk3 /usr/upload/video
disk 1p
linux查找文件方式
1、相对路径:以当前路径为基准点查找资源,vi …/etc/sysconfig/network-scripts/ifcfg-ens33
2、绝对路径:以根目录为节点查找资源,vi /etc/sysconfig/network-scripts/ifcfg-ens33
3、如果是配置文件查找尽量写绝对路径,也就是根节点方式
6.1.1linux根目录节点目录详解
bin目录为可执行文件位置:命令脚本
boot目录引导分区(linux启动时引导程序)
dev设备信息
etc目录,系统配置文件目录
home目录,普通用户目录,硬盘
lib目录,可调用类库
media目录,媒体目录
mnt目录,硬盘挂载目录
opt目录,软件安装位置()
proc目录,进程目录
root目录,超级管理员用户目录
sbin目录,超级管理员可执行命令目录
srv目录,系统服务启动后需要提取的数据
sys目录,系统内核
tmp目录,临时数据(变量等)目录,重启后数据被清楚
var目录,临时数据(变量等)目录,重启后数据不会清楚,存日志信息不错
usr目录,用户共享区域
进程查看
ps -ef
echo $$ #查看当前进程编号
6.1.2文件操作命令
pwd #查看当前目录
mkdir aa#创建aa文件夹
mkdir -p /home/rince/aa/bb/cc #-p直接创建没有的文件夹
mkdir -p /home/rince/a3{_a1,_a2,_a3} #在/home/rince下创建a3_a1,a3_a2,a3_a3三个文件夹,{}表示并列关系,所有命令都能使用
cp /etc/yum.conf /home/rince #拷贝命令,复制yum.conf 到/home/rince,只能拷贝文件不能拷贝文件夹
cp -r /etc/yum.repos.d /home/rince #可以拷贝问价夹下所有内容 -r
#移动文件命令
mv /home/rince/aa* /home/prince #拷贝a开头的所有文件夹到prince
#删除
rm -rf a #文件夹不为空就能使用 -rf强制删除
rmdir aa #文件夹内部为空才能使用
rmdir /home/rince/aaa/a3{a1,a2,a3}
rm /home/rince/yum.conf #删除文件,会跳出确认删除输入y同意,n不同意
rm -rf /home/rince#强制删除文件夹
rm /home/rince
#touch创建文件
touch /home/aa{a1,a2}.txt
#stat 文件状态信息
stat /jingye
#Access 使用文件最近使用时间 Modify改变数据内容时间 change修改原数据信息时间
stat jingye#stat+已存在文件会将文件的access、modify、change时间同步
6.1.2.1文件软硬链接
#软链接
touch /home/rince/lntest
vi /home/rince/lntest #修改内容进去
ln -s lntest lln#创建文件lln同时链接到lntest
cat lntest
cat lln #可以看到lln内容随着lntest改变而进行变化
#硬链接
ln lntest hmtest
#可以通过ll看到lntest指向lln,但是硬链接,没有指向显示
#若此时删除lntest,软连接的lln会失效,但是硬链接仍旧存在
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qgkCuACt-1643371839047)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220123210901739.png)]
硬链接的话是文件执行存储位置,让存储位置的link变为2,所以当删除源文件后links变为了1,存储空间的link不为0仍旧有效,所以硬链接仍旧指向文件存储空间所以可以显示内容。
软连接的文件是指向源文件的而不指向存储空间,所以当源文件删除后,无论存储空间内容是否删除,都不会拿到数据
6.1.2.2文件操作
cat yyds#正序展示文件
tac yyds#倒叙展示文件
cat >person.txt<<KOF#使用一条cat命令创建多行文本包含上面内容,以KOF为结束结束文本创建
#以上两个会占据大量空间,也就是一次性全部加载出来,不推荐
more yyds #一行一行,回车展示;一页一页,空格展示;b 后退;q 退出; 查看文件
less yyds #作用与more基本一致,多了很多命令 h查看
#查看文件某几行
head -10 /etc/profile #查看文件的前10行
tail -10 /etc/profile #查看文件后10行
head -10 /etc/profile|tail -1 #查看文件的第10行
head -10 /etc/profile|tail -3#产看文件的第10、9、8行
#xshell多窗口
ping www.baidu.com>> /home/rince/pingText
tail -f /home/rince/pingText
#实时显示文件内容,监控的是文件的inode,也就是存储位置,在此存储空间的links为1时若删除原文件pingText则对应inode也会被删除。实时显示会报错,此时重建一个pingText文件时,仍旧报错,因为新创建的pingText的inode已经发生改变,而还在运行的tail -f找不到原本的inode了。
tail -F /home/rince/pingText
#实时显示文件内容,监控的是文件本身,也就是pingText,此时删除源文件后在新创建一个同名文件 tail —F仍旧能正常显示,因为文件名字没变
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ymuo8Erv-1643371839047)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220123214143611.png)]
快速寻找文件find
find / -name hadoop #根目录找Hadoop文件
find /etc -name hadoop #在etc下找hadoop文件
#都会翻找子目录
vi编辑器
vi +8 profile#定位最后一行
vi + profile #定位最后一行
vi +/if profile #找if,n找下一个
vi三种模式:编辑模式、输入模式、末行(命令行)模式
vi编辑模式下 :set nu进入命令行模式
编辑模式
a追加,i插入,I行首,A行尾,o下一行 O上一行
esc回到编辑模式
编辑模式:进入末行模式
shift zz #保存并推出
末行模式:set nu
#是依据光标位置来确定
#dd删除一行 3dd删除三行
#yy复制一行
#dw删除一个单词
#3dw删除三个单词
#p粘贴
#yw 复制一个单词,3yw复制三个单词
#u撤销
#zz 保存退出
#不要碰
ctrl+s锁屏 ctrl+q解锁
编辑模式
:wq 保存退出
:q! 强制退出
:set nu 行号
:set nonu 取消行号
:/libai #查找libai字符
:s/libai/jl/g #更换当前行内所有libai为jl
:s/libai/jl #更换光标后第一个libai为jl
:g/libai/s//jl/g #文件内所有libai换成jl
如果使用vim修改文件后没有正确退出,linux会自动生成一个以该文件名的.swp文件存储修改内容,再次vi 文件后会提示你,所以必须删除文件名.swp才会不提示
6.1.3计算机之间传输文件
windows和linux
yum install lrzsz -y
rz #xshell直接打开上传即可
sz profile#下载profile到windows
linux和linux
#本机地址192.168.188.108
cd /etc
scp bashsrc root@192.168.188.109:/home/rince #向109传输文件
scp root@192.168.188.109:/home/rince/bashsrc /home/prince
#去109拿取bashsrc到本机prince位置上
6.1.4文件大小df/du
df -h#查看文件分区
du查看指定文件大小
du -h --max-depth=1 /etc #迭代深度为1,也就是对多到etc的子节点为止所有文件大小展示
6.1.5文件解压缩
tar
#tar解压
tar -zxvf apache-tomcat-8.5.47.tar.gz
#zx解压,v过程,f文件
#tar压缩
tar -zcf tomcat.tar.gz apache-tomcat-8.5.47
#tomcat.tar.gz压缩后名字,apache-tomcat-8.5.47压缩的文件夹
tar -zxf tomcat.tar.gz -C /opt/
zip
yum install zip#安装
zip -r tomcat.zip apache-tomcat-7.0.61 #压缩为tomcat.zip
unzip tomcat.zip
6.2网络系统
6.2.1普通网络命令
**安装网络命令:**yum install net-tools -y
主机名称
#修改hostname
hostname school #临时修改,重启后失效
vi /etc/hostname#修改hostname文件永久改变
dns解析
#windows c:\Windows\System32\drivers\etc\hosts
#linux cat /etc/hosts
vi /etc/hosts
#增加192.168.188.108 node
#可以通过ping node直接访问该ip
**环回地址:**自己访问本机也需要ip,这个地址为环回地址
核心路由表:存储ip与子网掩码与运算后的网络地址指向
netstat #查看网络状态
netstat -anp #查看端口使用情况
netstat -r #核心路由表,存储ip与子网掩码与运算后的网络地址指向
telnet与ping
ping #查看ip地址是否通
ping 192.168.188.109
telnet #查看某一个端口是否同
telnet 192.168.188.109 22
curl网络地址资源定位
curl baidu.com #
curl -x get http://www.baidu.com
6.2.2防火墙
centos7使用firewalld代替iptables命令
systemctl status firewalld.service #查看防火墙状态
systemctl stop firewalld.service #本次开机关闭防火墙
systemctl disable firewalld.service#永久关闭防火墙
firewall-cmd --state
#防火墙开启端口正确操作
#添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload#重新载入
firewall-cmd --zone=public -- quert-port=80/tcp#查看端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent#删除端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Hdci2vE-1643371839047)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220124174410559.png)]
6.2.3机密算法
不可逆加密算法
加密后无法计算出原始数据
hash算法和md5算法
md5用于文件校验
对称加密算法
先加密在解密,使用相同的密钥对数据进行加解密。
登录信息用户名和密码加密、传输加密、指令加密
DES、3DES、RC4、Blowflsh
原文、密钥(私钥),密钥不对数据加解密失败
非对称加密算法
公钥和私钥,加密密钥和解密密钥不同,公钥密钥和私有密钥是一对的
加解密速度慢、计算量大
算法:RSA、DSA
6.2.4主机间相互免密钥(非对称加密,公私钥)
#通过ssh命令免密钥连接到其他主机
#生成密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
#生成私钥id_rsa、公钥id_rsa.pub
#发送公钥钥给对方
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.188.109
#去对面192.168.188.109查看公钥是否发送成功
cat ~/.ssh/authorized_keys
#去对端查看发送过来的公钥信息
cat /root/.ssh/known_host
#对端拥有公钥后ssh链接时跳出 are you sure you want to continue connecting?
#是known_host内容被被写入,有两个解决方案
ssh-v -o GSSAPIAuthentication=no root@192.168.188.109
#修改ssh_config文件
vi /etc/ssh/ssh_config
#此文件最后添加
#StrictHostKeyChecking no
#UserKnownHostsFile /dev/null
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DYQIGeiR-1643371839047)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220124193945408.png)]
上面是发送数据流程,两次校验主要时怕数据发生改变
6.3linux的时间与日期
date #日期
date -s # 修改时间
date -s 2022-01-22
date -s'2022-01-24 11:11:11'
#
时间同步策略
防止因不同服务器时间不同步导致的服务无法执行
#时间同步策略ntp
yum install ntp -y
ntpdate cn.ntp.org.cn#同步远程服务器的时间
#ntp时间配置文件
vi /etc/ntp.conf
#本地搭建ntp服务器
service ntpd start
vi /etc/ntp.conf
#ntp.conf
#权限控制
restrict default kod nomodify notrap nopeer noquery #拒绝v4用户
restrict -6 default kod nomodify notrap nopeer noquery #拒绝v6用户
#打开一部分ip允许访问
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
6.4用户-组-权限
6.4.1用户
添加用户(建议root下)
对于新用户会创建同名的组和家目录(在home下)
useradd libai #home在 /home/libai
pwd libai
删除用户(建议root下)
userdel -r libai
修改用户信息
usermod -l libai baijuyi#用户libai更改为baijuyi
usermod -L libai#锁定libai用户
usermod -U libai#解锁libai用户
切换用户
su baijuyi
配置文件
cat /etc/shadow
#存储所有用户名密码,包括root
cat /etc/passwd
#用户名、编号、组编号、家目录位置
7.6 0-999为系统用户 1000+为普通用户
6.5 0-499系统用户 500+普通用户
6.4.2用户组
groupadd tang #创建组
groupdel tang#删除组
groups libai#查看用户对应组
groupmod -n tang song#修改组名
usermod -g tang libai #用户libai添加到tang组(主组)
usermod -G song libai#用户libai添加附属组song(附属)
groups libai
#libai: tang song
用户组权限设置
权限展示,去掉前面的d是三个一组
第一组是所属用户权限,第二组是所属用户组的权限 第三组是其他人(不是该用户也不属于此组)的权限
#第一组是所属用户权限,第二组是所属用户组的权限 第三组是其他人(不是该用户也不属于此组)的权限
r-x#读和执行权限
rw-#读写权限
r--#只读权限
---#没有权限
drw-r--rwx libai song 131 1月 24 12:24:56 kkkk.txt
#libai用户有读写kkkk.txt权限,song用户组对于kkkk.txt只有读权限,其他用户有读写执行的三个权限
6.4.3用户权限修改
Linux权限是UGO模型,即用户本人权限+用户组权限+其他人的权限。
修改文件权限要从rwx和ugo入手
修改文件权限
对于没权限用户要如何修改文件,以下两个思路
1、更换文件的ugo权限
2、更改文件的所属组或者所属用户
chown libai /var/lucky
#将lucky文件所属用户更改为libai
chown :tang /var/lucky #文件所属组更换为tang
chmod o+w /var/lucky
#为lucky文件的其他人权限加上w写权限
chmod go+w /var/lucky #用户组和其他人添加w写权限
6.5管道与重定向
6.5.1管道
进程之间进行信息交互的手段,也就是把前面计算结果传递给后面
cat profile|grep if
目前区分为两种:匿名管道和命名管道
匿名管道指不带名字标识的管道,用于父进程与其子进程之间的通信
命名管道则是带有名字标识符的管道,支持任意两个进程之间的通信。
命名管道 Linux命令?管道符号-grep\head\tail\wc\ls?
ls -l|wc、grep apple.txt| grep configure、管道命令符|
6.5.2重定向
更改数据显示位置
改变数据输出的位置,方向-
0 in 1 out 2 err #1标准输出,2是错误输出
o ls ! 1> lucky标准输出。ls / > lucky标准输出o ls abcd 2:lucky销误输出>替换>>追加
。 ls ! 1>> luckyo ls ! 1> lucky·结合使用
ls !etc. i abc > lucky 2>&1o ls !etc iabc >> lucky 2>&1·信息黑洞
ls fetc iabc ;> /dev/null 2>&1
ll /opt > test #输送显示信息到test 单箭头覆盖双箭头追加
ll /root >> test
ll /opt 2> test02 #错误信息覆盖到test02
ll /etc/as >> test02 2>&1 #无论错误正确信息都追加到test02
6.6LINUX进程信息
6.6.1进程信息
linux里所有进程都实例化为文件
前台进程
ps -ef #进程ID PID;开启当前进程的父进程ID PPID
#进程ID PID;开启当前进程的父进程ID PPID
ps -aux #所有信息
ps -aux --sort -pcpu #所有信息排序
top #系统内存使用情况
#干掉进程
kill -9 8605 #加上进程编号
后台进程
ping www.baidu.com >> /home/rince/baidu & #变成后台进程
nohup ping www.baidu.com >> /home/rince/baidu 2>&1 &
#nohub防止后台进程关闭,正确错误信息都输入到baidu里,才不会报错
jobs -l #查看后台进程信息 jobs简略信息
6.7 Linux软件安装
6.7.1环境变量
执行命令时会从当前的目录找,如果找不到会去环境变量$path查找
$PATH #查看环境变量文件位置
Linux每次修改完成后都需要重新加载环境变量文件:source /etc/profile
cat /etc/profile #linux系统环境变量文件
#修改内容就添加到最后即可
#用户环境变量,设置后只对用户管用
cat /root/.bash_profile
6.7.2 rpm软件安装与卸载
java linux环境安装rpm
rpm -ivh jdk-7u67-linux-x64.rpm #固定rpm -ivh +文件名
#检查安装是否成功要记得查找软件的真实名字,不是真实名字无法判断是否成功
rpm -qa #显示已安装软件的所有信息,显示软件安装后的真实名字
rpm -qa | grep jdk
rpm -q jdk
find / -name java
whereis java #查找java位置
#本次测试安装的是jdk环境,所以需要配置环境变量
vi /etc/profile
#后缀添加
export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$JAVA_HOME/bin:$PATH
#修改完成后重新加载配置文件
source /etc/profile
#卸载软件,必须使用软件的真实名字
rpm -q jdk-17-17.0.2-ga.x86_64
tomcat 压缩包安装
tar -zxvf apache-tomcat-8.5.75.tar.gz#解压缩文件
mv apache-tomcat-8.5.75 /opt #将解压后文件夹移动到opt软件安装位置
ll
cd /opt/apache-tomcat-8.5.75/bin #进入tomcat配置使用界面
./ startup.sh#启动tomcat
cat ../webapps/ROOT/index.jsp #tomcat主页面
安装mysql,这里提供一个最快方案
#1、安装mysql依赖环境
yum install perl net-tools -y
#卸载mariadb
rpm -qa| grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -qa| grep mariadb
#2、安装mysql,通过其他方式传递mysql压缩包过来,建议按照顺序安装,否则可能安装失败
tar -xvf mysq7-8.o.18-1.e17.x86__64. r pm-bund1e.tar
#必须按照顺序安装
# CentOS安装rpm安装MySQL时爆出警告: 警告:MySQL-server-5.5.46-1.linux2.6.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY 原因:这是由于yum安装了旧版本的GPG keys造成的 解决办法:后面加上 --force --nodeps 如: rpm -ivh MySQL-server-5.5.46-1.linux2.6.x86_64.rpm --force --nodeps 从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。
rpm -ivh mysq1-community-common-8.0.18-1.e17.x36_64.rpm # --force --nodeps 后缀报错后需要添加
rpm -ivh mysq7-community-1ibs-8.0.18-1.e17.xE6_64.rpm # --force --nodeps 后缀报错后需要添
rpm -ivh mysq7-community-client-8.0.18-1.e17.x86_64.rpm # --force --nodeps 后缀报错后需要添
rpm -ivh mysq7-community-server-8.0.18-1.e17.x86_64 .rpm # --force --nodeps 后缀报错后需要添
#3、启动软件,查看mysql安装状态
systemctl start mysqld
systemctl status mysqld
#4、mysql安装成功后初始密码查询
cat /var/log/mysqld.log | grep password
#进入mysql修改密码
mysql -u root -p
#5、修改密码
#5.1、----------修改Mysq1密码8.0版本输入命令:
#mysql安全性较强,新数据设置密码必须先按照默认规定设置一个密码然后才能修改variables里的密码属性规则 所以先执行一个设置新密码操作,然后查看variables修改规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aA@123456789';
show variables like '%validate%'#查看密码规则属性
set g1obal validate_password.po1icy=Low;
set global validate_password.1ength=6;
#更改密码
ALTER USER 'root'@'1ocalhost'IDENTIFIED BY '123456'
#更新用户密码加密
#ALTER USER 'root'@'localhost'IDENTIFIED wITH mysql_native_password BY '123456';
#刷新权限
FLUSH PRIVILEGES;
#5.2、一——-------修改Mysq1密码5.7版本输入命令:
set global validate_password_po1icy=Low;
set global validate_password_length=6;
alter user root@1ocalhost identified by '123456 ';
#6、修改mysql链接地址,mysql上面的密码只支持本机本地登录,所以需要我们开启远程登陆
use mysql; #使用mysql库
select host,user from user; #可以看到目前不同会话下可以访问数据库只有本地localhost,这里localhost可以改成ip,指定只有某一个远程主机能访问数据库
update user set host='%' where user = 'root';
commit;
exit;
#7、设定完成后重启mysql
systemctl restart mysqld;
#拿workbenach或者native远程连接试一下
6.7.3 yum安装
自动指定软件安装中的依赖关系,软件缺依赖就自动安装依赖
yum searcg ifconfig #搜索包所需要依赖
yum install net-tools #安装依赖
yum info net-tools #查看安装包的信息
yum list #查看安装包信息
yum list | grep jdk
更换yum的下载原
#下载wget软件
yum install wget -y
#进入yum配置文件
cd /etc/yum.repos.d
vi CentOS-Base.repo
#[base]
#name=Centos-sreleasever - Base
#mirrorlist=http://mirrorlist.centos.org/?#release=$releasever&arch=$basearch&repo=0s&infra=$infra#baseurl=http: / /mirror.centos.org/centos/$releasever/os/$basearch/
#gpgcheck=1
#gpgkey=file : / lletc/ pki/ rpm-gpg/RPM-GPG-KEY-Centos-7
#released updates
#[updates]
#name=Centos-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?#release=$releasever&arch=$basearch&repo=updates&infra=$infra#baseurl=http: / /mirror.centos.org/centos/$releasever/updates/sbasearch/
#gpgcheck=l
#gpgkey=file: i fetc/pki/ rpm-gpg/RPM-GPG-KEY-Cent0S-7
#additional packages that may be useful
#[extras]
#centos-Base.repo"44L,1664c
#此处更换阿里云下载源
vi Cent0s-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo letclyum.repos.d/Cent0S-Base.repo. backup #存一下原来镜像地址防止配置失败
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#是大写的o
yum clean all #清空以前的yum下载镜像缓存
yum makecache #重新创建yum,也就是刚才加入的文件
安装mysql
6.8 Linux处理文本常用命令
6.8.1 切分cut 、排序sort 、统计wc
cut
cp /etc/passwd /home/rince
cut -d ':' -f1,2,3,4,7 passwd | grep root
#切分文件passwd,选择文件中含有root的行以:切割,显示该行的1,2,3,4,7列
cut -d ':' -f1,2,5,7 passwd
#切分文件中所有行的1、2、5、7列展示
sort
sort passwd #排序passwd文件内容,默认按照首字母顺序
sort -t ':' -k3 passwd #每一行数据切分,按照第三列排序正序
#实际排列出来不是按照数字顺序排列的,字符串按顺序比较,按照我的理解是1001与2比,2补正成2000,2000>1001所以2的放后面。待定
#
sort -t ':' -k3 -r passwd#逆序排列
sprt -t ':' -k3 -n passwd#按照数值大小排列,字母排在数字前面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VMy1hdpH-1643371839048)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220128120154871.png)]
wc统计单词等
wc passwd
#返回:22 31 983 passwd
#依次是文件行数、单词数量、字符数量、被统计的文件名
#单词数量少是因为,判断是不是单词按照的是空格,前后有空格的算单词,以空格分割单词,没有的不算单词,所以实际统计单词数量会变少
wc -l passwd # 22
wc -w passwd#31
wc -c passwd #983
6.8.2 标配查找grep
ps -ef | grep ifconfig
ll | grep passwd
grep root /home/prince/passwd /etc/shadow#查找passwd和shawdow里的root信息
grep -n root /home/prince/passwd#显示行号
grep -nvi root passwd --color=auto
6.8.3 中配流编辑器sed
利用脚本处理文本文件,编辑文件,seq命令是操作,常用增删改查
Linux实战教学笔记12:linux三剑客之sed命令精讲 - 陈思齐 - 博客园 (cnblogs.com)
cat /etc/redhat-release #查看linux版本
uname -r
sed --version #查看seq version
sed [options] [sed-commands] [input-file]
#选项 sed命令 输入命令
# sed软件从文件或管道中读取一行、处理一行、输出一行;以此循环
#[options] 选项
-n #取消默认sed软件输出,与p连用
-e #一行命令执行多条语句
-f # 后接sed脚本文件名
-r #正则表达式
-i #直接修改文件内容(磁盘上),不输出到终端。不用i修改只是修改内存中数据,不会更改原本数据
#[sed-commands]sed命令
a 追加,在指定行后添加一行或多行文本*#5a
c 取代指定的行
d 删除指定的行*
D 删除模式空间的部分内容,直到遇到换行符\n结束操作,与多行模式相关
i 插入,在指定行前添加一行或多行文本*
h 把模式空间的内容复制到保持空间
H 把模式空间的内容追加到保持空间
g 把保持空间的内容复制到模式空间
G 把保持空间的内容追加到模式空间
x 交换模式空间和保持空间的内容打印不可见的字符
n 清空模式空间的内容并读入下一行
N 不清空模式空间,并读取下一行数据并追加到模式空间*
p 打印模式空间内容,通常p会与选项-n一起使用*(大写)打印模式空间的内容,直到遇到换行符\n结束操作
q 退出Sed从指定文件读取数据
s 取代, s#oldt#new#g==>这里g是s命令的替代标志,注意和g命令区分。*
w 另存,把模式空间的内容保存到文件中
y 根据对应位置转换字符
: label 定义一个标签
b label 执行该标签后面的命令
cat >person.txt<<KOF
#使用一条cat命令创建多行文本包含上面内容,以KOF为结束结束文本创建
# KOF表示终止输入
#单行增
sed '5a 106,dandan,CTO' /home/prince/person.txt
#在文件第五行后面添加内容 106,dandan,CTO
sed '2a 106,dandan,CTO' /home/prince/person.txt
#在文件第2行后面添加内容,文件显示在第三行
#多行增方式一 \n
sed '2a 106,dandan,CSO\n107,bingbing,CCO' /home/prince/persion.txt
#引号作用
sed '2a 106,dandan,CTO' /home/prince/person.txt
#单引号:所见即所得,将单引号内的内容原样输出,阻止所有字符的转义
#双引号:优先执行输出内容的命令然后输出内容
sed "6i $PATH" person.txt
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vr2u6yYh-1643371839048)(C:\Users\32793\AppData\Roaming\Typora\typora-user-images\image-20220128192913523.png)]
#seq删除 d
sed '3d' /home/prince/persion.txt #第三行被删除
sed '2,5d' /home/prince/persion.txt #2到5行内容删除
#使用正则表达式
#sed使用正则表达式会找到所有相关字段
sed '/zhangyang/d' /home/prince/persion.txt
$代表行尾
6.8.4 顶配awk
太多了自己查
awk常见操作整理(更新) - Peterer~王勇 - 博客园 (cnblogs.com)
(7条消息) awk常用操作_baidu_38981831的博客-CSDN博客
awk常见基本使用 - H&K - 博客园 (cnblogs.com)
ifconfig -a|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'|grep -v "127.0.0"|awk '{print $2}'
#获取本地ip
ifconfig -a|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'
#获取本地ip
ifconfig | grep broadcast| awk "NR==1" | awk -F" " '{print $2}'
106,dandan,CTO
sed ‘2a 106,dandan,CTO’ /home/prince/person.txt
#在文件第2行后面添加内容,文件显示在第三行
#多行增方式一 \n
sed ‘2a 106,dandan,CSO\n107,bingbing,CCO’ /home/prince/persion.txt
#引号作用
sed ‘2a 106,dandan,CTO’ /home/prince/person.txt
#单引号:所见即所得,将单引号内的内容原样输出,阻止所有字符的转义
#双引号:优先执行输出内容的命令然后输出内容
sed “6i $PATH” person.txt
[外链图片转存中...(img-vr2u6yYh-1643371839048)]
```shell
#seq删除 d
sed '3d' /home/prince/persion.txt #第三行被删除
sed '2,5d' /home/prince/persion.txt #2到5行内容删除
#使用正则表达式
#sed使用正则表达式会找到所有相关字段
sed '/zhangyang/d' /home/prince/persion.txt
$代表行尾
6.8.4 顶配awk
太多了自己查
awk常见操作整理(更新) - Peterer~王勇 - 博客园 (cnblogs.com)
(7条消息) awk常用操作_baidu_38981831的博客-CSDN博客
awk常见基本使用 - H&K - 博客园 (cnblogs.com)
ifconfig -a|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'|grep -v "127.0.0"|awk '{print $2}'
#获取本地ip
ifconfig -a|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'
#获取本地ip
ifconfig | grep broadcast| awk "NR==1" | awk -F" " '{print $2}'