前面的笔记:
Linux 学习笔记1 安装linux详细教程_linux系统 setting_O丶ne丨柒夜的博客-CSDN博客
Linux 学习笔记2 常用命令_O丶ne丨柒夜的博客-CSDN博客
Linux 学习笔记3 权限管理 定时任务 网络配置_O丶ne丨柒夜的博客-CSDN博客
目录
目录
安装配置
安装配置JDK8
查看环境变量:echo $PATH
安装步骤
1. mkdir /opt/jdk
2. 通过xftp6上传到/opt/jdk下
3. cd /opt/jdk
4. 解压tar-zxvf jdk-8u261--linux-x64.tar.gz
5. mkdir /usr/local/java
6. mv /opt/jdk/jdk1.8.0_261 /usr/local/java
7. 配置环境变量的配置文件 vim /etc/profile
8. export JAVA_HOME=/usr/local/java/jdk1.8.0_261
9. export PATH=$JAVA_HOME/bin:$PATH
10. source /etc/profile [让新的环境变量生数]
测试是否安装成功
编写一个简单的Hello,java输出"hello,world!"
安装python
1.下载python3
https://img.zeruns.tech/down/source/Python-3.10.6.tgz
2.进入安装路径
cd /root/opt/python3
如果没有 可以用mkdir创建
3.解压
tar -zxvf Python-3.10.6.tgz
4.准备编译环境
yum -y install libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
5.编译安装
cd Python-3.10.6
./configure --prefix=/opt/python310
make && make install
解释:
./configure --prefix=你的安装路径
6.配置环境变量
vim /etc/profile
export python_HOME=/opt/python310 export PATH=$python_HOME/bin:$PATH
刷新配置
source /etc/profile
7.验证是否安装成功
python3
pip3 install --upgrade pip -i Simple Index
tomcat的安装
步骤:
Apache Tomcat® - Apache Tomcat 10 Software Downloads
1.上传安装文件,并解压缩到/opt/tomcat
2进入解压目录/bin,启动tomcat/startup.sh
3.开放端口8080
●测试是否安装成功:
在windows、Linux下访 http://linuxip:8080
firewall-cmd --permanent --add-port=8080/tcp
systemctl start firewalld
systemctl stop firewalld
firewall-cmd-reload
firewall-cmd --query-port=8080/tcp
tar -zxvf apache-tomcat-10.1.7.tar.gz
cd /root/test/html1/apache-tomcat-10.1.7/bin/
./startup.sh
安装配置mysql8.0
centos8安装mysql8.0.22教程(超详细)_上善若水滴世界的博客-CSDN博客
pwd
是Linux系统中常用的一个命令,全称为Print Working Directory
,用于显示当前所处的工作目录的路径名称。
shell编程
为什么要学习Shell编程
1.Linuxi运维工程师在进行服务器集群管理时,需要编写Shel程序来进行服务器管理。
2.对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
3.对于大数据程序员来说,需要编写Shell程序来管理集群。
Shell是什么
Shell是一个命令行解释器,它为用户提供了一个向Liux内核发送请求以便运行程序的界面系统级程序,
用户可以用Shl来启动、挂起、停止甚至是编写一些程序。看一个示意图
快速入门
Shell脚本的执行方式
●脚本格式要求
1.脚本以#!/bin/bash开头2.
脚本需要有可执行权限
编写第一个Shell脚本
需求说明:创建一个Shell脚本,输出hello world!
脚本的常用执行方式
方式1(输入脚本的绝对路径或相对路径)
说明:首先要赋予helloworld.sh脚本的+x权限,再执行脚本
√方式2(sh+脚本)
说明:不用赋予脚本+x权限,直接执行即可。
[root@localhostlinux1 shell]# vim hello.sh
[root@localhostlinux1 shell]# sh hello.sh
hello shell
Shell的变量
●Shell变量介绍
1.Linux Shellr中的变量分为,系统变量和用户自定义变量。
2.系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME等等
3.显示当前shellt中所有变量:set
●shell变量的定义
基本语法
1.定义变量:变量=值
2.撤销变量:unset 变量
3.声明静态变量:readonly 变量,注意:不能unset
a=100
echo $a
a+=1
echo $a
echo a=$a
echo "a=$a"
100
1001
a=1001
a=1001
1.A=`date`反引号,运行里面的命令,并把结果返回给变量A
2.A=$(date)等价于反引号
b=`date`
echo $b
[root@localhostlinux1 shell]# sh a1.sh
Sat Mar 11 02:30:35 PST 2023
设置环境变量
基本语法
1.export 变量名=变量值
(功能描述:将she变量输出为环境变量/全局变量)
2.source 配置文件
(功能描述:让修改后的配置信息立即生效)
3.echo $变量名
(功能描述:查询环境变量的值)
●快速入门
1.在/etc/profile文件中定义TOMCAT_HOME:环境变量
2.查看环境变量TOMCAT HOME的值
3.在另外一个shell程序中使用TOMCAT_HOME
注意:在输出TOMCAT HOME环境变量前,需要让其生效source /etc/profile
#使用环境变量TOMCAT HOME
echo "tomcat_home=$STOMCAT_HOME"
多行注释
:<<! !
单行注释 #
位置参数变量
·介绍
当我们执行一个shl脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
比如:/myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数
信息
●基本语法
$n (功能描述:为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的
参数需要用大括号包含,如${10})
$* (功能猫述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$# (功能描述:这个变量代表命令行中所有参数的个数)
位置参数变量
案例:编写一个shell脚本position.sh,在脚本中获取到命令行的各个参数信息。
echo "$0 $1 $2 $3"
echo "$*"
echo "$@"
echo "$#"
[root@localhostlinux1 shell]# sh a2.sh 1 2 3
a2.sh 1 2 3
1 2 3
1 2 3
3
预定义变量
●基本介绍
就是shel设计者事先已经定义好的变量,可以直接在shell脚本中使用
●基本语法
$$ (功能描述:当前进程的进程号(PID))
$! (功能描述:后台运行的最后一个进程的进程号(PID))
$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;
如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
●应用实例
在一个shell脚本中简单使用一下预定义变量
preVar.sh
echo "$$"
echo "$!"
echo "$?"
运算符
·基本介绍
学习如何在shellr中进行各种运算操作。
●基本语法
1.“$((运算式))”或“$[运算式]”或者expr m+n
2.注意expr运算符间要有空格
3.expr m n
4.expr \*,/,%乘,除,取余
应用实例
案例1:计算(2+3)X4的值
案例2:请求出命令行的两个参数[整数]的和
1.算术运算符:(推荐用$[])
a=10
b=5
echo $((a + b)) # 输出 15
echo $((a - b)) # 输出 5
echo $((a * b)) # 输出 50
echo $((a / b)) # 输出 2
echo $((a % b)) # 输出 0
2.关系运算符:
a=10
b=5
if [ $a -eq $b ]
then
echo "a 等于 b"
else
echo "a 不等于 b"
fi
3.逻辑运算符:
a=10
b=5
if [ $a -gt 8 ] && [ $b -lt 6 ]
then
echo "条件成立"
else
echo "条件不成立"
fi
4.字符串运算符:
str1="hello"
str2="world"
echo $str1$str2 # 输出 helloworld
if [ "$str1" = "$str2" ]
then
echo "字符串相等"
else
echo "字符串不相等"
fi
5.文件测试运算符:
file="test.txt"
if [ -e "$file" ]
then
echo "$file 存在"
else
echo "$file 不存在"
fi
- 小于:less than
- 小于等于:less than or equal to
- 等于:equal to
- 大于:greater than
- 大于等于:greater than or equal to
- 不等于:not equal to
有读的权限:
- read permission
有写的权限:
- write permission
有执行的权限:
- execute permission
文件存在并且是一个常规的文件:
- file exists and is a regular file
文件存在:
- file exists
文件存在并是一个目录:
- file exists and is a directory
条件判断
注意事项:[条件判断式],中括号和条件判断式之间必须有空格
应用实例ifCase.sh
案例:请编写一个shl程序,如果输入的参数,大于等于60,则输出"及格了”,如果小于60,则输出"不及格”
if [ $1 -ge 90 ]
then
echo "优秀"
elif [ $1 -ge 60 ]
then
echo "及格了"
else
echo "不及格"
fi
case、for、while语句
case "$1" in
start)
echo "启动服务"
# 启动服务的代码
;;
stop)
echo "停止服务"
# 停止服务的代码
;;
restart)
echo "重启服务"
# 重启服务的代码
;;
*)
echo "使用方法:$0 {start|stop|restart}"
exit 1
;;
esac
遍历一个数组
fruits=("apple" "banana" "orange" "grape")
for fruit in "${fruits[@]}"
do
echo "当前水果:$fruit"
done
遍历文件、目录等
for file in *
do
echo "当前文件:$file"
done
for 循环遍历数字
for i in $(seq 1 5)
for i in {1..5}
do
echo "当前数字:$i"
done
for ((i=1; i<=5; i++))
do
echo "当前数字:$i"
done
求和
sum=0
for((i=1;i<=5;i++))
do
sum=$[sum+i]
done
echo $sum
count=1
while [ $count -le 10 ]
do
echo "Count is: $count"
((count++))
done
双括号(())中才可以使用一些c的语法
read读取控制台输入
基本语法
read (选项) (参数)
选项:
-p : 指定读取值时的提示符;
-t : 指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。
参数
变量:指定读取值的变量名
应用实例testRead.sh
案例1:读取控制台输入一个num值
案例2:读取控制台输入一个num值,在10秒内输入。
read -p "请输入NUM1=" num1
echo "num1=$num1"
read -t 10 -p "请输入NUM2=" num2
echo "num2=$num2"
函数介绍
shell编程和其它编程语言一样,有系统函数,也可以自定义函数。系统函数中,我们这里就介绍两个。
系统函数
basename基本语法
功能:返回完整路径最后/的部分,常用于获取文件名
basename [pathname] [suffix]
basename [string] [suffix] 功能描述:basename命令会删掉所有的前缀包括最后
一个('/')字符,然后将字符串显示出来。
选项:
suffix为后缀,如果suffix被指定了,basenames会将pathname或string中的suffix:去掉.
应用实例
案例1:请返回/home/aaa/test.txt的"test.txt"部分
basename /home/aaa/test.txt .txt
dirname 基本语法
功能:返回完整路径最后/的前面的部分,常用于返回路径部分
dirname 文件绝对路径
(功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
应用实例
案例1:请返 /home/aaa/test.txt 的 /home/aaa
dirname /home/aaa/test.txt
自定义函数
基本语法
function funname[()]
{
Action;
[return int;]
}
调用直接写函数名:funname [值]
√应用实例
案例1:计算输入两个参数的和,getSum
# 自定义函数
function greet {
echo "Hello, $1!"
}
# 调用函数
greet "world"
定时备份数据库
vi /etc/my.cnf
datadir=/var/lib/mysql
# 备份文件保存路径
backup_dir="/root/test/saves/mysql1"
# MySQL用户名和密码
mysql_user="root"
mysql_password="123456"
# 要备份的数据库名称
database_name="sys"
# 备份文件名
backup_file="$backup_dir/$database_name-$(date +%Y-%m-%d-%H-%M-%S).sql"
# 运行备份命令
mysqldump -u $mysql_user -p$mysql_password $database_name > $backup_file
# 删除旧的备份文件(保留最近7天的备份文件)
find $backup_dir -type f -name "$database_name*.sql" -mtime +7 -exec rm {} \;
可以使用crontab定期运行备份脚本。打开crontab文件:
crontab -e
然后添加以下行:
0 0 * * * /root/test/shell/mysqlbeifen.sh
这个命令将在每天午夜(0小时0分)运行备份脚本。可以根据需要更改crontab的时间表达式。
Shell编程综合案例
需求分析
1.每天凌晨2:30备份数据库hspedu到/data/backup/db
2.备份开始和备份结束能够给出相应的提示信息
3备份后的文件要求以备份时间为文件名,并打包成.tar.gz的形式,比如:2021-03-12230201.tar.gz
4.在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。
- `find $backup_dir`:在指定目录`$backup_dir`下查找文件。
- `-type f`:只查找普通文件,不包括目录和符号链接等。
- `-name "$database_name*.sql"`:指定文件名模式,匹配以`$database_name`开头,以`.sql`为扩展名的备份文件。
- `-mtime +7`:查找最后修改时间超过7天的文件。
- `-exec rm {} \;`:对于每个找到的文件,执行`rm`命令来删除它。`{}`代表文件名,`\;`表示命令的结束。
python开发
ubuntu安装
安装好后,检查能不能上网
安装ifconfig、ssh、修改镜像源
ifconfig是一个Linux/Unix系统的命令,用于查询和配置网络接口的信息。在Ubuntu中,ifconfig命令默认是没有安装的,需要安装net-tools包才能使用。 安装net-tools包的命令如下:
sudo apt-get update
sudo apt-get install net-tools
要在Ubuntu上启用SSH服务并设置用户名和密码,请按照以下步骤操作:
1. 打开终端(Ctrl+Alt+T)。 2. 安装OpenSSH服务器软件:
sudo apt update
sudo apt install openssh-server
3. 启动SSH服务:
sudo systemctl start ssh
4. (可选)设置SSH服务为开机启动:
sudo systemctl enable ssh
5. 创建新的Ubuntu用户。在终端中输入以下命令:
sudo adduser username
其中,“username”是您要创建的新用户的用户名。按照提示,为新用户设置密码和其他信息。 6. 确定新用户具有连接SSH的权限。在终端中输入以下命令:
sudo usermod -aG ssh username
其中,“username”是您要授权连接SSH的用户的用户名。
修改清华源
vi /etc/apt/source.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
sudo apt-get update
sudo apt-get upgrade
设置Ubuntu支持中文
默认安装的ubuntu中只有英文语言,因此是不能显示汉字的。要正确显示汉字,需要安装中文语言包。
安装中文支持步骤:
1.单击左侧图标栏打开Language Support菜单,点击打开Language Support(语言支持)选项卡。
2.点击Install/Remove Languages,在弹出的选项卡中下拉找到Chinese(Simplified,即中文简体,在后面的选项框中打勾。然后点击Apply Changes提交,系统会自动联网下载中文语言包。(保证ubuntu是联网的)
3.这时“汉语(中国)”在最后一位因为当前第一位是”English”,所以默认显示都是英文。我们如果希望默认显示用中文,则应该将“汉语(中国)”设置为第一位。设置方法是拖动,鼠标单击“汉语(中国)”,当底色变化(表示选中了)后,按住鼠标左键不松手,向上拖动放置到第一位。
4.设置后不会即刻生效,需要下一次登录时才会生效。
Ubuntu的root用户
介绍
安装ubuitu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上sudo。有的时候感觉很麻烦。(演示)
我们一般使用su命令来直接切换到root用户的,但是如果没有给root设置初始密码就会抛出su:Authentication failure这样的问题。所以,我们只要给root用户设置一个初始密码就好了。
●给root用户设置密码并使用
1.输入sudo passwd命令,输入一般用户密码并设定root用户密码。
2.设定root 密码成功后,输入su 命令,并输入刚才设定的root密码,就可以切换成root了。提示符$代表一般用户,提示符#代表root用户。
3.以后就可以使用root用户了
4.输入exit命令,退出root并返回一般用户
sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin yes
sudo service ssh restart
su
vi /etc/pam.d/gdm-autologin
注释行 “auth requied pam_succeed_if.so user != root quiet success”
vi /etc/pam.d/gdm-password
注释行 “auth requied pam_succeed_if.so user != root quiet success”
Ubuntu 系统如何使用 root 用户登录实例-CSDN博客
Ubuntu下开发Python
●说明
安装好buntul后,默认就已经安装好Pythonl的开发环境。
●在Ubuntu下开发一个Pythoni程序
1)vi hello.py·
[编写hello..py]
2)python:3 hello.py[运行hello.py]
APT原理机制图
apt是Advanced Packaging Tool的简称,是一款安装包管理工具。在Jbuntu下,我们可以使用apt命令进行软件包的安装、删除、清理等,类似于Vindowst中的软件管理工具。
Ubuntu软件操作的相关命令
sudo apt-get update更新源
sudo apt-get install package安装包
sudo apt-get remove package删除包
sudo apt-cache search package搜索软件包
sudo apt-cache show package获取包的相关信息
如说明、大小,版本等
sudo apt-get install package --reinstall
重新安装包
sudo apt-.get-f install修复安装
sudo apt--get remove package-purge删除包,包括配置文件等
sudo apt-get build-.dep package安装相关的编译环境
sudo apt-get upgrade更新已安装的包
sudo apt--get dist-upgrade升级系统
sudo apt-cache depends package了解使用该包依赖那些包
sudo apt--cache rdepends package查看该包被哪些包依赖
sudo apt-get source,I ckage下载该包的源代码
Ubuntu:软件安装,卸载的最佳实践
案例说明:使用apt完成安装和卸载vim软件,并查询vim软件的信息:(因为使用了镜像
网站,速度很快)
sudo apt-get remove vim
sudo apt-get install vim -y
sudo apt-cache show vim
远程登录Ubuntu
ssh介绍
SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录。几乎所有UNIX/LInux平台都可运行SSH。
使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。
和CentOS不一样,Ubuntu默认没有安装SSHD服务(使用netstat指令查看:apt install net-tools),因此,我们不能进行远程登录。
从一台linux系统远程登陆另外一台linux系统
在创建服务器集群时,会使用到该技术
基本语法:
ssh 用户名@IP
例如:ssh hspedu@192.168.200.222
使用ssh访问,如访问出现错误。可查看是否有该文件~
/.ssh/known_ssh尝试删除该文件解决,一般不会有问题
登出
登出命令:exit或者logout
生产环境,可以选最小安装
centos7 vs centos8
日志管理
日志介绍和实例
基本介绍
1.日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包活用户的登绿信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
2.日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,·或者受到攻击时攻击者留下的痕迹。
3.可以这样理解日志是用来记录重大事件的工具
/var/log/ 目录就是系统日志文件的保存位置
使用root用户通过xshell6登陆,第一次使用错误的密码,第二次使用正确的密码登录成功
看看在日志文件/War/Iog/secure里有没有记录相关信息
日志管理服务rsyslogd
Centos7.6日志服务是rsyslogd,Centos6.x日志服务是syslogd。rsyslogd功能更强大。
rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。
√查询Linux中的rsyslogd服务是否启动
ps aux | grep "rsyslog" | grep -v "grep"
√查询rsyslogd服务的自启动状态
systemctl list-unit-files | grep rsyslog
由日志服务rsyslogd记录的日志文件,日志文件的格式包含以下4列:
1.事件产生的时间
2.产生事件的服务器的主机名
3.产生事件的服务名或程序名
4.事件的具体信息
日志如何查看实例
查看一下var/log/secure日志,这个日志中记录的是用户验证和授权方面的信息来分析如何查看
定制自己的Linux
基本介绍
通过裁剪现有Linuix系统(Centos7.6),创建属于自己的minLinux小系统,可以加深我们对linux的理解
基本原理
启动流程介绍:
制作Linux小系统之前,再了解一下Linux的启动流程:
1.首先Linux要通过自检,检查硬件设备有没有故障
2.如果有多块启动盘的话,需要在BIOS中选择启动磁盘
3、启动MBR中的bootloader引导程序
4、加载内核文件
5.执行所有进程的父进程、老祖宗systemd
6、欢迎界面
在Linux的启动流程中,加载内核文件时关键文件:
1)kernel文件:vmlinuz-3.10.0-957.el7.x86_64
2) initrd文件:initramfs-3.10.0-957.el7.x86_64.img
制作minlinux思路分析
1.在现有的Linux系统(centos7.6)上加一块硬盘/dev/sdb,在硬盘上分两个分区,一个是/boot,一个是/,并将其格式化。需要明确的是,现在加的这个硬盘在现有的Linux系统中是/dev/sdb但是,当我们把东西全部设置好时,要把这个硬盘拔除,放在新系统上,此时,就是/dev/sda
2.在/dev/sdb硬盘上,将其打造成独立的Linux系统,里面的所有·文件是需要拷贝进去的
3.作为能独立运行的Linux系统,内核是一定不能少,要把内核文件和initramfs文件也一起拷到/dev/sdb上
4.以上步骤完成,我们的自制Linux就完成,创建一个新的linux虚拟机,将其硬盘指向我们创建的硬盘,启动即可
https://www.cnblogs.com/RobertYu666/p/16047108.html
linux内核
为什么要阅读linux内核?
爱好,就是喜欢linux(黑客精神)
想深入理解linux底层运行机制,对操作系统有深入理解
阅读linux内核,你会对整个计算机体系有一个更深刻的认识。作为开发者,不管你从事的是驱动开发,应用开发还是后台开发,你都需要了解操作系统内核的运行机制,这样才能写出更好的代码。作为开发人员不应该只局限在自己的领域,你设计的模块看起来小,但是你不了解
进程的调用机制,你不知道进程为什么会阻塞、就绪、执行几个状态。那么很难写出优质的代码。
找工作面试的需要
老韩忠告,作为有追求的程序员,还是应该深入的了解一个操作系统的底层机制,(比如linux/unix)最好是源码级别的,这样你写多线程高并发程序,包括架构,优化,算法等,高度不一样的,当然老韩也不是要求小伙伴儿把一个非常庞大的Li山x内核每一行都读懂。我觉得。你至少能看几个核心的模块把。
linux0.01内核源码
●基本介绍Liux的内核源代码可以从网上下载,解压缩后文件一般也都位于linux目录下。内核源代码有很多版本,可以从linux0.01内核入手,总共的代码1w行左右,最新版本5.9.8总共代码超过700w行,非常庞大.
内核地址:https://www.kernel.org/
GitHub - bolanlaike/Linux-0.01: Linux 0.01源码及注释
linux0.01内核源码
linux0.01内核源码目录&阅读
老韩提示阅读内核源码技巧
1.linux0.01的阅读需要懂c语言
2.阅读源码前,应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应.
3.在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。
4.对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解
linux内核源码阅读&目录介绍&main.c说明
linux内核最新版和内核升级
内核地址:https://www.kernel.org/查看
●下载&解压最新版
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.16.tar.gz
tar -zxvf linux-5.8.16.tar.gz
linux内核最新版和内核升级
linux内核升级应用实例
将Centos系统从7.6内核升级到7.8版本内核(兼容性问题)
具体步骤,看老师演示
uname -a /查看当前的内核版本
yum info kernel -q /检测内核版本,显示可以升级的内核
yum update kernel /升级内核
yum list kernel -q /查看已经安装的内核
备份与恢复
基本介绍
实体机无法做快照,如果系统出现异常或者数据损坏,后果严重,要重做系统,还会造成数据丢失。所以我们可以使用备份和恢复技术
linux的备份和恢复很简单,有两种方式:
1.把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可
2.使用dump和restore命令
使用dump完成备份
●dump应用案例1
将/boot目录所有内容备份到/opt/boot.bak.bz2文件中,备份层级为"0”
dump -0uj -f /opt/boot.bak.bz2 /boot
●dump应用案例2
在/boot目录下拷贝一个文件,备份层级为“1”(只备份上次使用层次“0”备份后发生过改变的数据),注意比较看这次生成的备份文件boot1.bak有多大
dump -1uj -f /opt/boot.bak1.bz2 /boot
老韩提醒:通过dump命令在配合crontab可以实现无人值守备份
使用restore完成恢复
●基本介绍
restore命 令用来恢复已备份的文件,可以从dump生成的备份文件中恢复原文件
restore 基本语法
restore [模式选项] [选项]
说明下面四个模式,不能混用,在一次命令中,只能指定一种。
-C :使用对比模式,将备份的文件与已存在的文件相互对比。
-i :使用交互模式,在进行还原操作时,restors指令将依序询问用户
-r :进行还原模式
-t :查看模式,看备份文件有哪些文件
选项
-f <备份设备>:从指定的文件中读取备份数据,进行还原操作
webmin安装和配置
基本介绍
webmin是功能强大的基于Web的Unix/inux系统管理工具。管理员通过浏览器访问Vebmin的各种管理功能并完成相应的管理操作。除了各版本的linux以外还可用于:AIX、HPUX、Solaris、Unixware、.Irix和FreeBSD等系统
Downloading and Installing | Webmin
下载压缩包
tar xvf webmin-2.013.tar.gz
sh setup-repos.sh
dnf install webmin --nobest
sudo firewall-cmd --add-port=10000/tcp --permanent
sudo firewall-cmd --reload
bt(宝塔)
基本介绍
bt宝塔Liux面板是提升运维数率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/jAVA等多项服务器管理功能。
安装和使用
1安装 : yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
2.安装成功后控制台会显示登录地址,账户密码,复制浏览器打开登录,
Centos安装脚本:
yum install -y wget && wget -O install.sh http://bt.cxinyun.com/install/install_6.0.sh && sh install.sh
外网面板地址:
内网面板地址:
username:
password:
If you cannot access the panel,
release the following panel port [37596] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[37596]端口
如果bt的用户名,密码忘记了,使用bt default可以查看