Linux开发 安装JDK8、mysql8.0、shell脚本编写、Ubuntu安装 p4

前面的笔记:

Linux 学习笔记1 安装linux详细教程_linux系统 setting_O丶ne丨柒夜的博客-CSDN博客

Linux 学习笔记2 常用命令_O丶ne丨柒夜的博客-CSDN博客

Linux 学习笔记3 权限管理 定时任务 网络配置_O丶ne丨柒夜的博客-CSDN博客

目录

目录

安装配置

安装配置JDK8

安装python

tomcat的安装

安装配置mysql8.0

shell编程

快速入门

Shell的变量

位置参数变量

预定义变量

运算符

条件判断

case、for、while语句

定时备份数据库

python开发

ubuntu安装

安装ifconfig、ssh、修改镜像源

设置Ubuntu支持中文

Ubuntu的root用户

Ubuntu下开发Python

APT原理机制图

远程登录Ubuntu

日志管理

日志介绍和实例

日志管理服务rsyslogd

​编辑 定制自己的Linux

基本原理

linux内核

为什么要阅读linux内核?

备份与恢复

使用dump完成备份

使用restore完成恢复

webmin安装和配置

bt(宝塔)

面试


安装配置

安装配置JDK8

Java Downloads | Oracle

查看环境变量: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博客

mysql8.0.22设置远程连接

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可以查看

面试

142_韩顺平Linux_统计访问量和连接数_哔哩哔哩_bilibili

O丶ne丨柒夜
关注 关注
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux安装jdk1.8及安装脚本.zip
08-20
资源包括jdk-8u221-linux-x64.tar.gz安装包及安装脚本,安装包及安装脚本上传到linux的指定文件夹后,可直接执行安装。碰到安装问题评论一下,好用给个好评哦亲
Ubuntu16.04安装JDK
decvo6179的博客
11-26 134
  转载请注明源出处:http://www.cnblogs.com/lighten/p/6105463.html 1.简单的安装方法 安装JDK的最简单方法应该就是使用apt-get来安装了,但是源一般是OpenJDK,如果需要安装oracle的JDK这种方法就不合适了,直接跳过看下面的章节。   1.使用ctrl+alt+t打开终端,你可以添加一个含有OpenJDK源的仓...
Ubuntu系统安装JDKMySQL8.0、Ningx、Sqlite3运行环境
最新发布
qq_39543482的博客
08-25 95
Nginx 的主配置文件是 /etc/nginx/nginx.conf。5、测试验证配置文件是否正确。
Ubuntu安装JDK8
m0_56192434的博客
06-30 605
本文介绍Ubuntu使用4行命令快速安装JDK8
ubuntu 安装jdk8
志存高远
02-26 3206
如果你确实需要Oracle JDK 8且有授权或特殊需求,建议直接从Oracle官方网站下载并手动安装。但请注意遵守Oracle的许可证条款,并确保获取的是合法途径的安装包。由于Oracle自2019年起对JDK 8的公共更新仅限于付费订阅用户,因此,依赖于webupd8team/java PPA的传统方式可能不再提供最新安全更新。对于大多数开发和生产环境来说,使用开源的OpenJDK 8是一个不错的选择,因为它通常包含必要的更新和支持。
Ubuntu安装JDK8(直接下载jdk压缩包方式)
此博客内容主要是小可日常工作中的一些问题解决的记录整理而成
08-28 2037
地址: https://www.oracle.com/java/technologies/downloads/选择相应的 .gz包下载。
利用shell脚本自动配置Linux基础环境,安装jdk,tomcat,mysql
08-24
利用shell脚本一键自动化配置Linux基础环境(包括主机名的修改,配置静态ip地址,修改yum源为华为源,永久关闭Linux的防火墙,安装一些必要基础的工具),安装jdk1.8,配置java环境变量,安装tomcat8,访问html,...
Linux系统软件压缩包 JDK 8.0, JDK11版本 Tomcat8.0版本 MySQL 8.0版本
10-07
在IT领域,Linux系统软件压缩包常常用于便捷地分发和安装各种开发环境和服务器软件。本压缩包包含了三个核心组件:JDK 8.0和JDK 11版本,Tomcat 8.0版本,以及MySQL 8.0版本。这些都是在服务器配置和应用开发中至关...
ubuntu 自动安装配置jdkshell脚本
01-30
ubuntu deepin系统下自动安装配置jdkshell脚本,省去繁琐重复配置
shell一键安装jdk8配置环境变量
12-22
通过shell脚本一键实现jdk8的安装和环境变量配置工作。
ubuntu安装jdk8
qq_43411964的博客
10-18 5799
这个位置是你jdk8解压到的绝对路径,根据你的情况/java前可能还有目录。这里选择x64.tar.gz版本。下载成功后解压到java目录中。创建一个java目录。
ubantu 安装jdk8
u013558123的博客
02-28 1309
Ubuntu安装 JDK 8
Ubuntu安装openjdk8
u012514113的专栏
05-05 2571
Ubuntu安装openjdk8
linuxUbuntu安装jdk8
devnn的专栏
11-20 311
Ubuntu安装jdk8需要系统版本在16及以上 先查看系统版本: cat /etc/issue 如果是14.x.x就需要升级系统 如何升级? 1、先刷新软件源: sudo apt-get update 2、 检查更新: do-release-upgrade 按提示一步步升级后重启。 3、安装jdk8 apt-get install oracle-java8-installer ...
linux下编译openjdk8
weixin_30855099的博客
11-10 147
一、准备工作 1.0 工作环境   Ubuntu 12.04,32位机 1.1、安装JDK 这里选用sun的jdk8。这里提供一种方法,也可以使用其他方法。首先,更新一下软件包列表 sudo apt-get update 其次,安装jdk或jre sudo...
linux安装配置JDK脚本
weixin_30433075的博客
03-16 105
#!/bin/bash # install jdk and configuring environment variables function installjdk(){ tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/local cat >> /etc/profile << EOF export JAVA_HOME=...
ubuntu安装jdk8(亲测)
baidu_15113429的博客
08-12 332
http://www.cnblogs.com/smiler/p/6939913.html
Ubuntu安装jdk8 【超实用】
热门推荐
刘贵庆的博客
02-06 1万+
linux自定义安装jdk8,一看就会,超使用。建议收藏。
centos8 安装 jdk17,mysql 8.0的脚本文件
04-04
以下是安装 JDK 17 和 MySQL 8.0 的脚本文件: 安装 JDK 17: 1. 创建文件 /etc/yum.repos.d/adoptopenjdk.repo 并添加以下内容: ``` [AdoptOpenJDK] name=AdoptOpenJDK baseurl=https://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/$releasever/$basearch enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public ``` 2. 运行以下命令安装 JDK 17: ``` sudo dnf update sudo dnf install adoptopenjdk-17-hotspot ``` 安装 MySQL 8.0: 1. 添加 MySQL Yum Repository: ``` sudo dnf install -y dnf-utils sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm ``` 2. 安装 MySQL 8.0: ``` sudo dnf update sudo dnf install mysql-community-server ``` 3. 启动 MySQL 服务并设置开机自启: ``` sudo systemctl start mysqld sudo systemctl enable mysqld ``` 4. 运行以下命令设置 MySQL root 用户密码: ``` sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}' mysql_secure_installation ``` 按照提示输入 MySQL root 用户密码并设置新密码。 以上是 CentOS 8 安装 JDK 17 和 MySQL 8.0 的脚本文件。
写文章

热门文章

  • VMware安装苹果系统教程 MAC安装VMware Tools,开启拖拽功能 9949
  • 2023年团体程序设计天梯赛-总决赛【python题解】 7875
  • 使用Python开发Android软件 6179
  • 使用服务端搭建frp服务器 实现游戏多人联机 CentOS 7安装FRP 实现内网穿透 5992
  • javafx 使用教程 软件界面设计 5320

分类专栏

  • 逆向 付费 5篇
  • python 27篇
  • 学习 22篇
  • 笔记 10篇
  • 深度学习 8篇
  • ACM 6篇

最新评论

  • 2023年团体程序设计天梯赛-总决赛【python题解】

    Mo Maek98: 第八题第7、8行第一个list可以不加吗

  • WebAssembly 入门教程 c++、go、python编译wasm

    深圳王哥: 这篇文章挺全面的,从WebAssembly的基础到用C/C++、Rust、Go编译WASM都有涉及,示例清晰,对新手很友好。通过编译不同语言的代码,还展示了如何在浏览器里运行和调用,挺实用的。最后的总结也挺到位,整体看下来收获满满。

  • WebAssembly 入门教程 c++、go、python编译wasm

    m0_46135444: 设置环境变量那部分命令写错了,应该是emsdk_env.bat

  • 原神语音本地搭建教程 文字、语音转语音

    O丶ne丨柒夜: 私信吧

  • 原神语音本地搭建教程 文字、语音转语音

    墨薪炎: 那请问改如何写呢?

最新文章

  • WebAssembly 入门教程 c++、go、python编译wasm
  • 常用加密算法,取盐校验、对称加密、非对称加密
  • 若依管理系统搭建教程,ruoyi-vue环境搭建
2024年4篇
2023年50篇
2022年28篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家濮阳大型玻璃钢景观雕塑潍坊玻璃钢蔬菜雕塑甘肃玻璃钢雕塑仿真牛临平区商场美陈布置圣诞圣诞商场美陈山西玻璃钢雕塑玻璃钢雕塑可信赖高邮玻璃钢气球雕塑商场美陈 小资厦门玻璃钢卡通雕塑定制玻璃钢仿真白菜雕塑南瓜玻璃钢雕塑图片玻璃钢雕塑制作供应商浙江玻璃钢卡通雕塑价格宁夏人物玻璃钢雕塑多少钱铜玻璃钢仿铜雕塑定制栖霞春季商场美陈德州玻璃钢雕塑制作厂家美洲豹玻璃钢雕塑定制拉丝玻璃钢雕塑要多少钱房山玻璃钢人物雕塑玻璃钢瓜果雕塑哪家好新民玻璃钢景观雕塑北京特色商场美陈生产玻璃钢动漫卡通雕塑设计厂家张家口卡通玻璃钢雕塑安装温州玻璃钢雕塑摆件厂家直销北海玻璃钢雕塑特点玻璃钢形象雕塑新乡发光玻璃钢雕塑加工厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化