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检测
![在这里插入图片描述](https://img-blog.csdnimg.cn/efdeac8644aa416b8363f11ed572fafe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
g)]
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
#进入网卡信息配置页面
信息配置如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/b231d0c2e40043a6855b64efb50b9a6c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_11,color_FFFFFF,t_70,g_se,x_16#pic_center)
删除uuid款,将onboot=yes,网关gateway为虚拟网络编辑器NAT模式下的nat设置指定的网关,BOOTPROTO=static设置为静态网络
![在这里插入图片描述](https://img-blog.csdnimg.cn/8238dbeafad242acbacfcb93aca3da43.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
设置完成后重启网卡服务
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常用命令
$命令提示符 root用户提示符是¥
whereis ping
file /usr/bin/cd
who
whoami
pwd
uname -a
echo hello
hello
clear
reboot
5.3特殊字符
.
..
$
hello=Prince
echo $name
echo "pay \$15.5"
echo "tom :\"what fuck?\""
*
ll -a /etc/*a
cd /etc/yum.repos.d |ls -l [Centos]*
"" 表示引用的是一个不可分割的整体
'' 引号内容当作字符串
awk 'BEGIN{system("date +'%Y%M%D%H'")}'
``反引号
echo "Now time: `date +'%Y%M%D'`"
echo "are you using this system users:`who | awk '{ARR[FNR]=$1;}END{printf "%s %s\n",ARR[1],ARR[2];}'`"
date=`date`
echo "host namesi :$date"
ls -l $(cat /etc/shells)
5.4正则表达式
![在这里插入图片描述](https://img-blog.csdnimg.cn/88a666ce908c4fc1a9b158a2586cbbff.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
/content/ 正则表达式规范
abc
bca
;;;;
cda
aacb
ccba
abcd
sjkl
qiwi
sjndaj
ka;a;
a;ld
dlkd
grep "a\{1\}" zj.txt
grep "\<aa" zj.txt 或则 grep "<aa" zj.txt
grep "a;." zj.txt
grep "[sj]" zj.txt
grep "a{1,2}b"
\<disc
disc/>
\<disc\>/
m\{5\}
m\{5,\}
m\{4,10\}
^$
6、Linux系统
6.1文件系统
linux的一切都是文件构成包括线程。Linux访问文件不参考windows盘符方式访问文件。
linux文件系统是树状结构模型,只有一个根节点/,根节点下支持多个子节点,同理子节点。
linux支持磁盘空间挂载扩容,防止空间溢出
![在这里插入图片描述](https://img-blog.csdnimg.cn/8d33fadf5f914b638ac60900667b74fa.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
假设一共/下只有64gb空间,/usr下也需要存储2t东西,这时我们需要新安装一个2t磁盘,若是windows就需要重新进行磁盘分配才能使用,而linux可以通过在upload下重新挂载那个2t的硬盘,这样2t空间就不会占用/下的64g空间而是占用挂载的2t空间
mount /dev/disk1 /usr/download
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
mkdir -p /home/rince/aa/bb/cc
mkdir -p /home/rince/a3{_a1,_a2,_a3}
cp /etc/yum.conf /home/rince
cp -r /etc/yum.repos.d /home/rince
mv /home/rince/aa* /home/prince
rm -rf a
rmdir aa
rmdir /home/rince/aaa/a3{a1,a2,a3}
rm /home/rince/yum.conf
rm -rf /home/rince
rm /home/rince
touch /home/aa{a1,a2}.txt
stat /jingye
stat jingye
6.1.2.1文件软硬链接
touch /home/rince/lntest
vi /home/rince/lntest
ln -s lntest lln
cat lntest
cat lln
ln lntest hmtest
![在这里插入图片描述](https://img-blog.csdnimg.cn/d24a6c80185f4c6883a864be1ce248cd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
硬链接的话是文件执行存储位置,让存储位置的link变为2,所以当删除源文件后links变为了1,存储空间的link不为0仍旧有效,所以硬链接仍旧指向文件存储空间所以可以显示内容。
软连接的文件是指向源文件的而不指向存储空间,所以当源文件删除后,无论存储空间内容是否删除,都不会拿到数据
6.1.2.2文件操作
cat yyds
tac yyds
cat >person.txt<<KOF
more yyds
less yyds
head -10 /etc/profile
tail -10 /etc/profile
head -10 /etc/profile|tail -1
head -10 /etc/profile|tail -3
ping www.baidu.com>> /home/rince/pingText
tail -f /home/rince/pingText
tail -F /home/rince/pingText
![在这里插入图片描述](https://img-blog.csdnimg.cn/4609dd4bb7b24622bde6192e2388add0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
快速寻找文件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
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
sz profile
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 -zxvf apache-tomcat-8.5.47.tar.gz
tar -zcf 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
unzip tomcat.zip
6.2网络系统
路由表
route -n
route add defaul gw 192.168.204.1
route del default gw 192.168.204.1
route add -net 192.168.205.0/24 gw 192.168.204.1 dev ens33
route add -host 192.168.78.25 gw 192.168.204.1
注意上述添加路由方式在主机重启后都不会保存,所以我们要把命令写在 /etc/rc.d/rc.local下,开机自动执行命令
6.2.1普通网络命令
**安装网络命令:**yum install net-tools -y
ifconfig -a
ip addr
ifconfig ens33 192.168.188.108 netmask 255.255.255.0 或者 ifconfig ens33 192.168.188.108/24
ifconfig ens33 192.168.188.108/24 up
service network stop
service network start
/etc/init.d/network restart
ifconfig ens33 down
ifconfig ens33 up
ifdown ens33
ifup ens33
cat /etc/resolv.conf
ping -f -c 2000 192.168.188.106
ping -s 10000 192.168.188.106
ping -I eth0 192.168.188.106
traceroute 192.168.188.108
netstat -i
netstat -t
netstat -u
netstat -n
netstat -a
netstat -atu
主机名称
hostname school
vi /etc/hostname
cat /etc/sysconfig/network
service network restart
dns解析
vi /etc/hosts
yum install bind-utils
dig baidu.com
dig @61.139.2.69 www.163.com
![在这里插入图片描述](https://img-blog.csdnimg.cn/d5797e7985e244b69adaca1c54386bc0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
**环回地址:**自己访问本机也需要ip,这个地址为环回地址
核心路由表:存储ip与子网掩码与运算后的网络地址指向
netstat
netstat -anp
netstat -r
telnet与ping
ping
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
![在这里插入图片描述](https://img-blog.csdnimg.cn/4ef5531a4b4c44b59c60cb70b6671cee.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
6.2.3机密算法
不可逆加密算法
加密后无法计算出原始数据
hash算法和md5算法
md5用于文件校验
对称加密算法
先加密在解密,使用相同的密钥对数据进行加解密。
登录信息用户名和密码加密、传输加密、指令加密
DES、3DES、RC4、Blowflsh
原文、密钥(私钥),密钥不对数据加解密失败
非对称加密算法
公钥和私钥,加密密钥和解密密钥不同,公钥密钥和私有密钥是一对的
加解密速度慢、计算量大
算法:RSA、DSA
6.2.4主机间相互免密钥(非对称加密,公私钥)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.188.109
cat ~/.ssh/authorized_keys
cat /root/.ssh/known_host
ssh-v -o GSSAPIAuthentication=no root@192.168.188.109
vi /etc/ssh/ssh_config
![在这里插入图片描述](https://img-blog.csdnimg.cn/b63582922f3a4c60960c9ccd6d9e6c0c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
上面是发送数据流程,两次校验主要时怕数据发生改变
6.2.5 linux的bonding
支持bonding服务需要有bios芯片才能生效
linux2.4版本以上提供bonding技术,把服务器上n格物理网卡在系统内部抽象为一个逻辑上网卡,用以提高网络吞吐量,实现网络冗余负载等
**负载均衡模式:**多个网络接口绑定为一个网络接口,这些网络接口都使用同一个ip地址mac地址发送信息,发送信息时会根据不同算法选择不同的网络接口发送
**冗余模式:**保证每个服务器都有两个链路,即使主链路断开也有备用链路传输
![在这里插入图片描述](https://img-blog.csdnimg.cn/a48e0c675d1640678f0bc015f5bf88d5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_15,color_FFFFFF,t_70,g_se,x_16#pic_center)
modinfo bonding
bonding设置有七种模式
-
0,轮转策略模式会将要发送的数据平均的从所有绑定的网络接口中发送提供负载均衡和网络冗余,默认启用
-
1,主备模式,主连接断开启用备用连接(接口),提供网络冗余,容错高,端口利用率低
-
2,基于地址的抑或算法,作用与1模式一致,算法不同,不常用
-
3,将所有要发送的数据从所有网络连接里发送出去,只提供网络冗余
-
4,利用802.3ad协议对网络连接聚合,需要交换机才能使用
-
5,自适应负载均衡模式,系统自动测定发送和接收使用的接口和速度
-
6,使用ARP控制的负载均衡模式,不需要交换机也能使用
Centos7配置bonding
将服务器内两张物理网卡ens33\ens34绑定为一个逻辑网卡bond0
linux下网卡bonding配置 - opss - 博客园 (cnblogs.com)
systemctl stop NetworkManager.service
systemctl disable NetworkManagre.service
lsmod | grep bonding
modprobe --first-time bonding
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
IPADDR=172.16.0.183
NETMASK=255.255.255.0
GATEWAY=172.16.0.1
DNS1=114.114.114.114
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=6 miimon=100"
vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
vi /etc/sysconfig/network-scripts/ifcfg-ens34
DEVICE=ens34
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
systemctl restart network
cat /proc/net/bonding/bond0
ifconfig -a
6.2.6 网络接口设置
创建与删除虚拟网卡(虚拟机)
(4条消息) Linux下创建虚拟网卡_sun1 72270102的博客-CSDN博客_linux创建虚拟网卡
sudo ifconfig eth0:0 192.168.1.5/24 up
sudo ifconfig eth0:0 down
6.3 linux的时间与日期
date
date -s
date -s 2022-01-22
date -s'2022-01-24 11:11:11'
date '+%Y%M%D%H%M%S'
时间同步策略
防止因不同服务器时间不同步导致的服务无法执行
yum install ntp -y
ntpdate cn.ntp.org.cn
vi /etc/ntp.conf
service ntpd start
vi /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 210.72.145.44
restrict 133.100.11.8
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
pwd libai
删除用户(建议root下)
userdel -r libai
修改用户信息
usermod -l libai baijuyi
usermod -L libai
usermod -U libai
切换用户
su baijuyi
配置文件
cat /etc/shadow
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
usermod -G song libai
groups libai
用户组权限设置
权限展示,去掉前面的d是三个一组
第一组是所属用户权限,第二组是所属用户组的权限 第三组是其他人(不是该用户也不属于此组)的权限
r-x
rw-
r--
---
drw-r--rwx libai song 131 1月 24 12:24:56 kkkk.txt
6.4.3用户权限修改
Linux权限是UGO模型,即用户本人权限+用户组权限+其他人的权限。
修改文件权限要从rwx和ugo入手
修改文件权限
对于没权限用户要如何修改文件,以下两个思路
1、更换文件的ugo权限
2、更改文件的所属组或者所属用户
chown libai /var/lucky
chown :tang /var/lucky
chmod o+w /var/lucky
chmod go+w /var/lucky
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
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 &
jobs -l
6.7 Linux软件安装
6.7.1环境变量
执行命令时会从当前的目录找,如果找不到会去环境变量$path查找安全1
$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 -qa
rpm -qa | grep jdk
rpm -q jdk
find / -name java
whereis java
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
ll
cd /opt/apache-tomcat-8.5.75/bin
./ startup.sh
cat ../webapps/ROOT/index.jsp
安装mysql,这里提供一个最快方案
yum install perl net-tools -y
rpm -qa| grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -qa| grep mariadb
tar -xvf mysq7-8.o.18-1.e17.x86__64. r pm-bund1e.tar
rpm -ivh mysq1-community-common-8.0.18-1.e17.x36_64.rpm
rpm -ivh mysq7-community-1ibs-8.0.18-1.e17.xE6_64.rpm
rpm -ivh mysq7-community-client-8.0.18-1.e17.x86_64.rpm
rpm -ivh mysq7-community-server-8.0.18-1.e17.x86_64 .rpm
systemctl start mysqld
systemctl status mysqld
cat /var/log/mysqld.log | grep password
mysql -u root -p
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'
FLUSH PRIVILEGES;
set global validate_password_po1icy=Low;
set global validate_password_length=6;
alter user root@1ocalhost identified by '123456 ';
use mysql;
select host,user from user;
update user set host='%' where user = 'root';
commit;
exit;
systemctl restart mysqld;
6.7.3 yum安装与修改源
自动指定软件安装中的依赖关系,软件缺依赖就自动安装依赖
yum search ifconfig
yum install net-tools
yum info net-tools
yum list
yum list | grep jdk
更换yum的下载原
yum install wget -y
cd /etc/yum.repos.d
vi CentOS-Base.repo
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
yum clean all
yum makecache
安装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
cut -d ':' -f1,2,5,7 passwd
cut -d ':' -f2,3,7 passwd
sort
sort passwd
sort -t ':' -k3 passwd
sort -t ':' -k3 -r passwd
sprt -t ':' -k3 -n passwd
![在这里插入图片描述](https://img-blog.csdnimg.cn/258967f02d7347af92bbba8dd28f943a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_14,color_FFFFFF,t_70,g_se,x_16#pic_center)
wc统计单词等
wc passwd
wc -l passwd
wc -w passwd
wc -c passwd
6.8.2 标配查找grep
ps -ef | grep ifconfig
ll | grep passwd
grep root /home/prince/passwd /etc/shadow
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
uname -r
sed --version
sed [options] [sed-commands] [input-file]
-n
-e
-f
-r
-i
a 追加,在指定行后添加一行或多行文本*
c 取代指定的行
d 删除指定的行*
D 删除模式空间的部分内容,直到遇到换行符\n结束操作,与多行模式相关
i 插入,在指定行前添加一行或多行文本*
h 把模式空间的内容复制到保持空间
H 把模式空间的内容追加到保持空间
g 把保持空间的内容复制到模式空间
G 把保持空间的内容追加到模式空间
x 交换模式空间和保持空间的内容打印不可见的字符
n 清空模式空间的内容并读入下一行
N 不清空模式空间,并读取下一行数据并追加到模式空间*
p 打印模式空间内容,通常p会与选项-n一起使用*(大写)打印模式空间的内容,直到遇到换行符\n结束操作
q 退出Sed从指定文件读取数据
s 取代, s
w 另存,把模式空间的内容保存到文件中
y 根据对应位置转换字符
: label 定义一个标签
b label 执行该标签后面的命令
cat >person.txt<<KOF
sed '5a 106,dandan,CTO' /home/prince/person.txt
sed '2a 106,dandan,CTO' /home/prince/person.txt
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
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f75d185bbbf40d4af1598495bce4b63.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_13,color_FFFFFF,t_70,g_se,x_16#pic_center)
sed '3d' /home/prince/persion.txt
sed '2,5d' /home/prince/persion.txt
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}'
ifconfig -a|grep -o -e 'inet [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'
ifconfig | grep broadcast| awk "NR==1" | awk -F" " '{print $2}'
7、Linux系统启动流程
CentOS7启动流程 - 苦逼运维 - 博客园 (cnblogs.com)
7.1、启动计算机硬件BIOS
- 读取时间
- 选择对应启动模式(U盘USB、HDD系统盘)
7.2、LINUX系统回去找/boot目录,也就是目录引导分区目录,引导系统启动
系统会转交控制权给引导装载程序GRUB ,会读取/boot/grub/grub.conf内容,根据内容加载linux内核
![在这里插入图片描述](https://img-blog.csdnimg.cn/b37f235c5742473b8f6eb133f24c768b.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8830d3b5ca3d4a6e97e909444310c254.png#pic_center)
(5条消息) Centos7 grub的配置文件及排错 (转载)_人生需要改变,学习需要实践-CSDN博客_centos grub
vi /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
vi /etc/grud.d/00_header
grub2-mkconfig -o /boot/grub2/grub.cfg
7.3系统初始化阶段
简述流程:
-
初始化系统,依照/etc/inittab文件,初始化进程是systemd,默认执行target配置文件/etc/systemd/system/default.target。
-
然后执行sysinit.target来初始化系统和basic.target来准备操作系统
-
启动multi-user.target下的本机与服务器,检查/etc/rc.d/rc.local文件是否有用户自定义脚本执行(即开机自启动服务脚本)
-
之后执行multi-user的getty.target登陆服务,检查default.target是否有其他服务启动
ll 检查可知
/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。
而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。
CentOS7启动流程 - 苦逼运维 - 博客园 (cnblogs.com)
7.3.1算机系统开始启动读取初始化配置文件,找到runlevel的运行级别。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b665afe126c049ad8d74a1c59f79f418.png#pic_center)
图形界面默认状态5,没图形默认runlevel=3
-
启动时控制计算机运行级别runlevel
-
runlevel级别
0 | halt关机 |
---|
1 | single user mode单用户模式 |
2 | multiuser withoutnfs 多用户无网络状态· |
3 | full multiuser mode多用户完整模式 |
4 | unused保留模式 |
5 | x11用户界面模式 |
6 | reboot重启模式 |
runlevel=3时开始启动对应服务和组件,一般正常启动默认模式3
systemctl set-default TARGET.target
System概述
linux下初始化init软件,提供更加优秀的框架以表示服务间关系
7.3.2开始默认引导公共组件或者服务
vi /etc/rc.d/rc0/1/2/3/4/5/6.d /rc.sysinit/init.d
![在这里插入图片描述](https://img-blog.csdnimg.cn/c63543a4d9464561bfe248db120fd732.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHJpbmNlc2s=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
7.4、开始加载对应runlevel的服务
vi /etc/rc.d/rc3.d
开机就启动的服务设置有两种方式
- 添加到/etc/rc.d/rc.local文件下或者添加到对应等级的文件加下;
- 如无界面的centos默认正常开启等级是runlevel=3,将设置添加到/etc/rc.d/rc3.d,或者选择添加到/etc/rc.d/rc.local文件内
5.1开机自启动服务,rc.local启动文件下
mkdir -p /usr/local/scripts
vi /usr/local/scripts/hello.sh
chmod ugo+x /usr/local/scripts/hello.sh
vi /etc/rc.d/local.d
date -s '21:21:21'
date
reboot
date
5.2 rc3.d开机自启动方式
vi /home/rince/initdate.sh
chmod a+x initdate.sh
cp initdate.sh /etc/init.d/
chkconfig --add /etc/init.d/initdate.sh
reboot
7.6、定时任务设定
系统服务中心,由crond服务负责执行启动周期任务
systemctl status crond.service
crontab -e #添加任务编辑当前用户任务列表文件修改
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
30 21 1,10,20 * * /usr/local/etc/rc.d/lighttpd restart
30-40 21 * * * /usr/local/etc/rc.d/lighttpd restart
*/5 * * * * /usr/local/etc/rc.d/lighttpd restart
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
0 12-21/5 * * * /usr/local/etc/rc.d/lighttpd
举例
vi /home/rince/test.sh
chmod a+x /home/rince/test.sh
crontab -e
systemctl restart crond.service
cront用法
systemctl restart crond.service
crontab -I
vi /var/spool/mail/root
crontab -r
开机自启动脚本,编写脚本尽量在linux里编写,否则会因为windows里换行符等问题使其运行不了,千万注意
#!/bin/bash
echo -e "\e[1;31m【--------------------------------opt和var下创建lucky文件夹】\e[0m"
mkdir -p /opt/lucky
mkdir -p /var/lucky
mkdir -p /usr/local/script
echo -e "\e[1;31m【--------------------------------禁用防火墙】\e[0m"
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
echo -e "\e[1;31m【--------------------------------修改selinux】\e[0m"
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
echo -e "\e[1;31m【--------------------------------install wget】\e[0m"
yum install wget -y
echo -e "\e[1;31m【--------------------------------修改yum原】\e[0m"
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
echo -e "\e[1;31m【--------------------------------安装常用软件】\e[0m"
yum install man man-pages ntp vim lrzsz zip unzip telnet perl net-tools -y
echo -e "\e[1;31m【--------------------------------同步系统时间】\e[0m"
yum info ntp && ntpdate cn.ntp.org.cn
echo -e "\e[1;31m【--------------------------------DNS域名配置,免除解析】\e[0m"
echo "192.168.108.110 root ">> /etc/hosts
echo "192.168.108.108 basenode ">> /etc/hosts
echo -e "\e[1;31m【--------------------------------安装jdk\e】\e[0m"
rpm -ivh /home/prince/jdk-17_linux-x64_bin.rpm
echo echo 'export JAVA_HOME=/usr/java/jdk1.7.0_67'>> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH'>> /etc/profile
8、SELINUX安全增强型linux模块
linux的安全子系统,2.6版本以上内核自动集成selinux模块
8.1selinux基本概念
**主体Subject:**等同于进程
**对象Object:**被主体subject访问的资源,可以是文件目录端口设备
政策与规则(Policy和Rule):系统中有大量文件和进程,为节省时间和系统开销,选择性对某些进程进行管制、
一个政策对应多项规则,规则可以手动添加
Centos7有三套政策:
- targeted:对大部分网络进程进行管制,系统默认使用
- minimum:以targeted为基础只对选定的网络服务进程管制
- mls:多级安全保护,对所有进程管制,最严格的政策,配置难度大
安全上下文(Security Context):
selinux核心所在,自己分为进程安全上下文和文件安全上下文
进程安全上下文:文件安全上下文=1:n
只有以上两者对应上了进程才能访问文件,对应关系由政策中的规则决定。
文件安全上下文由文件创建位置和创建文件的进程决定,有一套系统默认值设置
- 安全上下文有四个字段用:隔开 system_u:object_r:admin_home_t:s0
单纯的文件移动不能改变文件的安全上下文
Selinux工作模式:
- **强制enforcing:**违反selinux规则行为会被阻止然后记录到日志中
- 宽容permissive: 违反规则的行为会记录到日志中,调试使用
- **关闭disabled:**关闭selinux
/etc/selinux/config
auditd.service
8.2 selinux基本操作
yum install policycoreutils-python -y
ls -Z /etc
ls -Z /home/prince
ps auxZ | grep -v grep | grep nginx
ps axuZ | grep -v grep | grep bash
chcon -u aaa_u -r bbb_r -t ccc_t test
restorecon
restorecon -R /usr/share/nginx/html/
getsebool -a
setsebool
setsebool -p httpd_anon_write on
semanage fcontext -a -t "(/.*)?"
-----安装jdk\e】\e[0m"
rpm -ivh /home/prince/jdk-17_linux-x64_bin.rpm
echo echo ‘export JAVA_HOME=/usr/java/jdk1.7.0_67’>> /etc/profile
echo ‘export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH’>> /etc/profile
## 8、SELINUX安全增强型linux模块
linux的安全子系统,2.6版本以上内核自动集成selinux模块
### 8.1selinux基本概念
**主体Subject:**等同于进程
**对象Object:**被主体subject访问的资源,可以是文件目录端口设备
**政策与规则(Policy和Rule)**:系统中有大量文件和进程,为节省时间和系统开销,选择性对某些进程进行管制、
一个政策对应多项规则,规则可以手动添加
Centos7有三套政策:
1. targeted:对大部分网络进程进行管制,系统默认使用
2. minimum:以targeted为基础只对选定的网络服务进程管制
3. mls:多级安全保护,对所有进程管制,最严格的政策,配置难度大
**安全上下文(Security Context):**
selinux核心所在,自己分为**进程安全上下文**和**文件安全上下文**
进程安全上下文:文件安全上下文=1:n
只有以上两者对应上了进程才能访问文件,对应关系由政策中的规则决定。
文件安全上下文由文件创建位置和创建文件的进程决定,有一套系统默认值设置
1. 安全上下文有四个字段用:隔开 system_u:object_r:admin_home_t:s0
单纯的文件移动不能改变文件的安全上下文
**Selinux工作模式**:
1. **强制enforcing:**违反selinux规则行为会被阻止然后记录到日志中
2. **宽容permissive:** 违反规则的行为会记录到日志中,调试使用
3. **关闭disabled:**关闭selinux
```shell
#selinux工作模式配置文件
/etc/selinux/config
#selinux日志
auditd.service
8.2 selinux基本操作
yum install policycoreutils-python -y
ls -Z /etc
ls -Z /home/prince
ps auxZ | grep -v grep | grep nginx
ps axuZ | grep -v grep | grep bash
chcon -u aaa_u -r bbb_r -t ccc_t test
restorecon
restorecon -R /usr/share/nginx/html/
getsebool -a
setsebool
setsebool -p httpd_anon_write on
semanage fcontext -a -t "(/.*)?"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)