Linux

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 124 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}'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值